PDA

View Full Version : Qt - Firebird = QIBASE : driver not loaded !



QAmazigh
9th May 2009, 00:12
hello ;
is there a possibility to connect Qt with a Firebird(interbase) database ??:confused:
i looked for QIBASE driver but i did not found it :(
i have all other drivers installed : SQLITE , ODBC ....


QSqlDatabase: QIBASE driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL3 QMYSQL QODBC3 QODBC QPSQL7 QPSQL


thanks :o

estanisgeyer
9th May 2009, 03:31
It's possible to connect Firebird database.
You will need compile the firebird (QIBASE) driver, see How to build QIBASE driver (http://doc.qtsoftware.com/4.5/sql-driver.html#qibase-for-borland-interbase).

Good luck

Marcelo E. Geyer

QAmazigh
9th May 2009, 10:44
thanks for your reply .
here is what they say in the doc :

in the If you are using Firebird, the Firebird library has to be set explicitly:
cd $QTDIR/src/plugins/sqldrivers/ibase
qmake "INCLUDEPATH+=/opt/interbase/include" "LIBS+=-L/opt/interbase/lib -lfbclient" ibase.pro
make

the problem is that i have not /ibase in my $QTDIR/src/plugins/sqldrivers/
there only other drivers (QODBC,QMYSQL) as *.so files :(

there another problem in this solution : i installed Firebird , so i can't have an Interbase directory in my /opt !
i think it's an old solution :(

so it will not work with me :crying:

is there something else to solve this problem ???

thanks :)

estanisgeyer
9th May 2009, 13:14
I think your version of QT is delivered with your Linux, right? If the answer is yes, look in the "repositories" of its Linux distribution for this driver, otherwise download the QT from sources and compile, with driver support Ibase.
As for the Firebird as well. I suggest in the case of Firebird, you download it (firebirdsql.org) and install in / opt.

Good luck,

Marcelo E. Geyer

QAmazigh
9th May 2009, 17:33
this is the good solution : its works with me :)

download qt4 sources !
1) Create a symlink to the firebird library
$ cd /usr/lib
$ sudo ln -s libfbclient.so.1.5.4 libgds.so

2) Configure Qt
$ ./configure -plugin-sql-mysql -plugin-sql-ibase -I/usr/include/mysql

3) Compile Qt
$ make

4) Install Qt
$ sudo make install

QAmazigh
9th May 2009, 17:35
problem solved

djvujke
28th May 2009, 23:10
Hi,
how did you managed to compile ibase plugin..
i have opensuse11.0 , qt4.5.01
and firebird2.12
i followed your instructions but
i just cant compile it....

Lykurg
28th May 2009, 23:38
what error messages do you get?

djvujke
29th May 2009, 23:18
i downloaded qtcreator with compiled qt libraries...so there is already compiled ibase library...that solves the problem, but when i finished compiling sqlbroswer he said that there are only sqlite and mysql databases available, how come , when there is compiled ibase library

QAmazigh
30th May 2009, 02:15
it worked with me under Ubuntu !
i recompiled Qt with these instructions !
i have Qt 4.4.0 & i use QDevelop !
that's all !

Try just to copy QIBASE.SO to your $QTDIR/src/plugins/sqldrivers/

i think it will work !

djvujke
31st May 2009, 23:29
I use Qt Creator 1.1.0 Based on Qt 4.5.1 Built on Apr 22 2009 at 12:20:23
From revision e81e94cb44

this is error that i get compiling the code

QSqlDatabase: QIBASE driver not loaded
QSqlDatabase: available drivers: QSQLITE QSQLITE2 QPSQL7 QPSQL

code
-------------
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QIBASE");
db.setDatabaseName("katalog.fdb");
bool ok = db.open();
if (!ok)
{
/*some error message
exit(1);
}

QtCreator has following sql plugins in sql plugin folder
libqsqlibase_debug.so libqsqlibase.so libqsqlite2.so libqsqlite.so libqsqlpsql.so


im not a programer, just wanna be, so i dont se why this isnt working?

QAmazigh
1st June 2009, 14:04
libqibase.so in attachements
copy it to your $QTDIR/src/plugins/sqldrivers/

!

djvujke
1st June 2009, 21:29
on ystem i have qt3, so i didnt put in $QTDIR
as i use qtcreator he has built in qt4.5.1 libraries so i replaced old ones with the ones you supplied...and still the same error..

estanisgeyer
1st June 2009, 22:44
Hi,

Create the folder "sqldrivers" in your application folder and put libqibase.so here, or locate the others drivers (QSQLITE, QSQLITE2) and put the library in same folder.

Marcelo E. Geyer

djvujke
2nd June 2009, 18:39
i know that, and i did that..i've put the ibase that you gave to
that folder
home qtsdk-2009.02/qt/plugins/sqldrivers
but i receive the same error


here is some code snippet
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QIBASE");
db.setDatabaseName("katalog.fdb");

qDebug()<< "database " << QSqlDatabase::database();

bool ok = db.open();

qDebug()<< "Status konekcije " << ok;

if (!ok)
{
QMessageBox::critical(0, "GOMAL", QString("SQL problem? \n\nOk to exit."));
exit(1);
}

QStringList tables = db.tables();
for (int t = 0; t < tables.count(); ++t)
{
QTreeWidgetItem *table = new QTreeWidgetItem();
table->setText(0, tables.at(t));
}

animal
7th July 2009, 12:12
About this file libqibase.so U've copy it to wrong folder:
home qtsdk-2009.02/qt/plugins/sqldrivers.
U should copy it to:
home qtsdk-2009.02/qt/src/plugins/sqldrivers.

I had the same problem under vista and the solution was to copy:
libqsqlibase4.a
libqsqlibased4.a
qsqlibase4.dll
qsqlibased4.dll
to (in your case) home qtsdk-2009.02/qt/plugins/sqldrivers.

AlexisVaBel
19th April 2011, 05:49
Hello to everyone, I`m using Windows XP SP3 and Ubuntu 10.04. On both systems i`ve got QT4.7.0.
Speaking about visibility ibase driver for QT, it`s not so clear.
For my experience, i`ve made and used ibase under Win and Ubuntu on one mashine, at another machines the way i made plugin doesn`t work.
All goes right and i`ve got the needed files qsqlibase.dll and libqsqlibase.so (on each system) but QT doesn`t see them.
Can somebody advise the way to solve this problem?