Etapas para ativar/testar QODBC no Mac OS ((Seirra) para MSSQL ou qualquer outro banco de dados ODBC:
Sintoma 1:O aplicativo Qt Run (Debug) trava (o programa terminou/travou inesperadamente). Sintoma 2:Qt Creator com pacotes Qt pré-construídos (MaintenanceTool).
Sintoma 3:o driver do freeTDS (libtdsodbc.so) está ausente após a instalação dos pacotes do freeTDS.
Sintoma 4:Qt construído/configurado antes ou com unixODBC ausente.
- Faça o download e instale o unixODBC (deve ser feito antes de instalar o freeTDS )(www.unixODBC.org ) / (Drivers) / (unixODBC-2.3.4.tar.gz)
descompacte e descompacte os pacotes.
./configure --prefix=/usr/local/unixODBC
(certifique-se de que você pode escrever OR sudo) make
sudo make istall
- Baixe e instale o freeTDS:(http://www.freetds.org/ ) / ( Links rápidos) / (Versões mais recentes) / (Versão estável)
descompacte/descompacte o pacote.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Nota:
--with-unixodbc
fará com que o driver (libtdsodbc.so) seja instalado. -
Infelizmente, possivelmente o plugin ODBC no Qt deve ser reconstruído:
-
Se você estiver usando as bibliotecas Qt pré-construídas, você precisará baixar fontes usando MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Diga ao qmake onde encontrar os arquivos de cabeçalho unixODBC e as bibliotecas compartilhadas (aqui assume-se que o unixODBC está instalado em /usr/local/unixODBC) e execute make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
meu caso:cd /usr/local/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/odbc
qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"
make
-
se isso for correto:você receberá novas bibliotecas QODBC:
cd ../plugins/sqldrivers/
copie os novos pacotes, por exemplo, para:
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Configure /etc/local/unixODBC/etc/odbc.ini (você pode precisar de permissões de root modificar)
(Não há necessidade de configurar o freeTDS):
- (qual porta? qual versão -> Execute
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Criar/modificar entrada em /usr/local/unixODBC/etc/odbc.ini
[MYDSN]
Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so
Server = 192.168.x.x
Port = 51271
- no projeto Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");