在VC中向数据库提交SLQ语句
1、通过链接对象执行SQL语句
mfc没有提供对ado的操作类,它对ado的操作是通过智能指针来完成,要创建ado连接对象,需要像下面代码一样先定义一个连接对象的智能指针:
_ConnectionPtr pConnection;
然后调用智能指针的CreateInstance方法创建连接对象,要特别注意的是,CreateInstance是智能指针的对象,而不是连接对象的成员,所以需要使用.而不是->来调用:
pConnection->CreateInstance(“ADODB.Connection”);
连接对象建立以后,就可以调用连接对象的Open方法打开一个数据库的连接,第一个参数strConnet是类似于”Provider=SQLOLEDB; Server=db; Database=test; uid=sa; pwd=123;”的字符串,其他参数的类型和意义可以查看msdn:
pConnection->Open(strConnect, “”, “”, adModeUnknown);
成功与数据库建立连接以后就可以调用连接对象的Execute方法执行SQL语句了。Execute方法的第一个参数就是要执行的SQL语句;第二个参数是一个VARINT类型的引用,它用于保存执行该SQL语句以后对数据库影响的行数,VARINT是vc和COM进行数据交换的一种手段,可以通过此参数来判断语句是否执行成功;第三个参数是指明命令的类型,可以是adCmdText表示命令文本,也可以是adCmdStoredProc表示是一个存储过程。
pConnection->Execute(bstrInsert, &recordAffected, adCmdText);
2、通过命令对象执行SQL语句
ado的命令对象也是可以用于执行SQL指令的,事实上,当需要频繁的执行一条SQL指令,而这条SQL指令只是部分数据不同的话,使用命令对象会是较好的选择,当然要使用命令对象,首先必须建立应用程序与数据库的连接。其过程与上述使用连接对象执行SQL语句是类似的,在建立数据库连接后,要使用命令对象也需要先定义命令对象的实例,代码如下:
_CommandPtr pCmd;
pCmd.CreateInstance(“ADO.Command”);
然后需要为命令对象指定执行命令时要使用的数据库连接、命令内容及命令类型等信息,代码如下:
pCmd->ActiveConnection = m_pConnection;
pCmd->CommandText = bstrInsert;
pCmd->CommandType = adCmdText;
上述代码中m_pConnection为已经建立的数据库连接,在需要的时候还可以为命令对象设定对应的参数对象,以便可以参数化的执行一些数据库操作命令。执行代码如下:
pCmd->Execute(&vNULL, &vNULL, adCmdText);
Execute方法的第一个参数是命令执行完后所影响的行数,第二个参数为命令参数对象,第三个参数为命令的类型。这里的vNULL表示该参数为空,如果要在ado中表达这样的含义,则必须像一下代码定义变量vNULL才可以,否则在执行Execute时会抛出异常。
_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND;
在VC中向数据库提交SLQ语句的更多相关文章
- C#中 ACCESS数据库常用操作语句...容易出错的地方(DateTime类型)
这次在C#编程过程中,第一次用到了ACCESS数据库,重点涉及到时间类型,整数类型.是否类型....;遇到了许多困难,就把这些整理了下来,与大家分享. 一.Insert语句的基本格式: INSERT ...
- PHP中操作数据库的预处理语句
今天这篇文章的内容其实也是非常基础的内容,不过在现代化的开发中,大家都使用框架,已经很少人会去自己封装或者经常写底层的数据库操作代码了.所以这回我们就来复习一下数据库中相关扩展中的预处理语句内容. 什 ...
- SQL Server中查询数据库及表的信息语句
/* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...
- 在 SQL Server 数据库的 WHERE 语句中使用子查询
这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Serv ...
- Sql语句在SqlServer中创建数据库、表格并添加约束
通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: -- 使用master数据库 use master -- ...
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- PHP中的数据库三、redis
h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...
- Android中SQLite数据库小计
2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for ...
- 小觑数据库(SqlServer)查询语句执行过程
近年来,越来越多的NoSql产品不断的以技术革命的者的身份跳出来:“你看哥是多么的快,你们关型型数据库真是战五渣阿”.是的,高性能的场景下NoSql真的很出彩.而我们关系型数据库只能在墙角哭泣&quo ...
随机推荐
- 浅析android应用增量升级(转)
By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处 很久没有更新博客了,真是堕落啊,几次想提起笔,却总是被各种琐事耽搁,以后会多写文章记录点滴. 背景 ...
- 【Docker】安装并测试安装成功
1.环境描述 Centos 7 2.安装步骤 通过命令yum install docker安装 等待下载安装-,出现下图,按y继续 继续等待-出现下图按y继续 再继续等待- 知道出现上图表示安装完毕 ...
- openssh入门
ssh (secure shell),ssh协议支持登录及文件的传输加密防止数据截留! 01.下载 https://www.ssh.com/ ...
- Android网络开发之基本介绍
Android平台浏览器采用WebKit引擎,名为ChormeLite,拥有强大扩展特性,每个开发者都可以编写自己的插件. 目前,Android平台有3种网络接口可以使用,分别是:java.net, ...
- Linux目录结构及解释(附图)
___/bin (binary二进制) 常用Linux命令 ___/boot 存放着启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件 ___/cdrom 这个目录在你刚刚安装系统的时候 ...
- UltraEdit程序设置添加到右键菜单
http://hellofs.blog.51cto.com/6109153/1180681 以前安装UltraEdit软件,在安装过程中选择将其添加到右键菜单,安装完成后就可以正常显示在右键菜单,这样 ...
- POJ 1364 King (差分约束)
King Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8660 Accepted: 3263 Description ...
- 迪杰斯特拉Dijkstra算法介绍
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径. 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止. 基本思想 通过Dijk ...
- Python 字典 values() 方法
描述 Python 字典 values() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回字典中的所有值. 语法 values() 方法语法: D.values() 参数 无 ...
- 云从科技 OCR任务 pixel-anchor 方法
云从科技提出了一种端到端的深度学习文本检测框架Pixel-Anchor,通过特征共享的方式高效的把像素级别的图像语义分割和锚检测回归放入一个网络之中, 把像素分割结果转换为锚检测回归过程中的一种注意力 ...