Перейти к содержимому

Фотография

Подключение к базе данных в SQL Server 2008


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 08 февраля 2010 - 13:10

Есть необходимость поработать с базой данных с помощью ТС, но никак не смог осуществить соединение с БД. На локальной машине установлен Microsoft SQL Server 2008:

DB name: game_db
user login: sa
user password: 1234

Пробовал по-всякому, и каждый раз сообщает о новой ошибке. Если кто знает как соединиться - прошу напишите решение.
Заранее спасибо.
  • 0

#2 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 08 февраля 2010 - 13:59

Посмотрите здесь:
Connection strings for SQL Server 2008
  • 0

#3 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 08 февраля 2010 - 14:32

Посмотрите здесь:
Connection strings for SQL Server 2008


Каждый вариант попробовал - не подходит, то ругается на "драйвер по-умолчанию", то на "провайдер".
Так же интересует строка, мелькающая во всех примерах:
ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;"+ "Data Source=C:\\Microsoft Visual Studio\\VB98\\biblio.mdb";

В частности параметр Provider, где и как можно глянуть какой он в моём случае, и почему не открывает .mdf файлы?
А возможно, что я чего-то не понял, и такая форма записи для SQL 2008 не годится.

P.S. Таким образом у меня не получилось ни открыть файл базы данных, лежащий на диске, ни подсоединиться к уже запущенному серверу с этой базой. Поправьте меня, если это одно и то же.
  • 0

#4 mikach

mikach

    Новый участник

  • Members
  • Pip
  • 2 сообщений


Отправлено 08 февраля 2010 - 17:44

Попробуй
[codebox]
Set aCon = ADO.CreateConnection
aCon.ConnectionString = "Driver={SQL Native Client};Server=localhost\INSTANCE_NAME;Database=DB_NAME;Trusted_Connection=yes"
[/codebox]

У меня это работало в sql server 2005, для 2008 возможно нужно будет немного поменять имя драйвера (на {SQL Server Native Client 10.0}?).
  • 0

#5 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 09 февраля 2010 - 08:20

Попробуй

Set aCon = ADO.CreateConnection
aCon.ConnectionString = "Driver={SQL Native Client};Server=localhost\INSTANCE_NAME;Database=DB_NAME;Trusted_Connection=yes"

У меня это работало в sql server 2005, для 2008 возможно нужно будет немного поменять имя драйвера (на {SQL Server Native Client 10.0}?).


Я пытался по-всякому. К примеру вот такой код:
var mydb = ADO.CreateConnection();
   mydb.ConnectionString = "Driver = {SQL Server Native Client 10.0}; Server = localhost\SQLEXPRESS; Database = game_db; Trusted_connection = Yes";
   mydb.Open();
   mydb.Close();
выдаёт ошибку при выполнении строки mydb.Open() :
[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
Блин, уже второй день с этим бьюсь ( Работа на месте стоит
  • 0

#6 VITAL

VITAL

    Новый участник

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Ворончихин Александр Витальевич
  • Город:Ижевск

Отправлено 09 февраля 2010 - 09:17

У меня вот работает такой код
procedure ADOQuery;
var
ADOQuery: variant;
ConnectionString: String;
begin
ADOQuery := ADO.CreateADOQuery;
ConnectionString := 'Provider=SQLOLEDB.1;Password=ottpwork!@;Persist Security Info=True;User ID=sa;Initial Catalog=OTTPAUTOTEST77;Data Source=w248s3\sql2008';
ADOQuery.ConnectionString := ConnectionString;
ADOQuery.SQL := 'select top 1 Analit from MBAnalit';
ADOQuery.Open();
ShowMessage(ADOQuery.Field[0].AsString);
end;
  • 0

#7 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 09 февраля 2010 - 09:34

Решение проблемы найдено! Работает только такими двумя способами:
var mydb = ADO.CreateConnection();
   mydb.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=game_db;Data Source=COR2ASUSWEBHTML\\SQLEXPRESS; Uid = sa; pwd=1234";
   mydb.Open();
либо
var mydb = ADO.CreateConnection();
   mydb.ConnectionString = "Provider=SQLNCLI10;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=game_db;Data Source=COR2ASUSWEBHTML\\SQLEXPRESS; Uid = sa; pwd=1234";
   mydb.Open();

Т.е. с непосредственным указанием провайдера в таком Provider=SQLOLEDB.1 или таком виде Provider=SQLNCLI10, указанием имени компа и инстанса сервера Data Source=COR2ASUSWEBHTML\\SQLEXPRESS и обязательным экранированием слэша! Экранирование слэша, вероятно, будет верным решением не для всех скриптовых языков, но в JScript является обязательным.
Надеюсь это кому-то поможет. На том же Connectionstrings нигде не упоминается провайдер в таком виде: Provider=SQLOLEDB.1, но такая запись работает.
  • 0

#8 VITAL

VITAL

    Новый участник

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Ворончихин Александр Витальевич
  • Город:Ижевск

Отправлено 09 февраля 2010 - 12:30

Строку подключения можно получить следующим образом:
1. Создать файл с расширением *.udl.
2. Открыть файл и настроить соединение.
3. Сохранить файл.
4. Открыть этот файл в текстовом редакторе. Там будет нужная строка подключения.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных