如何动态设置ADOCONNECTION.connectionstring,以便使ADOCONNECTION连接不同的数据库?(50分)

  • 主题发起人 主题发起人 zhouzoo
  • 开始时间 开始时间
Z

zhouzoo

Unregistered / Unconfirmed
GUEST, unregistred user!
我发布的安装程序允许用户将程序安装到任意目录<installdir>。
可执行文件放在<installdir>/下,数据库放在<installdir>/database/*.mdb
我用以下方法使我的ADOCONNECTION动态地连接到<installdir>/database/*.mdb
却行不通。
mainform.oncreate
begin
adoconnection.connected:=false;
adoconnection.connectionstring:='...;DATA Source='+extractfilepath(application.exename)+'database/*mdb;'+'...';
.
.
.
end;
 
少个反斜杠/。
mainform.oncreate
begin
adoconnection.connected:=false;
adoconnection.connectionstring:='...;DATA Source='+extractfilepath(application.exename)+'/database/*mdb;'+'...';
. ^^^^^^^^^^^^^
.
.
end;
 
程序启动后连接的是A库,可行,但在程序中把A改为B却不成功,为什么?
 
“/”的要与不要要看程序是否安装在根目录下,应该更详细的判断“/”的加与不加(用了控制语句就完了)
 
你在98还是2000环境下测试的?
 
在打开该库前,你应查看一下(比如用MessageDlg显示)你的ConnectionString看对不看
 
我搞掂了:
if OpenDlg.Execute then begin
adocNh.Close;
adocNh.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDlg.FileName;
adocNh.Provider:='Provider=Microsoft.Jet.OLEDB.4.0';
try
adocNh.Open;
except
MessageBox(Handle,'打开数据库失败,请检查数据库是损坏.','内行系统信息',MB_OK+MB_ICONERROR);
Exit;
end;
end;

我在98/NT/2000下都通过了,给分吧!
 
用*.udl文件是最方便,灵活。不用把连接文字写进程序里面。
 
接受答案了.
 
后退
顶部