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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
6-667
ga3
2003-03-06 03:51
2003.05.01
свойства обозревателя


3-442
Саня
2003-04-13 18:56
2003.05.01
что за ошибка вылетает


3-486
user2
2003-04-14 17:12
2003.05.01
TComboBox и БД


3-475
xxxCrazyManxxx
2003-04-14 15:36
2003.05.01
Сортировка в DBGrid


3-421
Alex_t
2003-04-11 19:50
2003.05.01
проверка корректности данных в таблице