实现对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语句执行模式SQLPASSTHRUMODE以及
语言驱动程序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)