Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Aplikasi Qt mogok saat menggunakan driver ODBC (macOS)

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.

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

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

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

    1. dalam proyek 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. Menggunakan nilai berurutan untuk kunci utama dalam kueri INSERT

  2. Paging dengan Oracle

  3. Permintaan Pembaruan Dinamis dalam prosedur

  4. Bagaimana cara memasukkan tanggal BC ke Oracle?

  5. Oracle dbms_job.submit:Mencampur Sinkron dan Asinkron