在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 ...
随机推荐
- vue 笔记一
vue: 读音: v-u-e view vue到底是什么? 一个mvvm框架(库).和angular类似 比较容易上手.小巧 mvc: mvp mvvm mv* mvx 官网:http://cn.vu ...
- axios 请求参数配置说明
axios的配置项地址参考: https://www.npmjs.com/package/axios { // `url` is the server URL that will be used fo ...
- 关于DES加密中的 DESede/CBC/PKCS5Padding
今天看到一段3DES加密算法的代码,用的参数是DESede/CBC/PKCS5Padding,感觉比较陌生,于是学习了一下. 遇到的java代码如下: Cipher cipher=Cipher.get ...
- 17、JAVA流程控制
一.IF 1.第一种形式:if if(逻辑表达式){ 语句1; 语句2; ... } 当if中只有一条语句时,可以省略{} 2.第二种形式:if-else if(逻辑表达式){ 语句块1: } els ...
- CAS连接微软活动目录的配置方法
原文地址:http://blog.csdn.net/baozhengw/article/details/3857669在微软活动目录中建立一个用户节点,帐号为wangzhenyu,cn为zhenyu ...
- HDUOJ-----(1072)Nightmare(bfs)
Nightmare Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 近年Recsys论文
2015年~2017年SIGIR,SIGKDD,ICML三大会议的Recsys论文: [转载请注明出处:https://www.cnblogs.com/shenxiaolin/p/8321722.ht ...
- 图标、图片、logo地址
阿里通信图标库 http://www.iconfont.cn/collections/show/29
- Android开发之模仿UC浏览器的菜单
这个内容内容涉及到的了两个知识点: PopupWindow:使用PopupWindow创建一个简单的菜单 使用TabHost创建标签:这个网上好多教程随便看看就好. 实现思路: 观察一下UC浏览器的菜 ...
- jsp处理表单上传图片(commons-fileupload-1.2.2.jar,commons-io-2.4.jar)
upload.jsp <%@ page language="java" import="java.util.*" pageEncoding="U ...