2017-12-06 6 views
0

Ich habe eine lokale Datenbank, die ich verbinden möchte. Hier ist mein Code, aber leider funktioniert es nicht.Verbinden mit Firebird Datenbank in Qt

QString servername = "[email protected]"; 
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); 
    db.setHostName(servername);  
    db.setDatabaseName("Driver={InterBase ODBC driver};DATABASE=D:\\baza\\BAZA.fdb;");  
    db.setUserName("SYSDBA"); 
    db.setPassword("masterkey"); 
    if (db.open()) 
     qDebug() << "Connected"; 
    else 
     qDebug() << "Nope :("; 

Ich würde jede Hilfe zu schätzen wissen.

+0

_ „es funktioniert nicht“ _ Können Sie sein spezifischer? Erhalten Sie einen Fehler, was passiert? Welchen Treiber verwendest du? Als "InterBase ODBC-Treiber" schlägt vor, dass Sie nicht den Firebird ODBC-Treiber, sondern einen für InterBase verwenden. –

+0

Ich kann keine Verbindung zur Datenbank herstellen. Sie haben Recht, die "InterBase ODBC-Treiber" -Syntax ist falsch. Ist das nur ein Fehler in meinem Code? Grüße –

+0

Ich bin nicht vertraut mit QT, und meine Erfahrung mit ODBC ist sehr begrenzt. Ziehen Sie in Erwägung, auf der firebird-odbc-Mailingliste zu posten oder die [Dokumentation des Firebird ODBC-Treibers] zu überprüfen (https://www.firebirdsql.org/file/documentation/reference_manuals/driver_manuals/odbc/html/fbodbc205.html) –

Antwort

1

Ich habe es endlich verstanden. Sie haben Ihren ODBC-Treiber in Windows einzurichten: https://kb.brainwaregroup.com/operationsmanager/faces/kb/brainwaregroup%20kb/article/AA-00486

Dann können Sie es direkt dsn in Windows-Verwaltungstools konfiguriert mit verbinden:

QString servername = "localhost"; 
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); 
db.setHostName(servername); 
db.setDatabaseName("YOUR_DSN_NAME"); 
db.setUserName("SYSDBA"); 
db.setPassword("masterkey"); 
Verwandte Themen