Russian Qt Forum
Май 04, 2024, 21:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt не могу подключится к Microsoft SQL Server  (Прочитано 4533 раз)
qwyllum
Гость
« : Октябрь 16, 2014, 10:33 »

Добрый день. С-но, есть код
Код:
    db = QSqlDatabase::addDatabase("QODBC3");

    db.setDatabaseName("DRIVER={SQL Server};Database=database; Server=w05.hosterby.com\\SQLEXPRESS;");
    db.setUserName("db_admin");
    db.setPassword("adminpass");

    if(!db.open()){
        qDebug()<<"ERROR: "<<QSqlError(db.lastError()).text();
    } else {
        qDebug()<<"Ok";
    }
     

Используя программу, типа Heidi SQL, тип соединения Microsoft SQL Server TCP/IP подключаюсь без проблем. А тут сервер выдает

ERROR:  "[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server не существует, или доступ запрещен. [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). QODBC3: Unable to connect"
Может кто знает, в чем может быть дело?
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #1 : Октябрь 16, 2014, 10:45 »

"DRIVER={SQL Server};Database=database; Server=w05.hosterby.com\\SQLEXPRESS;"
попробуйте заESCапить слеши:
Код:
"DRIVER={SQL Server};Database=database; Server=w05.hosterby.com\\\\SQLEXPRESS;"
Записан
titan83
Гость
« Ответ #2 : Октябрь 28, 2014, 12:57 »

db.setDatabaseName("DRIVER={SQL Server};Database=database; Server=w05.hosterby.com\\SQLEXPRESS;");
Что написано в odbc.ini?
Просто на самом деле нет нужды писать всю эту блуду, достаточно лишь того, что прописано значением Database.
У меня типичный алгоритм подключения такой:
Код:
    if (!(db.isOpen())) {
        db.setDatabaseName(getConnectionName());
        db.setUserName(getUsername());
        db.setPassword(getPassword());

        if (db.open()) {           
            return true;
        }
getConnectionName() возвращает всего лишь имя секции, описывающей подключение к конкретному серверу, т.е. например, MSSQL. И все.
Это проверено на 2005 и на 2008 версиях.
« Последнее редактирование: Октябрь 28, 2014, 13:00 от titan83 » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.