|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.04.2010, 19:49 | #1 |
Новичок
Джуниор
Регистрация: 26.04.2010
Сообщений: 6
|
Не отображается автоинкрементация при добавлении записи
База создана на основе FireBird v2.5 с помощью IBExpert в Delphi 10
Подключение через : драйвер ODBC FireBird|InterBase(r) driver -> ADOConnection -> DbQuery -> DataSource -> DBGrid. Состоит из трёх таблиц, в одной из которых присутствуют ключевые поля оставшихся двух, в качестве внешних ключей. Для ключевых полей каждой таблицы в IBExpert создан триггер автоинкрементации (причём BEFORE INSERT), использующий созданные там же генераторы. При добавлении записи в IBExpert автоинкрементация работает отлично. Когда же я делаю то же самое в главной таблице в Delphi ,с помощью тыканья кнопки + на DBNavigator , в ключевом поле записи ничего не отображается. Нажимаю "галочку" — транзакция завершается, но в ключевом поле стоит 0. При этом свойство IsolationLevel у компонента ADOConnection выставлен в ilReadCommited. Если же открыть базу и закрыть снова — все ключевые поля записей, созданных через DBNavigator у которых в DBGrid ранее отображался ноль при создании, теперь имеют вполне кошерный номер. Есть ли какой-то менее "тотальный" метод обновить автоинкрементирующиеся значения без закрытия/открытия ADOConnection? P.S. Курсор на стороне клиента (на сторону сервера не могу выставить, но это уже другая история)
Высокомерие годится только на то, чтобы возвести крепостную стену, за которой прячутся сомнения и страх.
|
26.04.2010, 20:13 | #2 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
зачем используешь ADO?
для работы с Firebird/Interbase есть штатные IBX или одни из лучших компонентов доступа к FB/IB - FIBPlus... версия 6.9.9 как раз поддерживает D2010 |
26.04.2010, 20:40 | #3 |
Новичок
Джуниор
Регистрация: 26.04.2010
Сообщений: 6
|
FIBPlus всё же платная, а я хотел сделать полностью бесплатный продукт по всем звеньям — от базы до оболочки
Высокомерие годится только на то, чтобы возвести крепостную стену, за которой прячутся сомнения и страх.
|
26.04.2010, 20:41 | #4 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
тогда IBX тебе в руки
|
26.04.2010, 21:07 | #5 |
Новичок
Джуниор
Регистрация: 26.04.2010
Сообщений: 6
|
Что-то я не могу понять, чем с вкладки InterBase подключиться к базе FireBird. Не выходит.
Высокомерие годится только на то, чтобы возвести крепостную стену, за которой прячутся сомнения и страх.
|
26.04.2010, 21:12 | #6 |
Новичок
Джуниор
Регистрация: 26.04.2010
Сообщений: 6
|
Так. Вроде бы здесь аналог ADOConnection это IBDataBase.
Только не жрёт он мою базу FireBird. Update 1: Разобрался с компонентами IB (мои извинения за проявленную торопливость) — сейчас пробую.
Высокомерие годится только на то, чтобы возвести крепостную стену, за которой прячутся сомнения и страх.
Последний раз редактировалось vuzhakov; 26.04.2010 в 21:43. |
26.04.2010, 22:28 | #7 |
Пользователь
Регистрация: 14.04.2010
Сообщений: 51
|
|
26.04.2010, 22:33 | #8 | |
Пользователь
Регистрация: 14.04.2010
Сообщений: 51
|
Цитата:
Этой компоненте можно назначить "генератор" и потом в процессе вставки записи, используя метод ExecProc получить с генерированный ID. Вот здесь я показывал работу IBStoreProc Последний раз редактировалось bezOn; 26.04.2010 в 22:36. |
|
27.04.2010, 05:58 | #9 | |
Новичок
Джуниор
Регистрация: 26.04.2010
Сообщений: 6
|
Цитата:
Я-то по наивности полагал, что раз написано BEFORE INSERT значит before insert, а не как бог на душу положит -)
Высокомерие годится только на то, чтобы возвести крепостную стену, за которой прячутся сомнения и страх.
Последний раз редактировалось vuzhakov; 27.04.2010 в 06:01. |
|
27.04.2010, 05:59 | #10 | |
Новичок
Джуниор
Регистрация: 26.04.2010
Сообщений: 6
|
За компонент спасибо — поковыряю его.
Цитата:
Высокомерие годится только на то, чтобы возвести крепостную стену, за которой прячутся сомнения и страх.
Последний раз редактировалось vuzhakov; 27.04.2010 в 06:02. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
делфи ругается при добавлении записи | Cannibal | БД в Delphi | 8 | 23.04.2010 15:49 |
Событие при добавлении записи в BDGrid | Alexeyss | БД в Delphi | 2 | 19.08.2009 23:37 |
Проверка при добавлении записи | Tanya2008 | БД в Delphi | 3 | 22.04.2009 10:07 |
Проблема при добавлении в БД | Oleg Romanchuk | БД в Delphi | 2 | 12.01.2009 12:21 |
при добавлении новой записи через форму подставлолось значение из другой таблицы | Baxxter | Microsoft Office Access | 1 | 07.01.2009 22:23 |