Deploy Qt5.2 plus MYSQL Win7 [SOLVED]
-
Hallo Forum,
ich habe ein Projekt mit Release erstellt. Im Debug funktioniert die Datenbank Anbindung über das Netzwerk ohne Probleme (MySQL Server xxx.xxx.xxx.200 Port 3306 user "test" password "test").
Aber jetzt war das Projekt fertig und ich wollte ein Release machen. Das Projekt kann ich ohne Fehlermeldung öffnen aber er kann die Datenbank nicht öffnen.
Ich habe ein Ordner "Biodate" (Projektname) erstellt und dort alle DLL´s die er braucht eingefügt. Dazu ist in dem Ordner noch die EXE Datei und ein Ordner "platforms" sowie "sqldrivers".Weist einer von euch eine Lösung? Habe auch nochmals auf Build neu erstellt aber ohne Erfolg.
Gruß
Alex
-
Hallo,
zur Analyse ist das hoffentlich hilfreich:
@
sql = "SELECT a, b, c FROM test WHERE a = 'eins'";
query.prepare(sql);
if (!query.exec()) {
QMessageBox::warning(this,
"MYAPP",
"Fehler in der Datenbankabfrage F01!" +
query.lastError().text(),
QMessageBox::Ok,
QMessageBox::Ok);
qDebug() << sql;
return;
}
@anstelle von query.lastError() auch db.connectionName() etc.
-
Bekomme von Windows folgende Meldung:
@Problem signature:
Problem Event Name: APPCRASH
Application Name: Biodate.exe
Application Version: 0.0.0.0
Application Timestamp: 53344efa
Fault Module Name: Qt5Cored.dll
Fault Module Version: 5.2.1.0
Fault Module Timestamp: 52ed67e6
Exception Code: c00000fd
Exception Offset: 001c0d76
OS Version: 6.1.7601.2.1.0.256.48
Locale ID: 1031
Additional Information 1: 0224
Additional Information 2: 02243292856ec4b94152c7718e4919e1
Additional Information 3: b118
Additional Information 4: b118752717c348612a233e4229bd1cf9Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
@ -
Die Meldungen sagen mir leider nichts - beanstandet wird scheinbar die Qt5Cored.dll.
Läuft das Programm noch, wenn du es im Creator in Debug oder Release startest? Hilft evtl. ein komplett neuer Build?
Ich würde als nächsten Schritt ein ganz simples Hello World Programm testen und - wenn die App wieder crashed, nach "Qt5Cored.dll Win7 crash" googeln. -
Hab jetzt das komplette Qt neu Installiert und es ist immer noch der Fehler da :-(
Weis einer einen rat?
"hier das Projekt":https://www.dropbox.com/s/dm86239at8hwj5o/Biodate.rar
-
Also habe folgendes Testobjekt erstellt und ausprobiert:
@public:
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();
}@Mit Folgendem Button und TableView
@ MainWindow main;
if(!main.dbOpen())
QMessageBox::critical(this,"ERROR","Datenbank nicht offen");
else
{
QSqlQuery *qry = new QSqlQuery(main.db1);
QSqlQueryModel * model = new QSqlQueryModel();
qry->prepare("SELECT * FROM einkauf");
if(qry->exec())
{
model->setQuery(*qry);
ui->tableView->setModel(model);} else QMessageBox::critical(this,"ERROR",qry->lastError().text()); }@
Das Programm läuft ohne Fehler und die Datenbank wird auch geöffnet und darf die Table sehen.
-
und was ist jetzt mit deinem biodate-projekt?
Bekommst du noch Fehlermeldungen oder läuft das jetzt auch?
Die zuletzt gepostete Meldung bezieht sich ja wahrscheinlich auf das Öffnen der Datenbank und - soweit ich das sehe - ist das identisch mit dem Testprogramm. -
Ich kann das Projekt nur starten, wenn ich in mainwindow.cpp die Zeile "MainWindow main" auskommentiere. Mit der Zeile stürzt das Programm sofort ab mit "RTTI symbol not found..."
@
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
// auskommentiert: MainWindow main;
ui->setupUi(this);
ui->menuBar->hide();}
@Ich kann aber nur bis zum mainwindow.ui testen, weil ich die Datenbank nicht habe - bzw. aktuell auch ausschließlich mit PostgreSQL arbeite. Es erscheint aber die Fehlermeldung: "Fehler beim öffnen der Datenbank" und das ist ja die erwartete Reaktion.
-
-
So, habe jetzt mal alle dll die er sagt in das gleiche Verzeichnis getan. Beim starten kommt folgende fehlermeldung:
@The procedure entry point _Z8qWinMainP11HINSTANCE_S0_PciRiR7QVectorIS1_E could not be located in the dynamic link library Qt5Core.dll.@
Weis das jemand zufällig?