![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Autoinc [D5, IB6.x]
IBNovice © (2003-10-10 09:50:00)
Есть таблица, по ключевому полю создан триггер, генератор и т.д.
При вставке записи из IBConsole или IBExpert автоинкремент работает, но при вставке из дельфи это не срабатывает.
Почему ...?
Denizzz (2003-10-10 14:47:00) [1]
> Может я чего не понял, но зачем использовать StoredProc
> для выполнения процедуры? Триггер сам должен эту процедуру
> выполнить!
С триггером вчера до полночи мучался пока в доках не нарыл что это рабоет некорректно.
> StoredProc.ExecProc
см. выше
> то выполняется stored-процедура
DenK_vrtz (2003-10-10 14:23:00) [2]
Может я чего не понял, но зачем использовать StoredProc для выполнения процедуры? Триггер сам должен эту процедуру выполнить!
DenK_vrtz (2003-10-10 14:20:00) [3]
StoredProc.ExecProc
Denizzz (2003-10-10 14:06:00) [4]
Здравия всем мастерам!
Я с InterBase второй!! день знаком (решился после посещения сия форума).
Допер как там и чего (создавать таблицы, получать доступ к таблицам из Delphi), но по триггеру:
CREATE TRIGGER SETJOB FOR JOB
ACTIVE BEFORE INSERT POSITION 0
as
begin
if (New.job_no is Null) then begin
execute Procedure newjob returning_Values New.job_no ;
end
end
и Событию OnBeforePost ком-та StoredProc, где: если таблица в режима добавления, то выполняется stored-процедура и в инкрим.поле подставлется возвращаемое её значение.
Процедура ниже:
CREATE PROCEDURE NEWJOB
RETURNS (NEWJOB INTEGER)
AS
begin
NewJob = Gen_Id(job_no_gen, 1) ;
end
в итоге, при попытке StoredProc.Active:=True получаю, результат моих стараний в виде грустного сообщения: "Error creating cursor handle".
Что я неправильно делаю?
Sergey13 (2003-10-10 11:43:00) [5]
2IBNovice (10.10.03 11:28) [12]
Вот видишь, только-только задал нормальный вопрос - сразу ответы посыпались. Я даже не успел.
8-)
DenK_vrtz (2003-10-10 11:34:00) [6]
я имел ввиду у поля ID
Anatoly Podgoretsky (2003-10-10 11:34:00) [7]
А ему наверно помощь не нужна, он пришел потрепаться.
Но судая по последнему, у него стоит неправильное ограничение на поле ID, но это тоже телепатия.
DenK_vrtz (2003-10-10 11:33:00) [8]
сделать Required = false и все!
Жук (2003-10-10 11:29:00) [9]
> IBNovice (10.10.03 11:28) [12]
Что ж из вас всё силой-то надо вытягивать ?
IBNovice (2003-10-10 11:28:00) [10]
> Ты ж не пишешь как делал и как "не срабатывает"
Делал все как обычно, таблица в IBExpert триггер генератор, в дельфи IBTable с DBGrid и DBNavigator. Не срабатывает - выдает ошибку field "ID" must have a value
Жук (2003-10-10 11:19:00) [11]
Кривость рук, и и никакого мошенства !
Sergey13 (2003-10-10 11:06:00) [12]
2IBNovice (10.10.03 10:54) [9]
>И никто мне не поможет ....
А как тебе помочь то? Ты ж не пишешь как делал и как "не срабатывает" хотя бы. А телепатические способности к концу рабоче недели у всех на исходе. 8-)
IBNovice (2003-10-10 10:54:00) [13]
И никто мне не поможет ....
IBNovice (2003-10-10 10:30:00) [14]
> DenK_vrtz © (10.10.03 10:29) [7]
> Гадаем на кофейной гуще!
Триггер создавался автоматом в IBExpert
DenK_vrtz (2003-10-10 10:29:00) [15]
Гадаем на кофейной гуще!
IBNovice (2003-10-10 10:20:00) [16]
> DenK_vrtz © (10.10.03 10:17) [5]
> Что то в триггере не так!
А почему тогда при всавке из IBConsole and IBExpert все работает
DenK_vrtz (2003-10-10 10:17:00) [17]
Что то в триггере не так!
IBNovice (2003-10-10 10:09:00) [18]
> Anatoly Podgoretsky © (10.10.03 10:08) [3]
> А почему после post оно должно увеличиваться?
И перед Insert эффекта тоже нет
Anatoly Podgoretsky (2003-10-10 10:08:00) [19]
А почему после post оно должно увеличиваться?
IBNovice (2003-10-10 09:57:00) [20]
> Mike Kouzmine
> Ты бы показал, как ты это делаешь.
Да обычный IBTable.post после редактирования записи