我用的是ACCESS数据库,在数据库中设置了密码,应该怎么用ADOQUERY连接啊?一连接就出错啊,好像什么独占啊

解决方案 »

  1.   

    加一个TADOConnect控件
    AdoConnection.Provider:='Microsoft.Jet.OLEDB.4.0;' +
                              'User ID=admin;' +
                              'Data Source=' +
                              ExtractFilePath(Application.ExeName)+
                              '\school.mdb;' +
                              'Persist Security Info=False;' +
                              'Jet OLEDB:Database Password=12321';
      

  2.   

    如何使用加了密码的ACCESS数据库  类 别:数据库   ADO控件组一般都用来连接ACCESS数据库的。在数据库没有设密码的时候,用CONNECTSTRING就可以实现连接,但是如果有密码的,这时这个属性就不能用了,无论你怎么设置都无法连接!   该怎么解决呢?我问了一下朋友,对有密码的ACCESS数据库如果用ADO只能动态设定,而且这里面的参数很复杂,其实并不是设的东西负责而是这个语句很繁琐!下面我把代码贴出,以供参考!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;
     
    这篇能不能联,测试试,但是一定是要写语句的,用那个联接向导死活都联不上,若这个还不能联,就到网上找一下吧
      

  3.   

    'Provider=Microsoft.Jet.OLEDB.4.0;'+
                                  'User ID=Admin;'+
                                  'Data Source='+extractfiledir(application.ExeName)+'\data\transition.mdb;'+//文件路径
                                  'Mode=Share Deny None;'+
                                  'Extended Properties="";'+
                                  'Jet OLEDB:System database="";'+
                                  'Jet OLEDB:Registry Path="";'+
                                  'Jet OLEDB:Database Password="landstar123456";'+//数据库密码在这里输入
                                  'Jet OLEDB:Engine Type=5;'+
                                  'Jet OLEDB:Database Locking Mode=0;'+
                                  'Jet OLEDB:Global Partial Bulk Ops=2;'+
                                  'Jet OLEDB:Global Bulk Transactions=1;'+
                                  'Jet OLEDB:New Database Password="";'+
                                  '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';
    用这个连接字符串可以动态连接带密码的access数据库,我程序就这么连的,而且服役一年了,没什么问题