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

Вниз

Возварщение параметров хранимой процедуры (MSSQL+DBExpress)   Найти похожие ветки 

 
Asker ©   (2003-07-29 13:32) [0]

Как получить результат выполнения хранимой процедуры в Deplhi из MSSQL используется DBExpress:

Моя процедура:
CREATE PROCEDURE dbo.nextoperatind
@IND INTEGER OUTPUT
AS
begin tran
SELECT @IND=MAX(operat) from idx WITH (TABLOCKX)
update idx set operat=@IND+1
commit tran
GO

пробовал:
EXECUTE NEXTOPERATIND :@IND OUTPUT;
- в результате получаю 0 вместо занчения
(или DECLARE @IND INTEGER;
EXECUTE NEXTOPERATIND @IND OUTPUT;
SELECT IND = @IND)

EXEC sp_serveroption SRV , "data access", "true";
SELECT * FROM OPENQUERY(SRV,"exec ballon.dbo.nextoperatind ")
- выдает, что нужен мой объявленный параметр @IND

Как можно объявить запрос, чтобы в результате выводился бы выходной параметр из хранимой процедуры?

При использовании TSQLStoredProc, если в ней задать процедуру nextoperatind и ручками прописать параметр (не видит сама она процедур сервера :-( ) то выдаст выход за границы диапазона параметра @IND


 
KSergey ©   (2003-07-29 13:53) [1]

Все делал только на ADO, но подозреваю, что одно и то же.

При использовании TSQLStoredProc, если в ней задать процедуру nextoperatind и ручками прописать параметр (не видит сама она процедур сервера :-( ) то выдаст выход за границы диапазона параметра @IND

Наверное, надо с типом параметра разобраться аккуратнее и не забыть описать, что он выходной из процедуры.

пробовал:
EXECUTE NEXTOPERATIND :@IND OUTPUT;
- в результате получаю 0 вместо занчения


Это я что-то вовсе не понимаю, так только параметры из программы можно впихать

(или DECLARE @IND INTEGER;
EXECUTE NEXTOPERATIND @IND OUTPUT;
SELECT IND = @IND)


А) убрать тчк с зпт совсем
Б) последнюю можно переписать как SELECT @IND, правда тогда имени поля не будет, но можно обратиться по индексу


 
Asker ©   (2003-07-29 14:10) [2]

Параметры на ней прописаны нормально, он же ругается просто при попытке оращения к нулевому параметру.

Да без точек с запятой - это то же самое

А насчет SELECT @IND я не понял: можно в виде примера?


 
KSergey ©   (2003-07-29 14:25) [3]

Asker © (29.07.03 14:10)
Параметры на ней прописаны нормально, он же ругается просто при попытке оращения к нулевому параметру.


Ну если нормально...

Да без точек с запятой - это то же самое

В смысле тоже самое? Хотя я все время путаюсь с этими нюансами именно дельфийского написания SQL текста (не пинать!), но там есть вроде какие-то тонкости.. Знаю только, что я никогда не пишу там тчк с зпт.
Совет: попробуйте все эти скрипты отладить в Query Analizer"е. Там проще найти ошибки, да и дельфи "не будет виновата".

А насчет SELECT @IND я не понял: можно в виде примера?

Мысли в слух.


 
Asker ©   (2003-07-29 14:39) [4]

Да я тоже частенько путаюсь с нюансами написания SQL текста в различных БД... В Query Analizer все прекрасно проходит. Это в дельфи не возвращаестя набор данных, если в одном запросе написано более одного оператора.(хотя сами команды прекрасно выполняются)


 
KSergey ©   (2003-07-29 14:45) [5]

Asker © (29.07.03 14:39)
Это в дельфи не возвращаестя набор данных, если в одном запросе написано более одного оператора.(хотя сами команды прекрасно выполняются)


Наглая ложь ;)
Я так делал, повторять сейчас лень.
К сожалению, проблем в вашем коде не вижу, правда здесь нет куска кода программы: как это все вызывается?


 
Asker ©   (2003-07-30 06:53) [6]

Query.Open;
или StoredProc.ExecProc :-)

Если работать через АДО, то действительно все работает(сам пробовал) - и через запрос и через хранимую процедуру. Глюки начинаются, если работать через DBExpress.



Страницы: 1 вся ветка

Текущий архив: 2003.08.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
4-82005
Виталий22
2003-06-21 12:27
2003.08.25
Управление другим приложением


1-81745
Chlavik
2003-08-08 19:16
2003.08.25
Быстрый цикл на асме


1-81633
sergg
2003-08-12 17:47
2003.08.25
Определение является ли строка числом


14-81886
AlexVK
2003-08-08 06:38
2003.08.25
Использование ярлыков


3-81566
Ромн
2003-07-30 16:32
2003.08.25
Сообщение об ошике BDE