Ошибка при выполнении прямого запроса

1. an2007 15.06.22 11:55 Сейчас в теме
Добрый день.
Конфигурация: Windows 2008 x86 + MS SQL Server 2000 sp4 + 1c v7.7
При выполнении прямого запроса (очистка реквизитов прайса) 1с-ка вылетает с ошибкой: State 08S01, native 0, message [Microsoft][ODBC SQL Server Driver]Communication link failure.
Сам прямой запрос:
	RS = СоздатьОбъект("ODBCRecordset");
	RS.УстБД1С();
	стрЗапроса = "
	|UPDATE
	|  $Справочник.Прайсы 
	|SET
	|  $Справочник.Прайсы.Цена1 = 0,
	|  $Справочник.Прайсы.Цена2 = 0,
	|  $Справочник.Прайсы.Цена3 = 0,
	|  $Справочник.Прайсы.Цена4 = 0,
	|  $Справочник.Прайсы.Цена5 = 0,
	|  $Справочник.Прайсы.Цена6 = 0,
	|  $Справочник.Прайсы.Цена7 = 0,
	|  $Справочник.Прайсы.наличие1 = '',
	|  $Справочник.Прайсы.наличие2 = '',
	|  $Справочник.Прайсы.наличие3 = '',
	|  $Справочник.Прайсы.наличие4 = '',
	|  $Справочник.Прайсы.наличие5 = '',
	|  $Справочник.Прайсы.наличие6 = '',
	|  $Справочник.Прайсы.наличие7 = ''
	|FROM
	|  $Справочник.Прайсы";
	рез = RS.ВыполнитьИнструкцию(стрЗапроса);
Показать

Если это же делать стандартными средствами, то все нормально.
По теме из базы знаний
Найденные решения
8. uk09 17.06.22 09:11 Сейчас в теме
(4)
Попробуйте , вот так :
DBCC CHECKDB ('DataBaseName', REPAIR_ALLOW_DATA_LOSS) , "DataBaseName" - имя базы
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Prikum 3 15.06.22 12:02 Сейчас в теме
(1)
Communication link failure.
что не так в соединение
3. uk09 16.06.22 16:48 Сейчас в теме
Добрый день!

После системной ошибки "State 08S01, native 0, message [Microsoft][ODBC SQL Server Driver]Communication link failure", появляется сообщение "Невосстановимая ошибка базы данных!" ?
4. an2007 16.06.22 17:09 Сейчас в теме
8. uk09 17.06.22 09:11 Сейчас в теме
(4)
Попробуйте , вот так :
DBCC CHECKDB ('DataBaseName', REPAIR_ALLOW_DATA_LOSS) , "DataBaseName" - имя базы
5. user1203706 14 16.06.22 19:10 Сейчас в теме
(1) RS.УстБД1С() вот это выкинь, для начала
7. uk09 17.06.22 09:00 Сейчас в теме
(5)

RS = СоздатьОбъект("ODBCRecordset");
    RS.УстБД1С();

Это - код из примера в учебнике. Код - рабочий, хотя создать объект Recordset, конечно, можно и другими способами
6. user1203706 14 16.06.22 19:13 Сейчас в теме
ну и ВыполнитьСкалярный пользуй
9. user1203706 14 17.06.22 09:28 Сейчас в теме
(7) ёёё..."учебник" был написан еще во времена динозавров, не надо делать УстБД1С, если это запрос к этой базе.
(8) вот так не надо делать, если конечно, базу не жалко
10. uk09 17.06.22 11:40 Сейчас в теме
(9)
При наличии backup и тестовой базы, почему не надо делать ? Религия не позволяет ? )))
11. user1203706 14 17.06.22 11:51 Сейчас в теме
(10) зачем ? С чего уверенность, что у автора битая база + делать её еще и с флагом потери данных ?
12. uk09 17.06.22 11:51 Сейчас в теме
(11)
Сообщение появляется, прочтите, выше
13. user1203706 14 17.06.22 12:03 Сейчас в теме
(12) Это сообщение о неверном соединении с бд, база при этом не битая.
И делать восстановление с потерей данной..это уровень.
14. uk09 17.06.22 12:11 Сейчас в теме
(13)
Начнем с того, что это - проверка. И , если делать на тестовой, то это - исключение возможной ошибки..
С комментариями про уровень, думаю, Вам лучше воздержаться, тут таких гуру - как на барбосе блох
15. user1203706 14 17.06.22 12:17 Сейчас в теме
(14) Проверка делается без флага REPAIR_ALLOW_DATA_LOSS.

Давать вредные советы, это да, уровень.
16. uk09 17.06.22 12:19 Сейчас в теме
(15)
Это Ваше личное горе, следовать советам , или сидеть с опущенной гривой
17. user1203706 14 17.06.22 12:36 Сейчас в теме
(16) Аргументы закончились ?
18. uk09 17.06.22 12:40 Сейчас в теме
(17)
Почему ? Я дала советы, ждем ответа ТС. Вы же тут обычный зевака, с Вами для чего дискутировать ?
19. user1203706 14 17.06.22 12:42 Сейчас в теме
(18) Когда аргументы заканчиваются, переходят на личности, ловлю блох и зевака.
20. user1203706 14 17.06.22 12:43 Сейчас в теме
А что нужно было сделать в первую очередь, написано в (5) и (6).
21. uk09 17.06.22 12:49 Сейчас в теме
(19)
Вы бросьте эту дурную привычку, обсуждать вопросы без ТС. У нас , и без Вас, вся страна - советов.
Вернется ТС, тогда будет понятно , чьи советы он воспринял
22. an2007 20.06.22 09:45 Сейчас в теме
Всем привет, спасибо за сообщения.

Результат DBCC CHECKDB:
Server: Msg 8928, Level 16, State 1, Line 1
Object ID 445960665, index ID 5: Page (1:44185) could not be processed. See other errors for details.
Server: Msg 8939, Level 16, State 1, Line 1
Table error: Object ID 445960665, index ID 5, page (1:44185). Test (m_freeCnt == freeCnt) failed. Values are 0 and 5.
CHECKDB found 0 allocation errors and 2 consistency errors in table 'SC6084' (object ID 445960665).
SC6084 - это и есть таблица Справочник.Прайсы.

Может её через конфигуратор вообще удалить и заново создать?
23. CheBurator 3126 20.06.22 15:01 Сейчас в теме
(22)
SC6084

если этот справочник без проблем можно заполнить с нуля - то нефиг его ремонтировать.
в скуле удали эту таблицу и запусти базу в пользовательском режиме обычном, система его сама и создаст...
24. CheBurator 3126 20.06.22 15:02 Сейчас в теме
(22) через конфигуратор я бы не стал удалять.
25. an2007 20.06.22 16:09 Сейчас в теме
Ок, всем спасибо, вопрос закрыт, ещё бы знать, что привело к этому?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот