如何用程序给一个已存在的MDB数据库设置密码?
已经存在一个MDB数据库了,如果设置密码及改变密码呢?谢谢
该库不为空,数据表有数据
[解决办法]
参考看看:http://www.programmersheaven.com/mb/delphikylix/259317/259317/ReadMessage.aspx
[解决办法]
http://topic.csdn.net/t/20020425/11/674883.html
[解决办法]
用压缩数据库的方法给它指定密码就可以了
- C/C++ code
bool CompactAccessDatabase(WideString MDB, WideString Password){ AnsiString TMP = ExtractFilePath(MDB); if (TMP == "") TMP = GetCurrentDir(); TMP = TMP + AnsiString(DY_APPNAME) + "_$$$.MDB"; if (FileExists(TMP)) DeleteFile(TMP); WideString Provider1 = WideString("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=") + MDB + WideString(";Jet OLEDB:Database Password=") + Password; WideString Provider2 = WideString("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=") + TMP + WideString(";Jet OLEDB:Database Password=") + Password; Variant AdoObj = Variant::CreateObject("JRO.JetEngine"); AdoObj.OleProcedure("CompactDatabase", Provider1, Provider2); AdoObj.Clear(); // 释放ADO对象 if (DeleteFile(MDB)) { RenameFile(TMP, MDB); return true; } return false;}
[解决办法]
以独占方式打开access数据库,然后 【工具】->安全->设置数据库密码(必须以独占方式打开才能设置)
带密码方式 ADO连接字符串:
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+APP_PATH+"dbName.mdb;Persist Security Info=false;Jet OLEDB:Database Password=Admin";