如何在DELPHI中为ACCESS数据库设置数据库密码(49分)

  • 主题发起人 主题发起人 jinhx
  • 开始时间 开始时间
J

jinhx

Unregistered / Unconfirmed
GUEST, unregistred user!
是在DELPHI中用代码设置ACCESS数据库的数据库连接密码,在网上找了很多都是直接在ACCESS中设置的,
 
ADOConn.Connected := False;
ADOConn.Execute('Alter Database Password ['+NewPass+'] ['+OldPass+']');

假设ADOConn已可以正确连接到Access
 
Function ChangeMdbPassword ( tcMdbFile, tcOldPswd, tcNewPswd )
* 修改 Access 数据库的密码,必须独占打开数据库,使用前请确保没有其他程序使用数据库
Local IsOK
IsOK = .F.
lcRetuStr = []
tcMdbFile = iif(Type([tcMdbFile])=[C], tcMdbFile, [])
tcOldPswd = iif(Type([tcOldPswd])=[C], tcOldPswd, [])
tcNewPswd = iif(Type([tcNewPswd])=[C], tcNewPswd, [])
If File( tcMdbFile )
IsOK = .T.
Local loADODB, lcOldError
lcOldError = On([ERROR])
On Error IsOK = .F.
loADODB = CreateObject( [ADODB.Connection] )
loADODB.Mode = 12
loADODB.Provider = [Microsoft.Jet.OLEDB.4.0]
loADODB.Properties([Jet OLEDB:Database Password]) = tcOldPswd
loADODB.Open([Data Source=] + tcMdbFile)
loADODB.Execute('ALTER DATABASE PASSWORD [' + tcNewPswd + '][' + tcOldPswd + ']')
loADODB.Close
Release loADODB
loADODB = Null
On Error &lcOldError.
Endif
Return IsOK
Endfunc
 
Const LocalConnStr='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source=%S;'+
'Mode=Share Deny Read|Share Deny Write;'+
'Persist Security Info=False;'+
'Jet OLEDB:Database Password=%S'; //数据库连接串

LocalConn.ConnectionString:=Format(LocalConnStr,[AppPath+dbFileName, utSysDBPass]);
LocalConn.LoginPrompt:=False;
 
搞定,谢谢,我只有这么多了
 
后退
顶部