(SQL2005) Database '' is already open and can only have one
От:
Аноним
Дата:
30.06.09 08:34
Оценка:
Столкнулись со странной ошибкой при переходе с SQL2000 на SQL2005
Есть приложение, написанное еще на VB6.0, которое читает SQL скрипты из файлов и запускает их на указанной базе.
Алгоритм работы примерно такой:
— Подключаемся к базе
— Переводим базу в single user
— Делаем бакап
— Последовательно выполняем скрипты
— В случае ошибки, восстанавливаем базу с бакапа
— Переводим базу в multi user
— Отключаемся
База, в момент выполнения скриптов, всегда находится в single user.
Соединение остается отрытым до окончания работы.
Все прекрасно работает на SQL2000. Но, на 2005-ом, у одного из пользователей в совершенно произвольных местах
скрипта возникает ошибка: Database '' is already open and can only have one user at a time.
Скрипты простые — create function, create procedure и т.п. Они работают у десятков других пользователей (на SQL2000).
Вопрос: что может влезти в базу, если она уже в single user и помешать моему открытому соединению работать дальше?
Может быть это какие-то глюки старого ADO (программа написана на VB6)?
Может кто сталкивался с подобным?
Здравствуйте, Аноним, Вы писали:
А>Вопрос: что может влезти в базу, если она уже в single user и помешать моему открытому соединению работать дальше? А>Может быть это какие-то глюки старого ADO (программа написана на VB6)? А>Может кто сталкивался с подобным?
А>Буду благодарен за любую информацию.
Профайлером посмотри.
Re[2]: (SQL2005) Database '' is already open and can only ha
От:
Аноним
Дата:
01.07.09 09:10
Оценка:
Здравствуйте, _d_m_, Вы писали:
___>Профайлером посмотри.
К сожалению, не могу — пользователь в другом городе.
Re[3]: (SQL2005) Database '' is already open and can only ha
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, _d_m_, Вы писали:
___>>Профайлером посмотри. А>К сожалению, не могу — пользователь в другом городе.
А инет в это городе есть?
Но в таком случае ничем помочь не можем.
Re: (SQL2005) Database '' is already open and can only have
От:
Аноним
Дата:
03.07.09 07:38
Оценка:
Нашли причину таких странных ошибок!
У одного пользователя на сервере был установлен Dr.Web Enterprise.
Блокировал работу, когда на сервере был включен сканер.
У другого был Symantec Antivirus. Вот уж никогда бы не подумал так плохо про Symantec...
По всей видимости, сканер обнаруживает подозрительную сигнатуру в тексте SQL команды, и блокирует ее,
а SQL Server-у ничего не остается делать, как ругаться.
Re[2]: (SQL2005) Database '' is already open and can only ha
А>У другого был Symantec Antivirus. Вот уж никогда бы не подумал так плохо про Symantec...
А зачем плохо думать на антивирус? Надо плохо думать на идиота, который позволил антивирусу проверять операции с базой данных, ещё может и эвристику врубил, "шоб було"