首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何用程序给一个已存在的MDB数据库设置密码? [已结帖,结帖人:wenyongjie]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wenyongjie
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-06-29 22:53:43 楼主
    已经存在一个MDB数据库了,如果设置密码及改变密码呢?谢谢
    该库不为空,数据表有数据
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • unsigned
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 7

      4

    发表于:2008-06-29 23:46:101楼 得分:10
    参考看看:http://www.programmersheaven.com/mb/delphikylix/259317/259317/ReadMessage.aspx
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • unsigned
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 7

      4

    发表于:2008-06-29 23:46:422楼 得分:10
    http://topic.csdn.net/t/20020425/11/674883.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • samchoy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-06-30 10:51:383楼 得分:25
    用压缩数据库的方法给它指定密码就可以了
    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; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • samchoy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-06-30 10:52:484楼 得分:0
    改变密码的话则Provider1 中给旧密码,Provider2 给新密码
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • castlooo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-30 12:43:095楼 得分:5
    以独占方式打开access数据库,然后 【工具】->安全->设置数据库密码(必须以独占方式打开才能设置)


    带密码方式 ADO连接字符串:

    ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+APP_PATH+"dbName.mdb;Persist Security Info=false;Jet OLEDB:Database Password=Admin";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • castlooo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-30 12:49:566楼 得分:0

    以独占方式打开Access数据库 :

    在默认情况下,Access 000/00数据库是以“共享”的方式打开的,这样可以保证多人能够同时使用同一个数据库。不过,在共享方式打开数据库的情况下,有些功能比如压缩和修复数据库是不可用的。此外,当系统管理员要对数据库进行维护时,也不希望他人打开数据库。以下的方法可以让你以独占的方式打开Access数据库。
      一、打开按钮法

      .在“文件”菜单中,单击“打开”命令。

      .单击需要的Access数据库文件。

      .单击“打开”按钮旁的箭头,然后单击“以独占方式打开”。

      二、选项设置法

      上述方法适用于偶尔以独占方式打开数据库,如果你经常要以独占方式打开数据库,那么请进行如下设置:

      .在“工具”菜单中,单击“选项”命令。

      .单击“高级”选项,在“默认打开模式”下,单击“独占”。

      .单击“确定”按钮。

      之后,当你像通常那样打开数据库文件时,即是以独占方式将它打开。实际上,即使已将默认打开模式设置为“共享”,仍可以使用上述的“打开按钮”法以独占方式打开Access数据库。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • samchoy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-06-30 13:35:297楼 得分:0
    楼上的兄弟,楼主的要求是“用程序”啊 -_-!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wenyongjie
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-30 14:47:568楼 得分:0
    谢谢大家了,我也找到一段代码了,
    #include  <dao_2k.h>

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      AnsiString  dbname="c:\\User.mdb";
      AnsiString  OldPwd="4321";
      AnsiString  NewPwd="1234";//新密码
      TCOM_DBEngine  Engine=new  CoDBEngine->Create();
              try
              {
                      DatabasePtr  Database=Engine->OpenDatabase(WideString(dbname).c_bstr(),TVariantInParam(TRUE),TVariantInParam(FALSE),TVariantInParam(AnsiString(";PWD="+OldPwd).c_str()));
                      Database->NewPassword(WideString(OldPwd).c_bstr(),WideString(NewPwd).c_bstr());
              }
              catch  (...)
              {

                      delete  Engine;
              }
              delete  Engine;
              ShowMessage("密码修改成功!");
    }
    //---------------------------------------------------------------------------
    修改 删除 举报 引用 回复