[erledigt]Probleme beim Öffnen einer Datenbank ??

Alles rund um die Programmierung mit Qt
Antworten
BenOtt
Beiträge: 13
Registriert: 3. März 2015 13:58

[erledigt]Probleme beim Öffnen einer Datenbank ??

Beitrag von BenOtt »

Um mich in Qt ein zu arbeiten probiere ich einige Dinge aus. Dabei bin ich auf ein für mich nicht erklärbares Verhalten gestossen. Oder habe ich hier etwas übersehen?

Bei einer Anwendung, in der ich mit verschiedenen Elementen experimentieren will habe ich vergessen die dafür erforderliche Datenbank zu erstellen. Nachdem ich zunächst die Oberfläche erstellt und dann die Datenbankverbindung programmiert habe, wollte ich eigentlich nur das Design der Oberfläche überprüfen und mußte dann feststellen, das mir mein Statusfeld anzeigt das bereits eine Verbindung besteht. Daraufhin habe ich mir einige Daten per debug ausgeben lassen.

Code: Alles auswählen

 
QSqlDatabase  myDB = QSqlDatabase::addDatabase("QSQLITE");
myDB.setDatabaseName("MeineTestDB.db");
if (myDB.open())
{
   qDebug() << "isOpen     : " << myDB.isOpen() << endl;
   qDebug() << "last error : " << myDB.lastError() << endl;
   qDebug() << "open error : " << myDB.isOpenError() << endl;
   qDebug() << "isValid    : " << myDB.isValid() << endl;
   qDebug() << "DB Name    : " << myDB.databaseName() << endl;
   qDebug() << QSqlDatabase::drivers() << endl;

   ui->txtStatus->setText("mit DB verbunden...");
	
   return true;
}  
per Debug erhalte ich die folgenden Informationen. Wieso ist isOpen = true? usw. obwohl die Datenbank noch nicht existiert?

isOpen : true
last error : QSqlError("", "", "")
open error : false
isValid : true
DB Name : "MeineTestDB.db"

("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
Wie kann ich sicher überprüfen, ob die Datenbank existiert bzw. auch geöffnet werden kann?
Danke schon mal für eure Hilfe.
Zuletzt geändert von BenOtt am 26. März 2015 12:54, insgesamt 1-mal geändert.
MfG
Ben
odt
Beiträge: 128
Registriert: 12. August 2010 11:49
Kontaktdaten:

Re: Probleme beim Öffnen einer Datenbank ??

Beitrag von odt »

sqlite oder qslite legt beim Open automatisch ein File an, insofern sie noch nicht existiert.
daher vorgängig mit QFile( filename ).exists() prüfen.
ODT Informatik GmbH, Reto Tschofenig
BenOtt
Beiträge: 13
Registriert: 3. März 2015 13:58

Re: [erledigt]Probleme beim Öffnen einer Datenbank ??

Beitrag von BenOtt »

odt hat geschrieben:sqlite oder qslite legt beim Open automatisch ein File an, insofern sie noch nicht existiert.
Danke für die Info.
Das erklärt natürlich einiges.
MfG
Ben
Antworten