try...finally... правильно ли сделал?
Добавлено: 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;
Действительно ли будет так, что пока первая таблица не создаст запись, вторая не начнет создавать новую запись?
Или я заблуждаюсь в использовании этого алгоритма? Посоветуйте плииз...
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;
Действительно ли будет так, что пока первая таблица не создаст запись, вторая не начнет создавать новую запись?
Или я заблуждаюсь в использовании этого алгоритма? Посоветуйте плииз...