我执行下面:
     With Query1 do
     begin
          Sql.Clear;
          Sql.Add(SqlResult);
          Open;
     end;
问题:DBGrid控件中都有数据了,可是Query1.RecordCount的值是-1很是奇怪。

解决方案 »

  1.   

    哈哈,RecordCount属性就是这样
    一般来说,如果你的记录中有BLOB字段,RecordCount属性永远返回-1
    其它有些类型的字段也有可能影响RecordCount属性的返回值。
      

  2.   

    谢谢上面的大侠!我想知道记录数如何处理?但是query还是要用的
      

  3.   

    //先定义一个变量,存储记录数
    var
      lcRecordCount: Integer;
    //得到记录数
    query1.first;
    while not query1.eof do 
      lcRecordCount:= lcRecordCount + 1
      

  4.   

    SqlResult 中不要有BLOB显示不出内容的字段,不要用*
    while not query1.eof do
    begin
      ss := '' 
      query1.next;
    end;
      

  5.   

    var
        ADOQuery1 := TADOQuery.Create(Self);
      with ADOQuery1 do
      begin
        CursorLocation := clUseClient;
        CursorType := ctStatic;//or ctKeyset
      
      end;
    这样RecordCount不会是-1了