我后台用SQL Server2000,以前用Query控键的RecordCount就可以得到记录数,而我又在一个新程序里用了,总是-1请教大虾们,为什么?

解决方案 »

  1.   

    我是在执行'select * from Table'之后立即使用query.recordcount的
    以前可以的
    请教:什么叫”非客户端的数据集“
      

  2.   

    不好意思,我一直没有找到这样的参数设置在什么地方,因为在 ADO 中游标类型是可以影响到记录数属性的,我想也应该是一样的道理。
    我在 Delphi 中试了一下,并没有出现你的情况,所以来个简单的想法,把你的 QUERY 重新放一个上去,要是有 Database 的话,也重新放上一个。
      

  3.   

    Query里有记录,则RecordCount就不为-1
    RecordCount就不为-1,证明你程序没执行SQL语句,没有记录
      

  4.   

    如果Query的数据很大,则open后马上取recordcount是不行的,必须延迟一段时间。
      

  5.   

    碰到过用select * 不行,select field1,field2 可以的时候。还是和游标类型有关。
      

  6.   

    I came across this problem long time ago, and couldn't sovle it until I used the instruction ' select count(*) from tablename '.
    BTW: Sometimes you can use a new ADOquery to excute your instruction. And  maybe it works.:)
      

  7.   

    把query 控件删掉,在新添加一个看看。
      

  8.   

    其实很简单,只要
    LAST;
    FIRST;
    再试一下,OK了吧
      

  9.   

    在DELPHI中,这种错误是经常会发生的,不要用recordcount属性,
    你可以在query中用select count(*)from tablename 语句,
    然后用query.fields[0].asinteger就可以了。
      

  10.   

    Query1.first;
    Query1.last;
    ShowMessage(IntToStr(Query1.Recordcount);有意外惊喜!
      

  11.   

    只有clientdata有recordcount 建议你用此控件,好处很多
      

  12.   

    Kingboyren(米拉) 同志,没有执行sql语句怎么能的到数据呢?我的dbgrid中显示正常!不过,十分感谢大家的支持!
      

  13.   

    我也遇到过这种问题,你的查询中有备注字段或者大容量字段,如二进制格式的字段,使就这样,别用select *,要有选择的显示字段,就没问题了!记录数正常。