http://blog.sina.com.cn/s/blog_56fd66a70100hxjf.html

http://timke.blog.163.com/blog/#m=0

环境:MFC  Dialog  UNICODE

1 寻找包含某个字符的字段值并将符合条件的记录取出 ,like语句

_ConnectionPtr m_pCon; 

_RecordsetPtr m_pRs;

 try{

CString sql=SELECT * FROM 表 WHERE 字段 LIKE  '%'

HRESULT hr=m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

 if (SUCCEEDED(hr))

 {

 

  while (!m_pRs->EndOfFile)

  {

  

   vFieldValue=m_pRs->GetCollect(字段名称);

   MessageBox((_bstr_t)vFieldValue);

   m_pRs->MoveNext();

  

  }

  hr=m_pRs->Close();//关闭记录集

 }

}

catch(_com_error e)

 {

  MessageBox(e.Description());

 }

2  获取符合条件记录的个数,并将获取到的个数取出 count语句

_ConnectionPtr m_pCon; 

_RecordsetPtr m_pRs;

 try{

  CString sql=_T("SELECT COUNT(*) FROM 表名 WHERE 字段名='字段值'");

  _variant_t RecordsAffected;

  m_pRs=m_pCon->Execute((_bstr_t)sql,&RecordsAffected,adCmdText); 

  _variant_t vIndex = (long)0;

  _variant_t vCount = m_pRs->GetCollect(vIndex);

  MessageBox(_bstr_t( vCount),_T("获取符合条件的记录的个数"),MB_OK);

  m_pRs->Close();///关闭记录集

 }

 catch(_com_error e)

 {

  MessageBox(e.Description());

 }

3  取出某个符合条件的不重复字段 distinct语句

_ConnectionPtr m_pCon; 

_RecordsetPtr m_pRs;

try{

  _variant_t vFieldValue;

  CString sql=_T("SELECT DISTINCT 需要取出的字段 FROM 表名 WHERE 字段='字段值'");

  _variant_t RecordsAffected;

  m_pRs=m_pCon->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);

while (!m_pRs->EndOfFile)

  {

  

   vFieldValue=m_pRs->GetCollect(_T("需要取出的字段"));

                        MessageBox(_bstr_t(vFieldValue));

   m_pRs->MoveNext();

}

m_pRs->Close();

 }

 catch(_com_error e)

 {

  MessageBox(e.Description());

 }

4 操作表过程中的一些问题

4(1)打开表返回的记录数总是-1

_RecordsetPtr m_pRs;

m_pRs->RecordCount返回值总是-1

解决方法:

设置游标的类型为客户端类型

m_pRs->CursorLocation=adUseClient;

然后打开表

4(2)移动不了记录指针

_RecordsetPtr m_pRs;

m_pRs->MoveNext();语句不起作用

解决方案:采用静态方式打开

下面的sql是一个sql语句

m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

更改为

m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);

以上程序在VC++2005 MFC Unicode下调试通过

VC++2005下的ADO SQL语句(like,count,distinct)和操作(转)的更多相关文章

  1. SQL语句中count(1)count(*)count(字段)用法的区别

    SQL语句中count(1)count(*)count(字段)用法的区别 在SQL语句中count函数是最常用的函数之一,count函数是用来统计表中记录数的一个函数, 一. count(1)和cou ...

  2. sql 语句中count()有条件的时候为什么要加上or null

    参考:https://blog.csdn.net/qq_32719287/article/details/79513164 1.sql 语句中count()有条件的时候为什么要加上or null. 如 ...

  3. SQL语句中count(1)count(*)count(字段)用法的区别(转)

    SQL语句中count(1)count(*)count(字段)用法的区别 在SQL语句中count函数是最常用的函数之一,count函数是用来统计表中记录数的一个函数, 一. count(1)和cou ...

  4. pandas pivot_table或者groupby实现sql 中的count distinct 功能

    pandas pivot_table或者groupby实现sql 中的count distinct 功能 import pandas as pd import numpy as np data = p ...

  5. 4.5 .net core下直接执行SQL语句并生成DataTable

    .net core可以执行SQL语句,但是只能生成强类型的返回结果.例如var blogs = context.Blogs.FromSql("SELECT * FROM dbo.Blogs& ...

  6. mysql row日志格式下 查看binlog sql语句

    有时候我们需要使用row作为binlog的日志格式,即配置文件使用了binlog_format= row 参数 这样以来,我们在查看数据库binlog内容时候,就看不到增删改查的具体语句了,在数据库恢 ...

  7. .net core下直接执行SQL语句并生成DataTable

    .net core可以执行SQL语句,但是只能生成强类型的返回结果.例如var blogs = context.Blogs.FromSql("SELECT * FROM dbo.Blogs& ...

  8. LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg (转)

    Select/Distinct操作符 适用场景:o(∩_∩)o… 查询呗. 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也 ...

  9. MySQL常用sql语句-----数据表的查询操作

    常用的sql语句如下,应对工作足以 1.查询指定字段 select c_id,c_age,c_name from t_student; select c_id as 编号,c_name as 姓名,c ...

随机推荐

  1. [转]Hibernate重要规则总结

    实体类的编写规则 l        实体类必须具备无参构造方法 l        实体类必须具备数据库标识 l        通常选用无业务意义的逻辑主键作为数据库标识,通常是int/long/Str ...

  2. windows下 更新 android studio SDK 到最新版本 解决方案

    一.设置代理信息 打开android studio>>File>>Settings>>Appearance&Behavion>>System S ...

  3. Redis集群方案介绍

    由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB.200GB的规模,但是单实例模式限制了Redis没法 ...

  4. Bind 跨域名别名解析的问题

    我有一个域名 aaa.net 已经生效 ,并且下面有 xx的 A记录:现在我还有一个 aaa.com域名 ,我想用 别名方式把它下面 某个 记录以别名方式解析到 xx.aaa.net上去.应该在aaa ...

  5. java中用中国网建提供的SMS短信平台发送短信

    接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下.大体上说的都是有三种方法,分别是sina提供的webservice接口.短信mao和中国网建提供的SMS短信平台. 这三种方 ...

  6. 访问public

    public(C# 参考) public 关键字是类型和类型成员的访问修饰符. 公共访问是允许的最高访问级别. 对访问公共成员没有限制,如下例所示: class SampleClass { publi ...

  7. Team Foundation Server

    概述 (通常记作“TFS”) 是一种为 Microsoft 产品提供 源代码管理. 数据收集. 报告和项目跟踪,而为协作 软件开发 的项目. 可作为独立的软件,或 Visual Studio Team ...

  8. 黄聪:Discuz自制模板带jquery时与discuz本身冲突解决办法

    由于JQuery的效果很好,在制作模板时难免会用到各种jquery效果.可是做过模板的人就会发现加上自己的juery代码后,discuz自带的一些下拉功能就不可以使用了,其实原因就是discuz和JQ ...

  9. ExtJs4 SpringMvc3 实现Grid 分页

    新建一个Maven webapp项目,webxml以及spring配置没什么需要注意的,不再赘述. Maven依赖:(个人习惯,有用没用的都加上...) <project xmlns=" ...

  10. PLSQL_性能优化系列20_Oracle Result Cash结果缓存

    20150528 Created By BaoXinjian