Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MSSQL LocalDB запуск экземпляра после перезагрузки 
:(
    Опции темы
Gamlex
Дата 20.1.2015, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 2.7.2012

Репутация: нет
Всего: нет



Пишу программку с использованием базы данных на MS SQL LocalDB. С созданием экземпляра разобрался, подключение программы к базе (файлу .mdf) тоже работает. Создаю именованный экземпляр следующим образом:

SqlLocalDB.exe create Base
SqlLocalDB.exe start Base
SqlLocalDB.exe info Base
Получаю именованный канал типа np:\\.\pipe\LOCALDB#A7D28F1F\tsql\query

В подключении к базе пишу именно этот канал.

Проблема в том, что после каждой перезагрузки экземпляр не активен и часть имени именованного канала его меняется. Как сделать чтобы экземпляр автоматически запускался после перезагрузки и чтобы у него было какое то статическое имя? 

P.S. При подключении типа (local)\Base - c++ builder в котором пишу программу выдаёт ошибку о невозможности подключения.
P.P.S. Автоматический экземпляр создавал, но он по-моему тоже отключается после перезагрузки.
PM MAIL   Вверх
Akina
Дата 20.1.2015, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Цитата(Gamlex @  20.1.2015,  15:16 Найти цитируемый пост)
При подключении типа (local)\Base - c++ builder в котором пишу программу выдаёт ошибку о невозможности подключения.

Какая версия .Net? Если 4.0.2 или старше - то подключайся к (localdb)\.\Base.
См. http://msdn.microsoft.com/ru-ru/library/hh510202.aspx
Иначе - придётся каждый раз энумеровать существующие каналы.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Gamlex
Дата 21.1.2015, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 2.7.2012

Репутация: нет
Всего: нет



Цитата(Akina @  20.1.2015,  16:39 Найти цитируемый пост)
Какая версия .Net?


Стоит .Net Framework 4.5.1
SQL Management Studio подключается с именем сервера (localdb)\Base, а вот при подключении в программе к такому имени выдаёт ошибку (Сервер не существует или доступ запрещён). К именованному каналу (который меняется после каждой перезагрузки) подключается отлично.
К общим экземпляром (localdb)\.\Base не соединяется ни Management Studio, ни Билдер. 

Принципиально ли задание именно общего канала (с точкой)? Его нужно как то особенно создавать или это обычный именованный канал которому подключаются через \.\?

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  2015_01_21_08_44_01_Скриншот_экрана.png 51,43 Kb
PM MAIL   Вверх
Akina
Дата 21.1.2015, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Цитата(Gamlex @  21.1.2015,  10:00 Найти цитируемый пост)
Принципиально ли задание именно общего канала (с точкой)? 

Ну я дал ссылку... там же ж пишут:
Цитата

Подключение к автоматическому экземпляру
Самым простым способом использования LocalDB является подключение к автоматическому экземпляру, владельцем которого является текущий пользователь, с использованием строки подключения "Server=(localdb)\MSSQLLocalDB;Integrated Security=true".  Для подключения к определенной базе данных с помощью имени файла выполните подключение с использованием строки подключения, аналогичной "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf". 

Примечание 
При первом подключении пользователя компьютера к LocalDB необходимо создать и запустить автоматический экземпляр.  Дополнительное время, необходимое для создания экземпляра, может стать причиной того, что попытка соединения завершится с ошибкой истечения времени ожидания. В этом случае подождите несколько секунд до завершения процесса создания экземпляра, а затем подключитесь снова. 


Цитата

Соединение с общим экземпляром LocalDB
Чтобы установить соединение с общим экземпляром LocalDB, добавьте в строку подключения сочетание .\ (точка + обратная косая черта), чтобы указать пространство имен, зарезервированное для общих экземпляров.  Например, чтобы соединиться с общим экземпляром LocalDB с именем AppData, укажите в строке подключения (localdb)\.\AppData. Пользователь, устанавливающий соединение с общим экземпляром LocalDB, который ему не принадлежит, должен иметь имя входа для проверки подлинности Windows или SQL Server. 

Предполагалось, что Вы прочитаете, поймёте, и разберётесь, к чему ВЫ подключаетесь, и соответственно какой использовать вид строки подключения.

Добавлено через 3 минуты и 14 секунд
Судя по последнему посту - Вы используете shared instance. Тогда точка не нужна, но нужен тайм-аут после первой попытки подключения и повторная попытка, чтобы инстанс проинитился. Обычно это 3-4 секунды, но лучше взять с запасом.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Gamlex
Дата 21.1.2015, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 2.7.2012

Репутация: нет
Всего: нет



Ссылку я прочитал, по этой информации изначально и подключался. Странная штука - в Management studio подключение по имени (localdb)\Base проходит, а в Билдере пишет 
"Не выполнена  проверка соединения из за ошибки инициализации поставщика. [DBNETLIB][ConnectionOpen(Connect()).]SQL сервер не существует, или доступ запрещён."
Всё это я прописываю руками создавая строку подключения и проверяю соединение (см. рисунок), никакое ожидание там не помогает.


В принципе всё заработало, нужно было выставить другого провайдера (Native Client 11). Единственное - смущает задержка при первом подключении после перезагрузки. Думаю прописать команду инициализации экземпляра при запуске системы.

Это сообщение отредактировал(а) Gamlex - 21.1.2015, 11:25

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  2015_01_21_08_44_01_Скриншот_экрана.png 51,43 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1284 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.