加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – VB6 ADODB.Recordset RecordCount属性始终返回-1

发布时间:2021-01-26 09:46:07 所属栏目:编程 来源:网络整理
导读:我试图让一些旧的VB6代码与SQL Server Compact一路行使. 我可以毗连,打开数据库,统统好像都很好.我可以运行插入选择呼吁. 可是,ADODB.Recordset RecordCount属性始终返回-1,纵然我可以会见Fields并查察数据.变动CursorLocation = adUseClient会在执行SQL(多步

我试图让一些旧的VB6代码与SQL Server Compact一路行使.

我可以毗连,打开数据库,统统好像都很好.我可以运行插入选择呼吁.

可是,ADODB.Recordset RecordCount属性始终返回-1,纵然我可以会见Fields并查察数据.变动CursorLocation = adUseClient会在执行SQL(多步操纵天生错误)时导致题目.

Option Explicit
    Private Const mSqlProvider          As String = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;"
    Private Const mSqlHost              As String = "Data Source=C:Database.sdf;"
    Private mCmd                        As ADODB.Command   ' For executing SQL
    Private mDbConnection               As ADODB.Connection


Private Sub Command1_Click()


   Dim rs As ADODB.Recordset

    Set rs = New ADODB.Recordset


    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  ' Always returns -1  !!
        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

任何提议城市被谢谢地接管.

办理要领

这是用于会见数据的游标范例的功效,这篇文章涵盖了题目和也许的修复.

http://www.devx.com/tips/Tip/14143

编辑

我为没有越发存眷你正在处理赏罚Compact这一究竟而致歉.行使Compact时,环境相同于我引用的环境,由于它默认行使仅向前游标(不支持行计数),可是有两种其他游标范例可用,如下面的链接中所述.

http://support.microsoft.com/kb/272067

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读