Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Народ помогите!! [D6, Oracle]


Страницы:   1 2

Natalishka ©   (2002-08-07 13:26:00) 

В Оракле нет автоинкрементного типа поля((
подскажите как его выразить?
через триггер?
я создала триггер кот должен добовлять этот тип при Insert before
но
при заполении
допустим Id это уникальное наше автоинкрементного типа поля
и v1 varchar2(15)
Insert into vrem
(v1)
values("about")
а этот тип поля не надо писать тут ?
а IB такое не писали!
подскажите
или через...SEQUENCE
как??
я мучаюсь уже котрый день!


Внук   (2002-08-08 09:21:00) [1]

Имеется в виду вот это?

CREATE OR REPLACE TRIGGER VIP.TI_VREM BEFORE INSERT ON VIP.VREM FOR EACH ROW
BEGIN
:NEW.ID:=GEM.NEXTVAL;
END;



dimis   (2002-08-08 09:14:00) [2]

я делал так

TRIGGER my_tr
before insert on vrem
for each row
declare
-- local variables here
begin
if :new.id is null then
select my_seq.nextval
into :new.id
from dual ;
end if;

end dog_befin_tr;


Natalishka   (2002-08-08 07:52:00) [3]

все спасибо всё получилось!
но на счёт триггеров так и ни кто не ответил!
если я создала триггер кот при добавлении в таблицу заносить сам этот тип поля
то как его указать?
где ??
при вставке данных?


3JIA9I CyKA   (2002-08-07 15:51:00) [4]

8)


Внук   (2002-08-07 15:32:00) [5]

Ну что вы здесь ненаучную фантастику разводите - работает ведь все дословно из Natalishka © (07.08.02 14:44) в PL/SQL Developer.

>"получится ли у тебя?"
Так ведь эттта... Не первый год уже работаю с Oracle, пока все получается


Val   (2002-08-07 15:09:00) [6]

>Natalishka © (07.08.02 15:04)
dual такая таблица, в которой есть все :)
можно по простому:
in_ide := gen.NEXTVAl , но это лишнее действие, должно работать и так:
insert into vrem
(id,v1)
values (gen.NEXTVAL,"about");


Natalishka   (2002-08-07 15:04:00) [7]

> Dimis
dual это что какая то друцгая бд?


Val   (2002-08-07 15:03:00) [8]

>Natalishka © (07.08.02 14:49)
а мне надо
id INTEGER NOT NULL


constraint PK_vrem primary key (id)
это делает


dimis   (2002-08-07 14:54:00) [9]

попробуй так

create or replace procedure insert_vrem(rrr varchar2)
is
in_ide number;
begin
select gem.NEXTVAl into in_ide from dual
insert into vrem
(id,v1)
values (in_ide,rrr)
end;


Внук   (2002-08-07 14:53:00) [10]

См. fnatali © (07.08.02 14:31)
Скорее всего запрос отрабатывает во внешних приложения, а в программе не работает, потому что у Id Required=true - распространенная ошибка


Natalishka   (2002-08-07 14:52:00) [11]

Внук
попробуй сам присвоить такое значение полю Integer not null
получится ли у тебя?


Natalishka   (2002-08-07 14:49:00) [12]

и ещё попробовала это же сделать
только в ту переменную
где id INTEGER без NOT NULL
тада всё работает!
а мне надо
id INTEGER NOT NULL


Внук   (2002-08-07 14:48:00) [13]

CREATE SEQUENCE VIP.GEN
...
values ( gem.NEXTVAL
???


Natalishka   (2002-08-07 14:44:00) [14]

использую! SQL Navigator
1.создаю sequence
CREATE SEQUENCE VIP.GEN
START WITH 1
INCREMENT BY 1

2.база vrem (на всякий)
CREATE TABLE VIP.VREM
(
id INTEGER NOT NULL,
v1 VARCHAR2 (15),
constraint PK_vrem primary key (id)
);

3.пытаюсь в SQL Editor
внести в базу данные

insert into vrem
(id,v1)
values (gem.NEXTVAL,"about")
вот и тут ошибка
Cannot insert null into ("VIP"."VREM"."ID")!!!


Johnmen   (2002-08-07 14:32:00) [15]

Полный текст запроса в студию !


Val   (2002-08-07 14:32:00) [16]

create sequence seq1 - такую штуку делали?


fnatali   (2002-08-07 14:31:00) [17]

А в каком-нибудь SQL-редакторе (SQL Navigator, TOAD или чем ты пользуешься) этот запрос отрабатывает?


Natalishka   (2002-08-07 14:22:00) [18]

> Robi
не поняла
или через...SEQUENCE??


robi   (2002-08-07 14:15:00) [19]

>или через...SEQUENCE


Natalishka   (2002-08-07 14:12:00) [20]

Cannot insert null into ("user"."BD"."ID")


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо