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

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

Проблемы с 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 и параметры не пробовали?


Наверх

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