try...finally... правильно ли сделал?

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: try...finally... правильно ли сделал?

Re: try...finally... правильно ли сделал?

Dr_Grizzly » 14 фев 2008, 17:39

я подразумеваю это связано на прямую с производительностью компа, хотя не уверен......

Re: try...finally... правильно ли сделал?

Dr_Grizzly » 14 фев 2008, 17:38

Как бы правильно объяснить, в первой таблице заполняются 26 полей, а во второй 8 полей, и вот курсор отладчика дошел до AdoTable1.post и пошел дальше, первая таблица еще не обновилась, а вторая уже заполнилась и естественно с пустым ключевым полем от первой табл., вот и получается разрыв. База в Access. Но я не говорю что каждый раз такое, но иногда проскакивает.

Re: try...finally... правильно ли сделал?

Игорь Акопян » 14 фев 2008, 15:38

честно сказать не представляю что должно лежать в таблице с какими адскими индексами и триггерами, чтобы таблица не успела запостить значение... Что хоть за БД?

Re: try...finally... правильно ли сделал?

Dr_Grizzly » 13 фев 2008, 14:54

Есть какие-нибудь соображения в этом направлении? Как заставить подождать пока не одна таблица не закончит добавление записи?

Или может кто может подсказать каким способом можно генерировать постоянно новый ключевой код? Было соображение чтобы взять цыфры даты и времени и прибавить их к какому-нибудь числу, повторения же тут исключены?

Re: try...finally... правильно ли сделал?

Игорь Акопян » 12 фев 2008, 13:43

заблуждаешься.
блок try..finally лишь позволит корректно обработать исключение. Хотя в твойм случае ничего не изменится

try...finally... правильно ли сделал?

Dr_Grizzly » 12 фев 2008, 11:06

Всем привет! Такая вот проблема. Есть две таблицы. В первой таблице есть поле key типа счетчик, во второй есть поле tab1_key типа число. Делаю следующее:
Adotable1.insert;
adotable1.fields.field[2].text:='asdf';
adotable1.fields.field[3].text:='545';
adotable1.fields.field[4].text:='345';
Adotable1.post;
Adotable2.insert;
adotable2tab1_key=adotable1key.text;
adotable2.fields.field[2].text:='asdf';
adotable2.fields.field[3].text:='6456';
adotable2.post;

Все это весит на одной кнопке в этом порядке. Иногда бывает что таблица 1 еще не успела создать запись как вторая создала, и получился разрыв связи. Не знаю от чего это зависит, толи от тормозного компа, толи еще чаво. Пробую следующее:
try
Adotable1.insert;
adotable1.fields.field[2].text:='asdf';
adotable1.fields.field[3].text:='545';
adotable1.fields.field[4].text:='345';
finally
Adotable1.post;
try
Adotable2.insert;
adotable2tab1_key=adotable1key.text;
adotable2.fields.field[2].text:='asdf';
adotable2.fields.field[3].text:='6456';
finally
adotable2.post;
end;
end;
Действительно ли будет так, что пока первая таблица не создаст запись, вторая не начнет создавать новую запись?
Или я заблуждаюсь в использовании этого алгоритма? Посоветуйте плииз...

Вернуться к началу