入門級問題:如何用ADO連接本地數據表(.DBF或.DB)(50分)

  • 主题发起人 主题发起人 honey
  • 开始时间 开始时间
H

honey

Unregistered / Unconfirmed
GUEST, unregistred user!
我現有的資料上沒有提到這些東西, DelPhi的幫助似乎也沒具体說到這方面的.
 
如果真要使用ADO连接到DBF OR DB的话,
可以使用“Microsoft OLE DB Provider For ODBC Drivers”,而DBF和DB都通过ODBC来访问。
不过,使用ADO访问DBF、DB效率很差的,不如使用BDE来的快。
 
不通過odbc行不行,而是直接設置連接串?
我的目的是給個不帶bde的程序給客戶, 他直接安裝該程序就行了而不必再設置一下ODBC.
 
可以:
connectionstring->use connection string(build)->microsoft ole db provider for
odbc driver->下一步->使用连接字符串->编译->新建->选择相应的驱动程序->下一步
->随便输入一个名字->下一步->完成->选择相应的数据库和目录->确定->选择刚建立的数据
源->此时出现字符串->确定->OK
记下刚才生成的字符串。然后重新建立连接字符串,在出现的对话框中将其清除->ok
下面是我的一个例子
在formcreate中:
conn.connectionstring:='Provider=MSDASQL.1;Extended Properties="DBQ='+ ExtractFilePath(Application.EXEName)+'DELPHI.MDB;Driver={Microsoft Access Driver (*.mdb)}";';
conn.open;
记住要删除自动生成的字符串中的一些不必要的东西。
 
謝謝二位!!!
 
To:hhzd426:你所说的是使用ADO连接到ACESS,而不是连接到DBF或PARADOX文件!
 
conn.connectionstring:='Provider=MSDASQL.1;Extended Properties="CollatingSequence=ASCII;
DBQ=你存放数据库的目录;DefaultDir=你存放数据库的目录;
Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};FIL=dBase III;"';
conn.open;
这是连接dbf的例子。在查询时直接将*.dbf数据库的名字作为表名处理就行了。
FIL=dbase III表示处理dbase III数据库,如果处理其它的数据库就选择相应的数据库:
dbase III,dbase VI,dbase 5.0
对于vfp生成的*.dbf:
Provider=MSDASQL.1;Extended Properties="Driver={Microsoft dBase VFP Driver (*.dbf)};
SourceDB=数据库所在目录;SourceType=DBF;"
对于paradox文件:
Provider=MSDASQL.1;Extended Properties="CollatingSequence=ASCII;DBQ=数据库所在目录;DefaultDir=数据库所在目录;Driver={Microsoft Paradox Driver (*.db )};
DriverId=538;FIL=Paradox 5.X;ParadoxNetPath=E:/WINNT/System32;ParadoxNetStyle=4.x;"
具体有些参数可能随系统不同路径有些差别,你自己参照你的dsn生成的字符串比较一下。
 
后退
顶部