我用下面的方法连接时出了一个怪问题:
Provider=MSDASQL.1;Password=1;Persist Security Info=True;User ID=admin;Extended Properties="driver={Microsoft Access Driver (*.mdb)};dbq=F:\user.mdb;LoginPrompt=False"为什么用这个方法不能使用ADOQusery这个控件?一使用就报错!但是,我可以用ttable控件。本人刚学DELPHI。极菜!请详细讲解。谢谢!

解决方案 »

  1.   

    我想再说清楚些:
    我在TADOtable控件中设置connectiongstring中的值为上述内容;然后在程序中写如下代码:
          ADOQuery1.Close;
          ADOQuery1.SQL.Clear;
          ADOQuery1.SQL.Add('update pass set pass="'+pass1.Text+'" ');
          ADOQuery1.ExecSQL;      ADOQuery1.Close;
          ADOQuery1.SQL.Clear;
          ADOQuery1.SQL.Add('update pass set state=1 ');
          ADOQuery1.ExecSQL;此时就会报错。提示是什么预期值为1。搞不懂是什么意思。但是,我这样写又可以:
          pass_table.Open;
          pass_table.First;
          pass_table.Edit;
          pass_table['state']:=1;
          pass_table['pass']:=pass1.Text;
          pass_table.Post;
          pass_table.Close;
          Application.MessageBox('密码修改成功,请记住新密码!','系统信息',MB_OK+MB_ICONINFORMATION);
          Form_setpass.Close;
    这是为什么?而如果我的数据库不加密,则上面的两种方法都是可以的啊!
      

  2.   

    Conn_Str:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataBaseName+';Persist Security Info=False;Jet OLEDB:Database Password=这里是你的数据库密码>>;';
      

  3.   

    无论是在程序中还是空间中,你的问题出在加一个Jet OLEDB:Database Password=这里是你的数据库密码>>;
      

  4.   

    在控件属性或者程序中都可以。
    Provider=MSDASQL.1;Password=1;Persist Security Info=True;User ID=admin;Extended Properties="driver={Microsoft Access Driver (*.mdb)};dbq=F:\user.mdb;LoginPrompt=False;PassWord='密码'"
      

  5.   

    在程序中:
    ADOQuery1.connectiongstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataBaseName+';Persist Security Info=False;Jet OLEDB:Database Password=这里是你的数据库密码;';
      

  6.   


    adoconnection.connectionstring:='Provider=MSDASQL.1;Password=1;Persist Security Info=True;User ID=admin;Extended Properties="driver={Microsoft Access Driver (*.mdb)};dbq=F:\user.mdb;LoginPrompt=False;PassWord='密码'"';
      

  7.   

    现在的问题是我想在TADOQuery控件中连接到一个有密码的数据库。不知道应该怎样写?
    用下面的方法可以连接上去,并且测试成功。
    Provider=MSDASQL.1;Password=数据库的密码;Persist Security Info=True;User ID=admin;Extended Properties="driver={Microsoft Access Driver (*.mdb)};dbq=数据库名;LoginPrompt=False"可是问题在于我连接好了以后可以使用ADOQuery.recourcount来知道数据库中的记录。可是不能使用SQL语句来更新数据库里的表!!运行的时候就会报错。居然说是SQL的语法错!不知道该怎样解决?我真的很菜。谢谢!:)
      

  8.   

    'update pass set state=1 '
    连WHERE子句都没有,难道你要更改所有数据的状态?