Не видно записи после вставки из программы
Добавлено: 20 фев 2006, 22:23
Возникла проблема. Есть ли особенности сервера, которые могут объяснить такое поведение или все дело в моем глупом коде.
(Delphi7,компоненты IBX + IB7.1 или FB 1.5)
1) Создаю базу из скрипта, автоматически сгенеренного IBExpert'ом. Этим же IBExpert'ом и создаю, собственно.
2) Имеется таблица, содержащая набор уникальных полей.
3) Из программы создаю запись вэтой таблице при помощи компонента TIBStoredProc и ***_IU процедуры, также сгенеренной IBExpert'ом. Перед этим вручную (вызовом GEN_ID при помощи TIBQuery) получаю значение первичного ключа и передаю в TIBStoredProc. Делаю COMMIT.
4) TIBDataSet подключенный к той же транзакции не показывает наличия записей. IBExpert также видит пустую таблицу.
5) Тем же путем повторно создаю запись с теми же значеними уникальных полей - получаю ошибку нарушения уникальности. DataSet и IBExpert по прежнему показывают пустую таблицу
6) Перезапускаю программу, таблица пустая но все добавления записей работают как задуманно. Тот же набор уникальных полей ошибки не вызывает и запись добавляется нормально.
Параметры транзакции read_committed;rec_version;nowait
У датасета CashedUpdates не стоит
(Delphi7,компоненты IBX + IB7.1 или FB 1.5)
1) Создаю базу из скрипта, автоматически сгенеренного IBExpert'ом. Этим же IBExpert'ом и создаю, собственно.
2) Имеется таблица, содержащая набор уникальных полей.
3) Из программы создаю запись вэтой таблице при помощи компонента TIBStoredProc и ***_IU процедуры, также сгенеренной IBExpert'ом. Перед этим вручную (вызовом GEN_ID при помощи TIBQuery) получаю значение первичного ключа и передаю в TIBStoredProc. Делаю COMMIT.
4) TIBDataSet подключенный к той же транзакции не показывает наличия записей. IBExpert также видит пустую таблицу.
5) Тем же путем повторно создаю запись с теми же значеними уникальных полей - получаю ошибку нарушения уникальности. DataSet и IBExpert по прежнему показывают пустую таблицу
6) Перезапускаю программу, таблица пустая но все добавления записей работают как задуманно. Тот же набор уникальных полей ошибки не вызывает и запись добавляется нормально.
Параметры транзакции read_committed;rec_version;nowait
У датасета CashedUpdates не стоит