我用的是VB6, 经常查询一些记录, 在判断记录集是否有记录时:1)简单的查询可以用:if rs1.recordcount>0 then 进行判断,控件中也会显示记录(当然记录集是有记录的);2)复杂的查询用:if rs1.recordcount>0 then 进行判断就有问题了,需用:If Not Rs1.EOF Then 等进行判断,
一条一条的给控件赋值,控件(MSFLEX)才能显示记录;3)如果赋值给MSHFLEX,简单的查询没有问题,记录集也会显示;复杂的查询根本就不能用if rs1.recordcount>0 then 和
If Not Rs1.EOF Then 等进行判断是否有记录,也不会在MSHFLEX显示;只能直接赋值给MSHFLEX,用Set MSfg1.DataSource 
= Rs1; (当然记录集是有记录的);我想问下:各位老师以前遇到这个问题没有? 是不是我的VB问题?

解决方案 »

  1.   

    RecordCount 与游标类型(CursorLocation)有关:
    如果是客户端游标,记录一次性取到客户端,RecordCount 反映真实的记录数。
    如果是服务端游标,查询开始不取记录,RecordCount = -1;随着 MoveNext 会不停取记录到客户端,RecordCount 也会增长,反映已取得的记录数;当全部记录取得后,RecordCount 才反映真实的记录数。只有 BOF And EOF 才始终表示记录集为空。
      

  2.   

    如果只是判断是否有记录,可以这样:
    select count(*) from tablename where ...