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语句的更多相关文章

  1. C#中 ACCESS数据库常用操作语句...容易出错的地方(DateTime类型)

    这次在C#编程过程中,第一次用到了ACCESS数据库,重点涉及到时间类型,整数类型.是否类型....;遇到了许多困难,就把这些整理了下来,与大家分享. 一.Insert语句的基本格式: INSERT ...

  2. PHP中操作数据库的预处理语句

    今天这篇文章的内容其实也是非常基础的内容,不过在现代化的开发中,大家都使用框架,已经很少人会去自己封装或者经常写底层的数据库操作代码了.所以这回我们就来复习一下数据库中相关扩展中的预处理语句内容. 什 ...

  3. SQL Server中查询数据库及表的信息语句

    /* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...

  4. 在 SQL Server 数据库的 WHERE 语句中使用子查询

    这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Serv ...

  5. Sql语句在SqlServer中创建数据库、表格并添加约束

    通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: -- 使用master数据库 use master -- ...

  6. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  7. PHP中的数据库三、redis

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

  8. Android中SQLite数据库小计

    2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for ...

  9. 小觑数据库(SqlServer)查询语句执行过程

    近年来,越来越多的NoSql产品不断的以技术革命的者的身份跳出来:“你看哥是多么的快,你们关型型数据库真是战五渣阿”.是的,高性能的场景下NoSql真的很出彩.而我们关系型数据库只能在墙角哭泣&quo ...

随机推荐

  1. vue 笔记一

    vue: 读音: v-u-e view vue到底是什么? 一个mvvm框架(库).和angular类似 比较容易上手.小巧 mvc: mvp mvvm mv* mvx 官网:http://cn.vu ...

  2. axios 请求参数配置说明

    axios的配置项地址参考: https://www.npmjs.com/package/axios { // `url` is the server URL that will be used fo ...

  3. 关于DES加密中的 DESede/CBC/PKCS5Padding

    今天看到一段3DES加密算法的代码,用的参数是DESede/CBC/PKCS5Padding,感觉比较陌生,于是学习了一下. 遇到的java代码如下: Cipher cipher=Cipher.get ...

  4. 17、JAVA流程控制

    一.IF 1.第一种形式:if if(逻辑表达式){ 语句1; 语句2; ... } 当if中只有一条语句时,可以省略{} 2.第二种形式:if-else if(逻辑表达式){ 语句块1: } els ...

  5. CAS连接微软活动目录的配置方法

    原文地址:http://blog.csdn.net/baozhengw/article/details/3857669在微软活动目录中建立一个用户节点,帐号为wangzhenyu,cn为zhenyu ...

  6. HDUOJ-----(1072)Nightmare(bfs)

    Nightmare Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  7. 近年Recsys论文

    2015年~2017年SIGIR,SIGKDD,ICML三大会议的Recsys论文: [转载请注明出处:https://www.cnblogs.com/shenxiaolin/p/8321722.ht ...

  8. 图标、图片、logo地址

    阿里通信图标库 http://www.iconfont.cn/collections/show/29

  9. Android开发之模仿UC浏览器的菜单

    这个内容内容涉及到的了两个知识点: PopupWindow:使用PopupWindow创建一个简单的菜单 使用TabHost创建标签:这个网上好多教程随便看看就好. 实现思路: 观察一下UC浏览器的菜 ...

  10. jsp处理表单上传图片(commons-fileupload-1.2.2.jar,commons-io-2.4.jar)

    upload.jsp <%@ page language="java" import="java.util.*" pageEncoding="U ...