Страница 1 из 1

Почему генератор не работает?

Добавлено: 28 апр 2005, 13:26
DSKalugin
Исползую FibPlus 6.1
Генератор не меняет значения и остается равен 0, хотя в базе он уже = 3. Из ИБЭксперта этот вызов работает корректно

dmRead.trUpdAutostar.StartTransaction;
dmRead.tmpWriteQuery.Close;
dmRead.tmpWriteQuery.SQL.Clear;
dmRead.tmpWriteQuery.SQL.Add('select Gen_ID("GEN_sales_Number",1) from rdb$database');
dmRead.tmpWriteQuery.Prepare;
dmRead.tmpWriteQuery.ExecQuery;
SalNo:=dmRead.tmpWriteQuery.Fields[0].AsInteger;
dmRead.trUpdAutostar.Commit;

Может его подругому вызывать надо? Что я неправильно делаю?
Параметры транзакции перепробовал все уже сейчас оставил
write
concurrency
nowait

Добавлено: 28 апр 2005, 13:47
kdv
параметры транзакции абсолютно ни при чем. чего-то у тебя в коде не то.

Добавлено: 28 апр 2005, 13:55
DSKalugin
прямо аномалия какаято
А не может такого быть, что компоненты в разных модулях данных?
Транзакция в одном, а Query в другом?

Re: Почему генератор не работает?

Добавлено: 28 апр 2005, 14:03
OX
DSKalugin писал(а): Может его подругому вызывать надо? Что я неправильно делаю?
К чему такие сложности, смотри функцию у TFIBDatabase:
function TFIBDatabase.Gen_Id(const GeneratorName: string; Step: Int64;aTransaction:TFIBTransaction =nil): Int64;
и будет тебе в жизни счатье :)

Добавлено: 28 апр 2005, 14:19
DSKalugin
Здорово! Спасибо, заработало, а я и не знал об этом методе.
Так намного проще :idea: