Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) exec sp_debhelp не возвращает строки (число прочтений - 6001 )
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
exec sp_debhelp не возвращает строки
05. Августа 2009 :: 10:43
Печать  
Subj собственно! И не пойму почему
Попытался воспользоваться отчетом http://infostart.ru/projects/2665/ и получил пустой список баз.
Т.е. выполнение запроса
Код
Выбрать все
exec sp_helpdb 

возвращает пустую ТЗ
При этом у людей я так понимаю работает как положено. У меня в SQL QA тоже работает. А в 1С нет! Где я дурак? И почему? Печаль
Снова заморочки ODBC?
  
Наверх
ICQ  
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: exec sp_debhelp не возвращает строки
Ответ #1 - 05. Августа 2009 :: 10:52
Печать  
у меня работает
Код
Выбрать все
	RS = СоздатьОбъект("ODBCRecordSet");
	RS.УстБД1С();

	тз = RS.ВыполнитьИнструкцию("exec sp_helpdb");
	тз.ВыбратьСтроку(); 

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #2 - 05. Августа 2009 :: 11:02
Печать  
alexdd писал(а) 05. Августа 2009 :: 10:52:
у меня работает
Код
Выбрать все
	RS = СоздатьОбъект("ODBCRecordSet");
	RS.УстБД1С();

	тз = RS.ВыполнитьИнструкцию("exec sp_helpdb");
	тз.ВыбратьСтроку(); 


у меня тоже работает
Код
Выбрать все
	RS = СоздатьОбъект("ODBCRecordSet");
	тз = RS.ВыполнитьИнструкцию("exec sp_helpdb");
	тз.ВыбратьСтроку();
 


( alexdd)  для родной базы RS.УстБД1С();       не нужен
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: exec sp_debhelp не возвращает строки
Ответ #3 - 05. Августа 2009 :: 11:04
Печать  
Z1 писал(а) 05. Августа 2009 :: 11:02:
( alexdd)  для родной базы RS.УстБД1С();       не нужен

да я знаю, по привычке уже пишу везде, не мешаетУлыбка)
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #4 - 05. Августа 2009 :: 11:16
Печать  
alexdd писал(а) 05. Августа 2009 :: 10:52:
у меня работает
Код
Выбрать все
	RS = СоздатьОбъект("ODBCRecordSet");
	RS.УстБД1С();

	тз = RS.ВыполнитьИнструкцию("exec sp_helpdb");
	тз.ВыбратьСтроку(); 


А у меня тз пустая Печаль Т.е. ошибок не выдает но и ни одной строки не возвращает.
1С++ 3.0.1.22
ODBC Driver SQL Server 2000.85.1132.00 - вроди как тоже последний (новее нету)
Может где какие настройки в QDBC хитрые?
Или SQL сервера.......
Попрбовал с трех разных машин - результат один! Отрицательный! Печаль
  
Наверх
ICQ  
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: exec sp_debhelp не возвращает строки
Ответ #5 - 05. Августа 2009 :: 11:25
Печать  
гм. ODBC драйвер тот же, SQL Server  2000 - 8.00.2039(SP4). А под какой учеткой это выполняется? Под sa? С правами там ничего не может быть? А если set nocount on в начале дописать
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: exec sp_debhelp не возвращает строки
Ответ #6 - 05. Августа 2009 :: 11:29
Печать  
ну а так если
Код
Выбрать все
select *
 from master.dbo.sysdatabases 

  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #7 - 05. Августа 2009 :: 12:07
Печать  
alexdd писал(а) 05. Августа 2009 :: 11:29:
ну а так если
Код
Выбрать все
select *
 from master.dbo.sysdatabases 


Блин! Чудеса! Так 1С вообще падает
Может потому что у меня 1С подключается к базе не как 'sa' а под своим юзверем? Тогда какие ему права нужно?
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #8 - 05. Августа 2009 :: 12:14
Печать  
Кстати в SQL QA я конекчусь под тем-же пользователем что и в 1С
Но под SQL QA работают нормально оба запроса а под 1С один не работает а второй вАлит 1С
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #9 - 05. Августа 2009 :: 12:15
Печать  
avgreen писал(а) 05. Августа 2009 :: 12:07:
alexdd писал(а) 05. Августа 2009 :: 11:29:
ну а так если
Код
Выбрать все
select *
 from master.dbo.sysdatabases 


Блин! Чудеса! Так 1С вообще падает
Может потому что у меня 1С подключается к базе не как 'sa' а под своим юзверем? Тогда какие ему права нужно?

Для начала создай новое соеденение DSN к своей sql базе
через пользователя sql sa и запусти вышеприведенный тест
обязательно с RS.УстБД1С.

Также какая авторизация конектов у sql сервера.
У меня везде стоит sql авторизация.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #10 - 05. Августа 2009 :: 12:17
Печать  
avgreen писал(а) 05. Августа 2009 :: 12:14:
Кстати в SQL QA я конекчусь под тем-же пользователем что и в 1С
Но под SQL QA работают нормально оба запроса а под 1С один не работает а второй вАлит 1С

что имеешь ввиду под пользователем.
пользователь Windows ?
пользователь sql ?
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #11 - 05. Августа 2009 :: 12:31
Печать  
Z1 писал(а) 05. Августа 2009 :: 12:17:
avgreen писал(а) 05. Августа 2009 :: 12:14:
Кстати в SQL QA я конекчусь под тем-же пользователем что и в 1С
Но под SQL QA работают нормально оба запроса а под 1С один не работает а второй вАлит 1С

что имеешь ввиду под пользователем.
пользователь Windows ?
пользователь sql ?

Пользователя SQL конечно
У меня смешанная авторизация на серваке SQL
И 1С нормально работает. Я ей пользователя БД завел на SQL сервере и она ходит туда именно под ним. И не только 1С нормально работает но и 1С++ и куча классов при нем. В том числе классы, которые активно работают с SQL базой (мой класс ПоставщикДанныхЖурналаРегистрацииSQL к примеру)
Правда все они работают с родной 1С базой torg_db .....
  
Наверх
ICQ  
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: exec sp_debhelp не возвращает строки
Ответ #12 - 05. Августа 2009 :: 12:40
Печать  
посмотри процедуру sp_helpdb. Там есть такое
Код
Выбрать все
	if (has_dbaccess(@name) <> 1)
	begin
	  delete #spdbdesc where current of ms_crs_c1
	  raiserror(15622,-1,-1, @name)
	end
 


т.е. нужно дать юзеру доступ к базам
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #13 - 05. Августа 2009 :: 12:45
Печать  
В BOL написано Цитата:
Разрешения

Если указана единственная база данных, то обязательно членство в роли public в базе данных. Если не указано ни одной базы данных, то обязательно членство в роли public в базе данных master.

Если база данных недоступна, процедура sp_helpdb выводит сообщение об ошибке номер 15622 и всю имеющуюся информацию о базе данных.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #14 - 05. Августа 2009 :: 13:09
Печать  
berezdetsky писал(а) 05. Августа 2009 :: 12:45:
В BOL написано Цитата:
Разрешения

Если указана единственная база данных, то обязательно членство в роли public в базе данных. Если не указано ни одной базы данных, то обязательно членство в роли public в базе данных master.

Если база данных недоступна, процедура sp_helpdb выводит сообщение об ошибке номер 15622 и всю имеющуюся информацию о базе данных.

Есть членство в роли public в master а для torg_db он dbo
"Он", в смысле этот логин 'torg' через который 1С конектится к серваку...

Еще интересное наблюдение, если задать запрос
Код
Выбрать все
exec sp_helpdb master 


или
Код
Выбрать все
exec sp_helpdb torg_db 


то по одной базе выдает информацию - одну строку как и положено. А если
Код
Выбрать все
exec sp_helpdb 

т.е. по всем - то фиг!
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать