Вниз
Скачать: CL | DM;

Проблема с вызовом хранимой процедуры MSSQL+ADO   Найти похожие ветки 

← →
kvit ©   (2003-12-19 07:45) [0]

Есть хранимая процедура:
CREATE PROCEDURE [P1]
AS

insert into TABLE1 (npp, name)
values (1, "qwerty")

select * from TABLE1

но делфи выдает ошибку, что данная процедура не выдает result set, хотя через BDE Query - работает.
Хранимые процедуры с чистым select или insert работают, а в смешенном исполнении ругаются. Как быть?

Вызов из делфи:

exec P1

ADOQuery.Open;


← →
BoxTer ©   (2003-12-19 07:53) [1]

а зачем ADOQuery.Open...
Просто: P1.Open - сделает, что нужно и вернет набор данных


← →
kvit ©   (2003-12-19 08:45) [2]

не понял запись P1.Open!
Это что такой ADO-объект или SQL строка?


← →
Nikolay M. ©   (2003-12-19 09:12) [3]

А через ADOStoredProc работает?


← →
kvit ©   (2003-12-19 09:25) [4]

Через ADOStroreProc тоже не работает!
там SQL строка: exec P1

а открываю как: ADOStoreProc.Open

примечание!
insert отрабатывает, а select - нет!
тоже самое и через ADOQuery.
ошибка нет возвращаемого result set


← →
Shirson ©   (2003-12-19 09:33) [5]

А если так?

CREATE PROCEDURE [P1]
AS

set nocount on

insert into TABLE1 (npp, name)
values (1, "qwerty")

set nocount off

select * from TABLE1


← →
Nikolay M. ©   (2003-12-19 09:39) [6]

У меня прекрасно работает. А npp, случайно, не первичный ключ?
Если грохнуть все данные из таблицы и сделать инсерт только поля name?


← →
kvit ©   (2003-12-19 09:51) [7]

дело в том, что настоящая хранимая процедура делает большое количество вычисления, а в результате должен быть select результата. Можно сделать и через буфферную таблицу и обойтись двумя прецедурами обработки и выборки, но не хотелось бы ломать свой стереотип BDE, где это все прекрасно работало!


← →
Ega23 ©   (2003-12-19 09:57) [8]


> kvit © (19.12.03 09:51) [7]

Set NoCount ON/OFF однозначно.


← →
Nikolay M. ©   (2003-12-19 10:06) [9]


> Set NoCount ON/OFF

Имхо, ошибка была бы другая, а не "отсутствие резалтсета".


← →
Shirson ©   (2003-12-19 10:15) [10]

Вообще-то странно. У меня похожая процедура используется и без nocount прекрасно работатет. И на отсутствие датасета не ругается. (причём таких процедур и не одна совсем)

Тут, видимо, что-то с самой таблицей.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.015 c
14-49713
McSimm
2003-12-26 10:50
2004.01.16
« По Вашим письмам »


1-49518
Хомячок
2003-12-30 11:04
2004.01.16
Вырубаем строку(по-хорошему)...


3-49401
new
2003-12-19 15:54
2004.01.16
dbgrid


9-49383
Плохой человек
2003-06-17 16:09
2004.01.16
Так в чём же всё-таки писать аркады?..


14-49748
AlexHermit
2003-12-24 12:29
2004.01.16
Взаимодействие классов




   Наверх