|
Программирование >> Руководство по созданию web приложений
Локальные переменные, которые привязаны к определены так; Мы выполним привязку к полям таблицы 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 возвращают от : . Однако
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |