Windows下使用VS的ADO访问MySQL
数据库的访问的一种方式就是:CS结构。即使用TCP/UDP协议进行远程访问,而数据库对于服务端的软件是本地访问!这种管理方式比较常见。
这里主要叙述Windows访问本地数据库的方法。
需要了解几个概念:
1、ADO是什么。ADO (ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。ADO也是Microsoft的组件对象模式(COM)的一部分。其实你可以理解成微软程序访问数据库的一种统一的接口,目的是简化数据库的访问(如果不使用ADO,就只能使用各种数据库自己提供的API函数)。
2、脱离平台的数据库包含哪些部分。SQL Server和数据源。至于SQL Server下载参见:https://dev.mysql.com/downloads/installer/。注意这两个版本都是等价的,听说那个容量小的是一个下载器(我下载的是那个容量大的)。SQL Server就相当于数据资源的底层管理者。
3、数据库驱动器(数据库连接器)。它是基于平台的。基于Windows平台的驱动器下载参见:https://dev.mysql.com/downloads/connector/odbc/。总共是4个,眼花了吧!建议下载MSI Installer。这是整个安装包,一键安装,你懂得!64位,32位都要下载!因为下面需要配置ODBC的(都下载了,肯定有一个能用,我的只能用32位的)。
至此需要的软件均已下载完成。
配置:
1、数据库驱动器直接双击安装即可。MySQL安装(包括数据库服务器)比较麻烦一点。都安装上肯定不会出错(我也是初学者)。主要安装MySQL server和MySQL shell、MySQL workbench。整个安装过程中需要配置主机/服务器名、端口、用户名、密码、数据库名。
主机/服务器名写ip地址或者localhost(本地)。端口默认即可,用户名,自己命名,但要记着!密码随便。数据库名随便写一个,因为在shell中你可以对数据库进行删除等操作。(MySQL已安装过了,不想再安装一遍了)。
2、设置odbc数据源(64,32位)均要设置一遍。建议创建系统DSN(所有用户均可访问,文件DSN可以在电脑上进行复制粘贴,如果编给其他电脑的可以选择文件DSN)。
点击右侧添加,
这两种编码自己查(即使查了也不一定能明白),我选的是第二项。
记住自己设置的DSN(Data Source Name)。其他选项一看就懂。至此DSN创建完成。
细心的也可能注意到了:MySQL for Visual Studio:https://dev.mysql.com/ downloads/windows/visualstudio/。听说那是给ADO.NET开发的,不懂.NET的就不要瞎搞了。我也不懂。
至此接口完成!
下面就能进行测试了,测试代码如下:
#include <Windows.h> #include <iostream> #include <string> using namespace std; #import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF") int main(int argc,char *argv[]) { CoInitialize(NULL); //Connect _ConnectionPtr pConn; pConn.CreateInstance(__uuidof(Connection)); try { HRESULT hr = pConn->Open("DSN=dsn;server=localhost;database=mydb;","user","password",adModeUnknown); } catch (_com_error&e) {
cout<< e.Description()<< endl;
return -;
} //Open _RecordsetPtr pRecord; pRecord.CreateInstance(__uuidof(Recordset)); pRecord->CursorLocation = adUseClient; pRecord->PutActiveConnection(pConn.GetInterfacePtr()); //Read try { pRecord->Open(_bstr_t("select * from mytable"), vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText); } catch (_com_error &e) { cout<< e.Description()<<endl; //Table 'mydb.mytable' doesn't exist } while (!pRecord->adoEOF) { _variant_t vID = pRecord->GetCollect(_variant_t((long))); _variant_t vName = pRecord->GetCollect("name"); _variant_t vSex = pRecord->GetCollect("sex"); cout<< (char*)(_bstr_t)vName<< " "; cout<< (char*)(_bstr_t)vSex<< " "<<endl; pRecord->MoveNext(); } //Close pRecord->Close(); pConn->Close(); CoUninitialize(); return ; };
主要是配置pConn->Open()的参数,你的参数不一定跟我一样。如果直接运行的话,pRecord->Open()会抛出一个错误:Table 'mydb.mytable' doesn't exist。就是数据库是空的!
在这里往数据库中添加一些数据:
1. 打开MySQL 5.7 Command Line Client - Unicode(MySQL安装时,安装的),输入密码,回车。
2、输入指令进行添加数据。shell命令参考:http://blog.csdn.net/w174504744/article/details/7884997
3、注意shell命令单词之间的空格!
大家都是初学者,数据库创建完成,我现在还没找到数据库具体放哪呢。
声明:程序是粘贴的别人的!测试好用。如有侵权,请告诉我。
OVER!
Windows下使用VS的ADO访问MySQL的更多相关文章
- 在Windows下安装64位压缩包版mysql 5.7.11版本的方法
为了学习数据库,自己去网上下载了最新版本的Windows64位的mysql 5.7.11,但是花了很长的时间在安装的问题上,同时也借鉴了几位前辈的博文来帮助自己解决在安装过程中遇到的问题,安装成功之后 ...
- 在windows下使用vs2013编译和调试mysql源代码
1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604 ...
- windows下配置svn的https访问
svn是一个功能强大的代码版本管理系统,可以将服务端安装在linux.unix以及windows下.svn通常采用http方式进行代码提交与下载.由于密码采用明文传输,因此存在泄密的风险.若采用htt ...
- windows下通过VNC图形化访问Ubuntu桌面环境
要在windows下图形化访问Ubuntu或其它Linux系统桌面环境有很多方法,我比较喜欢的是使用VNC服务,需要在Ubuntu下安装vncserver和在windows下安装客户端访问工具. 1. ...
- windows下安装Apache、php、mysql集成环境
一.准备工作 本次安装的版本分别为:apache2.4 .php5.6 . mysql5.7 下载地址为:http://pan.baidu.com/s/1boQNIOn 密码:zarx 二.安装步骤 ...
- Windows下: RubyMine + Ruby On Rails + mysql 搭建开发环境
最近在接手一个手机项目.在搭建环境的过程中,遇到了一些问题,在下文中已做记录,并奉上个人的解决方案. 开发环境 win2003 ; JetBrains RubyMine6.3.3 1. 下载最新版 ...
- windows 下wamp环境2 配置之mysql的安装
安装配置mysql 5.7 打开mysql官网: https://www.mysql.com/ 点击downloads,然后选择commuity 选择MySQL Community Server选择对 ...
- Windows下如何使用CMD命令进入MySQL数据库
1.打开[开始]>[运行]输入[cmd]单击[确定]后出现CMD命令黑色窗口,这就是我们说的CMD命令行,或者使用快捷键Windows键(在键盘上有个Windows标志的按键)+R输入cmd后回 ...
- windows 下使用 zip安装包安装MySQL 5.7
以下内容参考官方文档:http://dev.mysql.com/doc/refman/5.7/en/windows-start-command-line.html 解压缩zip到D:\mysql-5. ...
随机推荐
- ubuntu上配tensorflow
前一阵绕了大弯路,基本弄好了UEFI双系统后,面对的就是CUDA咋装在Linux. 好在教程好多,有些朋友建议先装CUDA再装显卡驱动.弄好之后记录一下详细过程吧. *** 这两天看了一些教程,还是感 ...
- Servlet学习(二)——ServletContext对象
1.什么是ServletContext对象 ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象内部封装是该web应用的信息,一个web应用只有一个S ...
- 【学习】JMS通信模式
1.关于JMS的点对点模式 JMS的点对点模式下,多个消费者可以注册到同一个队列上,但是生产者的某个消息只能被一个消费者接收,在多个消费者间,生产者的消息被多个消费者循环接收,如当前有6个消息在队列中 ...
- Spring MVC 搭建过程中web.xml配置引入文件的路径问题
为啥要说一下这么low的问题,因为我是一个比较low的人,哈哈.本来我技术有限,没事干自己撘个环境找找乐趣,结果被各种基础问题,弄的一脸蒙蔽.算了不多说,直接说问题. 1.首先说一下java编译后的文 ...
- 洛谷 P1220 关路灯 (贪心+区间dp)
这一道题我一直在想时间该怎么算. 看题解发现有个隐藏的贪心. 路径一定是左右扩展的,左右端点最多加+1(我竟然没发现!!) 这个性质非常重要!! 因此这道题用区间dp f[i][j]表示关完i到j的路 ...
- 紫书 例题8-19 UVa 12265 (扫描法+单调栈)
首先可以用扫描法处理出一个height数组, 来保存从当前行开始, 每一个格子可以向上延伸的最大长度. 这种"延伸"的问题用扫描法, 因为往往这个时候可以利用前一次的结果来更新当前 ...
- 如何配置任意目录下Web应用程序
1,首先创建一个Web项目,tomcat 7, JDK 1.8 2,创建Web项目并部署到tomcat服务器下运行的步骤和方法: 在Eclipse下创建一个JAVA project 在JAVA项目下创 ...
- Google的10大座右铭
1. 以用户为中心,其他一切纷至沓来. 创建伊始,Google 即以提供最佳的用户体验为其中心任务.虽然很多公司主张客户利益优先,但难以抗拒各种诱惑,往往会牺牲客户的少量利益来增加股东价值. Goog ...
- Qt之QFileIconProvider(根据扩展名获取文件图标、类型)
简述 在Qt之QFileIconProvider一节中已经讲解关于如何获取文件图标与类型.但只仍针对本地已存在的文件,此节,我们主要运用前面分享的内容,讲述如何通过任意后缀或本地不存在的文件来获取相关 ...
- SpringMVC案例3----spring3.0项目拦截器、ajax、文件上传应用
依然是项目结构图和所需jar包图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVuamFtaW5fd2h4/font/5a6L5L2T/fontsi ...