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

1 ... 93 94 95 [ 96 ] 97 98 99 ... 141


И наконец, мы освобождаем идентификаторы соединения и среды исполнения:

Функция

Эта функция выполняет извлечение заголовка диагностической записи, а также полей записей состояния, созданных для данной диагностической записи. Алгоритм извлечения записей мы уже рассматривали.

Опустив для краткости определения локальных переменных, приведем ис-текст цикла извлечения записей И формирования сообщения об ошибке:

!= SOL 0 C*TA,JOI.iND)

rc = SQLGetDiagRec(nHandleType, .

- -. \ 255, - ; .

1,. : SQL NO DATA FOOND)

- - : - : . .- ..; .... sqlhHandle, nRecordNumber,

I, SQL IS INTEGER, NULL);

= . . . sqlhHandle, nRecordNumber,

SQL DIAG SS LINE, ariLlrie, SOLISIKdEuE.l. NULL);

ro = SQLGetDiagEieldCnHandleType, sqlhHandle, nRecordNumber, SQL DIAG SS MSGSTATE, E.sEtoHessageState, SQEISINTEGEB, NULL) ;

rc = .Ii.LLVrLiiuEi-ldmHindl-Tyi- sqlhHindl- nR-.. udUumber , 0 . , , NULL);

rc = sqlhHindl- nR-... inb<4 ,

SQL DIAG SS PRQCNAME, l.s.:ihProcNaBie. siieof(есЕРгос.Еазю).

Записи : средствами . :; - : - В теле . мы выво-

дим на консоль содержимое ; полей.

Так как LastLogin (дата ; . подключения сотрудника магазина)

может содержать значения NULL, мы обрабатываем этот случай При-

знаком пустой записи NULL является . . . значение пере-

менной содержащей размер извлеченных данных.

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

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

Далее ... от ; данных при помощи функции



Глава 6.

1 с базами данных через ODBC

, sdlhHaridle. nftecordiUBter, erliuit, sizeofischServerNaBej

аЕгаИзо = SQL State:

sErrMsg +--sErrMsg +=

sErrMsg sErrMsg

Error:

Message:

sErrMsg += sErrMsg +=

Row Number:

State:

sErrMsg 4- = sErrMsg +-

:Baf;

ГЩц +=

sErrMsg +=

sErrMsg +=

sErrMsg +=

Name:

Заголовок диагностической записи извлекается функцией SO : Далее при помощи функции извлекаются по очереди значения

записей состояния. Среди них есть как численные значения, так и текстовые Для формирования общей строки сообщения об ошибке мы преобразуем численные значения в строки и добавляем к строке sErrMsg, ссылка на которую передается функции ИваЕааоаМадСоав,

Вот какая строка формируется в том случае, если мы допустили синтаксическую ошибку в операторе SELECT, указав, его как SELECTT:

Error

Native Error: Error Message: X near the keyword ODBC Row Number: Message State: Severity:

42000

SQL Server

Server]Incorrect synta

(cm.



Server Name:

Если ошибка - в имени Error

Ilud. текст сообщения будет другим:

SQLState: Native Error: Error Message: name

ODBC Row Number:

Message State: Severity:

Proc Name: Server Name:

42S22 207

SQL Server

column

FROLOV

Как видите, диагностика ошибки достаточно

Функция

Она вызывается для обработки возникающих на ранней стадии рабо-

ты программы до момента установления с данных.

Внутри этой находится цикл, котором

заголовки диагностических записей при функции SQLGetDiagRec:

!= SQL NO -.

ГС = SQLGetDiagRec(nHandleType, sqlhHandle,

255,

= SOL State: sErrMsg +=

sErrMsg += .ntlativi Error: sErrMsg += (LPSTR)szBuf;

sErrMsg += \ntrror Message: ; sErrMsg += (LPSTR)szErrorMessage;

Эта функция также формирует в

sErrMsg итоговое сообщение об

Бог, например, какое сообщение появится на экране, ее, i:.! указать неправильное имя источникаданных: error

SQLState: МЭ02

Native Error: О

Error Message: LEicroeofr][ODBC Driver Manager] Data source name not found and no default driver specified



1 ... 93 94 95 [ 96 ] 97 98 99 ... 141

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