首页 经验教程大全 专题 赚钱攻略 移动客户端
经验教程 > 分类导航 > 计算机/互联网 > 程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
&开发 > VC > VC++6.0中用ODBC连接mysql数据库
分类导航
作者:hi_720 累计赚钱 6.073 元
我也要“分享赚钱” 2013-2-13 关注(1155) 评论(0)
VC++6.0中用ODBC连接mysql数据库
声明:此内容仅代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
网友个人经验或观点,不代表本网站立场和观点。
下图是程序的最终效果,包含了数据的显示,添加,修改,删除这几项数据库操作的常用功能。
我的调试环境是xp,mysql版本是mysql4.0.23
1.安装Mysql的ODBC驱动
从http://www.mysql.com上下载驱动程序
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 1 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
地址:http://dev.mysql.com/downloads/connector/odbc/3.51.html#win32
我是下载的Windows ZIP/Setup.EXE
下载到本机之后从zip包中解压出setup.exe文件,双击安装,没什么可说的,完全的傻瓜式安装
2.设置ODBC数据源
配置MySQL的ODBC数据源有两种方法
第一种:手工设置
比较麻烦,但是确是比较安全的办法。
步骤如下:
开始 -> 控制面板 -> 管理工具 -> 数据源 (ODBC),双击数据源(ODBC)之后会出来如下的
界面
点击右上角的"添加"按钮之后会出现如下的界面
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 2 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
可以看到,我们刚才安装的驱动程序已经出现在列表中了,选中它,然后单击完成,此时会出来
面的界面
按上图所示,填写好各项连接所需要的信息点击“Test”可以进行测试,如果出现sucessful字样
就表示成功了
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 3 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
我解释一下填写的信息:Data Source Name:缩写就是DSN,中文翻译过来就是数据源名称,
是给数据源取个名,为了安全还是取英文名吧,省得出现意外。
Description:描述,可填可不填,我比较懒,就没填,想填也行,就是描述一下这个数据源是哪
家的,干啥用的等等,随便吧Server:服务器,不能省,我填的是localhost,如果你有远程主
机,不妨试试填上远程主机的IP地址,我没试过,不清楚User:用户名,我本地数据库用的是ro
t,你们如果有别的就根据自己的情况填吧Password:密码,我没设置密码,有则填之,没有就
空Database:数据库,这是一个listbox,可以自己填,也可以从下拉列表中选,如果你前面的S
ver,User,Password都正确的话,下拉列表中会出来可选的数据库,这个就是我们要连接的数
库资源。
解释完毕,点了OK之后,我们就算设置完成了。
第二种:动态设置这种办法是指在程序执行时才添加数据源,SQLConfigDataSource是所用的方
法,查msdn可以查到它的用法第一个参数一般设置成NULL就可以了,第二个参数我用的是OD
_ADD_DSN,表示是新增数据源第三个参数是驱动的名称,在数据源(ODBC)中抄过来就OK了
第四个参数是连接字符串,多个参数用分隔开,DSN就是数据源名称,UID是用户名,PWD是密
码,SERVER是主机名,DATABASE是数据库名称,最后用两个结束。
只要在程序中加上这一行,当程序执行到它时,就会在数据源中加上你所设置的数据源,并且可
在控制面板 -> 管理工具 -> 数据源(ODBC)中查到。如图二所示,里面的odbctest和odbcte
qqqq,前者就是动态创建的,后者是最初手工创建的。
SQLConfigDataSource(NULL,ODBC_ADD_DSN,"MySQL ODBC 3.51 Driver","DSN=o
bctest UID=root PWD= SERVER=localhost DATABASE=odbc");
3.编写连接程序我用的是VC6.0,VC这东西好是好,就是封装得太多了,像我等这样初来乍到之
一时半会是狗咬乌龟——找不到下口的地方下面我就按我的方式来说说,肯定有高手有更高明的
法,不妨评论一二,也好让我等开开眼界。
(1)。创建一个基于对话框的工程在VC中点击菜单中 File -> New,在Projects的下拉菜单中选
择MFC AppWizard (exe);在右上角的输入框中填写一个工程的名字,我取名叫ODBCTest
选择一个存放目录,我的是存在E:cODBCTest;点击OK进入下一步,选择基于对话框,然后点
nish完成设置。
(2)。包含头文件切换到file view,在header files中找到stdafx.h,这是MFC第一个要包含的
文件,我们在里面加上如下两行,将odbc及数据库操作所需的头文件引入到工程中。没这两个头
文件编译时会出错。
⋯⋯
#include #include "afxdb.h"// 用的时候把引号换成尖括号,编辑器自动给转成了非源码形式,
郁闷
//{{AFX_INSERT_LOCATION}}⋯⋯
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 4 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
(3)。画主体对话框
主体对话框是用来列表显示数据,并放置其他操作入口的界面,在这个程序中,我们的主体对话
上会放置一个列表控件和五个按钮控件。
在资源视图上选择对话框资源,然后绘制如下图如示的对话框
对图上的控件作一下说明
1)。列表,用的是list control,注意在styles中的view要设置成report(报表),如下图
2)。依次添加了三个按钮,添加,修改,删除。
在这里做下说明,一般看网上的教程或是
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
,上面讲的程序的编写过程都是按步就班,没有多余
过程,因为作者都已经重新做了排版和设计工作,力求简洁。但实际编程中确是不一样的,常常
经过多次修改,重排,优化,所以这里我打算按实际程序的编写过程来说明,而不是按步就班的
明,力求还原程序编写的全过程。作为一个初学VC的新手,相信有很多跟我一样的新手也会遇到
同样的困难,没关系,万事开头难。
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 5 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
一般的教程讲到这里就可能会去将后面所要用到的资源准备好,然后进行“系统的”编程。我这
不这样走,而是回到主窗口的编程上来,一个功能一个功能的实现。
1)。实现数据的列表显示晕了,很多人肯定会晕了。这不扯淡吗,我们的数据库(库名叫:od
c)里啥东西都还没有,显示啥呀。
没关系,好在俺也搞过Mysql几年,别的不会,管理Mysql的工具倒是知道不少,比如:EMS,
pMyAdmin,DBtools⋯⋯
我为了简单就用了phpMyadmin这个工具,这个工具需要在本地安装了php和mysql才能使用,
果本地没有装php就用不了了,不过没关系,去下载一个EMS也不错,非常强大的工具,华丽的
面,丰富的功能。用过SQL server的可能更习惯于使用DBTools Manager,这也是个强大的工
具,值得一试。
二毛说,学VC,在还没有入门之前机器上就会有一堆的工具。初始还不信,现在我信了,这不,
刚学没几天,机器上就跑上了VC,msdn,另外还有一堆的入门电子书,阅读器,视频播放软
件⋯⋯既然已经有这么多了,再多几个也无所谓了。
跑题了哈,我先刹车倒回来,接着讲数据的显示,第一步:在odbc库中建一张表list,都怪我,这
库名取得有点误导观众,这里再次申明一下,这里的odbc是我建的一个MySQL数据库,不是那个
该死的缩写。下面是建好之后的表
id:是一个自增,非负的10位整型字段,用来存放用户的ID
name:是一个40位变长的字符串,用来存放用户名
age:是一个3位的小整型字段,因为没有启用非负设置,最大可以到127,此字段存放用户年龄
这就是list表的结构,然后我们在表中插入几条初始数据,用来显示。
phpMyAdmin的使用我就不多说了,这属于工具的使用,不在本文的说明范围之内。
添加好数据之后,我们可以在phpmyadmin中浏览到它们,如下图:
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 6 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
2)。编程显示数据列表
回到VC中来,在类视图中,找到CODBCTestDlg并展开,找到里面的OnInitDialog()方法,此
方法是对话框的初始化方法,我的最初想法就是在这里面完成数据库的连接,查询,并输出数据
列表中。于是我写了如下的代码
CDatabase db;
db.Open(NULL,FALSE,FALSE,"ODBC;DSN=odbctest;UID=root;PWD=");
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, _T("SELECT * FROM list order by id A
c"));
short nFields = rs.GetODBCFieldCount();
while(!rs.IsEOF())
{
CString varID;
rs.GetFieldValue("id", varID);
m_list.InsertItem(0,varID);
CString varName;
rs.GetFieldValue("name", varName);
m_list.SetItemText(0, 1, varName);
CString varAge;
rs.GetFieldValue("age", varAge);
m_list.SetItemText(0, 2, varAge);
rs.MoveNext();
}
rs.Close();
db.Close();
但后来发现有问题,因为在后面每添加一条记录之后都需要更新列表,重新输出,这就需要再次
一段跟上面一模一样的代码,我靠,这不浪费时间吗。于是,我将上面的这段代码放到了类的一
方法中。步骤如下:
1)。在类视图中选中CODBCTestDlg,点右建,选择新增function,然后创建一个void GetRe
rd()的方法,如下图
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 7 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
2)。将上面的代码放到方法中,最终的代码如下
void CODBCTestDlg::GetRecord()
{
m_list.DeleteAllItems();
CDatabase db;
db.Open(NULL,FALSE,FALSE,"ODBC;DSN=odbctest;UID=root;PWD=");
CRecordset rs( &db );
rs.Open( CRecordset::forwardOnly, _T("SELECT * FROM list order by i
Asc"));
//short nFields = rs.GetODBCFieldCount();// 此行原是用来遍历表中字段,现
在没有用上
while(!rs.IsEOF())
{
CString varID;
rs.GetFieldValue("id", varID);
m_list.InsertItem(0,varID);
CString varName;
rs.GetFieldValue("name", varName);
m_list.SetItemText(0, 1, varName);
CString varAge;
rs.GetFieldValue("age", varAge);
m_list.SetItemText(0, 2, varAge);
rs.MoveNext();
}
rs.Close();
db.Close();
m_list.AdjustColumnWidth();//新增了一个CMyListCtrl类,这是里面我新增的一
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 8 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
挺好(0) 一般(0)
VC 6.0中用ODBC连接mysql数据库
MySQL数据库接口的VC具体实现与应用
方法,用来自适应数据宽度
}
这样,以后在需要重新取列表数据时就可以调用此方法了,这就叫重用。
ODBC连接数据库,有两个类是需要关心的,第一个是CDatabase,另一个是CRecordset
前者用于数据库连接的建立,后者用于数据集的取得
建立连接,用如下的代码来实现
CDatabase db;//声明一个对象
db.Open(NULL,FALSE,FALSE,"ODBC;DSN=odbctest;UID=root;PWD=");// 连
数据源
至于为什么这么写,查msdn吧
取数据集合
CRecordset rs( &db );// 绑定数据源
rs.Open( CRecordset::forwardOnly, _T("SELECT * FROM list order by id Asc"));
查询数据
要执行sql,我并没有用ODBC提供的方法,而是用更直接的办法
CString sql;
sql.Format("update list set name='%s', age='%s' where id=%d",str_name, str_age
tem_id);
db.ExecuteSQL(sql);
这种办法的好处是可以不用从CRecordSet继承新类,且对我这样了解一部分sql的新手比较直观
mysql视频教程连接mysql mysql下载mysql 远程连接
相关经验教程
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 9 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经验...
2014-4-3http://www.shangxueba.com/jingyan/92333.html
请输入验证码
用户评价
关于我们 | 网站导航 | 常见问题&帮助 | 免责声明 | 投诉&建议 |
CopyRight 2009-2014 上学吧 | 湘ICP备10203241号
MySQL数据库接口的VC实现与应用
MySQL数据库接口的VC具体实现与应用
VC 6.0中用ADO存取Access数据库的总结
上传我的经验教程
特价大码女装超显瘦夏装T恤
¥119.00
意大利代购正品 经典贝壳手
¥398.00 ¥3980
首页 考试日历 我的上学吧 免费视亲,请登录 免费注册
Page 10 of 10VC++6.0中用ODBC连接mysql数据库 -百科教程网_经验分享平台[上学吧经...
2014-4-3http://www.shangxueba.com/jingyan/92333.html