(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)?
Может кто сталкивался с подобным?

Буду благодарен за любую информацию.
sql2000 sql2005
Re: (SQL2005) Database '' is already open and can only have
От: _d_m_  
Дата: 01.07.09 08:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вопрос: что может влезти в базу, если она уже в 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_  
Дата: 01.07.09 11:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, _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
От: avpavlov  
Дата: 03.07.09 10:33
Оценка:
А>У другого был Symantec Antivirus. Вот уж никогда бы не подумал так плохо про Symantec...

А зачем плохо думать на антивирус? Надо плохо думать на идиота, который позволил антивирусу проверять операции с базой данных, ещё может и эвристику врубил, "шоб було"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.