Программирование >>  Руководство по созданию web приложений 

1 ... 90 91 92 [ 93 ] 94 95 96 ... 141


Локальные переменные, которые привязаны к определены так;

Мы выполним привязку к полям таблицы managers с именами NanageflD, Name Вот фрагмент кода для первого из

SQLINTEGER thPanaasrlO:

ГС = :- 1,

Здес]. выполняется привязка поэтому мы передаем функции

через второй параметр значение 1. Константа SOl. C SL)N{j задает тип данных, соответствующий стандартному типу С long int>>. Константы для Вы найдете в таблице 6-1. Хотя мы и в пятом параметре размер области памяти, выделенной

для переменной nManagerlD. он будет проигнорирован, так как тип ... область памяти размера.

Привязка переменной в которую будет записана текстовая

выполняется аналогично: SQLINTEGER CbName;

гс = SQLBIndCoKhStmt, 2, , szName, MAXNAME, .

Здесь мы указали данных . соответствующий типу данных С

Константа MAXNAME длину буфера, не позволяя

драйверу ODBC выйти за его в процессе записи данных из поля Name.

Для привязки поля LastLogin (содержащего отметку о дате и времени последнего подключения), мы указали тип данных ZvlJ ИЕоТЛНР:

SQEINTEGER cbEastEogin; гс = SQEBindCoKhStmt, 3,

Значение, нами в пятом параметре, будет . Мы

его только общности.

В таблице а-1 мы перечислили идентификаторы типов, передаваемых функции SQLBindCol, для разных типов Там же Вы найдете и типы данных ODBC, которые потребуются при вызове хранимых процедур SQL Server. Таблица .. . гипов данных С и ODBC

Тип данных С

char

unsigned char

Идентификатор.

SQL C STINYINT SQL С BIT

SQLCHAR

unsigned char*

SQLCHAR*

Short int

short int

long

SQLUSIVIALLINT SQLINTEGER



Таблица Идентификаторы типов данных С и ODBC (продолжение)

Тип данных С unsigned long int

float

double

int64

unsigned int64

Идентификатор

Тип данных ODBC

SQLUINTEGER BOOKMARK

SOLFLOAT SQLBIGINT

SQL C TYPE TIME SQL C TYPE TIMESTAMP

SQL С GUID

SQLGUID

В таблице есть ссылки на типы данных - - - - 1МЕ ТАМР STRUCT, ; ; . т и SQLGUID. Эти структуры предназначены для

представления даты, времени, отметки о пых уникальных : - -

к числовых значений и глобаль-. Для удобства ниже мы приводим их

struct tagDATE STRUCT

SQLSMALLINT year; год

SQLUSMALLINTmonth; месяц

SQLUSMALLINTday; день

} DATSTRICT;

struct taolIHE STSll{ (

SQLUSMALLINT hour; ЧаСЫ

SQLUSMALLINT minute; МИНуты

SQLUSMALLINT second; секунды

] ТИЕЗТВЕСТ;

Struct tagTIMESTAMP STRUCT

SQLSMALLINT year; SQLUSMALLINTmonth;

..LU.U-.LLINTh..ui SQLUSMALLINT minute; SQLUSMALLINT ЭС СвПс1; SQLUINTEGER fraction; 1 T]a

год

месяц

день

часы минуты

секунды

доли секунды

tagSQL NUMERIC STRUCT precision;

точность



Глава 6. Связь приложений с базами данных через;

SQLSCHAR scale; SQLCHAR sign;

масштаб знак значение

struct

DWORD WORD Data2; WORD DataS; BYTE

; SOLG

Циклобработкизаписей

После того как Baine приложение привязку

ступать к извлечению записей из набора, команды.

Эта операция выполняется в простом цикле.

\, оно может результате выполнения

szPass,

Здесь для извлечения очередной записи набора мы использовали функцию SQLFetch. В параметра этой функции передается иден-

тификатор команды.

Когда все записи набора будут получены, SQLFetch вернет значение

SQL N0 DATA. Это ее свойство мы использовали для завергпения цикла. Вы также можете усовергпенствовать цикл, прерывая его работу в случае возникнове-огпибок.

Внутри цикла программа обращается к . для

которых выполняется привязка, с целью значений.

Обработка ошибок

Как мы уже говорили, в случае возникновения ошибок функции ODBC возвращают значения, такие, как SQl, или SQL ERROR. Однако в большинстве случаев такой информации недостаточно.

Для того чтобы получить развернутое описание ошибки, необходимо запросить у драйвера ODBC диагностические записи. Эта операция выполняется с пpимeнeниeмфyнкцииSQLGetDiagRe с. Отдельные поля диагностических записей извлекаются при помощи функции SQiJetDiagFieJ п

Извлечениедиагностическихзаписей

Логика обработки ошибок, рекомендуемая в предполагает, что получения диагностических записей всякий раз, когда функции ODBC возвращают от : . Однако



1 ... 90 91 92 [ 93 ] 94 95 96 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика