gpt4 book ai didi

sql - 使用循环查询 SQL 的最快方法

转载 作者:行者123 更新时间:2023-12-04 20:56:10 27 4
gpt4 key购买 nike

我有一个使用 VBA 循环 SQL 查询的问题,它需要很长时间才能运行。
15 分钟内循环播放 115 次。有什么办法可以减少查询时间?
这是我的代码:

    Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset
x = 1
DBPath = ThisWorkbook.FullName
sconnect = "Provider=SQLOLEDB;SERVER=DWSQL\BCAPP;Database=TEST;Uid=admin;Pwd=admin;"
Conn.Open sconnect
Do
If Sheets("Foil (+)").Cells(12, 12) <> "" And Sheets("Data").Cells(x, 3).Value Like "E*" Then
sSqlSting = "SELECT *FROM [TEST].[dbo].[process_details] where pos_no = '" & Sheets("Data").Cells(x, 3) & "' and scan_type = 'Anode Foil' and status = 'OK' and returned = 'N'"
Else
Sheets("Data").Cells(x, 3).Value = "E" & Sheets("Data").Cells(x, 3).Value
sSqlSting = "SELECT *FROM [TEST].[dbo].[process_details] where pos_no = '" & Sheets("Data").Cells(x, 3) & "' and scan_type = 'Anode Foil' and status = 'OK' and returned = 'N'"
End If

mrs.Open sSqlSting, Conn, adOpenForwardOnly
If Sheets("Data").Cells(1, 18) = "" Then
Sheets("Data").Cells(1, 18).CopyFromRecordset mrs
Else
Sheets("Data").Cells(Rows.Count, 18).End(xlUp).Offset(1, 0).CopyFromRecordset mrs
End If
mrs.Close
x = x + 1
Loop Until Sheets("Data").Cells(x, 3) = ""
Conn.Close

最佳答案

   sSqlSting = "SELECT *FROM [TEST].[dbo].[process_details] where scan_type = 'Anode Foil' and status = 'OK' and returned = 'N' and pos_no = in ('" 
enter code here

Do
If Sheets("Foil (+)").Cells(12, 12) <> "" And Sheets("Data").Cells(x, 3).Value Like "E*" Then
sSqlSting = sSqlString & Sheets("Data").Cells(x, 3) & "','"
Else
Sheets("Data").Cells(x, 3).Value = "E" & Sheets("Data").Cells(x, 3).Value
sSqlSting = sSqlString & '" & Sheets("Data").Cells(x, 3) & "','"
End If
x = x + 1
Loop Until Sheets("Data").Cells(x, 3) = ""

sSqlSting = left(sSqlSting,len(sSqlsting)-1) & ")"


mrs.Open sSqlSting, Conn, adOpenForwardOnly
If Sheets("Data").Cells(1, 18) = "" Then
Sheets("Data").Cells(1, 18).CopyFromRecordset mrs
Else
Sheets("Data").Cells(Rows.Count, 18).End(xlUp).Offset(1, 0).CopyFromRecordset mrs
End If
mrs.Close

关于sql - 使用循环查询 SQL 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47279796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com