Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.29;
Скачать: CL | DM;

Вниз

Stream and AdoCommand   Найти похожие ветки 

 
Ega23 ©   (2008-07-28 12:43) [40]


> Спасибо за помощь, думаю не последний раз написал ;)


Не за что, удачи!


 
Anatoly Podgoretsky ©   (2008-07-28 13:01) [41]

> sniknik  (28.07.2008 12:14:36)  [36]

На размере ехе скажется как раз один AdoCommand - не в лучшую сторону конечно.


 
Viod ©   (2008-07-29 10:05) [42]

Ко вчерашнему спрору о проверке внутри процедуры или в делфи:
Допустим хранимая процедура получает параметром идентификатор записи. Смотрит есть ли эта запись if EXISTS(SELECT... WHERE Idn=@idn) и удаляет запись и возвращает 0. Если записи нет, то возвращает -1.
Как мне в этом случае оставить проверку на стороне приложения? В смысле как это сделать более-менее коротко и красиво?


 
Ega23 ©   (2008-07-29 10:16) [43]

Способ 1.
Declare @X int;
Select @X=exec S_MyProc @Id=18;
Select Result=@X;


Способ 2.


CREATE PROCEDURE s_MyProc

 @ID int =-1,
 @SelOut int = 1,
 @Debug int =0
As
 Declare @result int;

if Exists (Select ... from ... where id=@ID)
begin
 Delete from ... where ID=@ID
 Set @Result=0
end
else
 Set Result=-1;

if @SelOut=1
 Select Result=@result;

return(@result);

GO


Вызов второго варианта.
Если хочешь получить результат, то через TADODataSet.Open:
exec S_MyProc @ID=...
Если не хочешь получить результат, то через TADOCommand.Execute:
exec S_MyProc @ID=..., @SelOut=0


 
Viod ©   (2008-07-29 12:54) [44]

Спс.


 
sniknik ©   (2008-07-29 13:32) [45]

> удаляет запись и возвращает 0. Если записи нет, то возвращает -1.
способ 3... правильный. (бредите вы этими процедурами чтоли?)

- простейший запрос в ADOCommand1, внесенный в десигне, вида
delete from ... where ID=:ID
 
выполнение
var
 RecAff: integer;
begin
 ADOCommand1.Parameters.ParamByName("ID").Value:= ...;
 ADOCommand1.Execute(RecAff);
 if RecAff > 0
   then //есть запись, а может и не одна (что подразумевает ID?)
   else //нет записей
end;


все. и зачем сложности с процедурами? не нужна она тут.



Страницы: 1 2 вся ветка

Текущий архив: 2009.03.29;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.029 c
15-1233142456
XeON
2009-01-28 14:34
2009.03.29
Обрезка изображения


15-1232370647
Кое кто
2009-01-19 16:10
2009.03.29
Обитаемый остров


2-1233607516
mr.devil
2009-02-02 23:45
2009.03.29
Задание кодировки для xml


15-1232442288
123-ий
2009-01-20 12:04
2009.03.29
Delphi + PostgreSQL 8.3


1-1208685519
Kolan
2008-04-20 13:58
2009.03.29
Сложный кросс таб отчет. Варианты реализации.