找回密码
 注册
查看: 2002|回复: 1

qt的sqlite数据库问题

[复制链接]
发表于 2007-2-23 10:12:29 | 显示全部楼层 |阅读模式
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只能使用绝对路径来定位数据库吗?
 楼主| 发表于 2007-2-24 21:09:22 | 显示全部楼层
解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-5-18 07:40 , Processed in 0.022756 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表