CopperSpice Overview
QIBASE

General Information about QIBASE

The InterBase plugin makes it possible to access the InterBase and Firebird databases. InterBase can either be used as a client/server or without a server in which case it operates on local files. The database file must exist before a connection can be established. Firebird must be used with a server configuration.

Note InterBase requires specifying the full path to the database file, no matter whether it is stored locally or on another server.

db.setHostName("MyServer");
db.setDatabaseName("C:\\test.gdb");

You need the InterBase/Firebird development headers and libraries to build this plugin.

Due to license incompatibilities with the GPL, users of CopperSpice may not be allowed to link this plugin to the commercial editions of InterBase. Please use Firebird or the free edition of InterBase.

QIBASE Unicode Support and Text Encoding

By default the driver connects to the database using UNICODE_FSS. This can be overridden by setting the ISC_DPB_LC_CTYPE parameter with QSqlDatabase::setConnectOptions() before opening the connection.

// connect to database using the Latin-1 character set
db.setConnectOptions("ISC_DPB_LC_CTYPE=Latin1");
db.open();

If CopperSpice does not support the given text encoding the driver will issue a warning message and connect to the database using UNICODE_FSS.

If the text encoding set when connecting to the database, is not the same as in the database encoding, problems with transliteration might arise.

QIBASE Stored procedures

InterBase/Firebird return OUT values as result set, so when calling stored procedure, only IN values need to be bound via QSqlQuery::bindValue(). The RETURN/OUT values can be retrieved via QSqlQuery::value(). Example:

QSqlQuery q;
q.exec("execute procedure my_procedure");
q.next();
qDebug() << q.value(0); // outputs the first RETURN/OUT value