分类: WINDOWS
2012-03-21 16:51:37
它的访问接口顺序是这样的:dbExpress组件--->ODBC的dbExpress驱动---数据库的ODBC驱动--->数据库
一、在odbc中设置数据源,源名称MyAccessDatabase连接到E:\data.mdbp 数据库,至于怎么添加odbc数据源这里就不写了,可以看我另外一篇“Delphi ADO odbc 连接数据库”里就有。
二、Delphi新建一个程序,我是放在E:\MyProgram\delphi\DelphiDbExpress目录下
放入一个 dbExpress组件下的TSQLConnection、TsimpleDataSet
再放入DataAccess组件下的TdataSource
再放入一个Data Controls下的TDBGrid 显示控件
各属性设置如下:
对象 对象类型 属性 值
SQLConnection1 TSQLConnection (我们等等设置这个)
SimpleDataSet1 TsimpleDataSet connection SQLConnection1
DataSource1 TdataSource DataSet SimpleDataSet1
DBGrid1 TDBGrid DataSource DataSource1
三、设置dbExpress
下载文件:
上面链接失效了,去这下载
里面有个download下载按钮
并解压出来。
这里面我们会用到dbxconnections.ini、dbxdrivers.ini和dbxoodbc.dll 这三个文件,前面两个是配置文件 ,后面一个就是dbexpress连接ODBC的驱动了
(1)先把这个驱动文件dbxoodbc.dll复制到我们的项目目录E:\MyProgram\delphi\DelphiDbExpress下;
(2)打开C:\Program Files\Common Files\Borland Shared\DBExpress,这里面也有dbxdrivers.ini并把我们下载的那个dbxdrivers.ini里面的内容复制添加到C盘的这个dbxdriver.ini里面,注意添加到相应的位置。我添加完的C盘dbxdrivers.ini文件内容如下:
[Installed Drivers]
DB2=1
Interbase=1
MySQL=1
Oracle=1
Informix=1
MSSQL=1
OpenOdbc=1
[OpenOdbc]
LibraryName=dbxoodbc.dll
GetDriverFunc=getSQLDriverODBC
VendorLib=odbc32.dll
。。。
(3)并把下载的dbxconnections.ini里面的
[Odbc Prompt]
' Prompt for Odbc login info (? denotes driver prompt)
DriverName=openodbc
Database=MyAccessDatabase
这几行复制到C:\Program Files\Common Files\Borland Shared\DBExpress目录的dbxconnectiions.ini文件的最后面。注意这里面我把问号换成 我之前第一步设置的odbc里面的那个数据源名字了。还有其它的ini文件里面其它的连接方式自己看吧。我这里就先用这种要密码的
四、在Delphi窗口中双击
SQLConnection1,在Connection Name下面就可以看到我们刚添加的odbc Prompt了,(PS:当然另外一种添加方法是你也可以就在这里添加,它会写到dbxconnections.ini中的,可参考李维的《Delphi7高效数据库程序设计》里面的内容进行设置)。
我们选择刚添加的odbc Prompt.OK.
再设置SimpleDataSet1的DataSet\CommandText,当按下对象属性窗口的DataSet\CommandText旁边那个…小按钮时会看到数据库里面的表了,说明我们连接成功了。我们设置它的commandtext为 select * from result
五、然后我们在窗体中加入一个按钮并双击它,设置它的代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
SQLConnection1.Connected:=true;
SimpleDataSet1.Active:=True;
end;
六、 好了。保存工程,保存文件,(这步一定要,没保存的话它会提示dbxoodbc.dll之类的文件找不到。)
运行一下程序,提示要我们输入密码我是空的。确定。再按button1。就看到运行结果了,不过数据多的话可能要等好几秒。结果如下:
我上面是自己运行过的,不过写的步骤不知道会不会不小心漏了。欢迎留言,我会改正的。
如果图看不到的话,就按照文字的过程操作也可以的。
参考:
seaWave的回答。