Главная страница
    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
1-526
Silver_
2003-04-17 14:44
2003.05.01
DateTimeFormat - Во всем приложении


14-768
ZeroDivide
2003-04-14 09:46
2003.05.01
Стоит ли учиться слепому десятипальцевому методу?


8-654
OxOTHuK
2003-01-25 23:26
2003.05.01
Слои


3-460
Calm
2003-04-14 12:29
2003.05.01
IB+ASP, как создать web-интерфейс к отчету?


14-745
Zhirnov Maxim
2003-04-13 15:46
2003.05.01
Как соединиться модемами в WinXP?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский