如何用ado连接加密的ACCESS数据库? 我的程序是ADO连接ACCESS数据库的,在没有加密之前一切都正常,但是加密了之后,我修改了ado的连接参数,输入了密码,可是就连不上!提示“工作组信息文件丢失,或是已被其他以独占方式打开”而我检查不出到底哪里有问题! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 些密码在所有-》Jet OLEDB:Database Password连接中把保存密码钩上 当我们使用ADO控件的CONNECTIONSTRING属性时候,弹出自动连接字符串配置向导.共四个页面(PROVIDER\CONNECTION\ADVANCED\ALL),只要将该向导翻到ALL页面,然后在Jet OLEDB:Database Password项目添上ACCESS数据库密码就可以.而CONNECTION的页面只需要选择一下数据库所在的目录就可以了(DELPHI5需在该页输入ACCESS数据库密码,DELPHI6不需要,空着就可以了) 还有一个方法,我试了可以用的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: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=%s;' //?密码 + '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';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; to:Roc_fu(专业菜鸟) 非常感谢你!头痛了好久,终于从你这儿找到了解决的方法,谢谢,请楼主尽快给分! 关于StringGrid滚动条问题 如何用DELPHI修改二进制文件里指定位置的字节? 关于用adoconnection连接 win2000 + sql2000的特殊问题 求助一个关于TClientDataSet排序的问题 如何把一个表中重复的数据列出来 调用VC的动态库的参数问题 SOS!,做过多层结构的老兄请帮帮忙,分值不够可以再加!!!! 自定义报表QRpreview的问题,请各位大吓帮帮忙!!分可以不断的加 急需懂PB,VB,DELPHI,JAVA,ASP程序员 有谁知道如何设置BDE(about sql sever) 应用程序资源图标的问题 stack overflow 的错误
连接中把保存密码钩上
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: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=%s;' //?密码 + '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';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;
非常感谢你!头痛了好久,终于从你这儿找到了解决的方法,谢谢,请楼主尽快给分!