zzhcpp 发表于 2007-2-23 10:12:29

qt的sqlite数据库问题

shiyan.h
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>
#include <QLineEdit>
#include <QtSql>
class shiyan : public QWidget
{
Q_OBJECT
QPushButton *charu;
QPushButton *chaxun;
QLineEdit *bianji;
QSqlDatabase db;

public:
   shiyan(QWidget *parent = 0);
public slots:
   void charuzhi();
void huoquzhi();
};
shiyan.cpp
#include <QString>
#include <QSqlQuery>
#include "shiyan.h"

shiyan::shiyan(QWidget *parent):QWidget(parent)
{


   charu = new QPushButton("charu");
chaxun = new QPushButton("chaxun");
bianji = new QLineEdit("abc");

   QVBoxLayout *layout = new QVBoxLayout;
   layout->addWidget(bianji);
   layout->addWidget(charu);
   layout->addWidget(chaxun);
   setLayout(layout);
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("/home/zzh/123/zzh");
db.open();
connect(charu,SIGNAL(clicked()),this,SLOT(charuzhi()));
connect(chaxun,SIGNAL(clicked()),this,SLOT(huoquzhi()));

   


}


void shiyan::charuzhi()
{

if(db.isOpen()){
QString zhi = bianji->text();
QSqlQuery query;
query.prepare("insert into biao values(:id)");
query.bindValue(":id",zhi);
query.exec();
}

}
void shiyan::huoquzhi()
{
QSqlQuery query;
query.exec("SELECT a FROM biao");
while (query.next()) {
         QString name = query.value(0).toString();
         bianji->setText(name);
         
   }


}
main.cpp
#include <QApplication>
#include "shiyan.h"
int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   shiyan widget;

   widget.show();
   return app.exec();
}
前两天我编译程序,能编译,提示我找不到槽,后来槽搞定了,数据库又打不开了,后来数据库能打开了,但只能在命令行下执行,直接双击执行,数据库就工作不了了,我用当前路径./zzh和zzh都不行,换成绝对路径就正常了,就象上面写的那样。QT只能使用绝对路径来定位数据库吗?

zzhcpp 发表于 2007-2-24 21:09:22

解决
页: [1]
查看完整版本: qt的sqlite数据库问题