![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемы с DBExpress [D7, MSSQL]
Саша © (2003-11-26 12:25:00)
Нужно выполнить хранимую процедуру MSSQL и получить output параметры или result через TSQLQuery. Код примерно такой:
Fq.SQL.Add("Declare @Res int")
Fq.SQL.Add("exec @Res=<Имя процедуры> <Параметры>")
Fq.SQL.Add("Select @Res");
Fq.SQL.Open
Получается ошибка: Запрос не возвращает курсор
С этим можно что-нибудь сделать? :(
Саша (2003-11-28 13:23:00) [1]
Помогло
set nocount onв начале хранимой процедуры
Nikky (2003-11-26 16:27:00) [2]
select res = @res
Саша (2003-11-26 14:43:00) [3]
то есть вместо
select @res
select @res,0
Саша (2003-11-26 14:42:00) [4]
Это я пробовала, получается то же самое.
Кстати, иногда помогает, если сделать вместо
select @res,0
select @res,0
но не всегда
SergSuper (2003-11-26 14:33:00) [5]
Надо в процедуре где-то в начале поставить set count on.
А вобще лучше делать через TSQLStoredProc , "надо так" - не аргумент
Shirson (2003-11-26 13:57:00) [6]
Что мешает сделать так?:
Fq.SQL.text:="exec <Имя процедуры> <Параметры>";
Fq.SQL.Open
Саша (2003-11-26 13:01:00) [7]
Спасибо, сейчас попробую сделать так
Sandman25 (2003-11-26 12:57:00) [8]
Params[0].ParamType := ptOutput; //ptInOut;
ExecSQL;
Caption := Params[0].AsString;
Саша (2003-11-26 12:55:00) [9]
А как тогда получить значение параметра?
Sandman25 (2003-11-26 12:46:00) [10]
Тогда Fq.ExecSQL. Ведь Запрос не возвращает курсор
Саша (2003-11-26 12:41:00) [11]
Надо так
Sandman25 (2003-11-26 12:30:00) [12]
А через TSQLStoredProc и параметры не пробовали?