Delphi 访问数据库

本文详细介绍了如何使用Delphi通过BDE访问SQLServer数据库,包括注册ODBC数据源、配置BDE、设置DataAccess控件属性以及DataControls控件属性,实现与数据库的连接和操作。此外,还探讨了Delphi与VB在数据库访问上的差异,以及在设计数据库软件方面的优势。文章最后提到了数据转换方法,包括TBatchMove控件的使用,以及Delphi数据库应用中数据导入和导出的实现方法。
摘要由CSDN通过智能技术生成
               

实现对SQLServer数据库的操作了。具体步骤如下:
    第一步,注册ODBC数据源。这是至关重要的一步,否则
就无法实现对数据库的访问。例如,我们定义一个可访问SQL
—Server服务器上zhb数据库的数据源ZHB。首先,选择
SQLServer类型的数据库,进入“ODBCSQLServerSetup”窗口。
然后,定义数据源名称为“ZHB”;定义Server为“SQL—Server”;
以及网络路径为“ιιSQL—Server”;最后,按option命令
按钮选择访问的数据库为zhb即可。
    第二步,配置BDE。它是Delphi专用的数据库引擎。既可
以从Delphi程序组里启动,也可以从Delphi程序项的Tools
菜单下启动。Delphi在访问SQLServer数据库时略不同于VB。
VB是直接调用ODBC来连接SQLServer的,而Delphi是首先调
用BDE中的别名,别名再通过BDE中的ODBCDriver直接访问ODBC
数据源实现的。而在BDE的ODBCDriver中你还可以定义其他
ODBC属性,例如语言驱动程序或打开模式等等。这无疑大大增
强了ODBC的功能。
    首先,在Drivers标记页中,按“NewODBCDriver”添加
新的驱动程序。在添加窗口中有三栏需要填写。第一栏
SQLLinkDriver可任取一名,如:ODBC—ZHB;第二栏
DefaultODBCDriver中选择SQLServer;在第三栏
defaultDataSourceName中选择刚才注册的数据源ZHB。按OK
确认后就增加了一个名为ODBC—ZHB的DelphiODBC驱动程序。
在其右侧的参数表中,还可以设置打开模式OPENMODE、查询模
式SQLQRYMODE、SQL语句执行模式SQLPASSTHRUMODE以及
语言驱动程序LANGDRIVER等。接下来,在Aliases标记页中,
按“NewAlias”命令按钮增加一个新的别名。在增加新别名窗
口中有两栏需要填写。第一栏为Newaliasname,可任取一个名
字,如:zhbdb;这个别名就是我们要在Table控件中直接调
用的数据库名字。第二栏Aliastype选择刚才在Drivers标记
页中定义的ODBC—ZHB,最后按OK确认,就增加了一个名为
zhbdb的别名。这样,Table控件可以通过别名zhbdb,别名zhbdb
通过Delphi的ODBCDrivers(即:ODBC—ZHB),ODBC—ZHB再
通过ODBC数据源ZHB就可连接到SQL—Server服务器上的zhb
数据库了。以上相当于完成了在BDE中的注册,接下来就可以
进行控件的属性设置了。
    第三步,设置DataAccess控件属性以实现与数据库的连
接。将Table和DataSource控件加到窗体中并修改Table控
件的属性。首先,将DatabaseName属性改为刚才在BDE别名
中定义的zhbdb。设置完databaseName属性后,就可以从
TableName属性的下拉列表中选择一个表的名字。这其间Table
控件要完成与数据库的连接,连接成功后,该列表中才会出现
可选的表名。然后,将Active属性改为true,将打开的数据
库激活,和DataSource控件建立联系。将Exclusive属性改
为true。最后,将DataSource控件的DataSet属性设为Table1。
DataSource控件为Table控件与DataControls控件相联系的
渠道。通过以上步骤的设置,DataSource1对象就与zhb数据
库的某个表建立了联系。以后,只要对DataSource1对象访问,
就可以实现对该表的操作了。
    第四步,设置DataControls控件属性以实现对数据库的
操作。一旦DataAccess类的控件被成功打开,处于窗口中的
DataControls标记页的控件就可以使用了。这些控件有
DBGrid、DBNavigator、DBText、DBEdit、DBMemo、DBImage、
DBListBox、DBComboBox、DBCheckBox以及DBRadioGroup。这
些控件只要设定他们的DataSource和DataFields属性就可以
实现对表的读写操作。
    可以看出,Delphi在设计数据库软件方面,尤其是
SQLServer数据库方面要比VB来得快;而且,其丰富的控件为
界面的设计提供了有利帮助;另外,Delphi的真编译使程序的
执行效率相当高,可移植性好。这些,都是VB所欠缺的。

 

///
数据库转换方法 

1.所使用的控件 

 

2.TBatchMove控件的使用 

TBatchMove允许在一组记录或是整个数据表中执行特种作业,
这个控件的主要用途在于 把数据从服务器中卸到本地的数据
源供分析或进行其他操作。TBatchMove可以在目的地建立 对
应于原数据表内容的数据表,自动将列名及数据类型进行适当
的对应操作。 

TBatchMove两个特性指明批量移动(Batch Move)操作的源表及
目的表。Source指定一个 对应于已有的源数据表的数据集(一
个Tquery或Ttable控件),Destination指明对应于一个数 据
库数据表的Ttable控件,目的数据表可以是已经存在的也可以
是不存在的。 

Mode特性指明TBatchMove对象所要做的事情: 

 

我们可以根据batCopy模式,对数据库类型进行适当的转换,以
下是从dBASE类型到其它类 型之间的转换结果: 

 

数据库转换举例 

现有用Foxbase开发的财务程序中的会计科目数据库
(kjkmk.dbf),系统将升级到Window s环境下开发,数据库将采
用Paradox语言。为了沿用该库结构和数据,可采用如下方法
进行转 换。 

1.Datasource1控件: 

AutoEdit True 

DataSet Table1 

Enabled True 

Name DataSorce1 

2.Table1控件: 

DatabaseName cw 

Name Table1 

Readonly False 

TableName KJKMK 

TableType udBase 

Datasource1控件和Table1控件共同定义被转换的源文件,该
文件是在别名为cw里的kjk mk,文件类型为Dbase。 

3.BatchMove1控件: 

Destination Table2 

Mode balCopy 

Name BatchMove1 

Sorce Table1 

MatchMovel控件定义转换类型为Copy以及源文件、目标文件。 

4.Datasource2控件: 

AutoEdit True 

DataSet Table2 

Enabled True 

Name DataSorce2 

.Table2控件: 

DatabaseName cwdb 

Name Table2 

Readonly False 

TableName KJKMK 

TableType uParadox 

Datasource2控件和Table2控件共同定义转换后的目标文件,
该文件是在别名为cwdb里的 kjkmk,文件类型为Paradox。 

6.DbGrid1控件: 

Datasorce Datasorce1 

Name DbGridl 

DbGridl网格控件先定义源文件,执行转换后再定义目标文件,
主要用于方便查看。 

7.Button1控件: 

OnClck ButtonClck 

OndragDrop 

Ondragover 

OnEnddrag 

该控件有一个OnClick事件,表示执行文件类型转换。其代码
如下: 

procedure TForm1.Button1Click(Sender:TObject); 

begin 

BatchMove1.execute; 

end; 

经上述方法定义,编译执行后,即可将kjkmk.dbf文件转换
kjkmk.db文件,然后就可以用 Database Desktop工具对其进
行修改调整。 

用此方法还可进行其它任意文件的转换。 


Delphi的数据库应用通过Data Access控件与BDE连接,从而
访问数据源。Data Control s控件是些所谓Data_Aware控件,
提供用户接口。由于BDE(Borland Database Engi-neer)支 持
ODBC标准,所以可以访问多种数据源表格。 

 


使用SQL时的一些问题 

 


Delphi的数据控件基本支持标准SQL语言,但有些限制。在具
体编程时可能会遇到一些麻 烦。 

<图片>


1.Query控件的Open和ExecSQL方式的区别。Open方式可以
打开所联系的数据表格,而Ex ecSQL方式则只是运行SQL语句,
并不将运行后的表格送往相连的Data-Controls控件。因此, 如
果要用DBGrid等来显示要求的数据记录时,先用SELECT语句
筛选出符合要求的元组,再用O pen对Query控件进行操作即
可。例如有如下的应用: 


如果要在DBGridl中显示表格(表格名为WORKERS.DB),则可将
Query1的SQL属性设为:SEL ECT*FROM WORKERS,再在程序中加
入语句:Query1.Open;即可。如要插入一个记录,则Query1 的
SQL属性应为: 


INSERT INTO WORKERS(No#,Name,Sex,Age,Depart) VALUES 


(:No#,:Name,:Sex,Age,:Depart) 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值