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

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

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

Сообщение DSKalugin » 28 апр 2005, 13:26

Исползую 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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 28 апр 2005, 13:47

параметры транзакции абсолютно ни при чем. чего-то у тебя в коде не то.

DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение DSKalugin » 28 апр 2005, 13:55

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

OX
Сообщения: 24
Зарегистрирован: 26 окт 2004, 17:08

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

Сообщение OX » 28 апр 2005, 14:03

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

DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение DSKalugin » 28 апр 2005, 14:19

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

Ответить