![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго времени суток.
Суть темы такова что Я в 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
|
||||
|
||||
![]() 1)Надо в св-х IBQuery или что там у вас указать GeneratorField
2)Использовать конечно же IBQuery или IBDataset, забудьте про IBTable навсегда. 3)Я навигатором не пользуюсь, но можно и так. Лучше использовать IBDataset вместо IBQuery. Прописываете в нем запрос на выборку, потом правой кнопкой на нем->DataSet Editor. Выбираете ключевое поле и поля которые надо редактировать и на кнопку GenerateSQL. Так сгенерится SQL на вставку, правку, удаление и т.д. Ну а дальше, если не использовать навигатор, стандартные Insert и Post. |
#3
|
|||
|
|||
![]() Спасибо большое! Проканало!
Если не трудно оставь пожалуйста аську или другой контакт в ЛС, т.к. вопросы ещё будут.... Ещё вопросик... пытался сделать так чтобы значения автоинкремента шли по порядку такой процедурой: Код:
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; Последний раз редактировалось Kolivan, 23.05.2010 в 23:52. |
#4
|
||||
|
||||
![]() 195449790 аська
Они и так должны идти попорядку. Тригер для наращивания счетчика в базе есть? Там где настраивал GeneratorField выбери OnServer, тогда счетчик будет накручивать тригер из базы. |
#5
|
|||
|
|||
![]() Да это я ставил... теперь понял что надобности в полноценном порядке нет, т.к. при удалении и добавлении ячеек будут появляться косяки...
|