ODBC连接数据库实例
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,如下
这个对话框要继承哪个类呢? 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连接数据库实例相关推荐
- Visual C++中的ODBC编程实例
Visual C++中的ODBC编程实例 Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器.这些标准数据格式包括有:SQL Server.Acce ...
- ODBC连接数据库1
ODBC 作为一种简单易用的数据库连接方式,其完备的功能,良好的移植性使得其在数据库编程领域受到广泛的推崇.IBM 公司根据国际 ODBC 标准推出的 DB2 ODBC 驱动,在实现了 ODBC 主要 ...
- ODBC连接数据库以SQLserver为例
ODBC连接数据库以SQLserver为例 什么是ODBC 利用ODBC进行数据库连接 配置数据库(以SQL server为例) 首先打开SSMS(SQL server management stud ...
- php链接odbc,PHP使用ODBC连接数据库的方法
PHP使用ODBC连接数据库的方法 发布于 2015-09-27 06:54:06 | 56 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...
- ODBC连接数据库使用动态密码
ODBC连接数据库使用动态密码 | 火苗999℃的博客 先修改使用到的记录集的GetDefaultConnect()函数为: CString CTask_Info::GetDefaultConnect ...
- ProcessDB实时/时序数据库——JAVA使用ODBC连接数据库
目录 前言 一.安装ProcessDB-ODBC驱动 1.下载ProcessDB-ODBC驱动 2.安装ProcessDB-ODBC驱动 二.配置ProcessDB数据源 三.JAVA连接Proces ...
- 配置 | 使用ODBC连接数据库
可通过ODBC连接多种数据库,如DM数据库.ORACLE数据库等 若程序需要与数据库进行交互(连接数据库.执行某些SQL等),可以通过配置ODBC实现 ODBC配置成功后,应用程序便拥有了与数据库交互 ...
- php odbc连接数据库命名实例,一个用mysql_odbc和php写的serach数据库程序_php实例
查询条件 查询条件 用户名称: 用户地址: 用户电话: //后台PHP echo " "; echo "查询结果:"; echo " "; ...
- Oracle数据库安装,以及使用plsql Dev连接数据库实例
最近要开始学Oracle数据库,第一步就是安装数据库,所以现在将我安装数库以及连接数据库的问题总结一下. 软件下载连接 数据库下载官网地址: Oracle instance client下载地址: p ...
- ODBC 连接数据库 SQL server 2008
1.打开[控制面板]-> [系统和安全] -> [管理工具]-> [数据源(ODBC)] 2.双击[数据源(ODBC)]-> 选中[系统DSN] 3.单击[添加],会弹出如下对 ...
最新文章
- java---24点游戏 :从扑克中每次取出4张牌,使用加减乘除,第一个能得出24者为赢。
- 交互式计算机图形学总结:第一章 图形系统和模型
- SDUT1281Cup
- 系统分析与设计结对项目———Wordcount
- LeetCode篇之链表:1290(二进制链表转整数)
- SpringBoot 轻量级英文版个人博客 flame
- 挂钩SSDT详解附源代码
- android camera 废弃,在Ubuntu系统基于ROS使用废旧Android手机摄像头搭建监控设备
- Python 实训3 简单的好友通讯录管理程序
- 中科大2021计算机应用数学期末回忆版
- 欧姆龙PLC程序 欧姆龙NX系列PLC程序,ST语言和梯形图配合使用,数据处理使用ST语言,逻辑用梯形图
- 央行房贷新政带火北京学区房:相比前两月涨10%
- 洛谷 P1330 封锁阳光大学
- 物联网应用案例选编:中期科技ZONTREE 场馆商超 智慧公厕 智慧厕所 的项目
- cat/tac查询命令
- ANE for Android Setp by Step
- STM32F103C8T6详细引脚表
- 如何做好软件测试计划工作?
- Github 最受欢迎的 35 个项目一览
- end kernel panic not syncing
热门文章
- MQTT、CoAP 还是 LwM2M?主流物联网协议如何选择
- java获取微信用户信息(UnionID)
- 计算机考研网络复试总结
- matlab数学建模题及答案,数学建模中30道经典 MATLAB程序.doc
- Scratch妙笔生花
- 我的世界服务器地图软件制作教程,我的世界RPG地图制作教程 利用MC小助手进行制作...
- 生物医药数据库-生物医药全生命周期数据(网址)
- 小米笔记本linux系统下载软件,小米笔记本用什么系统 小米笔记本电脑将预装Linux系统...
- ffmpeg bt709 to bt601
- php时间格式转换成时间戳,php怎么把时间格式转换为时间戳?