Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thuộc tính VB6 ADODB.Recordset RecordCount luôn trả về -1

Trên thực tế, CursorLocation đóng một vai trò quan trọng trong trường hợp này. Sử dụng rs.CursorLocation = adUseClient để đặt vị trí con trỏ và thử.

    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    Dim DbConnectionString As String

    DbConnectionString = mSqlProvider & _
                            mSqlHost


    Set mDbConnection = New ADODB.Connection
    mDbConnection.CursorLocation = adUseServer

    Call mDbConnection.Open(DbConnectionString)

    If mDbConnection.State = adStateOpen Then
        Debug.Print (" Database is open")
        ' Initialise the command object
        Set mCmd = New ADODB.Command
        mCmd.ActiveConnection = mDbConnection

        mCmd.CommandText = "select * from myTestTable"
        mCmd.CommandType = adCmdText

        Set rs = mCmd.Execute

        Debug.Print rs.RecordCount  ' This should now return the right value.
        Debug.Print rs.Fields(0)   ' returns correct data for first row, first col
        Debug.Print rs.Fields(1)   ' returns correct data for first row, 2nd col
        Debug.Print rs.Fields(2)   ' returns correct data for first row, 3rd col

    End If

End Sub


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thiết kế lược đồ cho Hóa đơn và Thanh toán - mô hình tốt hơn mối quan hệ M:M?

  2. Cách tạo thả các tập lệnh Ràng buộc Duy nhất trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 99

  3. SQL Server câu lệnh tham gia có điều kiện

  4. Cách kiểm soát những gì người dùng có thể giải mã Mã hóa khóa đối xứng SQL Server

  5. ExecuteNonQuery cho câu lệnh SELECT sql không trả về hàng nào