powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Execute SP с параметром OUTPUT
14 сообщений из 14, страница 1 из 1
Execute SP с параметром OUTPUT
    #36449608
nfi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем! Старая история с новыми проблемами. Перехожу с PB9 (Ent) на PB11.5 (Prof), MS SQL 2005, ODBC. Не желает запускать процедуры, объявленные с параметром OUTPUT. Например:
DECLARE ReportForma251 PROCEDURE FOR sp_ReportForma251
@success = 0 OUTPUT,
@userID = :gstr_user.i_userid,
@rptDay = :ldt_rptday;
Команда EXECUTE ReportForma251; завершается с ошибкой:
Cannot use the OUTPUT option when passing a constant to a stored procedure
Причем, ошибка НЕ ВОЗНИКАНТ на соединении с правами sysadmin. Может, кто-нибудь сталкивался с такой бедой? Спасибо
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36449719
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что в профайлере видно когда запускается с правами sysadmin и без (на каком SQL statement'е ошибка)?
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36449764
nfi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пошагово выполняла, ошибка на команде EXECUTE
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36449790
alexis glinski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так не нужно передавать константу как OUTPUT :)
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36449805
nfi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замена константы переменной не помогает
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36449810
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nfiЯ пошагово выполняла, ошибка на команде EXECUTE
Посмотрите в profiler'е SQL Server'а во что транслируется PB команда PREPARE и EXECUTE.
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36450063
nfi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Profiler SQL с sysadmin
declare @p1 int
set @p1=0
exec sp_ReportForma251 @p1 output,2,''2009-12-01 00:00:00:000''
select @p1

Profiler SQL без sysadmin
execute sp_ReportForma251 @success =0 OUTPUT , @userID =2 , @rptDay ='2010-02-04 00:00:00.000'
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36450193
nfi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В файле dbtrace.log:

a). Есть права sysadmin

(a620008): USERID=dbo
(a620008): SERVER=SNB-RETAIL-NEW
(a620008): DBPARM=ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMT',ConnectString='Server=SNB-RETAIL-NEW;Database=retail_test;Driver=SQL Server;CommLinks=TCPIP(IP=192.168.0.200:1433);UID=kassa1;PWD=961329',StripParmNames='YES',PBNewSPInvocation='YES'(DBI_CONNECT) (0.001 MS / 0.029 MS)
(a620008): (DBI_CURSOR_CONNECTION) (0.001 MS / 0.030 MS)
(a620008): (DBI_SPECIAL_DECIMAL) (0.000 MS / 0.030 MS)
(a620008): (DBI_SPECIAL_DOUBLE) (0.000 MS / 0.030 MS)
(a620008): (DBI_DATE_STRING) (0.015 MS / 0.045 MS)
(a620008): EXECUTE:
(a620008): execute sp_ReportForma251 @success =0 OUTPUT , @userID =2 , @rptDay ='2009-12-01 00:00:00.000' (DBI_RUNTIME_EXECUTE) (10266.645 MS / 10266.690 MS)

б). Нет прав sysadmin

(a620c10): USERID=kassa1
(a620c10): SERVER=SNB-RETAIL-NEW
(a620c10): DBPARM=ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMT',ConnectString='Server=SNB-RETAIL-NEW;Database=retail_test;Driver=SQL Server;CommLinks=TCPIP(IP=192.168.0.200:1433);UID=kassa1;PWD=064520',StripParmNames='YES',PBNewSPInvocation='YES'(DBI_CONNECT) (0.000 MS / 0.024 MS)
(a620c10): (DBI_CURSOR_CONNECTION) (0.000 MS / 0.024 MS)
(a620c10): (DBI_SPECIAL_DECIMAL) (0.000 MS / 0.024 MS)
(a620c10): (DBI_SPECIAL_DOUBLE) (0.000 MS / 0.024 MS)
(a620c10): (DBI_DATE_STRING) (0.012 MS / 0.036 MS)
(a620c10): EXECUTE:
(a620c10): execute sp_ReportForma251 @success =0 OUTPUT , @userID =2 , @rptDay ='2009-12-01 00:00:00.000' (DBI_RUNTIME_EXECUTE) (5.153 MS / 5.189 MS)
(a620c10): *** ERROR 179 ***(rc -1) : SQLSTATE = 37000
[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot use the OUTPUT option when passing a constant to a stored procedure.
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36450356
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А права у пользователе есть на запуск ReportForma251?
Попробуйте вызвать CONNECT сразу перед вызовом процедуры. Из приведенного фрагмента не ясно, почему PB решает вызвать процедуру вторым способом - значит он что-то считывает с сервера до этого.
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36451388
nfi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Права есть. Если убрать OUTPUT, процедура отрабатывает. То, что у пользвателя есть роль sysadmin, запоминается при выполнении CONNECT. Непонятно, как заставить PB определять USERID=dbo независимо от наличия роли sysadmin.
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36451551
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nfiПрава есть. Если убрать OUTPUT, процедура отрабатывает. То, что у пользвателя есть роль sysadmin, запоминается при выполнении CONNECT. Непонятно, как заставить PB определять USERID=dbo независимо от наличия роли sysadmin.
Указывайте в PB схему, в которой находится процедура явно:
Код: plaintext
DECLARE ReportForma251 PROCEDURE FOR dbo.sp_ReportForma251
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36451886
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nfiТо, что у пользвателя есть роль sysadmin, запоминается при выполнении CONNECT.
И это кстати ложное утверждение.
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36452156
nfi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк, спасибо большое, заработала процедура. Как вы нашли решение?
...
Рейтинг: 0 / 0
Execute SP с параметром OUTPUT
    #36452702
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nfiМарк, спасибо большое, заработала процедура. Как вы нашли решение?
Если прочесть про схемы в MS SQL, то это сделать не сложно.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Execute SP с параметром OUTPUT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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