How to create the plugin of OCI for Qt
-
Answer Thank you.
But it also does not work.
So I tried the other way attempt.
I copy mingw32 / bin the dll file in the oracle_home / client / bin.
I copy mingw32 / include the all file in the oracle_home / client / oci / include.
I copy mingw32 / lib lib file in the oracle_home / client / oci / lib / msvc.
qt 5.3 for desktop (mingw4.8 32bit) .exe
-> cd c: \ qt \ 5.3 \ src \ qtbase \ src \ plugins \ sqldrivers \ oci
-> qmake oci.pro
-> mingw32-make
In this way I
lbisqloci.a
qsqloci.dll
qsqlocid.dll
I created three files.
Success!
But can not open the db.QOCIDriver: unable to create environment
OCIHandleAlloc segmentation faultThe source is as follows:
@ QSqlDatabase db;
db = QSqlDatabase::addDatabase("QOCI8");
db.setHostName("hostip");
db.setDatabaseName("dbname");
db.setUserName("userid");
db.setPassword("userpw");
db.setPort(1521);
db.open();
@
Error is it because I had the wrong source code?
Or so the plug incorrectly created?I would like to thank again
the project be conducted . -
No, probably the wrong dll loading
-
Your answer is right.
Plug was incorrectly made.
I have succeeded in making the plug-in using the plug-in method of making oci provided by qt.But Oracle Tns error occurs.
ORA-12154: the specified connection identifier cannot be analyzed
Unable to logonThis is a reference when creating a plugin
This is specified when creating a plug-in to see qsql_oci.cpp@
connectionString =
QString::fromLatin1("(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=%1)(Port=%2))"
"(CONNECT_DATA=(SERVICE_NAME=%3)))").arg(hostname).arg((port > -1 ? port : 1521)).arg(db)@Configure the TNS that the source of that I think.
The TNS using sqlplus and I have successfully completed the database connection
Is that different, and this part of the TNS version of DB? -
I've solved.
This is because you are helping.@connectionString =
QString::fromLatin1("(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=%1)(PORT=%2)))"
"(CONNECT_DATA=(SERVICE_NAME=%3)))").arg(hostname).arg((port > -1 ? port : 1521)).arg(db);@This was resolved by modifying the.
Thanks .T_T