程序中动态地改变ado.connection.string中数据库的路径(50分)

  • 主题发起人 blue6961
  • 开始时间
B

blue6961

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ADO连接VFP数据库,手动设置ado.cnnectinn string时正常连接.我现在要在程序中
动态地改变数据库的路径。请问如何在程序中动态地改变ado.connetion string的数据库
的路径
 
{TADOConnection 连接数据库的参数}
ADOLinkString ='Provider=Microsoft.Jet.OLEDB.4.0;'
+ 'Password=%s;' //用户工作组(*.mdw)密码
+ 'User ID=%s;' //用户工作组(*.mdw)用户名Admin
+ 'Data Source=%s;' //数据库文件(*.mdb)位置----------你只要修改这个值就可以了
+ 'Persist Security Info=True;'
+ 'Mode=ReadWrite;' // 数据库打开方式
+ 'Extended Properties="";' //默认值为空
+ 'Jet OLEDB:System Database="";' //用户工作组文件
+ 'Jet OLEDB:Registry Path="";' //注册路径
+ 'Jet OLEDB:Database Password=%s;' //数据库密码
+ 'Jet OLEDB:Engine Type=1;'
+ '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';
 
直接把你手动设置的 ConnectionString 拷下来,在需要改的地方用代码替换,比如:

ADOConnection.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
ExtractFilePath(Application.ExeName) + 'Info.mdb' +
';Persist Security Info=False';
 
procedure TSbglDM.DataModuleCreate(Sender: TObject);
var
Inifile:Tinifile;
filename:string;
s1,s2,s3,s4:string;
begin
FileName:=ExtractFilePath(application.ExeName)+'Sbgl.ini';
IniFile:=Tinifile.create(Filename);
s1 :='Data Source='+Inifile.ReadString('DataSource','服务器','');
s2 :='User ID='+Inifile.ReadString('DataSource','用户名','')+';';
s3 :='password='+IniFile.ReadString('DataSource','PAssWord','')+';';
s4 :='Initial Catalog='+IniFile.ReadString('DataSource','数据库','')+';';
if sbglconn.Connected then sbglconn.Close;
sbglconn.ConnectionString :='provider=SQLOLEDB.1;'+s3+'Persist Security Info=True;'+s2+s4+s1;
sbglconn.Connected :=true;
 
多人接受答案了。
 
顶部