Выполнение запросов (ODBC)Executing Queries (ODBC)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data Warehouse

После того, как приложение ODBC инициализирует дескриптор соединения и подключается к источнику данных, оно выделяет один или несколько дескрипторов инструкций на дескриптор соединения.After an ODBC application initializes a connection handle and connects with a data source, it allocates one or more statement handles on the connection handle. Приложение может затем выполнять MicrosoftMicrosoft SQL ServerSQL Server инструкции в обработчике инструкций.The application can then execute MicrosoftMicrosoft SQL ServerSQL Server statements on the statement handle. Общая последовательность событий при выполнении инструкции SQL.The general sequence of events in executing an SQL statement is:

  1. Установите необходимые атрибуты инструкции.Set any required statement attributes.

  2. Сформируйте инструкцию.Construct the statement.

  3. Выполните инструкцию.Execute the statement.

  4. Получите результирующие наборы.Retrieve any result sets.

После того, как приложение получит все строки во всех результирующих наборах, возвращенных инструкцией SQL, оно может выполнить другой запрос на том же дескрипторе инструкции.After an application retrieves all the rows in all of the result sets returned by the SQL statement, it can execute another query on the same statement handle. Если приложение определяет, что не требуется извлекать все строки в определенном результирующем наборе, он может отменить оставшуюся часть результирующего набора, вызвав либо SQLMoreResults , либо SQLCloseCursor.If an application determines that it is not required to retrieve all the rows in a particular result set, it can cancel the rest of the result set by calling either SQLMoreResults or SQLCloseCursor.

Если в приложении ODBC необходимо несколько раз выполнить одну инструкцию SQL с различными данными, используйте маркер параметра, обозначенный вопросительным знаком (?) при построении инструкции SQL:If, in an ODBC application, you must execute the same SQL statement multiple times with different data, use a parameter marker denoted by a question mark (?) in the construction of an SQL statement:

INSERT INTO MyTable VALUES (?, ?, ?)  

Затем каждый маркер параметра может быть привязан к программной переменной путем вызова SQLBindParameter.Each parameter marker can then be bound to a program variable by calling SQLBindParameter.

После того, как будут вызваны все инструкции SQL и обработаны их результирующие наборы, приложение освобождает дескриптор инструкции.After all SQL statements execute and their result sets process, the application frees the statement handle.

SQL ServerSQL ServerДрайвер ODBC для собственного клиента поддерживает несколько дескрипторов инструкций для каждого дескриптора соединения.The SQL ServerSQL Server Native Client ODBC driver supports multiple statement handles per connection handle. Управление транзакциями осуществляется на уровне соединения, поэтому вся работа, выполняемая со всеми дескрипторами инструкций на одном дескрипторе соединения, управляется как часть одной транзакции.Transactions are managed at the connection level, so that all work performed on all statement handles on a single connection handle are managed as part of the same transaction.

В этом разделеIn This Section

См. такжеSee Also

SQL Server Native Client (ODBC)SQL Server Native Client (ODBC)