|
Программирование >> Руководство по созданию web приложений
И наконец, мы освобождаем идентификаторы соединения и среды исполнения: Функция Эта функция выполняет извлечение заголовка диагностической записи, а также полей записей состояния, созданных для данной диагностической записи. Алгоритм извлечения записей мы уже рассматривали. Опустив для краткости определения локальных переменных, приведем ис-текст цикла извлечения записей И формирования сообщения об ошибке: != 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
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |