Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server ADO记录集getstring对于大型记录集速度较慢_Sql Server_Vbscript_Adodb - Fatal编程技术网

Sql server ADO记录集getstring对于大型记录集速度较慢

Sql server ADO记录集getstring对于大型记录集速度较慢,sql-server,vbscript,adodb,Sql Server,Vbscript,Adodb,我正在VBScript中使用ADO。查询很简单,只需几秒钟即可完成 然而,当我执行GetString方法时,它需要很长时间才能完成,有时甚至根本没有完成 Set oShell = CreateObject( "WScript.Shell" ) user = oShell.ExpandEnvironmentStrings("%UserName%") ConnectSqlServer "select top 100000 * from notic

我正在VBScript中使用ADO。查询很简单,只需几秒钟即可完成

然而,当我执行GetString方法时,它需要很长时间才能完成,有时甚至根本没有完成

Set oShell = CreateObject( "WScript.Shell" )

user = oShell.ExpandEnvironmentStrings("%UserName%")

ConnectSqlServer "select top 100000 * from notices FOR JSON AUTO, INCLUDE_NULL_VALUES;", "PSQL003"

Sub ConnectSqlServer(query, database)
    On Error Resume Next
    sConnString = "Provider=SQLOLEDB.1;Data Source= " & database & "; " & _
                  "Initial Catalog=VIEW;" & _
                  "Integrated Security=SSPI;"
    MakeConnectionString = "DSN=" & sDSN & ";Uid=" & sUid & ";Pwd=" & sPwd & ";"

    Dim conn
    Dim rs
    Dim sConnString
    Dim resultString
    
    Set conn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    
    conn.Open sConnString
    conn.CommandTimeout = 0
    Set rs = conn.Execute(query)
    Set Errs1 = conn.Errors
    For Each errLoop In Errs1
          With errLoop
            StrTmp = StrTmp & "Error #" & i & ":"
            StrTmp = StrTmp & vbCrLf & "   ADO Error   #" & .Number
            StrTmp = StrTmp & vbCrLf & "   Description  " & .Description
            StrTmp = StrTmp & vbCrLf & "   Source       " & .Source
            i = i + 1
       End With
    Next

    Msgbox "Query Finished"

    resultString = rs.GetString

    Msgbox "String Created"
End Sub


因此,不要对大型记录集使用
GetString()
。当您试图将100000条结果格式化为JSON时,您期望得到什么?@Lankymart更好的选择是什么?您试图用100000行JSON格式的输出做什么?值得做的是:作为行返回仍然存在问题。我建议您分页记录集,而不是尝试在一个JSON中返回100000条记录对象。因此,不要对大型记录集使用
GetString()
。当您试图将100000条结果格式化为JSON时,您期望得到什么?@Lankymart更好的选择是什么?您试图用100000行JSON格式的输出做什么?值得做的是:作为行返回仍然存在问题。我建议您分页记录集,而不是尝试在一个JSON中返回100000条记录对象