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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Подключение к MS SQL Server (Mac, PyQt, ODBC Driver 17 for SQL Server)  (Прочитано 1918 раз)
NikolajVasiljev
Новичок

Offline Offline

Сообщений: 2


Просмотр профиля
« : Сентябрь 27, 2021, 23:26 »

Код
Python
# side of code
 
class MainWindow(QMainWindow):
   def __init__(self):
       super().__init__()
 
       self.con_si = QSqlDatabase.addDatabase("QODBC", "MyConnect")
       self.con_si.setHostName("**.***.**.***")
       self.con_si.setPort(****)
       self.con_si.setDatabaseName("********")
       self.con_si.setUserName('*****')
       self.con_si.setPassword('***********')
       self.con_si.open()
       if self.con_si.isOpen():
           self.label_message_import.setText('successfully')
       else:
           self.label_message_import.setText('unsuccessfully')
 
 

print(self.con_si.lastError().text())
выдает ошибку:
[iODBC][Driver Manager]dlopen(/Library/ODBC/odbc.ini, 6): no suitable image found.  Did find:
   /Library/ODBC/odbc.ini: file too short
   /Library/ODBC/odbc.ini: file too short [iODBC][Driver Manager]Specified driver could not be loaded QODBC: Unable to connect


В DatabaseName указываю DSN как в инструкции: "При подключении к источнику данных ODBC необходимо передать имя источника данных ODBC функции QSqlDatabase::setDatabaseName(), а не фактическое имя базы данных."
https://doc.qt.io/qt-5/sql-driver.html
Драйвер установил официальный с сайта Microsoft:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools

Driver и DSN прописаны в ODBC Manager

Что еще не так?
Записан
NikolajVasiljev
Новичок

Offline Offline

Сообщений: 2


Просмотр профиля
« Ответ #1 : Сентябрь 28, 2021, 09:23 »

Установил драйвер от https://www.actualtech.com//receipt.php
Изменил DSN
Соединение с MS SQL Server установлено!!!!
Но! В связи с тем, что setDatabaseName занято именем DSN, а не именем БД - как указать имя БД?
« Последнее редактирование: Сентябрь 28, 2021, 09:25 от NikolajVasiljev » Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #2 : Сентябрь 28, 2021, 12:28 »

примерно так у меня работало:

databaseType=QODBC
databaseHost=
databasePort=
databaseName="Driver={SQL Server};Server=_ipAddress_;Database=_databaseName_;"
databaseUserName=_userName_
databasePassword=_password_

если порт не стандартный, если память не изменяет, так он записывается: Server=_ipAddress_,_port_
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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