Вниз
Скачать: CL | DM;

Проблемы с DBExpress   Найти похожие ветки 

← →
Саша   (2003-11-26 12:25) [0]

Нужно выполнить хранимую процедуру MSSQL и получить output параметры или result через TSQLQuery. Код примерно такой:

Fq.SQL.Add("Declare @Res int")
Fq.SQL.Add("exec @Res=<Имя процедуры> <Параметры>")
Fq.SQL.Add("Select @Res");
Fq.SQL.Open

Получается ошибка: Запрос не возвращает курсор

С этим можно что-нибудь сделать? :(


← →
Sandman25 ©   (2003-11-26 12:30) [1]

А через TSQLStoredProc и параметры не пробовали?


← →
Саша   (2003-11-26 12:41) [2]

Надо так


← →
Sandman25 ©   (2003-11-26 12:46) [3]

Тогда Fq.ExecSQL. Ведь Запрос не возвращает курсор


← →
Саша   (2003-11-26 12:55) [4]

А как тогда получить значение параметра?


← →
Sandman25 ©   (2003-11-26 12:57) [5]

Params[0].ParamType := ptOutput; //ptInOut;
ExecSQL;
Caption := Params[0].AsString;


← →
Саша   (2003-11-26 13:01) [6]

Спасибо, сейчас попробую сделать так


← →
Shirson ©   (2003-11-26 13:57) [7]

Что мешает сделать так?:

Fq.SQL.text:="exec <Имя процедуры> <Параметры>";
Fq.SQL.Open


← →
SergSuper   (2003-11-26 14:33) [8]

Надо в процедуре где-то в начале поставить set count on.
А вобще лучше делать через TSQLStoredProc , "надо так" - не аргумент


← →
Саша   (2003-11-26 14:42) [9]

Это я пробовала, получается то же самое.

Кстати, иногда помогает, если сделать вместо


select @res,0

select @res,0

но не всегда


← →
Саша   (2003-11-26 14:43) [10]

то есть вместо

select @res
select @res,0


← →
Nikky ©   (2003-11-26 16:27) [11]

select res = @res


← →
Саша   (2003-11-28 13:23) [12]

Помогло set nocount on в начале хранимой процедуры



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
1-75221
shurik_
2003-12-10 01:15
2003.12.23
события


14-75404
Фагот
2003-11-27 11:07
2003.12.23
Сертификация


1-75171
ISP
2003-12-08 18:25
2003.12.23
Граждане, такой вопрос по TMemoryStream:


3-75079
dim-
2003-12-01 11:18
2003.12.23
Нужна помощь в Селекте


7-75422
WinLamka
2003-10-16 17:41
2003.12.23
XP чтоб его =( хелп плиз!




   Наверх