Qt数据库(三)利用QSqlQuery类执行SQL语句(一)
本文章原创于www.yafeilinux.com 转载请注明出处。
SQL即结构化查询语言,是关系数据库的标准语言。前面已经提到,在Qt中利用QSqlQuery类实现了执行SQL语句。需要说明,我们这里只是Qt教程,而非专业的数据库教程,所以我们不会对数据库中的一些知识进行深入讲解,下面只是对最常用的几个知识点进行讲解。
我们下面先建立一个工程,然后讲解四个知识点,分别是:
一,操作SQL语句返回的结果集。
二,在SQL语句中使用变量。
三,批处理操作。
四,事务操作。
我们新建Qt4 Gui Application工程,我这里工程名为query ,然后选中QtSql模块,Base class选QWidget。工程建好后,添加C++ Header File ,命名为connection.h ,更改其内容如下:
#ifndef CONNECTION_H
#define CONNECTION_H
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlQuery>
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”);
db.setDatabaseName(“:memory:”);
if (!db.open()) {
QMessageBox::critical(0, qApp->tr(“Cannot open database”),
qApp->tr(“Unable to establish a database connection.”
), QMessageBox::Cancel);
return false;
}
QSqlQuery query;
query.exec(“create table student (id int primary key, ”
“name varchar(20))”);
query.exec(“insert into student values(0, ‘first’)”);
query.exec(“insert into student values(1, ’second’)”);
query.exec(“insert into student values(2, ‘third’)”);
&
相关文档:
1 TOP
这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录:
SELECT TOP 10 * from [index] ORDER BY indexid DESC;
但是这条SQL语句在SQLite中是无法执行的,应该改为:
SELECT * from [index] ORDER BY indexid DESC limit 0,10;
其中limit 0,10表示从第0 ......
--访问不同电脑上的数据库
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务 ......
SQL中N的作用?
exec sp_executesql N'SELECT TOP 1 ISNULL(vDefine1,'''') AS vMonth, dtBegin, dtEnd from SM_ActMonth WHERE vActID=@P1 AND bCarryForward=@P2 ORDER BY iListID DESC
', N'@P1 varchar(3),@P2 bit', '001', 1
exec sp_executesql N'SELECT * from KEHU WHERE KHDM>=@P1 AND ZK=@P2',N'@P1 VARCHAR ......
1,显示游标的操作
(1) 定义游标
根据查询的数据情况,在PL/SQL块的声明部分定义游标,语法为:
cursor cursor_name is select_statement;
注意:
游标必须在PL/SQL块的声明部分进行定义;
......
SQL Server 的模拟
专栏作家:Deanna Dicken 2010年2月12日
翻译: UltraDBA 2010年5月25日
原帖地址:http://www.databasejournal.com/features/mssql/article.php/3863516/SQL-Server-Impersonation.htm
介绍
SQL Server 的模拟,或上下文切换,是一种方式,允许当 ......