Главная страница
    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
1-54706
AlexMax
2003-04-04 21:59
2003.04.17
Как програмно показать Hint...


1-54559
kingdom2000
2003-04-05 17:20
2003.04.17
русская орфография в RichEdit


1-54641
Kremen
2003-04-08 13:00
2003.04.17
Как узнать версию Windows?


8-54761
Pat
2003-01-08 02:50
2003.04.17
MediaPlayer


14-54831
Думкин
2003-04-01 06:15
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский