Langkah-langkah untuk mengaktifkan/menguji QODBC di Mac OS ((Seirra) menuju MSSQL atau DB ODBC lainnya:
Gejala 1:Aplikasi Qt Run (Debug) mogok (program tiba-tiba selesai/rusak). Gejala 2:Qt Creator dengan paket Qt bawaan (MaintenanceTool).
Gejala 3:driver freeTDS (libtdsodbc.so) hilang setelah menginstal paket freeTDS.
Gejala 4:Qt dibuat/dikonfigurasi sebelum atau dengan unixODBC yang hilang.
- Unduh dan instal unixODBC (harus dilakukan sebelum menginstal freeTDS )(www.unixODBC.org ) / (Driver) / (unixODBC-2.3.4.tar.gz)
unzip dan untar paket.
./configure --prefix=/usr/local/unixODBC
(pastikan Anda dapat menulis ATAU sudo)
make
sudo make istall
- Unduh dan pasang freeTDS:(http://www.freetds.org/ ) / ( Tautan Cepat) / (Versi Terbaru) / (Rilis Stabil)
untar/unzip paket.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Catatan:--with-unixodbc
akan menyebabkan driver (libtdsodbc.so) diinstal.
-
Sayangnya, mungkin plugin ODBC di Qt harus dibuat ulang:
-
Jika Anda menggunakan pustaka Qt bawaan, Anda perlu mengunduh sumber menggunakan MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Beri tahu qmake di mana menemukan file header unixODBC dan pustaka bersama (di sini diasumsikan bahwa unixODBC diinstal di /usr/local/unixODBC) dan jalankan make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
kasus saya:
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
-
jika itu berjalan dengan benar:Anda akan memenuhi lib baru QODBC:
cd ../plugins/sqldrivers/
salin paket baru misalnya ke :
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Konfigurasikan /etc/local/unixODBC/etc/odbc.ini (Anda mungkin memerlukan izin root untuk mengubah)
(Tidak perlu mengonfigurasi freeTDS):
- (port mana ? versi mana -> Jalankan
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Buat/Ubah entri di /usr/local/unixODBC/etc/odbc.ini
[MYDSN]
Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so
Server = 192.168.x.x
Port = 51271
- dalam proyek Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");