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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.08.2013, 00:48
Redddd Redddd вне форума
Прохожий
 
Регистрация: 18.02.2013
Сообщения: 40
Репутация: 10
По умолчанию Работа с Firebird

Итак компоненты FBPlus
А именно pFIBDataSet1
Работаем с таблицей, где есть автоинкрементное поле.
В свойстве SelectSQL есть методы Insert/Update/Delete.
При вставке записи используется следующий запрос:
Код:
INSERT INTO FIRMALL(
    FIRMALL,
    COUNTRY,
    NAME,
    DERW,
    CODE
)
VALUES(
    GEN_ID(GEN_FIRMALL_ID, 1),
    :COUNTRY,
    :NAME,
    :DERW,
    :CODE
)
GEN_ID(GEN_FIRMALL_ID, 1) - вызов генератора.


Если вставлять програмно следующим запросом все работает:
Код:
DM.DataModule1.pFIBDataSet1.SQLs.SelectSQL.Add('INSERT INTO FIRMALL (FIRMALL,COUNTRY,NAME,DERW,CODE) VALUES (GEN_ID(GEN_FIRMALL_ID, 1),:param1,:param2,:param3,:param4);');

Если вставлять записи через грид первым способом- ошибка. Не пойму почему.
Ответить с цитированием
  #2  
Старый 14.08.2013, 12:36
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

v.1
а не проще ли сделать это по нормальному ч\з тригер
Код:
  IF (NEW.FIRMALL IS NULL) THEN 
    NEW.FIRMALL = GEN_ID(GEN_FIRMALL_ID, 1);
ну и
Код:
INSERT INTO FIRMALL(COUNTRY, NAME, DERW, CODE)
VALUES(:COUNTRY, :NAME, :DERW, :CODE)

v.2
а еще в pFIBDataSet1.AutoUpdateOptions есть спец свойства для работы с генераторами. Ими тоже можно играться как угодно.
но никак не извращаться с вычислением генератора напрямую в INSERT запросе
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз

Последний раз редактировалось Yurk@, 14.08.2013 в 12:39.
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
Redddd (16.08.2013)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter