我用ADOQuery 连SQL数据库 出错,错误提示为:
project.......recbase.cpp:1375
Expression:   moff_beginvar<m_sizerec
spid:         52
processid:    772'.process stoped.use........
代码为:
   with QueryFK do                           //选项
  Begin
    Close;
    Connection:=gConnAudit;
    Sql.Clear;
    Sql.Add('Select gm,wh from awdbf where Fyear='''+nd+''' order by fid');
    Prepared;
    Open;
  End;以前都执行正确。这一段却不行啦换别的机器也不行,但把语句放入SQL直接执行却可以。
那位高手帮忙解决一下。

解决方案 »

  1.   

    gConnAudit 是不是打开的? 有没有正确连接啊?
      

  2.   

    ADOQuery没有Prepared方法。去掉Prepared,再执行。
      

  3.   

    to 楼上的: AdoQuery是有Prepared方法的;to 楼主:  应该是gConnAudit没有连接正确;
      

  4.   

    试了一下确实不是Prepared的问题。可是书上写着ADOQuery没有Prepared方法的。真是的。对不起了。
      

  5.   

    你罗辑有问题你少放了一个连接控件,先入一个ADOConnection控件再放一个adoquery控件,把conection属性指向ADOConnection,这样就行了
      

  6.   

    1,如果你调用了TADOConnection了,那么应该ues一下,或者直接放到dm里面。
    2,检查一下你的connectionstring。
      

  7.   

    连接数据库出了问题,请检查连接
    这个地方好象没有问题
      Connection:=gConnAudit;
      
      with QueryFK do                           //选项
      Begin
        Close;
        Sql.Clear;
        Sql.Add('Select gm,wh from awdbf where Fyear='''+nd+''' order by fid');
        Prepared;
        Open;
      End;
      

  8.   

    看一下Sql.Add('Select gm,wh from awdbf where Fyear='''+nd+''' order by fid')句中的nd的值是多少?可能是他的问题!
      

  9.   

    阅过!!可能是uses里少东西啊,或是,ADOCONNECTION.COMMANDSTRING联错了.
      

  10.   

    Sql.Add('Select gm,wh,fid from awdbf where Fyear='+''''+nd+'''');
    Sql.Add('order by fid');
      

  11.   

    Try this:Sql.Add('Select gm,wh,fid from awdbf where Fyear='+quotedstr(nd));
    Sql.Add('order by fid');
      

  12.   

    gConnAudit的connect 是不是处于true?
      

  13.   

    SQL語句是錯誤的,你應該用4個單引號,而不是3個單引號。