Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-377
xmrz
2003-04-14 18:00
2003.05.01
IB, FB или Yaffil?


14-765
acsoft
2003-04-13 19:28
2003.05.01
Кто разбирается в NMSMTP


3-453
Wedos
2003-04-14 10:55
2003.05.01
Фильтрация по 2 полям


9-368
North Wind
2002-10-01 21:12
2003.05.01
Создание меню в играх


14-760
Шоломицкий
2003-04-14 13:21
2003.05.01
Картинки карт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский