На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Connection string для SQL server как должна выглядеть?
    Всем привет!
    Понимаю вопрос возможно простой, но никак не могу поключиться к SQL серверу из клиента.
    Есть следующее:
    Клиент, написанный на MFC, работает с библиотекой ADO.NET через врапер.
    Во врапере выполняется следующий вызов
    ExpandedWrap disabled
      gcroot<OleDbConnection^> m_OleDbConnection;
      try
      {
      m_OleDbConnection->Open();
      }
      catch (Exception^ e)
      {
      CString s(e->Message);
      AfxMessageBox(s);
      }

    Вываливается ошибка: Invalid authorization specification.
    Connection string следующего вида:
    Provider=SQLOLEDB.1;Data Source=C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\mymdffile.mdf
    В чем может быть проблема, подскажите плз.
      странная у тебя Connection string.
      посмотри здесь: ConnectionStrings.com
        Aris_07, работать с сиквелом лучше нативным провайдером, см. System.Data.SqlClient
          простейший способ получения любых строк подключения для адо: создать пустой текстовый файл, заменить расширение на .udl, двараза клацнуть по нему и с помощью появившегося мастера настроить подключение к существующему источнику. Потом открыть этот файл в блокноте и посмотреть на получившеюся строку. Для корректной авторизации с помощью такой строки в мастере поставить галку "Разрешить сохранение пароля".
            Цитата Aris_07 @
            Provider=SQLOLEDB.1;Data Source=C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\mymdffile.mdf


            Это ж не MS Access чтоб так писать, MS SQL Server серверная база данных, а не файловая, клиенту вообще не надо знать физическое расположение файлов базы данных, их кстати может быть и больше чем один, причём разбросанных по разным дискам...


            Ну если например установлена сервер-авторизация и без пароля то например так:

            "Data Source=NameOfMSSQLServerComputer;Initial Catalog=master;Persist Security Info=false;User ID=sa";

            В целом Data Source - Это не имя файла с базой данных (оно вообще не нужно), а имя компьютера на котором установлен MS SQL Server, впрочем если установлено несколько серверов на одной машине то могут быть нюансы

            Initial Catalog - имя базы данных, но опять-таки не файла

            User ID - логин к базе данных

            Если есть пароль то будет прописан ещё и пароль...

            Это всё касаемо MS SQL Server 7/2000, за 2005 не поручусь...
              Цитата Vit @
              Это ж не MS Access чтоб так писать, MS SQL Server серверная база данных, а не файловая, клиенту вообще не надо знать физическое расположение файлов
              express версия поддерживает и такои метод работы.
              например я сеичас делаю маленкую базу, и конект делаю так
              Цитата
              Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Lombardi.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True
              правда при этом база не должна быть приаттачена к серверу
                А ты добавь новый объект в DataGridView выбери Database , появиться меню подключения к базе , там все и сформируется ,
                а в файле , допустим Form1.h увидишь свою строку или в пункте меню выберешь Use Connection String и сформируешь ее.
                  Ок всем спасибо, разобрался что к чему :D
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0260 ]   [ 16 queries used ]   [ Generated: 27.04.24, 09:23 GMT ]