Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Вниз

Не получается выполнить обработку Исключительной ситуации   Найти похожие ветки 

 
Андрей Королёв   (2003-03-30 16:34) [0]

procedure TMainObjectForm.Button3Click(Sender: TObject);
begin
if IBDataset.Active then IBDataset.close;
If IBTransaction.InTransaction then IBTransaction.Commit;
IBDatabase.Open;

try
IBDataset.SelectSQL.Text:=ComboBox22.Text;
except
// НЕ Получается выполнить обработку исключительной ситуации при
// неправильном наборе SQL-запроса
// В USES тип IB указан
on EIBInterBaseError do ShowMessage("Не удается получить данные");
end;
If IBTransaction.InTransaction then IBTransaction.Commit;
IBTransaction.StartTransaction;
IBDataset.Open;

end;



 
big_rom   (2003-03-30 18:27) [1]

возбудить его надо если что-то нетак
выдержка из хелпа
For example, the function below converts a string to an integer, raising an ERangeError exception if the resulting value is outside a specified range.

function StrToIntRange(const S: string; Min, Max: Longint): Longint;

begin
Result := StrToInt(S); // StrToInt is declared in SysUtils
if (Result < Min) or (Result > Max) then
raise ERangeError.CreateFmt(
"%d is not within the valid range of %d..%d",
[Result, Min, Max]);
удачи


 
ЮЮ   (2003-03-31 03:14) [2]

// НЕ Получается выполнить обработку исключительной ситуации при
// неправильном наборе SQL-запроса

А кто сказал, что при неправильном наборе должно возникать исключение? :-) Ошибка проявится только при Prepere, Open и т.п.


 
Johnmen   (2003-03-31 09:29) [3]

А самая загадочная строка
IBDatabase.Open; :)


 
zacho   (2003-03-31 09:45) [4]

Еще небольшой советик: вместо if IBDataset.Active then IBDataset.close; проще сделать IBDataset.Active:=false;


 
Anatoly Podgoretsky   (2003-03-31 11:37) [5]

zacho © (31.03.03 09:45)
Ну это уже в области вкусов - свойство или действие, я предпочитаю Close/Open, а вот проверка действительно не нужна, можно сразу.


 
zacho   (2003-03-31 11:43) [6]


> Anatoly Podgoretsky © (31.03.03 11:37)

Я тоже предпочитаю Close/Open - imho более читабельно.


 
MsGuns   (2003-03-31 11:48) [7]

Зачем каждый раз "дергать" Базу Данных (Open/Close), и перестартовывать транзакцию ? Для обновления курсора ИМХО достаточно дать TIBTransaction.CommitRetaining и переоткрыть НД.
Или я чего-то недопонимаю ?


 
zacho   (2003-03-31 11:52) [8]


> MsGuns © (31.03.03 11:48)

Насколько я понял, вопрошавшему требовалось не обновление курсора, а изменение текста запроса и проверка его на корректность.
P.S. Использование CommitRetaining - черевато, хотя я, тьфу-тьфу-тьфу, на этот баг еще не разу не нарывался.


 
MsGuns   (2003-03-31 11:57) [9]

>zacho © (31.03.03 11:52)

А разве IB API "караулит" все изменения текстов запросов в свойств "своих" компонент ? Я по-дилетантски считал, что проверка корректности запроса делается в Prepare или, в случае его отсутствия, в Open, ExecSQL, ExecQuery и т.д.


 
zacho   (2003-03-31 12:04) [10]


> MsGuns © (31.03.03 11:57)

Ты правильно считал :) В том-то и была ошибка > Андрей Королёв, что он пытался получить исключение, просто поменяв текст запроса, и не делая Open и т.п.




Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
14-54809
Supreme 2
2003-03-30 22:11
2003.04.17
QNX и прочие подобные ОС


14-54874
Leon Crom
2003-04-01 19:58
2003.04.17
а вот что такое IQ...


3-54530
BJValentine
2003-03-31 11:51
2003.04.17
DBGrid и мышь со скролингом


4-54964
Thorn
2003-02-16 15:48
2003.04.17
Список запущенных процессов


3-54485
jen_bond
2003-03-29 17:12
2003.04.17
Проверка транзакции





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский