如何用ADO控件打开有密码的Access数据库?
在设计时直接设置好参数,测试连接时如不填密码,显示错误信息为“无效密码”,填入正确密码后再测试连接,显示错误信息为“不能连接...”(后面的信息我忘了,总之是出错)。这是怎么回事,该怎样设置? 问题点数:20、回复次数:8Top
1 楼myxfang(海风)(大富翁银行)回复于 2001-06-12 10:36:00 得分 0
Access版本不一样,请注意是Access2000还是Access97?
如果还有问题,请重新装Access!
Top
2 楼Triumph(夜雨)回复于 2001-06-12 10:53:00 得分 0
数据库是 Access97 数据库,用 Access97 和 Access2000 打开时提示输入密码,输入正确密码后即可打开,都没问题。
程序中的 Ado 使用的是 Jet 4.0,打开不带密码的数据库时无论是 Access97 还是 Access2000 的都没问题。Top
3 楼myxfang(海风)(大富翁银行)回复于 2001-06-12 14:30:00 得分 0
Delphi不支持Access2000(带密码),Ado 其实可以通过odbc,不要通过Jet 4.0就可以!Top
4 楼fontain()回复于 2001-06-12 18:37:00 得分 20
假设你的数据库是 行情.mdb
密码是 1234567
则
connectstring为:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\WINDOWS\Desktop\行情.mdb;Persist Security Info=False;Jet OLEDB:Database Password=1234567
Top
5 楼fontain()回复于 2001-06-12 18:41:00 得分 0
密码别填在密码框中,填在所有选项卡的database password里
有问题在联系:fontain@km169.netTop
6 楼tzchu(鸭子)回复于 2001-06-12 19:05:00 得分 0
请参照我用BDE纺的程序
Function Tfmcenter.Getaccpass(var path:string):string;
const
xorString:array[0..12]of byte=
( $86, $FB, $EC, $37,
$5D, $44, $9C, $FA,
$C6, $5E, $28, $E6,$13 ); //SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_SCREENSAVE,0);
var
passBuf:array[0..14]of byte;
pass:array[0..14]of char;
B:Byte;
F:TFileStream;
I:integer;
begin
F:=TFileStream.Create(path,fmShareDenyNone);
try
F.Seek($42,soFromBeginning);
F.Read(passBuf,14);
for I:=0 to 13 do
begin
B := passBuf[i] xor xorString[i];
pass[i]:=char(B);
end;
pass[sizeof(pass) - 1] := #0;
result:=StrPas(Pass);
finally
F.Free;
end;
end;
Top
7 楼myxfang(海风)(大富翁银行)回复于 2001-06-12 21:34:00 得分 0
fontain()解答的对!佩服佩服!Top
8 楼Triumph(夜雨)回复于 2001-07-04 23:36:07 得分 0
To fontain:
你说的非常正确,非常感谢.
我的机子不知怎么回事,老是不能显示加分的编辑框.等过一段再试试.Top
相关问题
- 用Delphi ADO控件解Access数据库
- Foxpro 数据库应该使用ADO数据库控件还是Data Access控件好?为什么?
- 【用ADO控件连接ACCESS数据库的问题】
- 在DELPHI中如何用ADO控件打开带密码的ACCESS数据库?
- ADO控件连数据库的问题
- ADO连接Access数据库
- 用vb开发数据库程序时,用ADO控件连接Access数据库,用数据库绑定控件时总是出现“From子句语法错误!”是什么原因?
- 急急急。在VB中用ADO控件连接Access数据库连接后怎样才能模糊查询
- 谁能提供一些使用access数据库及ado控件编程的一些注意事项,thanks!
- 如何用VB里面的ADO控件,打开一个加密的access数据库?




