Dag |
Отправлено: 10.04.2004, 16:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
При выполнении нижеследующего запроса, в сети может не оказаться требуемого сервера БД. Какой код надо поставить в catch, чтоб поймать эту ситуацию и обработать?
...
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Select Password from Worker where Alias = '" + Edit1->Text + "'");
try
{
ADOQuery1->Open();
}
catch (...) <- при таком коде, я все поймаю, а надо тока отсутствие
{} сервака.
И вообще, не подскажите где посмотреть можно все эти коды? |
|
olegenty |
Отправлено: 12.04.2004, 06:56 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
try
{
...
} catch (const Exception &E)
{
ShowMessage(E.Message.Trim());
}
в общем случае даже так:
try
{
...
} catch (const Exception &E)
{
if (Класс_ошибки Err = dynamic_cast<класс_ошибки>(err))
{
работай со своим классом
}
}
аналогично:
try
{
...
} catch (const Exception &E1)
{
...
} catch (AnsiString &A)
{
} catch (и т.д. любые классы, которые были отправлены throw)
{
} catch (...) — всё, что не распознал
{
}
|
|
Dag |
Отправлено: 25.04.2004, 23:21 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Это понятно. Вот тока меня интересует код исключения именно для отлова отсутствия SQL сервера в сети. Есть такой? |
|
olegenty |
Отправлено: 26.04.2004, 07:21 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
для различных серверов может быть различным (и будет). смоделируй ситуацию (выруби комп из сети), посмотри на код ошибки и пользуйся им потом...
|
|