Выполнение операторов SQL в ODBC — КиберПедия 

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Выполнение операторов SQL в ODBC

2023-01-02 119
Выполнение операторов SQL в ODBC 0.00 из 5.00 0 оценок
Заказать работу

Цель работы: изучить функции ODBC для выполнения SQL-операторов, приобрести навыки использования данных функций при разработке клиентских приложений баз данных.

Порядок выполнения работы и варианты заданий

1. Изучить программный интерфейс функций SQLAllocStmt, SQLFreeStmt, SQLExecDirect, SQLPrepare, SQLExecute, SQLBindParameter.

2. Написать на языке программирования высокого уровня C/C++ программу для создания и заполнения данными таблицы в соответствии с заданием лабораторной работы N 2. Пользовательский интерфейс программы должен включать формы с полями ввода для занесения информации в таблицу. При нечетном номере варианта задания использовать прямое выполнение SQL-оператора, а при четном – подготавливаемое.

3. Запустить ODBC-администратор и с его помощью выбрать ODBC-драйвер для используемого в программе источника данных.

4. Выполнить программу, разработанную в п.2.

5. Оформить отчет о проделанной работе.

 

Основные сведения

 

Функция SQLAllocStmt

Данная функция распределяет память для идентификатора оператора в рамках определенного соединения. Функция SQLAllocStmt имеет следующий синтаксис:

RETCODE SQLAllocStmt(hdbc, phstmt)

Описание параметров для данной функции приведено в следующей таблице.

 

Аргумент Тип Использование Описание
hdbc HDBC Вход Идентификатор соединения
phstmt HSTMT FAR Выход Идентификатор оператора (адрес)

Функция SQLFreeStmt

 

Данная функция выполняет следующие действия:

*  останавливает обрабатываемые SQL-операторы, связанные с заданным идентификатором оператора;

*  закрывает открытые курсоры, имеющие отношение к заданному идентификатору оператора;

*  отбрасывает ожидаемые результаты;

*  освобождает все ресурсы, связанные с заданным идентификатором оператора.

Функция SQLFreeStmt имеет следующий синтаксис:

RETCODE SQLFreeStmt(hstmt, fOption)

Описание параметров для данной функции приведено в следующей таблице.

 

Аргумент Тип Использование Описание
hstmt HSTMT Вход Идентификатор оператора
fOption UWORD Вход Опция завершения

 

Опция SQL_CLOSE закрывает курсор и отбрасывает все ожидаемые результаты. Опция SQL_DROP освобождает идентификатор оператора и все связанные с ним ресурсы, а также выполняет действия предыдущей опции. Опция SQL_UNBIND освобождает (“отвязывает”) все столбцы, используемые соответствующей функцией SQLBindCol. Опция SQL_RESET_PARAMS освобождает все параметры, используемые соответствующей функцией SQLBindParameter. Перечисленные опции используются применительно к заданному идентификатору оператора.

 

Функция SQLExecDirect

 

Данная функция выполняет SQL-оператор. Если в операторе существуют какие-либо параметры, то при выполнении используются их текущие значения. Функция SQLExecDirect имеет следующий синтаксис:

RETCODE SQLExecDirect(hstmt, szSqlStr, cbSqlStr)

Описание параметров для данной функции приведено в таблице.

 

Аргумент Тип Использование Описание
hstmt HSTMT Ввод Идентификатор оператора
szSqlStr UCHAR FAR* Ввод Строка, содержащая SQL-оператор (адрес)
cbSqlStr SDWORD Ввод Длина строки szSqlStr

 

Функция SQLExecDirect представляет самый быстрый способ запустить SQL-оператор при одноразовом выполнении.

 

Функция SQLPrepare

 

Данная функция подготавливает SQL-строку для выполнения. Функция SQLPrepare имеет следующий синтаксис:

RETCODE SQLPrepare(hstmt, szSqlStr, cbSqlStr)

Данная функция имеет такие же параметры, что и функция SQLExecDirect.

 

Функция SQLExecute

 

Данная функция выполняет подготовленный SQL-оператор. Если в операторе существуют какие-либо параметры, то при выполнении используются их текущие значения. Функция SQLExecute имеет следующий синтаксис:

RETCODE SQLExecute(hstmt),

где hstmt – идентификатор оператора (входной параметр типа HSTMT).

Перед вызовом функции SQLExecute должна быть выполнена функция SQLPrepare.

 

Функция SQLBindParameter

 

Данная функция связывает параметр SQL-оператора с буфером, где хранится его значение. Функция SQLBindParameter имеет следующий синтаксис:

RETCODE SQLBindParameter(hstmt, ipar, fParamType, fCType, fSqlType, cbColDef, ibScale, rgbValue, cbValueMax, pcbValue)

Описание параметров для данной функции приведено в следующей таблице.

 

Аргумент Тип Использование Описание
hstmt HSTMT Ввод Идентификатор оператора
ipar UWORD Ввод Номер параметра
fParamType SWORD Ввод Тип параметра
fCType SWORD Ввод С-тип данных параметра
fSqlType SWORD Ввод SQL-тип данных параметра
cbColDef UDWORD Ввод Точность столбца источника данных
ibScale SWORD Ввод Размер столбца источника данных
rgbValue PTR Ввод/вывод Буфер значения параметра (адрес)
CbValueMax SDWORD Ввод Максимальная длина буфера rgbValue
PcbValue SDWORD FAR* Ввод/вывод Буфер значения длины параметра (адрес)

Параметры в SQL-операторах отмечаются маркером?. Пример: INSERT INTO Emp(empid, firstname) VALUES (?,?).

Нумерация параметров начинается с 1. Тип параметра fParamType может принимать одно из трех значений: SQL_PARAM_INPUT, SQL_PARAM_INPUT_OUTPUT или SQL_PARAM_OUTPUT. Значение SQL_PARAM_INPUT используется для всех параметров, которые не включены в процедуру, а также для процедур, использующих параметры ввода. Значение SQL_PARAM_INPUT_OUTPUT маркирует параметр ввода/вывода в процедуре. Значение SQL_PARAM_OUTPUT маркирует значение возврата или параметр вывода в процедуре.

С-тип данных - это тип данных, из которого конвертируются данные. C-тип данных параметра может быть одним из следующих значений: SQL_C_BINARY, SQL_C_BIT, SQL_C_CHAR, SQL_C_DATE, SQL_C_DEFAULT, SQL_C_DOUBLE, SQL_C_FLOAT, SQL_C_SLONG, SQL_C_SSHORT, SQL_STINYINT, SQL_C_TIME, SQL_C_TIMESTAMP, SQL_C_ULONG, SQL_C_USHORT, SQL_C_UTINYINT, SQL_C_DEFAULT.

SQL-тип данных - это тип данных, в который конвертируются данные. Он должен совпадать с SQL-типом соответствующего столбца. SQL-тип данных может быть одним из следующих значений: SQL_BIGINT, SQL_BINARY, SQL_BIT, SQL_CHAR, SQL_DATE, SQL_DECIMAL, SQL_DOUBLE, SQL_FLOAT, SQL_INTEGER, SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_NUMERIC, SQL_REAL, SQL_SMALLINT, SQL_TIME, SQL_TIMESTAMP, SQL_TINYINT, SQL_VARBINARY, SQL_VARCHAR.

Пример вызова функции SQLBindParameter:

rc=SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, TEST_LEN, 0, szTEST, 0, &cbTEST);

 

Методические указания

Данная лабораторная работа основывается на результатах предыдущей лабораторной работы. При выполнении данной лабораторной работы используются шаги 1-5, 1-10 алгоритма использования ODBC, представленного в предыдущей работе, в приведенном порядке.

 

 

Лабораторная работа N 5


Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.