不回呀,你把你的SQL语句,写出来,看看呀

解决方案 »

  1.   

    query1.recordcount 是一个function?procedure?或是一个integer值??
    可以这样
    inttostr(integer(query1.recordcount))试下!!
      

  2.   

    这跟SQL没有关系,我用一个DBgird,都能看到结果了,以前用的时候也没见说要把它定成integer啊?会不会是delphi本身受到破坏出错了?
      

  3.   

    是不是 在写caption前 query就已经close了
      

  4.   

    你可能是别的地方错,
    QUERY.RECORDCOUNT是整型的
      

  5.   

    你的SQL语句中包含有Blob的字段,比如图片或备注型字段,把大字段去掉即可显示正常
      

  6.   

    我也见过这样的问题,你先用QUery1.Last;Query1.First;再取Query1.RecordCount,这样好象就可以取得正确的记录数了。
      

  7.   

    上面说的真的有道理,特别是michaelyfj说的,神了
      

  8.   

    嗯,听君Michaelyfj一席话……
    呵呵,谢谢了
    不过,好像以前也曾这样用过(select中包含备注型字段),不知为什么,好像也没问题啊,那个又是怎么回事?
      

  9.   

    linzi说的也对,但这到底是怎么回事的?
      

  10.   

    这可能是delphi的一个bug,我以前也遇到过。用的方法可以解决。
      

  11.   

    最好不用recordcount 
    而用sql 语句 生成到变量
      

  12.   

    Dlephi 6里都没这些bug了,建议用Delphi6.或者
    到www.inprise.com网站上去下载补丁。
      

  13.   

    我以前用过此方法,没有问题,可能你的SQL语句有问题?
      

  14.   

    这可不是bug,可以说,这是优化程序运行,在数据量大的时候,
    首先保证你看到第一批数据,在你的dbgrid向下拉的时候,它再取一点出来,
    你们试一下就知道了:)
      

  15.   

    建议你们去看一下delphi的help,里面好像有详细说明,某些数据库(大多数SQL数据库)好像
    都不支持这个功能,只有桌面数据库支持 recordcount属性,因为
      

  16.   

    okhai(不董)
    ……在你的dbgrid向下拉的时候,它再取一点出来……
    这个我倒是注意到有这个现象了,但原来也不知什么原因
    elvawang(老棺材)
    继续说完啊,因为什么?
      

  17.   

    delphi 的help中说RecNO,和recordcount都只建议在paradox 和dbase中使用,因为它是基于server端 cursor的,你知道,在SQL数据库中,是以结果集为数据对象的,不关心它是有几个
    纪录,所以这个数字始终返回 -1,如果要逐条处理,就要用到cursor,那是非常昂贵和慢的,特别是双向cursor.反正我从来不用,我一般用 select count 来得到纪录数,至于RecNo,实际没有甚末用处
      

  18.   

    同样这条意见:
    你的SQL语句中包含有Blob的字段,比如图片或备注型字段,把大字段去掉即可显示正常 
    我有遇过这个情况,原因如上。
      

  19.   

    当然不是什么BOLB字段的原因,elvawang(老棺材) 说的对。如果要你只要知道记录条数的话,建议你不要SELECT * FROM TABLE,而是SELECT 字段1 FROM TABLE。这样就可以的到记录条数了。