Qt的SQL操作,DELETE,SELECT

#include <QObject>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QString>

class DatabaseManager : public QObject
    {
    public:
        DatabaseManager(QObject *parent = 0);
        ~DatabaseManager();

    public:
        bool openDB();
        bool deletePerson(int id);

    private:
        QSqlDatabase db;
    };

Delete a person from the database:

bool DatabaseManager::deletePerson(int id)
    {
    bool ret = false;
    if (db.isOpen())
        {
        QSqlQuery query;
        ret = query.exec(QString("delete from person where id=%1").arg(id));
        }
    return ret;
    }

The rest of the code:

bool DatabaseManager::openDB()
    {
    // Find QSLite driver
    db = QSqlDatabase::addDatabase("QSQLITE");

    #ifdef Q_OS_LINUX
    // NOTE: We have to store database file into user home folder in Linux
    QString path(QDir::home().path());
    path.append(QDir::separator()).append("my.db.sqlite");
    path = QDir::toNativeSeparators(path);
    db.setDatabaseName(path);
    #else
    // NOTE: File exists in the application private folder, in Symbian Qt implementation
    db.setDatabaseName("my.db.sqlite");
    #endif

    // Open databasee
    return db.open();
    }

以上参考http://developer.nokia.com/community/wiki/Deleting_data_from_a_database_in_Qt

SELECT核心语句

bool DatabaseManager::getPerson(int id, PersonData*& person)
    {
    bool ret = false;

    QSqlQuery query(QString("select * from person where id = %1").arg(id));
    if (query.next())
        {
        person->id = query.value(0).toInt();
        person->firstname = query.value(1).toString();
        person->lastname = query.value(2).toString();
        person->age = query.value(3).toInt();
        ret = true;
        }

    return ret;
    }

以上参考http://developer.nokia.com/community/wiki/Searching_for_data_in_a_database_in_Qt

如果有多个参数,可以是 %1,%2,%3 之后.arg().arg().arg()括号里填对应变量。

时间: 2024-11-10 19:10:49

Qt的SQL操作,DELETE,SELECT的相关文章

元素类型为 &quot;mapper&quot; 的内容必须匹配 &quot;(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|select)

在配置ssm框架的时候,写mapper映射文件的时候会出现 元素类型为 "mapper" 的内容必须匹配 "(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|select) 有时候编译的时候会出现这个bug,是因为在前面写了注释.导致了执行顺序的问题.需要把一些注释删掉,就可以正常执行了. /*mapper动态开发*/ <mapper namespace="com.ss

如何判断一条sql(update,delete)语句是否执行成功

如何判断一条sql(update,delete)语句是否执行成功 catch  (SQLException    e)  {  }  catch不到错误应该就成功了.   ===================================================================== Statement对象提供了三种执行sql语句的方法.  1.ResultSet  executeQuery(String  sql)       执行查询语句,如ResultSet  r

SQL操作大全

下列语句部分是Mssql语句,不可以在access中使用.   SQL分类:  DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT)  DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)   首先,简要介绍基础语句: 1.说明:创建数据库 CREATE DATABASE database-name  2.说明:删除数据库 drop database dbname

第三课——SQL操作和数据类型

[SQL分类:DDL DML DCL] 一.DDL(数据库定义语言) 定义不同的数据段.数据库.表.列.索引等数据库对象,常用语句关键字:create drop alter等 1.修改表字段,alter table语句的用法如下 1)修改表字段的数据类型:alter table table_name modify- 2)新增表字段:alter table table_name add- 3)删除表字段:alter table table_name drop- 4)字段改名:alter table

SQL_数据操作语言SELECT

概述 本节简单介绍T-SQL基本数据操作语言(DML),主要包括 SELECT INSERT UPDATE DELETE SELECT语句 主语是MS SQL Server ,而动词SELECT是整条语句的谓语部分,用于告诉SQL Server要完成什么样子的操作,SELECT表示从数据库中读取数据,记住仅仅是读取,所选择的内容由SELECT后面的表达式/列表确定 FROM子语句用于指定要读取数据的来源,通常是一个表或几个表的名称.请看下面的示例: SELECT Name FROM Produc

常用SQL操作(MySQL或PostgreSQL)与相关数据库概念

本文对常用数据库操作及相关基本概念进行总结:MySQL和PostgreSQL对SQL的支持有所不同,大部分SQL操作还是一样的. 选择要用的数据库(MySQL):use database_name; help show; 显示可用的数据库列表:show databases; 显示一个数据库内可用的表的列表:show tables; 显示表列:show columns from 一个表名; /describe 表名;  示例:show columns from customers;    desc

Microsoft SQL - 操作语句

操作语句(Operation Statement) 操作数据库 创建数据库 关键字:create database 用于创建各种数据库对象(数据库.表.触发器.存储过程等) 格式如:create <对象类型> <对象名称> create database 数据库名称 on primary ( name='主文件名' , size=初始化大小 按kb.mb.gb.tb设置 , maxsize=最大容量 unlimited(无限)/ 按kb.mb.gb.tb设置 , filegrowt

Thinkphp框架回顾(三)之怎么实现平常的sql操作数据库

1.首先简单介绍一下我们的数据库,thinkphp数据库下有一个tp_user表,然后有四个字段....id,username,password,sex 我们今天的任务就是在Thinkphp下将数据调出来.(增删查改) <?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action { public function select(){ /*这是从数据库里读取数据 * 有select();find();getfield()三种方法 //$m=

SQL操作全集

下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 CREATE DATAbbse databbse-name 2.说明:删除数据库 drop databbse dbname 3.说明:备份s