Что эквивалентно VBA для использования Command.Prepare в ADO.NET - PullRequest
2 голосов
/ 17 ноября 2009

Есть ли способ использовать Command.Prepare и Command.ExecuteNonQuery в VBA?

В разделе, озаглавленном «Рассмотреть возможность использования Command.Prepare» в следующей статье о ADO.NET, описаны объекты и методы, аналогичные свойствам и методам ADODB, и мне интересно, существует ли эквивалент для VBA.

ADODB имеет .Command, .Prepared и .Parameters.Append, но я не могу соединить их таким образом, который работает аналогично примеру кода в статье.

http://msdn.microsoft.com/en-us/library/ms998569.aspx#scalenetchapt12_topic11

Спасибо!

1 Ответ

4 голосов
/ 17 ноября 2009

Ответ оказался довольно простым, как только я получил весь синтаксис. К сожалению, оказывается, что использование Command.Perpared в соответствии с этой статьей не дает больших преимуществ:

http://msdn.microsoft.com/en-us/library/aa260835%28VS.60%29.aspx

Прочтите раздел, озаглавленный «Так называемое подготовленное имущество».

Вот код. Работает одинаково с .Prepared = True

With objCommand

    .ActiveConnection = ADO.Connection
    .Prepared = True
    .CommandText = "INSERT INTO [table1] ( col1 ) VALUES ( ?, ? )"
    .Parameters.Append .CreateParameter("intVariable", adInteger, adParamInput)
    .Parameters.Append .CreateParameter("strVariable", adVarChar, adParamInput)

    For intCounter = 0 To 10
        .Parameters("intVariable").Value = intCounter
        .Parameters("strVariable").Value = "test_value"
        .Execute
    Next intCounter

End With

Я надеялся на значительное сокращение времени, которое потребовалось для загрузки моих данных (их много), но все, что я действительно получил, это лучшее использование параметров.

...