2012-12-13 22:27 (分类:默认分类)

1.首先建立数据源,正常情况下载控制面板-管理工具-数据源,打开后有用户DSN系统DSN
两者区别在于系统级的DSN,就是对该系统的所有登录用户可用,用户DSN是只对建立它的用户可用
2.配置自己的DSN,比如连接ACCESS数据库
单击“添加”按钮,显示“创建新数据源”对话框。选择“Microsoft Access Driver(*.mdb)”,
单击<完成>,进入下一步。
随起个数据源名称(如:MyData),再单击“选择(S)...”,选择Access数据库,确定,就OK了。

我这里连接的是ACCESS 数据源名称是 “登陆框“  里面只有一个表 登录表 三个字段 ID 用户名 密码

特别说明,win7 64位的同学打开数据源,单击“添加”按钮后,是不是没有驱动,去这里
C:\Windows\SysWOW64\odbcad32.exe    32位数据源

这样数据源就添加成功了

建立程序  这次通过vc6.0 创建MFC exe 程序
主要运用MFC封装的 odbc类

选择单文档,要求包含数据库(查看数据库使用文件支持),在下方点击数据源,选择刚才创建的数据源,
和相应的表,基本就这样

做的是个登陆框主页面验证登陆,注册按钮蹦出个对话框为注册页面;
下边是重点,弄了好几天才明白,在单文档主页面如下

两个编辑框添加成员变量为m_name,m_pwd;为登录按钮添加消息相应函数 内容如下

UpdateData(TRUE);//刷新控件的值到对应的变量 
if(m_name==m_pSet->m_column1&&m_pwd==m_pSet->m_column2)
//与数据库进行比对m_column1为数据库 用户名字段 m_column2为数据库 密码字段 MessageBox("OK");//成功弹出ok
else
MessageBox("ERROR");//失败弹出error 这里说一下m_pSet 这个是CRecordset类中的指针 第二个需求为点击注册按钮弹出注册页面,这里我新建一个对话框 ,添加一个dialog,如下

为两个编辑框设置成员变量为 m_name_zhuce 和 m_pwd_zhuce,
这个对话框要继承哪个类呢? Crecordview?Crecordset?还是 CDialog?

1.第一种情况:为了能使用m_pSet 对话框继承  Crecordview类或者Crecordset类,问题出来了在主窗口的注册按钮里的代码 正常为新建一个对话框叫SecondDialog,它的类名叫SecondDialog。
双击主对话框上的注册按钮进入代码编辑区。
NO.1把SecondDialog.cpp的#include "SecondDialog.h" 加入到主对话框"类"中,
要在#include "stdafx.h"后 
NO.2、在按钮事件里面写下面两句代码CSecondDialog dlg; dlg.DoModal();
这样就可以在点击 注册按钮后 弹出注册对话框了  
但是在Crecordview类或者Crecordset类 里没有DoModal()这个函数 
所以按照上面的代码,无法编译通过 
怎么办呢?是不是通过 其它方法呢?showWindows()这个函数是不是能把它显示出来呢? 
2.第二种情况:仍然继承CDialog类,这样可以使用CSecondDialog dlg; 
dlg.DoModal();了
怎样让这个这个对话框连接数据库呢?这里就用上 MFC 封装的odbc类了,
注意下边的代码了,每一个我都加注释了,很累滴 UpdateData(TRUE); //更新控件信息
CDatabase base1; // 创建CDatabase类 对象
//通过对象去连接数据库 
// 数据源名称,独占打开?只读打开?数据源信息,加载ODBC光标动态连接库 ? base1.Open(NULL,FALSE,FALSE,"ODBC;DSN=登陆框;UID=NULL;PWD=NULL",FALSE);
CRecordset object(&base1); //构造记录集对象object(关联记录集)
//这里要使用具体的类,我建的工程里 是CStuSet object(&base1)CStuSet继承CRecordset
//记录集对象object 以动态方式打开student表所有字段,获取数据库数据
object.Open(CRecordset::dynaset,“Select * from students”);

//进行查询操作 ,查询刚才关联的表
object.m_strFilter="name='admin'"  //m_strFilter相当于where 查询姓名为admin的数据
object.m_strSort="name" //m_strSort相当于order by 依据name 排序
object.Requery();  //重新建立记录集
// void MoveNext( )前进一个记录; void MovePrev( )后退一个记录; 
//void MoveFirst( )滚动到记录集中的第一个记录;  
//void MoveLast( )滚动到记录集中的最后一个记录//进行添加操作
object.AddNew();  //在表尾进行添加操作
object.m_column1="admin"; //为字段1赋值
object.m_column2="123"; //为字段2赋值
object.Update(); //新纪录存入数据库
object.Requrey(); //重新建立记录集 //进行删除操作
//调用Delete()成员函数能够实现记录删除,在调用Delete()函数后不需调用Update()函数,
 object.Delete();  
if (!object.IsEOF())   //判断光标是否在记录集最后
object.MoveNext();  //不是则向下移一位
else  
object.MoveLast(); //是的化滚动到最后一个记录//写到这里很累了,要下课了,明天继续吧

很不幸,写完未保存,这是第二遍了 烦, 3.第三种情况 
依旧使用CDialog类 来做注册对话框,继续使用数据源,不用代码连接数据库 CLoginView *p=new CLoginView; //这个CLoginView继承CRecordView类,创建工程时建好
// 实例化类的对象 为指针 p
p->m_pSet = new CLoginSet;
p->m_pSet-> Open();
p->m_pSet->AddNew();
//对记录集中的字段赋值
p->m_pSet->m_column1 = "wocao";
p->m_pSet->m_column2 = "123";
//更新记录集,将新记录存入数据源
p->m_pSet->Update();
//刷新记录集,并使记录集指针回到第一条记录
p->m_pSet->Requery();在编译时会报错,基类中class CLoginSet : public CRecordset 就是这个类有一部分是私有的
没法使用 ,我直接改成公有的,ok了  4.第四种情况
更绝对些,直接建立对话框mfc,不包含数据源,全部用代码实现
对话框 确定按钮 消息响应函数 如下 CDatabase base1; // 创建CDatabase类 对象
//通过对象去连接数据库 
// 数据源名称,独占打开?只读打开?数据源信息,加载ODBC光标动态连接库 ? 
base1.Open(NULL,FALSE,FALSE,"ODBC;DSN=登陆框",FALSE);
CRecordset object(&base1); //构造记录集对象object(关联记录集)
//我这里使用的是CStuSet object(&base1); 是继承CRecordset类
//记录集对象object 以动态方式打开student表所有字段,获取数据库数据
object.Open(CRecordset::dynaset,"Select * from 登录表");
CString sql="INSERT INTO 登录表(用户名,密码) VALUES('laji2','123')";

base1.ExecuteSQL(sql);这样简单多了吧,ExecuteSQL这个函数就是用来执行SQL代码的,SQL语句不会就自己查吧,要注意的是 access 和 其它数据库 语法可能有些小不同,自己注意吧,
一周了,odbc就到这里吧

ODBC连接数据库实例相关推荐

  1. Visual C++中的ODBC编程实例

    Visual C++中的ODBC编程实例 Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器.这些标准数据格式包括有:SQL Server.Acce ...

  2. ODBC连接数据库1

    ODBC 作为一种简单易用的数据库连接方式,其完备的功能,良好的移植性使得其在数据库编程领域受到广泛的推崇.IBM 公司根据国际 ODBC 标准推出的 DB2 ODBC 驱动,在实现了 ODBC 主要 ...

  3. ODBC连接数据库以SQLserver为例

    ODBC连接数据库以SQLserver为例 什么是ODBC 利用ODBC进行数据库连接 配置数据库(以SQL server为例) 首先打开SSMS(SQL server management stud ...

  4. php链接odbc,PHP使用ODBC连接数据库的方法

    PHP使用ODBC连接数据库的方法 发布于 2015-09-27 06:54:06 | 56 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  5. ODBC连接数据库使用动态密码

    ODBC连接数据库使用动态密码 | 火苗999℃的博客 先修改使用到的记录集的GetDefaultConnect()函数为: CString CTask_Info::GetDefaultConnect ...

  6. ProcessDB实时/时序数据库——JAVA使用ODBC连接数据库

    目录 前言 一.安装ProcessDB-ODBC驱动 1.下载ProcessDB-ODBC驱动 2.安装ProcessDB-ODBC驱动 二.配置ProcessDB数据源 三.JAVA连接Proces ...

  7. 配置 | 使用ODBC连接数据库

    可通过ODBC连接多种数据库,如DM数据库.ORACLE数据库等 若程序需要与数据库进行交互(连接数据库.执行某些SQL等),可以通过配置ODBC实现 ODBC配置成功后,应用程序便拥有了与数据库交互 ...

  8. php odbc连接数据库命名实例,一个用mysql_odbc和php写的serach数据库程序_php实例

    查询条件 查询条件 用户名称: 用户地址: 用户电话: //后台PHP echo " "; echo "查询结果:"; echo " "; ...

  9. Oracle数据库安装,以及使用plsql Dev连接数据库实例

    最近要开始学Oracle数据库,第一步就是安装数据库,所以现在将我安装数库以及连接数据库的问题总结一下. 软件下载连接 数据库下载官网地址: Oracle instance client下载地址: p ...

  10. ODBC 连接数据库 SQL server 2008

    1.打开[控制面板]-> [系统和安全] -> [管理工具]-> [数据源(ODBC)] 2.双击[数据源(ODBC)]-> 选中[系统DSN] 3.单击[添加],会弹出如下对 ...

最新文章

  1. java---24点游戏 :从扑克中每次取出4张牌,使用加减乘除,第一个能得出24者为赢。
  2. 交互式计算机图形学总结:第一章 图形系统和模型
  3. SDUT1281Cup
  4. 系统分析与设计结对项目———Wordcount
  5. LeetCode篇之链表:1290(二进制链表转整数)
  6. SpringBoot 轻量级英文版个人博客 flame
  7. 挂钩SSDT详解附源代码
  8. android camera 废弃,在Ubuntu系统基于ROS使用废旧Android手机摄像头搭建监控设备
  9. Python 实训3 简单的好友通讯录管理程序
  10. 中科大2021计算机应用数学期末回忆版
  11. 欧姆龙PLC程序 欧姆龙NX系列PLC程序,ST语言和梯形图配合使用,数据处理使用ST语言,逻辑用梯形图
  12. 央行房贷新政带火北京学区房:相比前两月涨10%
  13. 洛谷 P1330 封锁阳光大学
  14. 物联网应用案例选编:中期科技ZONTREE 场馆商超 智慧公厕 智慧厕所 的项目
  15. cat/tac查询命令
  16. ANE for Android Setp by Step
  17. STM32F103C8T6详细引脚表
  18. 如何做好软件测试计划工作?
  19. Github 最受欢迎的 35 个项目一览
  20. end kernel panic not syncing

热门文章

  1. MQTT、CoAP 还是 LwM2M?主流物联网协议如何选择
  2. java获取微信用户信息(UnionID)
  3. 计算机考研网络复试总结
  4. matlab数学建模题及答案,数学建模中30道经典 MATLAB程序.doc
  5. Scratch妙笔生花
  6. 我的世界服务器地图软件制作教程,我的世界RPG地图制作教程 利用MC小助手进行制作...
  7. 生物医药数据库-生物医药全生命周期数据(网址)
  8. 小米笔记本linux系统下载软件,小米笔记本用什么系统 小米笔记本电脑将预装Linux系统...
  9. ffmpeg bt709 to bt601
  10. php时间格式转换成时间戳,php怎么把时间格式转换为时间戳?