Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2010, 16:29
Kolivan Kolivan вне форума
Прохожий
 
Регистрация: 14.06.2009
Сообщения: 3
Репутация: 10
Восклицание Автоинкремент ключевого поля InterBase

Всем доброго времени суток.
Суть темы такова что Я в IBExpert создаю генераторы и триггеры, которые отлично работают при заполнении БД с самого IBExpert, а вот в клиенте, написанном мной, при незаполнении ключевого поля вылетает ошибка типа "Field 'KEY_FIELD' must have a value".
Друзья, подскажите пожалуйста как разобраться с этой проблемой. Может поле какое есть где значение поменять?
Кстати ещё пару вопросов:
1) Что лучше использовать на месте DataSet у компонента DataSource - IBQuery или IBTable?
2) Если на месте DataSet у компонента DataSource выставлять IBQuery то подскажите пожалуйста каким боком добавлять данные в таблицу, есть ли смысл использовать при этом DBNavigator?

P.S. Использовать другую БД или другие компоненты, не относящиеся к InterBase прошу не предлагать, т.к. эта дипломная работа и суть задания такова чтобы клиент был реализован для БД InterBase 6.5

Последний раз редактировалось Kolivan, 21.05.2010 в 16:32.
Ответить с цитированием
  #2  
Старый 22.05.2010, 00:17
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

1)Надо в св-х IBQuery или что там у вас указать GeneratorField
2)Использовать конечно же IBQuery или IBDataset, забудьте про IBTable навсегда.
3)Я навигатором не пользуюсь, но можно и так. Лучше использовать IBDataset вместо IBQuery. Прописываете в нем запрос на выборку, потом правой кнопкой на нем->DataSet Editor. Выбираете ключевое поле и поля которые надо редактировать и на кнопку GenerateSQL. Так сгенерится SQL на вставку, правку, удаление и т.д. Ну а дальше, если не использовать навигатор, стандартные Insert и Post.
Ответить с цитированием
  #3  
Старый 23.05.2010, 23:04
Kolivan Kolivan вне форума
Прохожий
 
Регистрация: 14.06.2009
Сообщения: 3
Репутация: 10
По умолчанию

Спасибо большое! Проканало!
Если не трудно оставь пожалуйста аську или другой контакт в ЛС, т.к. вопросы ещё будут....

Ещё вопросик... пытался сделать так чтобы значения автоинкремента шли по порядку такой процедурой:
Код:
procedure TForm1.IBDataSet3NewRecord(DataSet: TDataSet);
begin
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SET GENERATOR GEN_UR_LICA_ID TO '+ inttostr(ibdataset1.FieldCount));
IBQuery1.Active:=true;
end;
но значения получаются на 2 или 3 больше чем в таблице... вроде бы всё просто... отнять от FieldCount некоторое число - и всё встанет на место, но так не получится потому что разница, когда на 2, когда на 3, а когда и на 4 больше чем ячеек в таблице

Последний раз редактировалось Kolivan, 23.05.2010 в 23:52.
Ответить с цитированием
  #4  
Старый 24.05.2010, 00:16
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

195449790 аська

Они и так должны идти попорядку. Тригер для наращивания счетчика в базе есть? Там где настраивал GeneratorField выбери OnServer, тогда счетчик будет накручивать тригер из базы.
Ответить с цитированием
  #5  
Старый 24.05.2010, 09:49
Kolivan Kolivan вне форума
Прохожий
 
Регистрация: 14.06.2009
Сообщения: 3
Репутация: 10
По умолчанию

Да это я ставил... теперь понял что надобности в полноценном порядке нет, т.к. при удалении и добавлении ячеек будут появляться косяки...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025