powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DataSnap-сервер. Получить данные из хранимой процедуры
11 сообщений из 11, страница 1 из 1
DataSnap-сервер. Получить данные из хранимой процедуры
    #39688298
Bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня. проблема в следующем.
Есть DataSnap-сервер, который конектится к MS SQL. Задача получить данные из хранимой процедуры, которая возвращает набор записей.
Для контрола TSQLDataSet установлено Command Type=ctStoredProc, соответственно указано и имя хранимой процедуры и заведены все параметры.
Если при запуске процедуры сделать SQLDataSet_CommProp.Open, то вылетает ошибка, что Cursor not returned from query
Если сделать SQLDataSet_CommProp.ExecSQL, про процедура отрабатывает, но при любой попытке обратиться к ДатаCэту вылетает ошибка, что cannot perform operation on closed DataSet. Подскажите, плз, как обойти эти грабли. Заранее благодарен
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39688310
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bobby,

Для SQLDataSet:
Код: pascal
1.
2.
3.
CommandType:=ctQuery;
SQL:='SELECT * FROM SP_NAME';
Open;


Не?
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39688996
Bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterBobby,

Для SQLDataSet:
Код: pascal
1.
2.
3.
CommandType:=ctQuery;
SQL:='SELECT * FROM SP_NAME';
Open;


Не?

Нет, такой вариант не прокатил. Вот решение, если кому интересно:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SET NOCOUNT ON
DECLARE @temp_n TABLE 
(
field1 INT
.....
fieldn INT
)
INSERT INTO  @temp_n

exec  [dbo].SP_NAME @param1 = :param1

SELECT * FROM @temp_n


Вот это вставляется в TSQLDatyaSet.CommandSting
И в серверном методе вызывается уже
SQLDataSet.open;
ОЧЕНЬ ВАЖНО: SET NOCOUNT ON
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39689048
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BobbyDarkMasterBobby,

Для SQLDataSet:
Код: pascal
1.
2.
3.
CommandType:=ctQuery;
SQL:='SELECT * FROM SP_NAME';
Open;


Не?

Нет, такой вариант не прокатил. Вот решение, если кому интересно:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SET NOCOUNT ON
DECLARE @temp_n TABLE 
(
field1 INT
.....
fieldn INT
)
INSERT INTO  @temp_n

exec  [dbo].SP_NAME @param1 = :param1

SELECT * FROM @temp_n


Вот это вставляется в TSQLDatyaSet.CommandSting
И в серверном методе вызывается уже
SQLDataSet.open;
ОЧЕНЬ ВАЖНО: SET NOCOUNT ON

какое это решение??? чешуя да и только
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39689052
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaratIskкакое это решение??? чешуя да и толькоКак ни странно, это критичное решение.
Я только один раз столкнулся, что из-за его отсутствия прога тупо и молча не работала (QlikView).
Обычно отсутствие НОКАУНТ не мешает.
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39689056
Bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo,

а в чем критичость? Как ни странно, но БЕЗ SET NOCOUNT ON выдавало Cursor not returned from query
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39689057
Bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaratIsk,
Предложите более лучшее
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39689060
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoMaratIskкакое это решение??? чешуя да и толькоКак ни странно, это критичное решение.
Я только один раз столкнулся, что из-за его отсутствия прога тупо и молча не работала (QlikView).
Обычно отсутствие НОКАУНТ не мешает.

причем тут SET NOCOUNT ON ???
это обычная команда не возвращать служебные данные при выполнении ХП
а чешуя в том, что малограмотный ТС не умеет получать данные непосредственно из ХП и придумывает костыли вроде временной таблицы
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39689061
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BobbyMaratIsk,
Предложите более лучшее

для начала - что используется для работы с MS SQL ?
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39689253
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaratIskпричем тут SET NOCOUNT ON ???
это обычная команда не возвращать служебные данные при выполнении ХПЭта обычная команда иногда необычно мешает. :)
...
Рейтинг: 0 / 0
DataSnap-сервер. Получить данные из хранимой процедуры
    #39689256
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее ее отсутствие.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DataSnap-сервер. Получить данные из хранимой процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]