Qt 5.2.1 MySQL SQL Driver installieren [SOLVED]
-
Soweit ich weiß, gibt es eine Option im dir-Befehl.
Aber zur Not kannst du das auch berechnen:
Es werde die ersten 6 Buchstaben - ohne Leerzeichen - verwendet, dann die Tilde ~ und fortlaufende Ziffern, beginnend mit 1.
Wahrscheinlich ist das MYSQLS~1
Viel Erfolg -
Kannst du denn keinen Unterschied erkennen zwischen den beiden Programmen?
Ich würde die beiden Stück für Stück verkleinern, bis nur noch minimale Datenbank-Funktionen vorhanden sind - dadurch müsstest du dem Fehler auf die Spur kommen.
Was tun die beiden Programme? -
Mit einem Projekt gehe ich über das Menü auf ein Dialog und in diesem wird eine table mittels button in ein tableView angezeigt und sagt mir Driver not loaded Driver not loaded
Die pro: @QT += core gui sql@
Include:@ #include <QtSql>@
Datenbank:@QSqlDatabase db1;
bool dbOpen()
{
db1=QSqlDatabase::addDatabase("QMYSQL");
db1.setDatabaseName("baur_test_dbo");
db1.setHostName("10.211.55.6");
db1.setPort(3306);
db1.setUserName("test");
db1.setPassword("server");
if(!db1.open())
return false;
else
return true;
}
void dbClose()
{
db1.close();
}
@Das andere Programm startet mit dem MainWindow mit TableView und Button und lädt mir die Table im TableView ohne Probleme.
pro: @QT += core gui sql@
include: @#include <QtSql>@
Datenbank:@QSqlDatabase mydb1;
bool openDatabase()
{
mydb1 = QSqlDatabase::addDatabase("QMYSQL");
mydb1.setHostName("10.211.55.6");
mydb1.setDatabaseName("baur_test_dbo");
mydb1.setPort(3306);
mydb1.setUserName("test");
mydb1.setPassword("server");
if(!mydb1.open())
return false;
else
return true;
}void closeDatabase() { mydb1.close(); }
@
Wenn ich bei diesem Programm in Qt/5.2.1/mingw/.../sqldrivers die mysql dll´s herausschneide funktioniert dieses Programm nicht. Also hat er sie theroretisch doch erkannt?
-
Du hast recht, die dlls werden sicher gefunden und verwendet. Und das ist mehr als die halbe Miete!
Ich vermute, dass dein Problem jetzt "nur noch" an dem Dialog liegt, mit dem du im ersten Beispiel die Datenbank öffnest.Zum Absichern würde ich jetzt versuchen, das erste Programm ohne den Dialog zum Laufen zu bringen. Dann solltest du dir im Qt-Beispiel SQL Browser die Verbindung Dialog zur Browser-Klasse anschauen.
@
QSqlTableModel *model = new CustomModel(table, connectionWidget->currentDatabase());
@ -
Ich hab mal bei Dropbox die Programme in einem Zip getan:
"Hier":https://www.dropbox.com/s/95gi1tpalpodp73/Desktop.rar
Mit dem Beispiel komme ich noch nicht so klar :-(
-
Ich denke, ich habe den Fehler gefunden:
Im Projekt database öffnest du mit
@
if(!openDatabase())
ui->statusLabel->setText("Error");
else
ui->statusLabel->setText("Connected...");
@
die Datenbank.Das fehlt - wenn ich es richtig sehe - im Projekt Biodate.
Füge doch in
@void Anzeigen::on_anzeigenButton_clicked()@den dbOpen() ein.
-
Also habe im anderem Projekt folgendes gemacht:
@void Anzeigen::on_anzeigenButton_clicked()
{
MainWindow main;
main.db1.open();
QSqlQuery *qry = new QSqlQuery(main.db1);
QSqlQueryModel *model = new QSqlQueryModel();
qry->prepare("select * from strom");
if(qry->exec())
{
model->setQuery(*qry);
ui->tableView->setModel(model);
}
else
QMessageBox::critical(this,"ERROR",qry->lastError().text());
}@funktioniert trotzdem nicht und bringt den Fehler das er die Driver nicht gefunden wurde
-
Du solltest in deinem Biodate Projekt den Eintrag wie im Database Projekt setzen (nur dbOpen statt openDataBase):
@
if(!dbOpen())
ui->statusLabel->setText("Error");
else
ui->statusLabel->setText("Connected...");
@Dann ist die Datenbank geöffnet und du kannst deine queries ausführen.
-
-
Für deine Hilfe sage ich recht herzlichen Dank :-)
Das mit Solved wollte ich noch erledigen habe es aber gestern vergessen da dies so gut funktioniert hat :-D
Aber was mich noch interessieren würde ob es schon einen guten Thread gibt der das Thema Drucken behandelt :-) -
Ich habe noch keinen Thread zum Thema Drucken gesehen.
Du solltest mal unter QPainter/QPrinter suchen.
Mit dem Thema muss ich mich in den nächsten Tagen etwas intensiver beschäftigen...
Für den Einstieg ist in der Qt Hilfe das Thema Qt Print Support empfehlenswert und hier für sofortige Ergebnisse das Kapitel QWidget::render - damit kannst Du beliebige Widgets auf den Drucker ausgeben.