Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
ВнизdbExpress не возвращает исходящие параметры из StoredProc MSSQL Найти похожие ветки
← →
Mad_Net (2003-04-11 11:35) [0]dbExpress не возвращает исходящие параметры из StoredProc MSSQL.
Компоненты SQLStoredProc, SQLQuery и им подобные при исполнении хранимых процедур не возвращают выходящих параметров. Конкретно, например, всавляем запись в какую-то таблицу, надо получить новый ID из таблицы:
CREATE PROCEDURE SP_Ins @Name varchar (64),@ID_OUT int out
as
insert into TabName (Name)
values (@Name)
set @ID_Out=@@identity //в таблице всё нормально
return @ID_Out
параметр не возвращается. Ошибка "Нельзя получить текущий курсор из SQL". Вопрос, как получить выходные параметры из процедуры под dbExpress из MSSQL. Самое главное под InterBase работает нормально. Пробовал Даже писать в концє select @Id_Out as "ID_OUT" и получить как запись, таже ошибка.
Помогите кто может. Заранее благодарен.
← →
MOA (2003-04-11 12:03) [1]CREATE PROCEDURE SP_Ins @Name varchar (64),@ID_OUT int out
as
insert into TabName (Name)
values (@Name)
set @ID_Out=@@identity //в таблице всё нормально
return @ID_Out /* это другое число ("код завершения"), не то же, что и возвращаемый параметр*/
Вы, видимо, пытаетесь получить "код завершения" в датасете? - но ведь его у Вас нет. Надо смотреть "код завершения". Если нужно в датасете, то так:
CREATE PROCEDURE SP_Ins @Name varchar (64),@ID_OUT int /* out - лишнее*/
as
insert into TabName (Name)
values (@Name)
set @ID_Out=@@identity //в таблице всё нормально
SELECT @ID_Out AS IDOut
Или смотрите значение параметра @ID_Out после отработки процедуры.
← →
Mad_Net (2003-04-11 13:25) [2]Если бы я этого не делал ябы сюда не написал.
Выходящие параметры не отображаются в dbExpress.
← →
Fiend (2003-04-11 13:41) [3]То Mad_Net:
Вам те не то хотят сказать. Если выдаётся такая ошибка значит ваша программа пытается получить после выполнения запроса - RecordSet. А Выполнение процедуры с приведенным скриптом, его не возвращает. Потому и выходит ошибка: что запрос выполнене а RecordSet`a нет. Надо видимо выполнить метод который не требует получения RecordSet, например Exec или ExecSQL, не знаю что там у вас есть
← →
Mad_Net (2003-04-11 13:52) [4]Делал процедурины и с RecordSetом и без RecordSetа с RecordSetом может выдать вычисленное значение не из таблицы, а параметр из таблицы не возвращает, при всех выше упомянутых вариантах и многих ещё других. Может это бага с драйверами dbExpress к MSSQL,аналогичные запросы и процедуры в InterBase работают отлично.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c