在进行DELPHI调试时,提示ADOQuery没有设置为读写的权限,但ADOConn和ADOQuery都设置用户可有读写的,请问这是什么原因呢?谢谢!

解决方案 »

  1.   

    将ADOConn的Mode属性设为: cmReadWrite 即可
      

  2.   

    已经设置啦,但调试时还是提示为没有读写的权限,请问是不是以下的语句影响的呢?还有SQL连接是不是出错呢
    begin
       with DM.ADOxsjbxxQuery do
        begin
         Close;
         SQL.Clear;
         SQL.Add('select * from xsjbxx');
         Open;
         if locate('xh',Trim(xh.Text),[lopartialkey]) then
         begin
          showmessage('该学号的记录已经存在');
          cancel;
         end
         else
         begin
          Edit;
          InsertRecord(['Trim(xh.Text)','Trim(Edit35.Text)','Trim(Edit34.Text)','Trim(Edit33.Text)','Trim(Edit32.Text)','Trim(ComboBox12.Text)',FormatDateTime('yyyy-mm-dd',DateTimepicker1.DateTime),'Trim(Edit30.Text)',vzzmmdm,vmzdm,vxbdm,vzydm,vbjdm,vxzdm,'Trim(Edit38.Text)','Trim(Edit36.Text)','Trim(jzxm.Text)','Trim(Edit31.Text)','Trim(Edit39.Text)',Edit28.Text,Edit27.Text,NIL,NIL,Edit26.Text,Edit37.Text,FormatDateTime('yyyy-mm-dd',DateTimepicker2.DateTime)]);
          post;
          Button9.Click;
         end;
        end;
       end;
      end;
      

  3.   

    begin
          Edit;
          InsertRecord(['Trim(xh.Text)','Trim(Edit35.Text)','Trim(Edit34.Text)','Trim(Edit33.Text)','Trim(Edit32.Text)','Trim(ComboBox12.Text)',FormatDateTime('yyyy-mm-dd',DateTimepicker1.DateTime),'Trim(Edit30.Text)',vzzmmdm,vmzdm,vxbdm,vzydm,vbjdm,vxzdm,'Trim(Edit38.Text)','Trim(Edit36.Text)','Trim(jzxm.Text)','Trim(Edit31.Text)','Trim(Edit39.Text)',Edit28.Text,Edit27.Text,NIL,NIL,Edit26.Text,Edit37.Text,FormatDateTime('yyyy-mm-dd',DateTimepicker2.DateTime)]);
          post;
          Button9.Click;
         end;
    ==================
    问题有可能出现在这段上,        InsertRecord(['Trim(xh.Text)','Trim(Edit35.Text)','Trim(Edit34.Text)','Trim(Edit33.Text)','Trim(Edit32.Text)','Trim(ComboBox12.Text)',FormatDateTime('yyyy-mm-dd',DateTimepicker1.DateTime),'Trim(Edit30.Text)',vzzmmdm,vmzdm,vxbdm,vzydm,vbjdm,vxzdm,'Trim(Edit38.Text)','Trim(Edit36.Text)','Trim(jzxm.Text)','Trim(Edit31.Text)','Trim(Edit39.Text)',Edit28.Text,Edit27.Text,Null,Null,Edit26.Text,Edit37.Text,FormatDateTi
                                           ==========    
    me('yyyy-mm-dd',DateTimepicker2.DateTime)]);
      

  4.   

    你登录SQL SERVER用的什么用户,他有没有权限操作
    检查一下吧
    要不你用此用户登录查询分析器,在里面运行你的SQL语句,看看用户有没有权限操作
      

  5.   

    能在查询分析器进行数据的插入或删除操作的,在调试时还是会出现没有权限写入数据到表里,但在表里却能找到插入的新数据,但却不取不到如InsertRecord(['xh.Text','Edit35.Text','Edit34.Text','Edit33.Text','Edit32.Text','ComboBox12.Text',FormatDateTime('yyyy-mm-dd',DateTimepicker1.DateTime),'Edit30.Text',vzzmmdm,vmzdm,vxbdm,vzydm,vbjdm,vxzdm,'Edit38.Text','Edit36.Text','jzxm.Text','Edit31.Text','Edit39.Text',Edit28.Text,Edit27.Text,Null,Null,Edit26.Text,Edit37.Text,FormatDateTi
                                           ==========    
    me('yyyy-mm-dd',DateTimepicker2.DateTime)]);中的xh.text或其它的text 的值,
    若是不用insertrecord这个控件的话,由于表里的字段很多,而界面上显示的字段名称比表里的少,若实现插入数据的话,没有的字段用NULL来代表,也不用在控件里显示,怎么实现这样的操作呢?
      

  6.   

    在SQL2000里的安全性里加个用户,再试试,我好象以前也碰到这样的事情!!