| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > MSSQL LocalDB запуск экземпляра после перезагрузки |
| Автор: Gamlex 20.1.2015, 14:16 |
| Пишу программку с использованием базы данных на 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. Автоматический экземпляр создавал, но он по-моему тоже отключается после перезагрузки. |
| Автор: Gamlex 21.1.2015, 09:00 |
Стоит .Net Framework 4.5.1 SQL Management Studio подключается с именем сервера (localdb)\Base, а вот при подключении в программе к такому имени выдаёт ошибку (Сервер не существует или доступ запрещён). К именованному каналу (который меняется после каждой перезагрузки) подключается отлично. К общим экземпляром (localdb)\.\Base не соединяется ни Management Studio, ни Билдер. Принципиально ли задание именно общего канала (с точкой)? Его нужно как то особенно создавать или это обычный именованный канал которому подключаются через \.\? |
| Автор: Akina 21.1.2015, 09:13 | ||||
Ну я дал ссылку... там же ж пишут:
Предполагалось, что Вы прочитаете, поймёте, и разберётесь, к чему ВЫ подключаетесь, и соответственно какой использовать вид строки подключения. Добавлено через 3 минуты и 14 секунд Судя по последнему посту - Вы используете shared instance. Тогда точка не нужна, но нужен тайм-аут после первой попытки подключения и повторная попытка, чтобы инстанс проинитился. Обычно это 3-4 секунды, но лучше взять с запасом. |
| Автор: Gamlex 21.1.2015, 10:20 |
| Ссылку я прочитал, по этой информации изначально и подключался. Странная штука - в Management studio подключение по имени (localdb)\Base проходит, а в Билдере пишет "Не выполнена проверка соединения из за ошибки инициализации поставщика. [DBNETLIB][ConnectionOpen(Connect()).]SQL сервер не существует, или доступ запрещён." Всё это я прописываю руками создавая строку подключения и проверяю соединение (см. рисунок), никакое ожидание там не помогает. В принципе всё заработало, нужно было выставить другого провайдера (Native Client 11). Единственное - смущает задержка при первом подключении после перезагрузки. Думаю прописать команду инициализации экземпляра при запуске системы. |