I. Code
- /** Connect to the Oracle database
- * Database Name: abc
- * Table Name: my_oracle
- * User name: system
- * Key: 123
- * Port: (default) 1521
- */
- Void MainDialog: connectOracle (QString sIp, int iPort, QString sDbNm, QString SUSErNm, QString sPwd)
- {
- Db = QSqlDatabase: addDatabase ("QOCI ");
- Db. setHostName (sIp );
- Db. setPort (iPort );
- Db. setDatabaseName (sDbNm );
- Db. setUserName (sUserNm );
- Db. setPassword (sPwd );
- If (db. open ())
- {
- QMessageBox: information (this, tr ("prompt"), tr ("Oracle database connection successful! "), Tr (" OK "));
- }
- Else
- {
- QMessageBox: information (this, tr ("prompt"), tr ("Oracle database connection failed! "), Tr (" OK "));
- QDebug () <"error_Oracle: \ n" <db. lastError (). text ();
- }
- }
Ii. problems encountered during the connection.
Question 1:
QSqlDatabase: QOCI driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
(1) cause of error: the connection is driven by QMYSQL, while Qt itself does not have a QOCI Driver (only QSQLITE QODBC3 QODBC ),
Therefore, you need to compile QOCI by yourself.
(2) Compile the QOCI driver.
1. go to "Qt Command Prompt" window. (START-Program-find the corresponding qt item ).
2. qmake "INCLUDEPATH + = c: \ oracle \ oci \ include" "LIBS + =-Lc: \ oracle \ oci \ lib \ msvc" oci. pro
3. qmake "INCLUDEPATH + = D: \ oracle_setup \ app \ admin \ product \ 11.1.0 \ db_3 \ OCI \ include" "LIBS + =-LD: \ oracle_setup \ app \ admin \ product \ 11.1.0 \ db_3 \ OCI \ lib \ msvc "oci. pro
4. mingw32-make
Question 2:
Error:
D: \ qt_sdk \ qt \ src \ plugins \ sqldrivers \ oci> mingw32-make
Mingw32-make-f Makefile. Debug all
Mingw32-make [1]: Entering directory 'd:/qt_sdk/qt/src/plugins/sqldrivers/oci'
Mingw32-make [1]: Nothing to be done for 'all '.
Mingw32-make [1]: Leaving directory 'd:/qt_sdk/qt/src/plugins/sqldrivers/oci'
Mingw32-make-f Makefile. Release all
Mingw32-make [1]: Entering directory 'd:/qt_sdk/qt/src/plugins/sqldrivers/oci'
Mingw32-make [1]: Nothing to be done for 'all '.
Mingw32-make [1]: Leaving directory 'd:/qt_sdk/qt/src/plugins/sqldrivers/oci'
Cause of error: the QOCI driver has been compiled!