Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с Interbase 6.5 
:(
    Опции темы
Evan
Дата 6.6.2010, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 26.11.2007
Где: г. Белгород

Репутация: нет
Всего: нет



В общем проблема такая. Работаю с БД Interbase 6.5. Из проги надо вводит инфу в БД, в любую из таблиц. Всё бы хорошо, но возникла такая проблема: при добавлении новой записи надо вставлять ID - ключевое поле, надо его инкрементировать...тока блин, как это сделать? Получить из таблицы последний максимальный ID? как?...вот кусок кода:
Код

IBQuery2.Close;
IBQuery2.SQL.Clear;
IBQuery2.SQL.Add('select max(ID_LAMP) as maxID from LAMP;');
IBQuery2.SQL.Add('insert into LAMP values(maxID+1,:NAME,:TIP,:MOSHNOST,:PROIZVODITEL,:STOIMOST)');
IBQuery2.ParamByName('NAME').AsString:=LabeledEdit8.Text;
IBQuery2.ParamByName('TIP').AsString:=LabeledEdit12.Text;
IBQuery2.ParamByName('MOSHNOST').AsInteger:=STRTOINT(LabeledEdit9.Text);
IBQuery2.ParamByName('PROIZVODITEL').AsString:=LabeledEdit11.Text;
IBQuery2.ParamByName('STOIMOST').AsInteger:=STRTOINT(LabeledEdit10.Text);

но так ругается...
PM MAIL WWW ICQ   Вверх
Данкинг
Дата 6.6.2010, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Evan @  6.6.2010,  18:52 Найти цитируемый пост)
вставлять ID - ключевое поле, надо его инкрементировать...тока блин, как это сделать? 

Создать в БД генератор, назвать его, например, NOMER. Далее запрос на добавление будет иметь вид вроде:
Код

insert into base values (gen_id(nomer,1));

Где gen_id - это значение генератора, NOMER - его название, а 1 - на сколько его следует увеличить.

Добавлено через 2 минуты и 10 секунд
Создание генератора на FB:
Код

CREATE SEQUENCE NOMER;
ALTER SEQUENCE NOMER RESTART WITH 1;

Думаю, на IB суть примерно та же.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Evan
Дата 6.6.2010, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 26.11.2007
Где: г. Белгород

Репутация: нет
Всего: нет



Спасибо. Решил проблему. Вобщем то таким способом - генератор + триггер.
PM MAIL WWW ICQ   Вверх
Akella
Дата 8.6.2010, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Evan @  6.6.2010,  17:52 Найти цитируемый пост)
при добавлении новой записи надо вставлять ID - ключевое поле, надо его инкрементировать...тока блин, как это сделать? 


Цитата(Evan @  6.6.2010,  18:45 Найти цитируемый пост)
Вобщем то таким способом - генератор + триггер. 


Правильно smile

Добавлено через 27 секунд
Обычно вопрос помечают, как решённый (справа вверху)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.