Database schema: use string.replace for TEXT/LONGTEXT

Because generally using QString.arg() results in an error for
strings without %1
Also use the static database() function instead of creating
a temporary instance during close.
This commit is contained in:
Christian Hohnstaedt 2024-01-17 17:37:50 +01:00
parent f3dc07c00d
commit b6ce91b81c
2 changed files with 4 additions and 12 deletions

View File

@ -100,7 +100,7 @@ QSqlError database_model::initSqlDB()
if (i >= ARRAY_SIZE(schemas))
break;
foreach(QString sql, schemas[i]) {
sql = sql.arg(b64_blob);
sql.replace("{B64_BLOB}", b64_blob);
qDebug("EXEC[%d]: '%s'", i, CCHAR(sql));
if (!q.exec(sql) || q.lastError().isValid()) {
TransRollback();
@ -333,17 +333,9 @@ void database_model::as_default_database(const QString &db)
database_model::~database_model()
{
QByteArray ba;
QString connName;
bool dbopen;
QString connName = QSqlDatabase::database().connectionName();
{
/* Destroy "db" at the end of the block */
QSqlDatabase db = QSqlDatabase::database();
connName= db.connectionName();
dbopen = db.isOpen();
}
if (!dbopen) {
if (!QSqlDatabase::database().isOpen()) {
QSqlDatabase::removeDatabase(connName);
Settings.clear();
return;

View File

@ -8,7 +8,7 @@
* on mysql where LONGTEXT is used.
*/
#define B64_BLOB "%1"
#define B64_BLOB "{B64_BLOB}"
/*
* The B64(DER(something)) function means DER encode something