ADO 数据查询

关键点

上1条
下1条 第1条 最后1条

实现过程

// stdafx.h : include file for standard system include files,
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")      

// ADODlg.h : header file

public:
    _ConnectionPtr    m_pConnection;

_RecordsetPtr     m_pRecordset;

// ADODlg.cpp : implementation file

BOOL CADODlg::OnInitDialog() 
    m_pConnection.CreateInstance(__uuidof(Connection));
    try         
    { 
        // 打开本地Access库Demo.mdb 
        m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Db1.mdb","","",adModeUnknown); 
    } 
    catch(_com_error e) 
    { 
        AfxMessageBox("数据库连接失败,确认数据库Db1.mdb是否在当前路径下!"); 
        return FALSE; 
    } 
    m_pRecordset.CreateInstance(__uuidof(Recordset)); 
    try 
    { 
        m_pRecordset->Open("SELECT * FROM student",        // 查询DemoTable表中所有字段 
        m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针 
        adOpenDynamic, 
        adLockOptimistic, 
        adCmdText); 
    } 
    catch(_com_error *e) 
    { 
        AfxMessageBox(e->ErrorMessage()); 
    }    

void CADODlg::OnFirst() 

{    
    _variant_t var; 
    
    if(!m_pRecordset->BOF) 
        m_pRecordset->MoveFirst(); 
    else 
    { 
        AfxMessageBox("已经是第一个了"); 
        return; 
    }     
    var = m_pRecordset->GetCollect("Name"); 
    if(var.vt != VT_NULL) 
        m_strName     = (LPCSTR)_bstr_t(var); 
    var = m_pRecordset->GetCollect("Sex"); 
    if(var.vt != VT_NULL) 
        m_strSex = (LPCSTR)_bstr_t(var);
    var = m_pRecordset->GetCollect("Age");
    if(var.vt != VT_NULL)
    {
        m_nAge = atoi(LPCTSTR(_bstr_t(var)));
    }
    var = m_pRecordset->GetCollect("Grade");
    if(var.vt != VT_NULL)
    {
        m_nGrade = atoi(LPCTSTR(_bstr_t(var)));
    }
    UpdateData(FALSE);  
}
void CADODlg::OnPrev() 
{
    _variant_t var; 
    if(m_pRecordset->BOF) 
    { 
        AfxMessageBox("已经是最后一个了"); 
        return; 
    } 
     m_pRecordset->MovePrevious();
       if(m_pRecordset->BOF) 
    { 
        AfxMessageBox("已经是第一个了"); 
        return; 
    } 
    else
    {
        var = m_pRecordset->GetCollect("Name"); 
        if(var.vt != VT_NULL) 
            m_strName     = (LPCSTR)_bstr_t(var); 
        var = m_pRecordset->GetCollect("Sex"); 
        if(var.vt != VT_NULL) 
            m_strSex = (LPCSTR)_bstr_t(var);
        var = m_pRecordset->GetCollect("Age");
        if(var.vt != VT_NULL)
        {
            m_nAge = atoi(LPCTSTR(_bstr_t(var)));
        }
        var = m_pRecordset->GetCollect("Grade");
        if(var.vt != VT_NULL)
        {
            m_nGrade = atoi(LPCTSTR(_bstr_t(var)));
        }
        UpdateData(FALSE);  
    }
}
 
void CADODlg::OnNext() 
{
    _variant_t var; 
    if(m_pRecordset->adoEOF) 
    { 
        AfxMessageBox("已经是最后一个了"); 
        return; 
    } 
    m_pRecordset->MoveNext();
       if(m_pRecordset->adoEOF) 
    { 
        AfxMessageBox("已经是最后一个了"); 
        return; 
    } 
    else
    {
        
        var = m_pRecordset->GetCollect("Name"); 
        if(var.vt != VT_NULL) 
            m_strName     = (LPCSTR)_bstr_t(var); 
        var = m_pRecordset->GetCollect("Sex"); 
        if(var.vt != VT_NULL) 
            m_strSex = (LPCSTR)_bstr_t(var);
        var = m_pRecordset->GetCollect("Age");
        if(var.vt != VT_NULL)
        {
            m_nAge = atoi(LPCTSTR(_bstr_t(var)));
        }
        var = m_pRecordset->GetCollect("Grade");
        if(var.vt != VT_NULL)
        {
            m_nGrade = atoi(LPCTSTR(_bstr_t(var)));
        }
        UpdateData(FALSE);  
    }
}
 
//最后1条    
void CADODlg::OnLast() 
{    _variant_t var; 
    
    if(!m_pRecordset->adoEOF) 
        m_pRecordset->MoveLast(); 
    else 
    { 
        AfxMessageBox("已经是最后一个了"); 
        return; 
    }     
    var = m_pRecordset->GetCollect("Name"); 
    if(var.vt != VT_NULL) 
      m_strName     = (LPCSTR)_bstr_t(var); 
    var = m_pRecordset->GetCollect("Sex"); 
    if(var.vt != VT_NULL) 
        m_strSex = (LPCSTR)_bstr_t(var);
    var = m_pRecordset->GetCollect("Age");
    if(var.vt != VT_NULL)
    {
        m_nAge = atoi(LPCTSTR(_bstr_t(var)));
    }
    var = m_pRecordset->GetCollect("Grade");
    if(var.vt != VT_NULL)
    {
        m_nGrade = atoi(LPCTSTR(_bstr_t(var)));
    }
    UpdateData(FALSE);      
}

备注

相关链接

 

附件列表

C++ ADO 数据查询的更多相关文章

  1. MVC实用架构设计(三)——EF-Code First(4):数据查询

    前言 首先对大家表示抱歉,这个系列已经将近一个月没有更新了,相信大家等本篇更新都等得快失望了.实在没办法,由于本人水平有限,写篇博客基本上要大半天的时间,最近实在是抽不出这么长段的空闲时间来写.另外也 ...

  2. 使用ADO.NET查询和操作数据

    使用ADO.NET查询和操作数据 StringBuilder类: 用来定义可变字符串StringBuilder sb = new StringBuilder("");//追加字符串 ...

  3. 使用ADO.NET查询和访问数据库

    使用ADO.NET查询和访问数据库步骤 使用ADO.NET查询和访问数据库 连接数据库操作: 1.       定义连接字符串: String connString = "Data Sour ...

  4. Django models .all .values .values_list 几种数据查询结果的对比

    Django models .all .values .values_list 几种数据查询结果的对比

  5. 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

    前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...

  6. SharePoint服务器端对象模型 之 使用CAML进展数据查询

    SharePoint服务器端对象模型 之 使用CAML进行数据查询 一.概述 在SharePoint的开发应用中,查询是非常常用的一种手段,根据某些筛选.排序条件,获得某个列表或者某一些列表中相应的列 ...

  7. .NET应用架构设计—面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)

    阅读目录: 1.背景介绍 2.对业务功能点进行逻辑划分(如:A.B.C分别三个业务点) 2.1.配置映射关系,对业务点配置查询契约(构造VS插件方便生成查询契约) 2.2.将配置好的映射策略文件放在调 ...

  8. Yii2 数据查询

    转载来自: http://www.yiichina.com/tutorial/95 数据查询 User::find()->all(); 此方法返回所有数据: User::findOne($id) ...

  9. 6、SQL Server 数据查询

    一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的 ...

随机推荐

  1. 《Python 学习手册4th》 第七章 字符串

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  2. Windows下使用NCL(Cygwin模拟Linux环境)

    参考自:http://bbs.lasg.ac.cn/bbs/thread-37043-1-1.html 1.下载 所需文件均可在此下载:http://yunpan.cn/cQsvAEe3Axs2Z   ...

  3. MorningSale 介绍

    MorningSale是一个WEB端的收集门店销售数据,显示销售数据的简单系统,我相信该系统能够有效的提高销售公司在门店销售数据收集 汇总 分析方面的工作效率. 主要功能介绍如下: 1.查看某个店面 ...

  4. LeetCode题解——4Sum

    题目: 给定一个数组,找出其中和为0的所有4个数组合,每个组合内的4个数非递降. 解法: ①先排序,然后利用4个指针,前两个遍历,后两个在第二个指针之后的部分里夹逼,时间O(N3). ②或者利用一个哈 ...

  5. js变量申明提前及缺省参数

    现在最先的行为准则:js变量申明必须带var:然后开始随笔: 函数中的变量申明在编译的时候都会提到函数开头. 例如: function foo(){ console.log('some code he ...

  6. SSHFS

    SSHFS(SSH文件系统) 是一个文件系统客户端程序,使用它可以将远程服务器上的目录挂载在本地直接访问 可以在网站http://igikorn.com/sshfs-windows-8/内下载

  7. Deep Learning Practice【开篇】

    Chapter 0 初入深度学习实战 最近一直在学习深度学习相关的知识,看文献,看博客,看书,与别人讨论,等等,但是总觉得这样的学习只是停留在表面,无法去深入的学习到深度学习的内幕.于是,决定开始深度 ...

  8. HDU 5734 Acperience (推导)

    Acperience 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5734 Description Deep neural networks (DN ...

  9. Winter is coming Just have a little faith. JSF框架简介与实例

    JSF 体系结构: JSF 的主要优势之一就是它既是Java Web应用程序的用户界面标准又是严格遵循模型-视图-控制器 (MVC) 设计模式的框架.用户界面代码(视图)与应用程序数据和逻辑(模型)的 ...

  10. Beginning OpenGL ES 2.0 with GLKit Part 1

    Update 10/24/12: If you’d like a new version of this tutorial fully updated for iOS 6 and Xcode 4.5, ...