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

Вниз

CommandText does not return a result set   Найти похожие ветки 

 
девушка   (2009-07-07 09:58) [0]

Добрый день!

Для выборки данных из БД MS SQL 2005 использую ХП вида:

select *
from table1 ...


В приложении TDataSet с запросами вида:

execute dbo.sp_CUSTOMER_select
@period=:period
....


Выполняю запрос так:

dstCustomer.Parameters.ParamByName("period").Value:=period_curr;
...
dstCustomer.Active:=true;


У 99% пользователей все работает без ошибок.

Пользователи подключаются со следующими параметрами строки подключения:
Provider=SQLOLEDB.1
Integrated_Security=SSPI


Для пользователей, которые подключаются пологину и паролю (а не с использванием SSPI), на такие вызовы ХП выдется ошибка:
CommandText does not return a result set
Для запросов, вида:
select * from table1 ... без вызова ХП - все проходит нормально.

Такая же ситуация происходит с одним пользователем, подключающимся с SSPI.

Грешу только на какие-то хитрые настройки безопасности в скуль-сервере...


 
Ega23 ©   (2009-07-07 10:03) [1]


> Грешу только на какие-то хитрые настройки безопасности в
> скуль-сервере...


Скорее всего.


 
девушка   (2009-07-07 10:30) [2]

Ошибка нашлась :)
как было написано в http://forum.vingrad.ru/forum/topic-113693/0.html
чудес не бывает.

Оказалось, что процедура, считывающая настройки гридов для пользователей содержит бякостную строку:
CREATE PROCEDURE sys_options.p_GRID_OPT_select
(
@form_class_name varchar(50),
@grid_view_name varchar(50)
)
AS
BEGIN
 /* Тело процедуры */
 declare @id_person_user int;

 EXECUTE dbo.p_PERSON_USER_get_id
 @id_person_user = @id_person_user output;
 
if(@id_person_user is null)  ---ВОТ ОНА
 return;
 
 Select
 *
 from sys_options.GRID_OPT
 where
 id_person_user=@id_person_user and
 form_class_name=@form_class_name and
 grid_view_name=@grid_view_name    
 order by field_index  ;
 
END


И действительно запрос ничего не возвращает...
короче отлаживать надо лучше :(


 
Ega23 ©   (2009-07-07 10:35) [3]

ИМХО, за такой код расстреливать надо.
Заведи параметр и по нему поднимай исключение, например. Или как-то ещё. Но вот так, "тихой сапой"...


 
девушка   (2009-07-07 10:46) [4]

угу


 
Dennis I. Komarov ©   (2009-07-07 11:45) [5]


> Ega23 ©   (07.07.09 10:35) [3]

Уж больно вы грозны сегодня. Ты расстресивать собрался, у ИШ рука к пистолету тянется :)


 
Ega23 ©   (2009-07-07 13:01) [6]


> Уж больно вы грозны сегодня. Ты расстресивать собрался


Видишь ли. Можешь считать это тупостью, можешь педантизмом, можешь как угодно.
Но, ИМХО, если ты вызываешь ХП с определённым набором параметров (не значениями, а именно набором), а ХП в одном случае возвращает ResultSet, а вдругом - нет (в зависимости от значений этих параметров), то за такое надо стрелять.
Верни пустой resultSet. Подними exception. Сделай ещё что-нибудь. Но таких "приколов" как в сабже - ИМХО быть не должно.


 
Dennis I. Komarov ©   (2009-07-07 14:08) [7]


> Но таких "приколов" как в сабже - ИМХО быть не должно

Да я не про это ;)


 
MsGuns ©   (2009-07-07 14:29) [8]

>Ega23 ©   (07.07.09 13:01) [6]

Абсолютно справедливо.

Я даже голосую за предлагаемый тобою расстрел нарушителей


 
Dennis I. Komarov ©   (2009-07-07 14:59) [9]

Ну вот, сейчас найдут третьего, и ... :"(

Сорри за флуд, скучно сегодня однако, у всех каникулы


 
Anatoly Podgoretsky ©   (2009-07-07 15:57) [10]

> Dennis I. Komarov  (07.07.2009 14:59:09)  [9]

И получится революционная тройка.



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
1-1214066182
X9
2008-06-21 20:36
2009.09.06
Открыть диалог поиска текста в WebBrowser


15-1246640964
Тимохов_
2009-07-03 21:09
2009.09.06
Как узнать позицию каретки в TEdit?


2-1245070048
pest
2009-06-15 16:47
2009.09.06
программно вырезать указанный файл в буфер обмена


15-1246621316
XcCCC
2009-07-03 15:41
2009.09.06
DEC to HEX


15-1246653405
Knight
2009-07-04 00:36
2009.09.06
Downloader-ы...