西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页西西教程数据库教程 → C++连接mysql等数据库的几种方法分享

C++连接mysql等数据库的几种方法分享

相关软件相关文章发表评论 来源:西西整理时间:2011/4/24 7:56:12字体大小:A-A+

作者:西西点击:454次评论:1次标签: mysql

迅雷7v7.9.44.5056 官方最新版
  • 类型:下载工具大小:41M语言:中文 评分:9.9
  • 标签:
立即下载

现在正做一个接口,通过不同的连接字符串操作不同的数据库。要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多。通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法。可以通过2种方法实现。

第一种方法是利用ADO连接,第二种方法是利用mysql自己的api函数进行连接。第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库。暂时只连接了mysql,sqlserver,oracle,access。对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说。第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序。
不管用哪种方法,首先需要安装Mysql数据库,安装方法请看“mysql安装及一些注意点”。最好安装一个Navicat for mysql,方便操作mysql数据库。下面分别说下这两种方法:
(一)通过ADO连接MySql数据库
1、通过ADO连接MySql数据库,首先得安装MyODBC服务器程序。MyODBC版本要和MySql的版本对应上,否则会连接不上数据库。我用的版本分别是mysql-5.1.48-win32.msi和mysql-connector-odbc-5.1.5-win32.msi。
安装好后,点击开始菜单->设置->控制面板->管理工具->数据源(ODBC)->用户DSN->添加->选择MySQL ODBC 5.1 Driver。如下图:
   

然后双击MySQL ODBC 5.1 Driver进行配置。配置好可以点Test进行下测试(如下图),如果能连上会弹出connection successful对话框。

上图中的Data Source Name:中的内容就是代码里DSN所对应的值。例如:"DSN=MySqlODBC;server=localhost;database=test"。

2、配置好后,就可以开始编码了。
 (1)首先导入ADO类型库。#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")。您的环境中msado15.dll不一定在这个目录下,请按实际情况修改。或者把msado15.dll这个文件拷贝到你的工程目录下,直接#import "msado15.dll" \ no_namespace \rename ("EOF", "adoEOF")包含进来。
 (2   创建Connection对象并连接数据库  
  {     
        CoInitialize(NULL);
        m_pConnection.CreateInstance(__uuidof(Connection));

        try
        {
                //设置连接时间
                m_pConnection->ConnectionTimeout = 5;
                //打开数据库连接
                HRESULT hr = m_pConnection->Open("DSN=MySqlODBC;server=localhost;database=test","root","root",adModeUnknown);
        }
        catch(_com_error &e)
        {
                MessageBox(NULL, e.Description(), _T(""), MB_OK);
                return FALSE;
        }

        return TRUE;
   }

   (3)执行SQL语句
   BOOL CDBManagerSub::ExecuteSQL( _bstr_t bstrSQL )
   {
        //    _variant_t RecordsAffected;
        try
        {
                // 是否已经连接数据库
                if(m_pConnection == NULL)
                {
                        //重新连接数据库
                        Open(m_dbType, m_strServer, m_strUserName, m_strPasswor, m_strDBName);
                }
                // Connection对象的Execute方法:(_bstr_t CommandText,
                // VARIANT * RecordsAffected, long Options )
                // 其中CommandText是命令字串,通常是SQL命令。
                // 参数RecordsAffected是操作完成后所影响的行数,
                // 参数Options表示CommandText的类型:adCmdText-文本命令;adCmdTable-表名
                // adCmdProc-存储过程;adCmdUnknown-未知
                _RecordsetPtr hr = m_pConnection->Execute(bstrSQL,NULL,adCmdText);
                return true;
        }
        catch(_com_error e)
        {
                MessageBox(NULL, e.Description(), _T(""), MB_OK);
                return false;
        }
   }

     _bstr_t bstrSQL为输入的SQL语句,如果返回TRUE,则执行成功,返回FLASH则会报对应的错误提示。
      例如下面的创建testTable表的SQL语句:
      char* pQuery = "create table if not exists testTable( ID VARCHAR(10), Name VARCHAR(255),Descs VARCHAR(255),PRIMARY KEY (ID))";
      ExecuteSQL(pQuery);

    3、附上mysql数据库的操作,方便没有安装Navicat for mysql的朋友参考。

      打开“开始->所有程序->MySQL->MySQL Server 5.0->MySQL Command Line Client.exe”,如果没有设置密码就直接按回车,会提示服务器启动成功。
    mysql> SHOW DATABASES;//显示所有的数据库,注意一定要 敲“;”后再按回车
    mysql> CREATE DATABASE mydb;//创建数据库
    mydbmysql> USE mydb;//选择你所创建的数据库
    mydbmysql> SHOW TABLES; //显示数据库中的表
    mysql> CREATE TABLE mytable (username VARCHAR(100), visitelist VARCHAR(200),remark VARCHAR(200),PRIMARY KEY (username));//创建一个表mytable: 用户名;访问列表,主键为username
    mysql> DESCRIBE mytable;//显示表的结构

    迅雷种子搜索
    (17)迅雷种子搜索
    迅雷搜索浏览器是一款种子磁力资源搜索平台软件,支持独家的种子下载功能,超多的搜索渠道基本满足任何用户的搜索需求。本次放出种子搜索浏览器pc版,安卓版,苹果版资源下载,想要一款bt搜索神器类应用的朋友们不要错过哦!...更多>>
    • 迅雷7官方版v7.9.44.5056

      05-09 / 17.4M

      推荐理由:迅雷7主界面最大的变化就是新加入的“炫彩换肤”功能,通过该功能,用户可以方便直观的对迅雷7主界面进行换
    • 百度网盘极速上传控件V2.0.0.3 官方

      03-29 / 438KB

      推荐理由:新增极速上传控件,支持文件秒传、断点续传、支持4G大文件上传、支持单次上传1000个文件.支持IE、谷歌浏览器
    • 百度网盘v10.0.22 安卓版

      07-18 / 74.4M

      推荐理由:百度网盘下载,在众多互联网大鳄都推出了免费网盘后,互联网大神百度也耐不住了,推出了百度网盘。通过你的百
    • 迅雷快鸟最新版4.1.2 无限流量版

      01-17 / 4.5M

      推荐理由:迅雷快鸟破解版是迅雷快鸟电脑版的特别版本,这一版本为用户修改了迅雷快鸟正式版中的vip和流量限制,用户使
    • 迅雷7v7.9.44.5056 官方最新版

      10-16 / 41M

      推荐理由:迅雷7拥有国内80%以上的用户使用的下载工具。使用迅雷7官方下载,要注意它在后台自动上传文件,P2P的都会这
    • 极速迅雷v9.1.41 官方最新版

      10-16 / 41M

      推荐理由:谈到下载利器,大家熟悉的有迅雷、QQ旋风。论到资源数量时,还是迅雷优先。但是对于普通用户来说,迅雷捆绑
    百度网盘搜索神器
    (17)百度网盘搜索神器
    西西为大家带来的这款种子百度网盘搜索神器p合集包含安卓、电脑、苹果、mac等相关版本,无论你使用的是何种设备,都可以使用这款百度网盘搜索神器进行资源搜索、解析、下载、播放服务哟。...更多>>
    • 百度网盘v10.0.22 安卓版

      07-18 / 74.4M

      推荐理由:百度网盘下载,在众多互联网大鳄都推出了免费网盘后,互联网大神百度也耐不住了,推出了百度网盘。通过你的百
    • 百度网盘2019官方最新版V10.0.43 手

      08-26 / 79.2M

      推荐理由:百度网盘2019最新版为大家带来,这是一款人手必备的云端储存软件,全新的界面和功能,为用户带来更加流畅便
    • 迅雷7官方版v7.9.44.5056

      05-09 / 17.4M

      推荐理由:迅雷7主界面最大的变化就是新加入的“炫彩换肤”功能,通过该功能,用户可以方便直观的对迅雷7主界面进行换
    • 迅雷快鸟最新版4.1.2 无限流量版

      01-17 / 4.5M

      推荐理由:迅雷快鸟破解版是迅雷快鸟电脑版的特别版本,这一版本为用户修改了迅雷快鸟正式版中的vip和流量限制,用户使
    • 迅雷7v7.9.44.5056 官方最新版

      10-16 / 41M

      推荐理由:迅雷7拥有国内80%以上的用户使用的下载工具。使用迅雷7官方下载,要注意它在后台自动上传文件,P2P的都会这
    • 极速迅雷v9.1.41 官方最新版

      10-16 / 41M

      推荐理由:谈到下载利器,大家熟悉的有迅雷、QQ旋风。论到资源数量时,还是迅雷优先。但是对于普通用户来说,迅雷捆绑
    迅雷x搜索神器
    (17)迅雷x搜索神器
    迅雷x可抓取全球ED2k网络磁力种子链接,简单便捷的搜索到ED2K网络上共享的海量影音娱乐学习资料等资源。包含电影种子,动漫种子,电视剧种子,综艺节目种子。资源链接可以用电驴或者迅雷下载工具下载,非常方便。...更多>>
    • 迅雷7官方版v7.9.44.5056

      05-09 / 17.4M

      推荐理由:迅雷7主界面最大的变化就是新加入的“炫彩换肤”功能,通过该功能,用户可以方便直观的对迅雷7主界面进行换
    • 迅雷快鸟最新版4.1.2 无限流量版

      01-17 / 4.5M

      推荐理由:迅雷快鸟破解版是迅雷快鸟电脑版的特别版本,这一版本为用户修改了迅雷快鸟正式版中的vip和流量限制,用户使
    • 迅雷7v7.9.44.5056 官方最新版

      10-16 / 41M

      推荐理由:迅雷7拥有国内80%以上的用户使用的下载工具。使用迅雷7官方下载,要注意它在后台自动上传文件,P2P的都会这
    • 极速迅雷v9.1.41 官方最新版

      10-16 / 41M

      推荐理由:谈到下载利器,大家熟悉的有迅雷、QQ旋风。论到资源数量时,还是迅雷优先。但是对于普通用户来说,迅雷捆绑
    • 迅雷极速版v1.0.35.366 绿色精简版

      11-27 / 17.2M

      推荐理由:迅雷精简版是迅雷公司开发的轻量级下载利器~具有速度快,无广告,高效率的特点~~~虽然综合实力不能与迅雷7等
    • 百度网盘9.6.10 官方最新版

      04-19 / 233.8M

      推荐理由:百度网盘iphone版一般用来做网盘用,速度快,而且存储放心稳定。百度网盘iphone版是百度推出的一款云存储服
    迅雷下载
    (17)迅雷下载
    迅雷下载是西西为大家收集整理的一些种子磁力下载工具,这些软件可以帮你下载迅雷链接或种子文件。迅雷下载是我们日常生活中常见的一种下载方式,一般常见于一些大文件或者大的游戏,磁力下载的工具有很多,包括我们耳熟能详的uTorrent、电驴、迅雷等,这里西西提供的磁力下载工具除了电脑版的之外还有一些手机版工具。...更多>>
    迅雷7
    (63)迅雷7
    迅雷7是迅雷官方的一款最经典版本,使用多年,经久不衰,而且由于界面简约,所以深受广大用户的信赖。迅雷7完全支持当前网络中的各类浏览器与相关下载任务,所以大家无须担心版本过期问题。迅雷7在迅雷官网平台已经无法找到,网络中的许多旧版都是未升级版本,大家需要使用请认西西软件园。...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(1)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)