![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос на создание процедуры в IBase. [D6, XP]
Drowsy © (2009-11-05 08:41:00)Почему не проходит такой запрос?
procedure TfmDryBar.ProcClick(Sender: TObject);
var tab_nam : string;
begin
tab_nam := Editor.Text'MILLS';
with dmMain.QueryWork do
begin
if not Transaction.Active then Transaction.StartTransaction;
try
with Sql do
begin
Clear;
Add('CREATE PROCEDURE UPD_TAB ');
Add('as ');
Add('declare variable N_V integer ; ');
Add('begin ');
==>> Add(Format(' for select %s.Code From %s into :N_V ',[Tab_Nam, Tab_Nam]));
// в этой строке сервер не принимает символы :N_V
Add(' do ');
Add(' begin ');
Add(Format(' update %s set %s.eq_rel_code = -1 ',[Tab_Nam, Tab_Nam]));
Add(Format(' where %s.Code = :SASD; ',[Tab_Nam]));
Add(' end ');
Add(' suspend ; ');
Add('end; ');
end;
ExecSQL;
if dmMain.QueryWork.Transaction.Active then dmMain.QueryWork.Transaction.Commit;
except
on E: Exception do
begin
if dmMain.QueryWork.Transaction.Active then dmMain.QueryWork.Transaction.Rollback;
Application.MessageBox(PChar(E.Message + ' ' + IntToStr(E.HelpContext)) ,PChar(''));
end;
end;
end;
Сергей М. (2009-11-05 08:58:00) [21]
> сервер не принимает символы :N_V
Что говорит ?
Inovet (2009-11-05 08:57:00) [22]> [0] Drowsy (05.11.09 08:41)
> сервер не принимает символы :N_V
А они как параметр не трактуются ещё до отправки?
Drowsy (2009-11-05 08:55:00) [23]QueryWork: TIBQuery;
Drowsy (2009-11-05 08:54:00) [24]suspend убрал, но запрос всё равно не идёт.
до выполнения процедуры дело не дошло - мне создать её не удаётся.
Сергей М. (2009-11-05 08:52:00) [25]QueryWork - это что ?
Сергей М. (2009-11-05 08:51:00) [26]
> for select
Пардон, не увидел сразу.
Сергей М. (2009-11-05 08:49:00) [27]
> Add(' suspend ; ');
Какой может быть SUSPEND в процедуре, обновляющей(а не возвращающей) данные ? Да еще и вынесенное за пределы цикла for..do ?
> if dmMain.QueryWork.Transaction.Active then
С чего бы ей быть неактивной, если вышестоящий вызов Transaction.StartTransaction завершился успешно ?