Các bước để kích hoạt / kiểm tra QODBC trên Mac OS ((Seirra) đối với MSSQL hoặc bất kỳ ODBC DB nào khác:
Dấu hiệu 1:Ứng dụng chạy Qt (Gỡ lỗi) bị treo (chương trình kết thúc / bị lỗi đột ngột). Triệu chứng 2:Trình tạo Qt với các gói Qt được tạo sẵn (Công cụ bảo trì).
Dấu hiệu 3:Trình điều khiển freeTDS (libtdsodbc.so) bị thiếu sau khi cài đặt các gói freeTDS.
Triệu chứng 4:Qt được xây dựng / định cấu hình trước hoặc khi thiếu unixODBC.
- Tải xuống và cài đặt unixODBC ( phải được thực hiện trước khi cài đặt freeTDS ) ( www.unixODBC.org ) / (Trình điều khiển) / (unixODBC-2.3.4.tar.gz)
giải nén và gỡ bỏ các gói.
./configure --prefix=/usr/local/unixODBC
(hãy chắc chắn rằng bạn có thể viết HOẶC sudo)
make
sudo make istall
- Tải xuống và cài đặt freeTDS :( http://www.freetds.org/ ) / (Liên kết nhanh) / (Phiên bản mới nhất) / (Bản phát hành ổn định)
gỡ bỏ / giải nén gói.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Lưu ý:--with-unixodbc
sẽ khiến trình điều khiển (libtdsodbc.so) được cài đặt.
-
Thật không may, có thể plugin ODBC trên Qt nên được xây dựng lại:
-
Nếu bạn đang sử dụng các thư viện Qt dựng sẵn, bạn sẽ cần tải xuống các nguồn bằng MaintenanceTool ($ QTDIR / MaintenanceTool.app)
-
Cho qmake biết nơi tìm tệp tiêu đề unixODBC và thư viện được chia sẻ (ở đây giả định rằng unixODBC được cài đặt trong / usr / local / unixODBC) và chạy make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
trường hợp của tôi:
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
-
nếu điều đó diễn ra chính xác:bạn sẽ nhận được QODBC libs mới tuân thủ:
cd ../plugins/sqldrivers/
sao chép các gói mới, ví dụ:
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Định cấu hình /etc/local/unixODBC/etc/odbc.ini (bạn có thể cần quyền root để làm sáng tỏ)
(Không cần cấu hình freeTDS):
- ( cổng nào? phiên bản nào -> Chạy
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Tạo / Sửa đổi mục nhập trong /usr/local/unixODBC/etc/odbc.ini
[MYDSN]
Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so
Server = 192.168.x.x
Port = 51271
- trong dự án Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");