QT笔记:数据库总结(一)

发表于:2013-7-05 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:vloong    来源:51Testing软件测试网采编

  #include <QtSql>

  QT += sql

  QSqlDatabase类实现了数据库连接的操作

  QSqlQuery类执行SQL语句

  QSqlRecord类封装数据库所有记录

  QSqlDatabase类

QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName("localhost");    //数据库主机名
db.setDatabaseName("scott");    //数据库名
db.setUserName("stott");        //数据库用户名
db.setPassword("tiger");        //数据库密码
db.open();          //打开数据库连接
db.close();         //释放数据库连接

  建立数据库文件

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if (!db.open())
{
qDebug("数据库不能打开");
}
return false;

  建立数据库文件后创建表并插入两条数据

QSqlQuery query;
query.exec("create table student(id INTEGER PRIMARY KEY autoincrement,
name nvarchar(20), age int)"); //id自动增加
query.exec("insert into student values(1,'小明', 14)");
query.exec("insert into student values(2,'小王',15)");

  QSqlQuery类

  插入值到数据库操作

  一、直接用SQL语句插入(参照上面)

  二、利用预处理方式插入(ORACLE语法和ODBC语法)

  适合插入多条记录,或者避免将值转换成字符串(即正确地转义),调用prepare()函数指定一个包含占位符的query,然后绑定要插入的值

  ORACLE语法

QSqlQuery query;
query.prepare("INSERT INTO T_STUDENT (name, age) VALUES (:name, :age)"); //准备执行SQL查询
query.bindValue(":name", "小王");   //在绑定要插入的值
query.bindValue(":age", 11);
query.exec();

  ODBC语法

QSqlQuery query;
query.prepare("INSERT INTO T_STUDENT (name,age) VALUES (?,?)"); //准备执行SQL查询
query.addBindValue("小王");   //在绑定要插入的值
query.bindValue(11);
query.exec();

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号