2014-10-06 34 views
0
pro: 
QT  += core gui sql 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = Game 
TEMPLATE = app 


SOURCES += main.cpp\ 
    mainwindow.cpp 

HEADERS += mainwindow.h 

mainwindow.cpp: 

#include "QtSql" 
#include "QSqlDatabase" 
//#include "QtDebug" 
//#include "QFileInfo" 


MainWindow::MainWindow(QWidget *parent) 
: QMainWindow(parent) 
{ 


mydb = new QSqlDatabase::addDatabase("QSQLITE"); <------- ERROR LINE 
mydb->setDatabaseName("C:/sqllite2/bazadannyh.sqlite"); 

bool ok = mydb->open(); 

widget = new QWidget(); 

mainwindow.h: 

#include <QSqlDatabase> 
class MainWindow : public QMainWindow 
{ 
Q_OBJECT 

public: 
MainWindow(QWidget *parent = 0); 
~MainWindow(); 

QString *s; 


QSqlDatabase *mydb; 

我在這裏宣佈MYDB,否則我不能讓我的公共插槽訪問它。可以嗎?不能與數據庫(SQLite的)連接的Qt


main.cpp: 

#include "mainwindow.h" 
#include <QApplication> 
#include "QtGui" 



int main(int argc, char *argv[]) 
{ 
QApplication a(argc, argv); 
MainWindow w; 
w.show(); 


return a.exec(); 
} 

也是我選擇來聲明DB是正確的地方?或者我應該改變它?

錯誤:mainwindow.cpp:19:error:expected type-specifier mydb = new QSqlDatabase :: addDatabase(「QSQLITE」); '預期'爲' ';'

幫幫我!我該怎麼辦?

回答

2

部首:

public: 
MainWindow(QWidget *parent = 0); 
~MainWindow(); 

QString *s; 


QSqlDatabase mydb;//not a pointer 

的.cpp

mydb = QSqlDatabase::addDatabase("QSQLITE"); 
mydb.setDatabaseName("C:/sqllite2/bazadannyh.sqlite"); 

bool ok = mydb.open(); 
+0

mainwindow.cpp:20:錯誤:在分配不能轉換 'QSqlDatabase' 到 'QSqlDatabase *' MYDB = QSqlDatabase :: addDatabase(」 QSQLITE「); – 2014-10-06 11:12:08

+0

@MedetKoilybay請看我的編輯,應該清楚如何解決這個問題。 – Chernobyl 2014-10-06 11:14:33

+0

謝謝你,小子! – 2014-10-06 11:19:26