Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TADOConnection & RAISERROR MSSQL, где поднять код ошибки на клиенте? 
:(
    Опции темы
np9mi7
  Дата 8.4.2005, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: нет
Всего: 10



(копия темы: тут)

Добрый день.
В качестве интерфейса к БД был выбран ADO (вернее ADO Express)... бизнес логика опущена на сервер DB.... Тут возник вопрос, при генерации ошибок сервером (RAISERROR @err @msg) мне хочеться на клиенте получить информацию об ошибке...

Где храниться RAISERROR с сервака???


Заранее благодарен за помощь. smile

Мне критичен именно код, а не сообщение его можно из EOleException:: __property Message. Где взять КОД smile

есть предложение сообщение править, но что-то не охото, хочеться красиво, те стандартными средствами, наверника можно посмотреть.
(
т.е. договориться что сервер генерирует сообщения вида RAISERROR @err_code, [CODE_INTEGER] + @msg
те передавать код в первой позиции сообщения, а потом выдерать его

Код

try
{
}
catch(EOleException& ex)
{
       long int i;
       i = ex.Message->SubString(1,10).toInt(); // договориться что на сервере 
                                                                         // все сообщения так начинаются
}

но это убого, хочеться стандартными средствами.

TADOConnection:: __property Errors{/**/}; написано что там все храниться (ошибки). Блин, как получить код последней, которую сгенерировал сервер smile

Заранее благодарен за помощь.

ps. администраторам, простите за копирование темы smile просто очень хочеться получить ответ.

Это сообщение отредактировал(а) np9mi7 - 8.4.2005, 07:47


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
np9mi7
  Дата 8.4.2005, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: нет
Всего: 10



Я разобрался.
Код

//----------------------------------
_di_Errors        errCollection;
_di_Error        errSingle;
unsigned int    iCount;
long            SQL_RAISERROR_CODE;                    // непосредственно код ошибки
//----------------------------------
errCollection = ADOConnection1->Errors;                // получаем коллекцию
errCollection->Get_Count(iCount)                    // получаем число ошибок
errCollection->Get_Item(iCount,errSingle);                            // получаем последнюю ошибку
errSingle->Get_NativeError(SQL_RAISERROR_CODE);        // код от RAISERROR - а у вас в кормане :-)
//----------------------------------

Теперь код в SQL_RAISERROR_CODE.
Всем спасибо, а вот этот примерчик можно и в FAQ smile

RAISERROR это не шутки!!!

Это сообщение отредактировал(а) np9mi7 - 8.4.2005, 12:51


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0570 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.