想让Access数据库的程序在任何目录中都能用。(100分)

  • 主题发起人 主题发起人 wangmeilu
  • 开始时间 开始时间
W

wangmeilu

Unregistered / Unconfirmed
GUEST, unregistred user!
本人做了一个Access数据库程序,但改变所在数据库目录后运行出错,请问如何能让数据库在任何目录中都能用?
 
我也有这问题,关注此题,谢谢
 
1、动态改变ADO的CONNECTIONSTRING;
用extractfiledir(application.ExeName)得到程序目录。
2、ODBC。
 
动态生成连接串呀。
查找mdb路径,然后生成文件连接串
Con_Str :=
// 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + VG_APP_PATH + 'My_MDB.MDB' + ';' +
// 'Persist Security Info=False;' +
'Jet OLEDB:Database Password="' + VG_DB_PASS + '"';

with Connection1 do
begin
Close;
ConnectionString := Con_Str;
Open;
...
end;
 
若程序目录:d:/MyApplication
则数据库目录为 d:/MyApplication/Database
在程序中用ExtractFileDir(Application.ExeName) + '/Database/demo.mdb' 即可;
或者用ODBC
 
在动态生成ODBC的同时也动态给出他的路径!
 
我也想过动态改变地址可是地址如下
Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=c:/aa/aa.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
太长了,其中哪些有用也不知道
 
只要我写的那两句话就可以了。
 
多人接受答案了。
 
后退
顶部