Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоинкрементарное поле, Как его реализовать правильно? 
V
    Опции темы
kulikoff
Дата 9.3.2006, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

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



Есть такая проблема: как правильно сделать автоинкрементарное поле в таблице СУБД Oracle? Пробовал, чтоб определяло максимальное число в поле и присваивало следующей записи на единицу - очень долго выполняется... Просто кол-во записей мне не подходит, т.к. возможна ситуация, когда запись будет удалена, а её номер уже нельзя использовать...
PM MAIL WWW ICQ Skype   Вверх
Vas
Дата 9.3.2006, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

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



Sequence smile

В запросе на добавление:
Код

insert into your_table (id, name) values(your_sequence.nextval, 'Бла-бла-бла...')



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
kulikoff
Дата 21.3.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

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



Пишу следующий код:
Код

ADOQuery1.Close;
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Text:='insert into bankvuptrans (dateprov,sumbank,users,datezagr,transaction,transactionid) values (:p1,:p2,:p3,:p4,:p5,transactionid.nextval)';
   ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, true);
   ADOQuery1.Parameters.ParamByName('p1').Value:=b;
   ADOQuery1.Parameters.ParamByName('p2').Value:=summa;
   ADOQuery1.Parameters.ParamByName('p3').Value:=ty;
   ADOQuery1.Parameters.ParamByName('p4').Value:=Date;
   ADOQuery1.Parameters.ParamByName('p5').Value:='імпорт даних';
   ADOQuery1.ExecSQL;

на что мне выдается ошибка:
Код

sequence does not exist


Как правильно написать?
PM MAIL WWW ICQ Skype   Вверх
Vas
Дата 21.3.2006, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

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



Цитата(kulikoff @ 21.3.2006, 17:55 Найти цитируемый пост)
Как правильно написать?

Его сначала нужно создать в БД.
Код

create sequence my_sequence
increment by 1
start with 1
nocycle

А потом только использовать.
Код

ADOQuery1.Close;
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Text:='insert into bankvuptrans (dateprov,sumbank,users,datezagr,transaction,transactionid) values (:p1,:p2,:p3,:p4,:p5,my_sequence.nextval)';
   ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, true);
   ADOQuery1.Parameters.ParamByName('p1').Value:=b;
   ADOQuery1.Parameters.ParamByName('p2').Value:=summa;
   ADOQuery1.Parameters.ParamByName('p3').Value:=ty;
   ADOQuery1.Parameters.ParamByName('p4').Value:=Date;
   ADOQuery1.Parameters.ParamByName('p5').Value:='імпорт даних';
   ADOQuery1.ExecSQL;



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
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.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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