Развертывание клиент-серверного приложения.
Dim cn As SqlClient.SqlConnection = New SqlClient.SqlConnection(String.Format("Data Source={0};Database={1};Trusted_Connection=True;", ServerName, DatabaseName))
А вообще, раз юзаете .NET для написания клиентского ПО, конекшн стринг лучхе хранить в свойствах приложения, а не жестко вбивать в код. Это так, совет.
Но ведь на компе с базой работает. И вообще, я немного ошибся. У меня не клиент/сервер получился. Каждое приложение коннектится к базе самостоятельно.
1) Никогда не пользуйтесь string.Format для таких целей. Есть специальный класс ConnectionStringBuilder.
2) Вы можете соединиться с удаленной машины к СУБД стандартными средствами: VS2008, MSSMS2008 и т.п.?
какое у вас было имя сервера? localhost? если с клиентской машины коннектится к компу - то нужно прописывать имя сервера, это можете в настройках системы на сервере глянуть - какое там имя машины.
таки это и есть клиент, который окннектится к серваку.
Так, вроде, в случае с клиент-сервером к базе коннектится только одна прога-сервер, а остальные (клиенты) конектятся к ней через WinSock?
Насчет имени сервера - точно не помню (до работы еще не доехал), но вроде "SERGEY/SQLEXPRESS", где SERGEY - имя компа, на котором сервак, а SQLEXPRESS - сам SQL server (имя по умолчанию, я его не менял).
Многозвенные приложения, это например когда вы из программы обращаетесь к PHP скрипту на веб сервере, который достает информацию из свое базы данных и возвращает клиенту. В данном случае, проблема в том, что к СУБД на вебсервере извне доступа нет, поэтому приходится делать посредника - PHP скрипт. Вот как-то так.
зы. Если я натупил, сильно не пинайте.
2. прошаманьте коннекшнстринг
3. сообщите результаты :)
Кстати, щас подумал, а SQL Express - это вроде бесплатная версия, там не может быть ограничения вроде такого, что он не работает по сетке? Хотя наверное я туплю, он же просто порт открытым держит, без разницы откуда коннект... Хз.
это вполне полноценная СУБД, а самые главные ограничения - размер базы до 4Гб, размер ОЗУ используемой экземпляром сервера - до 1Гб, ограничения на многопроцессорные системы, что влияет на производительность, а также отсутствие других фишек старших редакций (урезанная репликация, урезанные инструменты (SSMS, Profiler и т.д.), нет агента (начиная с 2005), зеркалирования, секционирования, снапшотов, лог-шиппинга, индексированных представлений и всякого другого)
вот SQL Server Compact другое дело - по сетке не пашет, хотя я даже обманул его, чтобы он работал))) но были глюки при совместном доступе и я бросил эту затею.
Так как вы следуете достаточно неразумной традиции - и категорически не желаете указать с чем и как вы работаете, то гадание на кофейной гуще может продолжатся еще очень долго.
Если вы (что вероятно) используете Express Edition - то по умолчанию у него стек сетевых протоколов отключен. Его соответственно надо включить - используя оснастку "Диспечер конфигурации ...". Это раз.
Во вторых - строка подключения в случае, если разработка ведется на той же машине, формируется в виде = "./SQLEXPRESS" - что значит - подключится используя инстанс на данном компьютере. Т.е. вам нужно вообщето проверить - к чему вы пытаетесь подключится (либо явно задавать имя сервера).
Третья причина - возможно вам нужно явно задать адрес и порт подключения (1433 - помоему), это достаточно частая причина, особенно если в сети не поднят DNS.
Кстати, щас подумал, а SQL Express - это вроде бесплатная версия, там не может быть ограничения вроде такого, что он не работает по сетке? Хотя наверное я туплю, он же просто порт открытым держит, без разницы откуда коннект... Хз.
нет нету никаких ограничений в данном случае.
всё-таки сдается мне, что коннект есть, просто сервер рубит соединение. если он не находит сервера там другое пишет и обычно висит еще долго, если Connection Timeout не поменян. а еще такое у меня было, не поверите. стоял NOD32 с включенным IMON. и что-то похожее было, ошибка. я всё перелопатил, попробовал и потом уже вспомнил про нод и вуаля :)
да. это тоже может быть причиной.
Но начать стоит с:
Имеется в виду "Серверная проверка подлинности"? У меня включено "Проверка подлинности SQL server и Windows".
ЗЫ: Перепробовал разные строки подключения - никак. Установил SQL server на другом компе - сервера друг друга не видят. Может какую папку расшарить?
George, по поводу сканирования портов - это как?
ааааа, кошмар :( наберите просто в командной строке telnet 192.168.0.1 1433 и увидите приконнектится или нет. порт и IP меняйте, если другие. и то, что kot_ писал смотрите. и что трудно разве нажать Ctrl+C в месадж боксе ошибки и запостить сюда или в гугл? там еще наверняка есть и код ошибки.
kot_, "Protocol for SQLexpress - TCP/IP - Disable"
bagie2
В стартовом посте писал уже, но можно еще раз
Совсем я запутался...:(
kot_, "Protocol for SQLexpress - TCP/IP - Disable"
Так включите его!
А в касперском добавьте исключение на порт 1433.
kot_, "Protocol for SQLexpress - TCP/IP - Disable"
Ну так сделайте же его Enable.
:confused:
Имя пользователя - Иванов
Имя входа - BULTIN\Пользователи
Схема - db_datawriter
Членство в роли - db_datawriter
ALTER USER [Иванов] WITH LOGIN = [Иванов]
[SIZE="1"]да, там не разглядел было сплошняком, извиняюсь[/SIZE]
Что-то, ребята, крыша у меня едет с этим SQL sever'ом. Может кто-нибудь пошагово объяснит как Иванову подключитья к серверу?