首页 相关文章 Delphi数据库的动态建立

Delphi数据库的动态建立

delphi 最吸引人的特点之一就是它的强大的数据库访问能力,通过database desktop 工具可方便的建立、编辑数据库。由于实际原因我们往往需要在程序运行状态下动态建立某个数据库。
  
  如果你让用户用database desktop 工具手工建立数据表那么你写的程序将会打大折扣,不过你不用担心delphi完全可以用语言来完成此功能,为我们提供方便。我在学习和实践中总结出两种方法,我叫做table法和sql法。下面通过简单的实例来描述动态数据库建立的过程。
  
   一、 Table方法:
  
  1、(以建立paradox数据表为例假设库名为ljh.db)。新建一工程文件zhoudf.dpr.在unit1中的uses语句中加入db,dbtables单元。
  
  2、在面板上选取button元件置于form1表中,双击button1输入如下代码。
  
  Procedure Tform1.Button2Click(Sender: Tobject);
  
   var t...[ 查看全文 ]

2016-02-19 标签:
  • str:=Table1.Tablename; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(format('select * from %s',[Str])); Query1.Open; [ 查看全文 ]
  • 标签:SQLServer
      在第一部分,我们讨论了如何优化 ASP 代码。在这一部分,我们把重点放在数据访问上。 一般情况下,数据访问时间要比 ASP 代码解释,编译时间长,不要让数据检索成为影响 ASP 性能的瓶颈。 首先,讲一些老生常谈的话。比如:需要声明变量,要用 Response.Write SQL_string 来进行调试,要用 On Error Resume Next 来捕获错误。不要在 Application 和 Session 中存储 Connection 对象等等,都是一些...[ 查看全文 ]
  • 标签:PHP
    接着,来个稍微复杂一点的,如果有个ORDER BY字句呢?不管你信不信,大多数的数据库在使用order by的时候,都将会从索引中受益。 SELECT * FROM mytable WHERE category_id=1 AND user_id=2 ORDER BY adddate DESC; 有点迷惑了吧?很简单,就象为where字句中的字段建立一个索引一样,也为ORDER BY的字句中的字段建立一个索引: CREATE INDEX mytable_categor...[ 查看全文 ]
  • 标签:办公软件
        日常工作中,我们常常需要建立一些有规律的数据库。例如我为了管理全乡的农业税,需建立一数据库,该数据库第一个字段名为村名,第二个字段名为组别。我乡共19个村,每个村7~17个组不等,共计258个组。这个数据库用数据库软件(哪怕是Visual FoxPro 6.0或是Access97等高档次的)很不好建立——逐个儿输入吗,只有傻瓜才有这种想法。用Access宏或FoxPro编程来输入吧,这些数据似乎还嫌不够...[ 查看全文 ]
  • 标签:PHP
    就象许多的PHP开发者一样,在刚开始建立动态网站的时候,我都是使用相对简单的数据结构。PHP在连接数据库方面的确实是十分方便(译者注:有些人认为PHP在连接不同数据库时没有一个统一的接口,不太方便,其实这可以通过一些扩展库来做到这一点),你无需看大量的设计文档就可以建立和使用数据库,这也是PHP获得成功的主要原因之一。 前些时候,一位颇高级的程序员居然问我什么叫做索引,...[ 查看全文 ]
  • DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //声明连接字符串 Const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +'Jet OLEDB:Database Password=%s;'; //===============================================...[ 查看全文 ]
  • 一个程序连接数据库中间就需要有一个数据库连接引擎 笔者在使用Delphi的过程中,共使用过几种连接方式连接Access,SqlServer,Oracle,IBM UDB,IBM AS/400... 1.BDE     这是使用Delphi最多的一种方式,建立一个BDE别名可以在控制面板中的BDE Administration中添加,不过我习惯在SQL Explorer中建立,因为建立之后直接可以执行建表的脚本了。    &nb...[ 查看全文 ]
  • 标签:Delphi
    下面就来介绍一下这些控件的简单应用: 指定一个数据源 数据控件必须通过TDataSource构件连接数据集。TDataSource构件扮演的角色实际上就是数据控件与数据集之间的桥梁。首先,把一个数据集构件放到窗体或数据模块上,设置它的DatabaseName属性指定要访问的数据库,设置它的TableName属性指定要访问的表。接着,把一个TDataSource构件放到窗体或数据模块上,设置它的DataSet属性指定数据集...[ 查看全文 ]
  • 以下是引用片段: 代码如下: ImportsSystem.Data ImportsSystem.Data.SqlClient PublicClassForm1 InheritsSystem.Windows.Forms.Form PrivateConnectionStringAsString="DataSource=.;InitialCatalog=;UserId=sa;Password=;" PrivatereaderAsSqlDataReader=Nothing PrivateconnAsSqlConnection=Nothing PrivatecmdAsSqlCommand=Nothing PrivateAlterTableBtn...[ 查看全文 ]
  •  MySQL 版本:4.1 环境介绍:主库 192.168.0.205 从库 192.168.0.206 1、主库创建/etc/my.cnf,修改[mysqld]里边的键值增加 server-id=1 log-bin=binlog_name 2、主库增加用户,用于从库读取主库日志。 grant replication slave,reload,super on *.* to ’slave’@’192.168.0.206’ identified by ’123456’ 3、从库连接主库进行测试。 /opt/mysql/bin/mysql -u slave -p -h 192.168.0.2...[ 查看全文 ]
  • PrivateSubCommand1_Click() OnErrorGoToErr100 '定义表与字段 DimDefDatabaseAsDatabase DimDefTableAsTableDef,DefFieldAsField SetDefDatabase=Workspaces(0).OpenDatabase(App.Path&"vbeden.mdb",0,False) SetDefTable=DefDatabase.CreateTableDef("VB编程乐园") 'dbBinary=9 'dbBoolean=1 'dbByte=2 'dbChar=18 ...[ 查看全文 ]
  • 标签:Delphi
        一.DLL 库内存共享机制   从使用效果看,DLL和unit 很像,它们都可以被别的工程模块所调用,但二者在内部的实现机制上确存在着差别。如果一个程序模块中用uses语句引用了某个unit,编译程序在编译该模块时,便会连同unit一起编译,并把编译后的可执行代码链接到本程序模块中,这就是一个程序模块能够调用所引用unit中过程和函数的原因。   当同一个unit被多个工程所引用时,则每个...[ 查看全文 ]
  • 标签:ASP
      许多人都可能又自己的asp个人主页,但有数据库权限的不会很多,今天我给一个方法。大家可以自己建 立一个库。不用access或sql server的格式。是自己建一个格式。(听起来很高深奥!以前开发一个数据 库,都是些很厉害的系统分析员奥!今天我们来变通一下!) 就是这个了控件。 TDC:Tabular Data Control。 用法:<object id=countsrc classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83...[ 查看全文 ]
  • 在Office 2000下,Access数据库的安全机制已经更为完善。除了对数据库设置密码保护,对数据库进行编码压缩,还可以启用用户级的安全机制,在用户级别上控制对数据库的访问。 一、数据库设置密码 对于单机使用的数据库或者是需要工作组共享的数据库,仅设置密码保护较为合适。知道密码的组成员,都有数据库的完全操作权限,彼此之间的使用权限没有什么区别。设置密码的步骤如下: 启动...[ 查看全文 ]
  • 标签:Delphi
      随着Internet的普及和发展,Web成了新的商家必争之地,各家厂商都希望通过Internet技术与最终用户建立直接的联系,比如在Web上向用户推销产品、方便用户在网上查询自己喜欢的商品并提供网上订购服务等,于是产生了CGI(公用网关接口)、ASP等一系列生成动态网页的方法。CGI是最早生成动态网页的方法,几乎所有的WEB服务器都支持它,由于CGI程序是作为独立的外部应用程序...[ 查看全文 ]
  • 标签:Delphi
      Server 端: SoapDataModule中加入 ADOConnection1、ADODataSet1、DataSetProvider1;DataSetProvider1的DataSet设置为ADODataSet1;ADODataSet1的CommandText设置为空,Connection设置为ADOConnection1。 DataSetProvider1的DataRequest事件: function TDataMod.DataSetProvider1DataRequest(Sender: TObject; Input: OleVariant): OleVariant; begin if ADO...[ 查看全文 ]
  • 标签:SQLServer
      三、用列号作为参数 就象第一个方案所显示地那样,你也许更喜欢用列的编号作为参数,而不是使用列的名字(列的编号即一个代表你想要作为排序依据的列的数字)。这种方法的基本思想与使用列名字作为参数的思想一样:CASE表达式根据指定的列号确定使用哪一个列进行排序。Listing 7显示了修改后的GetSortedShippers存储过程。 【Listing 7:用列号作为参数】 ALTER PROC GetSortedShippers ...[ 查看全文 ]
  • 标签:SQLServer
      为了避免出现这种转换错误,我们可以尝试把ShipperID转换成varchar数据类型。采用这种方法之后,nvarchar将作为最高优先级的数据类型被返回。Listing 3显示了修改后的GetSortedShippers存储过程。 【Listing 3:用列名字作为参数,第二次尝试】 ALTER PROC GetSortedShippers @ColName AS sysname AS SELECT * FROM Shippers ORDER BY CASE @ColName WHEN 'ShipperID' TH...[ 查看全文 ]
  • 标签:SQLServer
      二、用列名字作为参数 另外一个选择是让查询以参数的形式接收一个列名字。Listing 2显示了修改后的GetSortedShippers存储过程。CASE表达式根据接收到的参数,确定SQL Server在ORDER BY子句中使用哪一个列值。注意,ORDER BY子句中的表达式并未在SELECT清单中出现。在ANSI SQL-92标准中,ORDER BY子句中不允许出现没有在SELECT清单中指定的表达式,但ANSI SQL-99标准允许。SQL Server一直允许这...[ 查看全文 ]
  • 标签:SQLServer
      假设我们把更多的货主加入到表,如Listing 4所示(ShipperID列有IDENTITY属性,SQL Server自动为该列生成值)。 【Listing 4:向Shippers表插入一些记录】 INSERT INTO Shippers VALUES('Shipper4', '(111) 222-9999') INSERT INTO Shippers VALUES('Shipper5', '(111) 222-8888') INSERT INTO Shippers VALUES('Shipper6', '(111) 222-7777') INSERT INTO Shippers VALUES('Shipper7', ...[ 查看全文 ]