CoDelphi.com版权所有,未经允许,不得进行任何形式转载
ADO控件组一般都用来连接ACCESS数据库的。在数据库没有设密码的时候,用CONNECTSTRING就可以实现连接,但是如果有密码的,这时这个属性就不能用了,无论你怎么设置都无法连接!
该怎么解决呢?我问了一下朋友,对有密码的ACCESS数据库如果用ADO只能动态设定,而且这里面的参数很复杂,其实并不是设的东西负责而是这个语句很繁琐!
下面我把代码贴出,以供参考!
const{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
atabase Password=%s;' //数据库密码 + 'Jet OLEDB:Engine Type=1;' + 'Jet OLEDB
atabase Locking Mode=1;' + 'Jet OLEDB:Global Partial Bulk Ops=2;' + 'Jet OLEDB:Global Bulk Transactions=1;' + 'Jet OLEDB:New Database Password=%s;' //?密码 + 'Jet OLEDB:Create System Database=False;' + 'Jet OLEDB:Encrypt Database=False;' + 'Jet OLEDB
on''t Copy Locale on Compact=False;' + 'Jet OLEDB:Compact Without Replica Repair=False;' + 'Jet OLEDB:SFP=False';var mainDBPath, mdwPassword, mdwUserID, mdbDataSource, mdbUserID, mdbPassword, mdbNewPassword:string;
begin
mainDBPath :=ExtractFilePath(ParamStr(0));
mdwPassword :='';
mdwUserID :='Admin';
mdbDataSource :=mainDBPath+'data/hongyu.mdb';
mdbUserID :='Admin';
mdbPassword :='123456';
mdbNewPassword :='';
//---这样设置完后再连接到控件的属性上就可以了!---// with ADOQry_User do
begin
{以上是给变量赋值} Active :=False;
ConnectionString :=Format(ADOLinkString, [mdwPassword, mdwUserId, mdbDataSource, mdbPassword, mdbNewPassword]);{初始连接参数} end;
end;
给你贴上来了,大鱼儿他们别怪我呀