VB6 - Как выполнить несколько SQL-запросов за один вызов - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть старая медленная процедура в VB6, использующая ADO для выполнения множества запросов sql во многих вызовах. Это занимает слишком много часов. Я хочу проверить, отправляет ли все запросы в одном запросе (большинство из них просто обновить или вставить), чтобы сэкономить сеть и время вызова. Как я могу это реализовать, а также предлагает, если это сэкономит время и повысит производительность?

    qry = "Update table1 Set col1 = 'eerere' Where 1=1"
    qry = qry & vbCrLf & "  AND MyID = " & MyID & vbCrLf
    ExecSQL qry, DBCon, adAsyncExecute

    qry = "Insert Into TableMain"
    qry = qry & "Select  col1,col2,col3 from Table2 Where 1=1"
    qry = qry & vbCrLf & "  AND MyID = " & MyID & vbCrLf
    ExecSQL qry, DBCon, adAsyncExecute

    qry = "Update table5 Set col1 = 'eerere' Where 1=1"
    qry = qry & vbCrLf & "  AND MyID = " & MyID & vbCrLf
    ExecSQL qry, DBCon, adAsyncExecute

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете объединить их в один вызов, разделив команды точкой с запятой:

qry = "Update table1 Set col1 = 'eerere' Where 1=1"
qry = qry & vbCrLf & "  AND MyID = " & MyID & "; " & vbCrLf

qry = qry & "Insert Into TableMain"
qry = qry & "Select  col1,col2,col3 from Table2 Where 1=1"
qry = qry & vbCrLf & "  AND MyID = " & MyID & "; " & vbCrLf

Это, вероятно, даст вам небольшое улучшение производительности, если не вызовет никаких ошибок.

...