Уроки Iczelion'а


Урок 3. Подготовка и Использование Инструкций - часть 2


/p>

  Эти четыре метода имеют "за" и "против". Немедленное выполнение хорошо, когда вы выполняете специфическую инструкцию SQL только однажды. Если бы вы должны были выполнить инструкцию несколько раз последовательно, то вам лучше было бы использовать подготовленное выполнение, потому что инструкция SQL будет откомпилирована лишь однажды. В этом случае последовательное выполнение, будет быстрее, потому что инструкция уже откомпилирована. Процедуры - лучший выбор, если вы хотите оптимизации по скорости. Поскольку процедуры уже откомпилированы и сохранены в источнике данных, они выполняются довольно быстро. Плохо то, что не все данные поддерживают процедуры. Каталог - для получения информации относительно строения источника данных.

  На данной консультации, мы сосредоточимся на немедленном и подготовленном выполнении, потому что они выполняются на стороне нашего приложения. Запись процедур осуществляется в DBMS формате. Мы используем функции каталога в будущем.

  НЕМЕДЛЕННОЕ ВЫПОЛНЕНИЕ

  Чтобы выполнить вашу инструкцию SQL немедленно, вызовите функцию SQLEхесDirect, которая имеет следующий синтаксис: SQLExecDirect proto StatementHandle:DWORD, pStatementText:DWORD, TextLength:DWORD

  • StatementHandle. Идентификатор инструкции которую вы хотите выполнить
  • PStatementText. Указатель на строку SQL которую вы хотите выполнить
  • TextLength. Длина строки SQL.

  Возможные возвращаемые значения:

 

SQL_SUCCESS Операция успешна.
SQL_SUCCESS_WITH_INFO Операция успешна, но может быть предупреждение.
SQL_ERROR Операция потерпела неудачу.
SQL_INVALID_HANDLE Операторный идентификатор , который вы передали функции, был недействителен.
SQL_NEED_DATA Если инструкция SQL включает один или большее количество параметров, и вы не сумели передать их ей перед выполнением, вы получите это возвращаемое значение. В этом случае вы должны представить параметры через SQLPARAMDATA или SQLPUTDATA.
SQL_NO_DATA Если ваша инструкция SQL не возвращает результата, то вы получите этот параметр. Если этот параметр получен, то ваша функция выполнена успешно но она не возвращает никаких результатов.
SQL_STILL_EXECUTING Если вы выполняете инструкцию асинхронно, SQLExecDirect немедленно возвращает это значение, указывая, что инструкция обрабатывается. По умолчанию, ODBC драйверы работают в синхронном режиме, который является наилучшим, если вы используете параллельные процессы OS. Если вы хотите асинхронного выполнения, вы можете установить операторный атрибут с SQLSETSTMTATTR.
<


- Начало -  - Назад -  - Вперед -



Книжный магазин