Qt4访问sqlite数据库

合集下载

ue4 中使用 sqlite数据库操作步骤

ue4 中使用 sqlite数据库操作步骤

ue4 中使用sqlite数据库操作步骤UE4 是一款强大的游戏开发引擎,其内置的数据库管理系统支持使用SQLite 进行数据库操作。

SQLite 是一种轻量级的嵌入式数据库引擎,适用于小型项目和移动设备开发。

在本文中,我们将详细介绍在UE4 中使用SQLite 数据库的操作步骤。

1. 下载SQLite 插件首先,我们需要下载并导入SQLite 插件到UE4 项目中。

可以从UE4 Marketplace 或GitHub 等渠道下载到相应的插件。

在插件成功导入项目后,我们可以开始配置和使用SQLite 数据库。

2. 创建SQLite 数据库在UE4 中,我们可以使用SQLite 蓝图函数库来创建和管理数据库。

通过使用函数库中的"Open Database" 节点,我们可以通过传递数据库路径和名称来创建数据库文件。

这样就可以开始数据的存储和读取。

3. 执行SQL 语句SQLite 数据库操作的核心就是执行SQL 语句。

在UE4 中,SQLite 插件提供了一些基本的SQL 语句处理函数,比如"Execute SQLite Query",用于执行SQL 查询语句。

我们可以在Unreal 蓝图中使用该函数,并将查询结果存储在变量中,以供后续的操作使用。

4. 读取数据当我们完成SQL 查询语句的执行后,可以通过使用"Get Data as Object" 等函数,将查询结果从数据库中获取到UE4 的对象中。

这样就可以在游戏中使用这些数据来进行一些逻辑的处理或者显示。

5. 写入数据除了读取数据,我们还可以将游戏中的数据写入到SQLite 数据库中。

通过使用"Insert Data" 或者"Update Data" 等函数,可以将游戏中的数据插入或者更新到数据库中。

6. 关闭数据库当我们完成数据读取、写入操作后,应该使用相应的函数关闭数据库,以避免资源的浪费。

SQLite的介绍操作Sqlite具体实例

SQLite的介绍操作Sqlite具体实例

SQLite的介绍操作Sqlite具体实例1.SQLite简介SQLite是⼀款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计⽬标是嵌⼊式的,⽽且⽬前已经在很多嵌⼊式产品中使⽤了它,它占⽤资源⾮常的低,在嵌⼊式设备中,可能只需要⼏百K的内存就够了。

它能够⽀持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语⾔相结合,⽐如Tcl、PHP、Java、C++、.Net等,还有ODBC接⼝,同样⽐起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度⽐他们都快。

2.SQLite的特点:轻量级SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。

使⽤SQLite⼀般只需要带上它的⼀个动态库,就可以享受它的全部功能。

⽽且那个动态库的尺⼨也挺⼩,以版本3.6.11为例,Windows下487KB、Linux下347KB。

不需要"安装"SQLite的核⼼引擎本⾝不依赖第三⽅的软件,使⽤它也不需要"安装"。

有点类似那种绿⾊软件。

单⼀⽂件数据库中所有的信息(⽐如表、视图等)都包含在⼀个⽂件内。

这个⽂件可以⾃由复制到其它⽬录或其它机器上。

跨平台/可移植性除了主流操作系统 windows,linux之后,SQLite还⽀持其它⼀些不常⽤的操作系统。

弱类型的字段同⼀列中的数据可以是不同类型开源3.SQLite数据类型⼀般数据采⽤的固定的静态数据类型,⽽SQLite采⽤的是动态数据类型,会根据存⼊值⾃动判断。

SQLite具有以下五种常⽤的数据类型:NULL: 这个值为空值VARCHAR(n):长度不固定且其最⼤长度为 n 的字串,n不能超过 4000。

CHAR(n):长度固定为n的字串,n不能超过 254。

INTEGER: 值被标识为整数,依据值的⼤⼩可以依次被存储为1,2,3,4,5,6,7,8.REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.TEXT: 值为⽂本字符串,使⽤数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).BLOB: 值是BLOB数据块,以输⼊的数据格式进⾏存储。

qtciphersqliteplugin 用法

qtciphersqliteplugin 用法

`qtciphersqliteplugin` 是一个用于Qt 框架的SQLite 数据库插件,它提供了一种在Qt 应用程序中使用SQLite 数据库的方法。

这个插件通常用于增加加密功能,以确保数据库中的数据安全。

以下是`qtciphersqliteplugin` 的一般用法:1. 安装插件:首先,你需要将`qtciphersqliteplugin` 添加到你的Qt 项目中。

这通常涉及到将插件的 .dll 文件复制到你的项目目录中,或者使用Qt 的在线插件系统进行安装。

2. 配置项目:在你的Qt 项目中,你需要配置项目文件(.pro),以确保项目可以正确地找到并使用`qtciphersqliteplugin`。

你可能会需要添加相关的INCLUDE 和LIBS 路径。

3. 使用插件:在你的Qt 应用程序中,你可以像使用其他任何Qt 类一样使用`qtciphersqliteplugin`。

首先,你需要包含必要的头文件,然后创建一个`QTCipherSQLiteDatabase` 对象来操作数据库。

4. 打开数据库:使用`QTCipherSQLiteDatabase` 的`openDatabase` 方法来打开一个加密的数据库。

你需要提供数据库文件的路径和密码。

5. 执行SQL 命令:使用`QTCipherSQLiteDatabase` 的`execSQL` 方法来执行SQL 命令。

这与其他Qt SQL 模块的使用方式类似。

6. 处理结果:执行SQL 查询后,你可以使用`QTCipherSQLiteDatabase` 提供的机制来处理结果,例如获取查询到的数据或处理事务。

7. 关闭数据库:当你完成数据库操作后,应该使用`closeDatabase` 方法来关闭数据库连接。

请注意,由于`qtciphersqliteplugin` 是一个第三方插件,具体的用法可能会根据插件的版本和文档有所不同。

因此,建议查阅该插件的官方文档或提供的使用说明以获取详细的使用方法。

python访问sqlite封装的常用类实例

python访问sqlite封装的常用类实例

python访问sqlite封装的常用类实例在Python中,访问SQLite数据库通常使用封装好的类库,如sqlite3模块提供了对SQLite数据库的底层访问。

SQLite是一种轻量级的关系型数据库,广泛应用于移动应用和嵌入式系统中。

下面将介绍SQLite数据库的常用类和实例。

1. 连接数据库:使用sqlite3.connect()函数可以建立与SQLite数据库的连接。

这个函数接受一个参数,表示数据库文件的路径。

如果数据库文件不存在,会自动创建。

示例代码:```import sqlite3conn = sqlite3.connect("test.db")```2. 创建表:使用游标(cursor)对象可以执行SQL语句。

首先,要调用游标的execute()方法,参数是一条创建表的SQL语句。

然后,调用commit()方法提交事务,确保表结构的改变生效。

示例代码:```cursor = conn.cursor()cursor.execute("CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")mit()```3. 插入数据:使用INSERT语句可以将数据插入到表中。

首先,要调用游标的execute()方法,参数是一条插入数据的SQL语句。

然后,调用commit()方法提交事务,确保数据的改变生效。

示例代码:```cursor.execute("INSERT INTO students (name, age) VALUES ('Alice', 20)")mit()```4. 查询数据:使用SELECT语句可以从表中查询数据。

首先,要调用游标的execute()方法,参数是一条查询数据的SQL语句。

然后,通过调用游标的fetchone()或fetchall()方法获取查询结果。

QT与SQLite数据库学习资料

QT与SQLite数据库学习资料

当然我们一定要记住这个顺序,先创建数据库,然后再去创建一个表(作为菜鸟的我犯这个错误了),还有一点需要注意的红色标记的那句话,我参考的数籍一般都这样写db.setDatabaseName(":memory:");这样就把生成的数据库文件是在内存当中的,在工程文件目录下找不到。

上面使我们创建了一个数据库和一个表,那么我们如何把它呈现在我们的QTableview部件上呢?QSqlTableModel *model = new QSqlTableModel;model->setTable("person");model->setEditStrategy(QSqlTableModel::OnManualSubmit);model->select();ui->tableView->setModel(model);ui->tableView->show();上面的代码就把数据库中的信息不加筛选的打印到控件上了。

第一次写博客大家多多包涵。

Qt中提高sqlite的读写速度SQLite数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频繁的文件操作将会是一个很好时的过程,会极大地影响数据库存取的速度。

例如:向数据库中插入100万条数据,在默认的情况下如果仅仅是执行query.exec("insert into DataBase(......)values(......)");就会打开和关闭文件100万次,所以速度当然会很慢。

SQLite 数据库是支持事务操作的,于是我们就可以通过事务来提高数据库的读写速度。

事务的基本原理是:数据库管理系统首先会把要执行的sql语句存储到内存当中,只有当commit()的时候才一次性全部执行所有内存中的数据库。

下面是一个简单的QT sqlite数据库事务的例子:#include <QtCore/QCoreApplication>#include <QtSql>#include <iostream>using namespace std;int main(int argc, char *argv[]){QCoreApplication a(argc, argv);QSqlDatabase db_sqlite = QSqlDatabase::addDatabase("QSQLITE", "connSQLite");db_sqlite.setDatabaseName("SQLiteDB.db3");db_sqlite.open();QSqlQuery query("", db_sqlite);bool bsuccess = false;QTime tmpTime;// 开始启动事务db_sqlite.transaction();tmpTime.start();for(int i = 0; i<100000; i++){bsuccess = query.exec("insert into DataBase(D_1,D_2,D_3,D_4,D_5) values('TT','TT','TT','TT','TT')");if (!bsuccess){cout<<"Error occur"<<endl;break;}}// 提交事务,这个时候才是真正打开文件执行SQL语句的时候db_mit();cout<<"10000条数据耗时:"<<tmpTime.elapsed()<<"ms"<<endl;}其实QT 操作sqlite数据库增加事务的功能就是上面例子中蓝色字体标出的两句话,如果去掉这两句话,程序又会还原为:打开文件——执行query.exec(...)——关闭文件。

Qt数据库操作

Qt数据库操作

3.修改main.cpp中的内容如下。 #include <QtCore/QCoreApplication> #include <QtSql> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”); //添加数据库驱动 db.setDatabaseName(“:memory:”); //数据库连接命名 if(!db.open()) //打开数据库 { return false; } QSqlQuery query; //以下执行相关QSL语句 query.exec(“create table student(id int primary key,name varchar)”); //新建student表,id设置为主键,还有一个name项 query.exec(“insert into student values(1,’xiaogang’)”); query.exec(“insert into student values(2,’xiaoming’)”); query.exec(“insert into student values(3,’xiaohong’)”); //向表中插入3条记录 query.exec(“select id,name from student where id >= 2″); //查找表中id >=2 的记录的id项和name项的值 while(query.next()) //query.next()指向查找到的第一条记录,然后每次后移一条记录 { int ele0 = query.value(0).toInt(); //query.value(0)是id的值,将其转换为int型 QString ele1 =query.value(1).toString(); qDebug() << ele0 <<ele1 ; //输出两个值 } } return a.exec();

SQLite数据库利用详解程序

SQLite数据库利用详解程序

1.SQLite数据库的优势:1.1 轻量级SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,利用SQLite一样只需要带上它的一个动态库。

以版本为例,Windows下487KB、Linux下347KB。

1.2 绿色软件它的核心引擎本身不依托第三方的软件1.3 单一文件确实是数据库中所有的信息(比如表、视图、触发器、等)都包括在一个文件内。

那个文件能够copy到其它目录或其它机械上,也照用不误。

CSV也是单一文件格式。

它本身确实是用来表示二维的数据信息的。

一个CSV文件能够明白得为数据库的一张表。

CSV的缺点要紧在于:不便于存储非文本的数据信息(比如BLOB类型的信息);若是需要同时存储多张表的信息,就需要对应有多个CSV文件(文件一多,就嫌麻烦)。

1.4 跨平台/可移植性除主流操作系统,SQLite还支持了很多其他的操作系统。

如对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。

Access数据库最要紧的缺点确实是不能跨平台。

另外还有几个小缺点:文件大小有限制(2GB)、不支持内存数据库。

1.5 内存数据库(in-memory database)现在内存愈来愈廉价,很多一般PC都开始以GB为单位来衡量内存(效劳器就更甭提了)。

这时,SQLite的内存数据库特性就越发显得好用。

SQLite的API不区分当前操作的数据库是在内存仍是在文件(关于存储介质是透明的)。

因此若是你感觉磁盘I/O有可能成为瓶颈的话,能够考虑切换为内存方式。

切换的时候,操作SQLite的代码大体不用大改,只要在开始时把文件Load到内存,终止时把内存的数据库Dump回文件就OK了。

1.6 编程语言接口由于SQLite本身是C写的,它自带的API也是C接口的。

2.SQLite数据库的缺点:2.1并发访问的锁机制SQLite在并发(包括多进程和多线程)读写方面的性能不太理想。

delphi 连接sqlite数据库的详细方法

delphi 连接sqlite数据库的详细方法

delphi 连接sqlite数据库的详细方法Delphi连接SQLite数据库的详细方法Delphi是一种功能强大的集成开发环境(IDE),可以用于开发各种类型的应用程序,包括数据库应用程序。

在Delphi中,我们可以使用SQLite 数据库来储存和管理数据。

本文将介绍如何使用Delphi连接SQLite数据库并进行基本的数据操作。

下面是连接SQLite数据库的详细步骤:步骤1:准备工作首先,我们需要准备一些必要的工具和文件:1. Delphi IDE - 在电脑上安装并启动Delphi集成开发环境。

你可以从Embarcadero官方网站上下载Delphi的最新版本。

2. SQLite数据库文件- 从SQLite官方网站上下载并安装SQLite数据库,然后创建一个SQLite数据库文件(例如MyDatabase.db)。

3. Delphi SQLite组件- 在Delphi IDE中安装并配置SQLite连接组件。

你可以从第三方提供商(如ZeosLib,UniDAC等)或释放的Delphi版本中找到这些组件。

步骤2:创建Delphi项目在Delphi IDE中创建一个新项目。

选择“File”菜单中的“New”选项,并选择“VCL Forms Application”模板。

为项目指定一个合适的名称并保存。

步骤3:添加SQLite连接组件在项目中添加SQLite连接组件。

你可以通过菜单栏上的“Component”-> “Install Component”选项或直接通过命令窗口(Ctrl + Alt + C)安装组件。

确保已正确安装组件,并在IDE的面板上找到它们。

步骤4:设计用户界面在Delphi IDE的窗体设计器中设计用户界面。

你可以使用标签、编辑框、按钮等控件来构建一个简单的界面,用于展示数据库中的数据或进行数据操作。

步骤5:连接SQLite数据库在窗体的代码编辑器中,添加以下代码来连接SQLite数据库:uses添加SQLite组件的单元SQLiteTable3;vardb: TSQLiteDatabase;将以上代码添加到窗体的私有变量声明部分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录Qt4访问sqlite数据库 (2)RedHat 9 Linux下在QT3.1中连接SQLite3全过程详细记录 (6)基于ARM-Linux的SQLite嵌入式数据库技术 (17)关于在qt中如何连接sqlite3数据库的问题 (23)SQLite 完整中文FAQ (32)C/C++中调用SQLITE3的基本步骤 (40)SQLite嵌入式数据库系统的研究与实现 (50)Qt4访问sqlite数据库/index.php/2008/09/qt-sqlite/sqlite简介sqlite 是一款轻量级的、基于文件的嵌入式数据库,2000年就已经诞生,经过7年多的发展,直到今天已经成为最流行的嵌入式数据库,包括google在内的公司在其桌面软件中亦使用sqlite 存储用户数据。

由此可以看出,已经没有任何理由去怀疑sqlite的稳定性了。

sqlite的优势1. 免配置,和access一样,只要把数据库文件通过ftp上传到服务器上就可以使用,不需要服务器的额外支持2. 备份方便,因为只是一个文件,只要复制一份该文件,就能备份整个数据库3. 虽然是轻量级数据库,但他支持最大2tb 的单个库文件。

4. 快,无与伦比的快。

经过实际测试,在几百万记录的情况下,sqlite的插入和查询速度和mysql 不分上下,快于sql server,10倍于access (但这并不意味着它可以替代sql server )用QT操作sqlite由于sqlite属于轻量级的数据库,不需要配置,不需要安装,也不需要管理员,所以也就没必要像操作mysql等数据库一样的设置主机,用户和密码了。

样例如下:1 2 3 4 5 6 7 8 9101112 #include <QApplication> #include <QTextEdit>#include <QString>#include <QSqlDatabase> #include <QSqlQuery>#include <QSqlError>1314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 #include <QSqlDriver>#include <QDateTime>#include <QDebug>int main(int argc, char*argv[]){QApplication app(argc, argv);QTextEdit display;display.resize(400, 160);display.show(); //下面进行数据库的设置QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE"); //使用sqlite数据库驱动db.setDatabaseName("test"); //我们之前建立的数据库bool ok = db.open(); //尝试连接数据库if(ok){//这里用text已经成功连上数据库QSqlQuery query; //新建一个查询的实例if(query.exec("select * from student"))//尝试列出student 表的所有记录{//本次查询成功int numRows =0; //询问数据库驱动,是否驱动含有某种特性57585960616263if(db.driver()->hasFeature(QSqlDriver::QuerySize)){numRows =query.size(); //如果支持结果影响的行数,那么直接记录下来}else{st(); //否则定位到结果最后,qt 文档说,这个方法非常慢numRows = query.at()+1;query.seek(-1);}QString name, age;display.append("================================= ==========");while(query.next()){//定位结果到下一条记录name = query.value(0).toString();age = query.value(1).toString();QString result = name +" "+ age;display.append(result);}display.append("================================= ==========");display.append(QString("totally %1 rows").arg(numRows));}else{//如果查询失败,用下面的方法得到具体数据库返回的原因QSqlError error = stError();display.append("From mysql database: "+ error.databaseText());}}else{//打开数据库失败,显示数据库返回的失败描述display.append("cannot open database.");display.append("Reason: "+ stError().databaseText());}QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));return app.exec();}RedHat 9 Linux下在QT3.1中连接SQLite3全过程详细记录/u/16292/showart_223940.html作者:zieckey(zieckey@)All Rights Reserved下文介绍的内容都是基于Linux RedHat 9.0 平台的。

1. 说明这里我们假设你已经编译好了sqlite的库文件:libsqlite3.a libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 pkgconfig和可执行文件: sqlite3我们再假设你的sqlite3的安装目录在/usr/local/sqlite3 目录下。

如果不是,我们可以这样做,将你的安装文件复制到/usr/local/sqlite3 这个目录,这样我们好在下面的操作中更加统一,从而减少出错的概率例如:[root@localhost home]# cp -rf sqlite-3.3.8-ix86/ /usr/local/sqlite3 这里假设/usr/local/sqlite3/是你的安装目录,也就是说你的sqlite原来就是安装在这里这样之后,我们的sqlite3的库文件目录是:/usr/local/sqlite3/lib可执行文件sqlite3的目录是:/usr/local/sqlite3/bin头文件sqlite3.h 的目录是:/usr/local/sqlite3/include可以用ls命令查看下:[root@localhost sqlite]# ls /usr/local/sqlite3/liblibsqlite3.a libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 pkgconfig二、使用QT3连接SQLite[root@localhost zieckey]# mkdir test-qt3-sqlite3[root@localhost zieckey]# cd test-qt3-sqlite3/打开Designer[root@localhost test-qt3-sqlite3]# designer&[4] 8357新建一个C++ Project新建一个Dialog在该dialog上放置一个PushButton 和一个LineEdit并设置相应的属性保存到test-qt3-sqlite3 目录下新建一个C++ Main-file (main.cpp )再保存然后生成*.h,*.cpp文件[root@localhost test-qt3-sqlite3]# uic -o mainform.h mainform.ui [root@localhost test-qt3-sqlite3]# uic -i mainform.h -o mainform.cpp mainform.ui注:这里的mainform.ui 是你的Dialog 的保存文件名字。

修改*.pro文件,如下:SOURCES += main.cpp mainform.cppHEADERS += mainform.hunix {UI_DIR = .uiMOC_DIR = .mocOBJECTS_DIR = .obj}TEMPLATE =appCONFIG += qt warn_on releaseLANGUAGE = C++SQLITE_PATH=/usr/local/sqlite3DEPENDPATH += $$SQLITE_PATH/includeINCLUDEPATH += $$SQLITE_PATH/includeLIBS += -L$$SQLITE_PATH/libLIBS += -lsqlite3TARGET = test-sqlite.out编辑mainform.h/*************************************************************************** *** Form interface generated from reading ui file 'mainform.ui'**** Created: 日11月5 16:24:45 2006** by: The User Interface Compiler ($Id: qt/main.cpp 3.1.1 edited Nov 21 17:40 $)**** WARNING! All changes made in this file will be lost!**************************************************************************** /#ifndef MAINFORM_H#define MAINFORM_H#include <qvariant.h>#include <qdialog.h>#include "sqlite3.h" //注意,这里一定要添加进来class QVBoxLayout;class QHBoxLayout;class QGridLayout;class QLineEdit;class QPushButton;class MainForm : public QDialog{Q_OBJECTpublic:MainForm( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );~MainForm();QLineEdit* showMsgLineEdit;QPushButton* openButton;public slots:virtual void openDBSlot(); //注意,这里是新建的一个SLOT protected:protected slots:virtual void languageChange();};#endif // MAINFORM_H编辑mainform.cpp/*************************************************************************** *** Form implementation generated from reading ui file 'mainform.ui'**** Created: 日11月5 16:25:05 2006** by: The User Interface Compiler ($Id: qt/main.cpp 3.1.1 edited Nov 21 17:40 $)**** WARNING! All changes made in this file will be lost!**************************************************************************** /#include "mainform.h"#include <qvariant.h>#include <qlineedit.h>#include <qpushbutton.h>#include <qlayout.h>#include <qtooltip.h>#include <qwhatsthis.h>#include <qimage.h>#include <qpixmap.h>/** Constructs a MainForm as a child of 'parent', with the* name 'name' and widget flags set to 'f'.** The dialog will by default be modeless, unless you set 'modal' to* TRUE to construct a modal dialog.*/MainForm::MainForm( QWidget* parent, const char* name, bool modal, WFlags fl ): QDialog( parent, name, modal, fl ){if ( !name )setName( "MainForm" );showMsgLineEdit = new QLineEdit( this, "showMsgLineEdit" );showMsgLineEdit->setGeometry( QRect( 150, 230, 350, 21 ) );openButton = new QPushButton( this, "openButton" );openButton->setGeometry( QRect( 150, 70, 91, 30 ) );languageChange();resize( QSize(600, 480).expandedT o(minimumSizeHint()) );// signals and slots connectionsconnect( openButton, SIGNAL( clicked() ), this, SLOT( openDBSlot() ) ); }/** Destroys the object and frees any allocated resources*/MainForm::~MainForm(){// no need to delete child widgets, Qt does it all for us}/** Sets the strings of the subwidgets using the current* language.*/void MainForm::languageChange(){setCaption( tr( "A test Showing how to connect SQLite3 in QT3" ) );openButton->setText( tr( "Open DB" ) );}void MainForm::openDBSlot(){//qWarning( "MainForm::openDBSlot(): Not implemented yet" );//这里是数据库的访问sqlite3 *db=NULL;int rc;rc = sqlite3_open("zieckey.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件if( rc ){QString errMsgQString;errMsgQString.sprintf("Can't open database: %s\n", sqlite3_errmsg(db) );showMsgLineEdit->setText(errMsgQString);sqlite3_close(db);}elseshowMsgLineEdit->setText( "open zieckey.db successfully!\n" );sqlite3_close(db); //关闭数据库}main.cpp如下,它不用做任何更改,如果我们是按照上面说的那样生成main.cpp的话#include <qapplication.h>#include "mainform.h"int main( int argc, char ** argv ){QApplication a( argc, argv );MainForm w;w.show();a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );return a.exec();}这一切做好了后,我们就可以开始编译了.这里说明一下,在这之后,我们关心的只有四个文件:main.cpp mainform.h mainform.cpp *.pro[root@localhost test-qt3-sqlite3]# qmake[root@localhost test-qt3-sqlite3]# make中间也许会有很多警告信息,这个不是太大问题,如果没有错误,那么我们可以运行了:[root@localhost test-qt3-sqlite3]# ./test-sqlite.out也许会出现下面这样的错误:[root@localhost test-qt3-sqlite3]# ./test-sqlite.out./test-sqlite.out: error while loading shared libraries: libsqlite3.so.0: cannot open shared objectfile: No such file or directory这个好办:[root@localhost qt3-sqlite3]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/sqlite3/lib[root@localhost qt3-sqlite3]# ./test-sqlite.out这样就好了。

相关文档
最新文档