QT 4 Visual Studio 2005 und Sqlite

Alles rund um die Programmierung mit Qt
Antworten
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

QT 4 Visual Studio 2005 und Sqlite

Beitrag von Frostie »

Hallo,

das ist bestimmt ne dumme Frage, hab auch schon überall nachgesehen, aber leider nichts gefunden.

Ich will eine Verbindung zu einer Sqlite Datenbank aufbauen aber es klappt einfach nicht.

Mein Code:

Code: Alles auswählen

#include <qt/qmessagebox.h>
#include <qt/qdialog.h>
#include <qt/QSqlDatabase.h> 
#include <qt/QSqlError.h> 
#include <qt/QSqlQuery.h> 
#include <qt/QSqlTableModel.h> 
#include <qt/QSqlRelationalTableModel.h> 
#include <qt/QSqlRelationalDelegate.h> 
#include <qt/QHeaderView.h> 
#include <qt/QSqlRecord.h>


Dialog::Dialog() : QDialog()
{
// create gui elements defined in the Ui_MainWindow class
setupUi(this);


connect(m_pushButton, SIGNAL(clicked()), this, SLOT(textandern()));
connect(m_pushButton2, SIGNAL(clicked()), this, SLOT(DbConnect()));


}
Dialog::~Dialog()
{
// no need to delete child widgets, QT does it all for us
}


void Dialog::DbConnect() 
{	
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    /*db.setHostName("localhost");
    db.setDatabaseName("test");
    db.setUserName("root");
    db.setPassword("");*/


}
Sogar in dieser minimalversion bekomme ich schon Fehlermeldungen:

Dialog.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QAE@XZ)" in Funktion ""protected: void __thiscall Dialog::DbConnect(void)" (?DbConnect@Dialog@@IAEXXZ)".
Dialog.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class QSqlDatabase __cdecl QSqlDatabase::addDatabase(class QString const &,class QString const &)" (__imp_?addDatabase@QSqlDatabase@@SA?AV1@ABVQString@@0@Z)" in Funktion ""protected: void __thiscall Dialog::DbConnect(void)" (?DbConnect@Dialog@@IAEXXZ)".
Dialog.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static char * QSqlDatabase::defaultConnection" (__imp_?defaultConnection@QSqlDatabase@@2PADA)".


Muß ich noch was einbinden, z.B. die sqlite3.dll oder so??
Und wenn ja, wie macht man das, in C# mußte ich z.B. für mysql nur
einen Verweis zur dll hinzufügen, hier geht das irgendwie nicht

Danke für die Hilfe

Gruß
Frostie
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

Beitrag von Frostie »

Tja,

das hab ich ja getan,

aber leider setzt es hier schon aus:

To link against the module, add this line to your qmake .pro file:

QT += sql

Was ist ein .pro file??

Sowas habe ich leider nicht! Wie heißt dieses File unter VS2005??

Danke
Gruß
Frostie
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich würde sagen - lern erstmal die Grundlagen von Qt:
http://doc.trolltech.com/4.1/qmake-manual.html
http://doc.trolltech.com/4.1/examples.html

Um es einfach zu sagen - die fehlt die qt sql lib, die muss natürlich auch mit gelinkt werden.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

Beitrag von Frostie »

Kann mir wenigstens jemand sagen wo das .pro File sein soll?

Unter meinem QT Ordner habe ich nämlich tausende und leider in meinem Projekt keine einzige.

Danke
isifloh
Beiträge: 37
Registriert: 31. August 2006 09:40

Beitrag von isifloh »

hi

nach dem du ja unter visual studio 2005 arbeitest geht das ah bisi anders.
falls du die kommerzielle fassung hast und die integration installiert hast einfach mittels das sql qt modul in der projekt eigenschaft hinzufügen.

falls du nicht die komerziele hast kannst du dies auch per hand so machen
projekteigenschaften linker und dort bei den libs die qsql4.lib (ich glaub so heists) eingeben.

mfg
Frostie
Beiträge: 60
Registriert: 23. September 2006 09:02

Beitrag von Frostie »

So,

ich hab den Fehler gefunden:

Die QSqld4.lib sollte eingebunden sein, dann geht auch alles.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Sag ich doch die ganze Zeit... :roll:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten