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

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

Запрос на создание процедуры в IBase. [D6, XP]


Страницы:   1 2

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 завершился успешно ?


Страницы:   1 2

Наверх

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