如何使用指针函数返回的对象
先给一个简单的数据库链接代码,调试通过可以看到数据结果,给这个是为了避免有人以为我数据库配错了或者其他代码错了。
QSqlDatabase MainWindow:: iniDBConnect(QString Server, QString UserName, QString Password, QString Database)
{
QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(Server);
db.setUserName(UserName);
db.setPassword(Password);
db.setDatabaseName(Database);
return db;
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
QSqlDatabase db = iniDBConnect(QString("localhost"),QString("gxx"),QString(""),QString("information_schema"));
bool bOpen = db.open();
//... 以下查询数据部分省略,结果界面上view内能看到数据。
}
QSqlDatabase * MainWindow:: iniDBConnect(QString Server, QString UserName, QString Password, QString Database)
{
QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(Server);
db.setUserName(UserName);
db.setPassword(Password);
db.setDatabaseName(Database);
return &db;
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
try
{
QSqlDatabase * db = iniDBConnect(QString("localhost"),QString("gxx"),QString(""),QString("information_schema"));
bool bOpen = (*db).open(); //编译通过,执行这句代码时报liunx底层错误
QSqlDatabase * MainWindow:: iniDBConnect(QString Server, QString UserName, QString Password, QString Database)
{
QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(Server);
db.setUserName(UserName);
db.setPassword(Password);
db.setDatabaseName(Database);
return new QSqlDatabase(db);
}