用DELPHI7的ado连接设置了数据库密码的ACCESS数据库如果数据库没加密码的话用以下连接STRING没问题
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=手机库存.mdb;Persist Security Info=False”但加了密码后
连接STRING为:“Provider=Microsoft.Jet.OLEDB.4.0;Password=123;Data Source=库存.mdb;Persist Security Info=True”
一按测试的话就会报以下错误:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=手机库存.mdb;Persist Security Info=False
---------------------------
Microsoft 数据链接错误
---------------------------
测试连接失败,因为初始化提供程序时发生错误。无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。
---------------------------
确定
---------------------------
解决方案 »
- 如何获取STRINGRID中的行和列
- 大家在用ClientDataSet的时候,碰到过这样的问题吗?
- 请问如何只启动一个进程?
- 刚刚完成了一个程序,从Win2K换到Win98下调试发现界面全部变形了!怎么解决?给100分!
- A代码create一个B窗体类,我想在B关闭的时候释放资源,怎么做啊?
- 一个小问题,如何限制窗体最小化的尺寸?
- 在线急等!! 怎么样做一个无穷播放的多媒体?
- 单位没了 被别人兼并了 前途不明 特不舒服 请教各位 散分
- ADO连接sql2000如何用数据字典?
- 请教关于TTreeView的问题
- 谁知道工具栏菜单栏上的小图片才什么网站上能下载????
- 空?null?数据库字段设计问题
下面我把代码贴出,以供参考!
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;
data source='+extractfiledir(application.exename)+'\db\address.mdb; ---------数据库存放地址
persist security info=true;'+'jet oledb:database password='123456'; ----密码
adoquery1.Prepared:=true;
adoquery1.Open;
高红岩(ghyghost) 笔者近日在写ADO连接带密码的ACCESS数据库时,当connected:=true;时,总是出现密码不对的对话框,最终
在研究了TADOConnection.ConnectionString的内容创建过程时得到灵感,现与大家分享。
1,新建Project。
2,在FORM中放入ADOConnection,ADOQuery,DataSource,Datagrid控件。
3,双击ADOConnection控件,然后点击Build...按钮,在“提供者”页中选择“Microsoft Jet 4.0 OLE DB
Provider”,然后点击“下一步”按钮,在“连接”页中选择要连接的Access数据库的路径和数据库的文件
名,这时如果点“测试连接”按钮时,出现“初始化提供者时发生错误,测试连接失败,密码无效”的错误提示。
4,这时点“所有”页,然后双击“Jet OLEDB:Database Password”,出现对话框,添入密码后,选择“连
接”页中的“测试连接”按钮,出现“测试连接成功”的对话框。把ADOConnection控件的LoginPromtp设为false.
5,设置连接完成。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=手机库存.mdb;Persist Security Info=False
---------------------------
Microsoft 数据链接错误
---------------------------
测试连接失败,因为初始化提供程序时发生错误。无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。
---------------------------
确定
---------------------------
不是提示密码错误
sDataSource := ExtractFilePath(ParamStr(0)) + 'DataBase\PowerPrice.mdb';
sConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source = ' + sDataSource + ';Persist Security Info=False;Jet OLEDB:Database Password=123';