Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Ứng dụng Qt gặp sự cố khi sử dụng trình điều khiển ODBC (macOS)

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.

  1. 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

  1. 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.

  1. 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/
  1. Đị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

    1. trong dự án Qt:

    QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");

    mydb.setDatabaseName("MYDSN")

    mydb.setUserName("name on Database");

    mydb.setPassword(" password on Database");




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tách chuỗi thành nhiều hàng trong Oracle

  2. Excel VBA kết nối với Oracle DB từ xa bằng InstantClient

  3. Nhận thêm hàng - Sau khi nối 3 bảng bằng cách sử dụng Nối trái

  4. Cách điền tập dữ liệu với C # từ cơ sở dữ liệu oracle

  5. Chỉ mục duy nhất có điều kiện trên cơ sở dữ liệu h2