电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C++连接mysql数据库的两种方法

12页
  • 卖家[上传人]:新**
  • 文档编号:431214992
  • 上传时间:2023-11-01
  • 文档格式:DOCX
  • 文档大小:167.64KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、C+连接mysql数据库的两种方法现在正做一个接口,通过不同的连接字符串操作不同的数据库。要用到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版本要

      2、和MySql的版本对应上,否则会连接不上数据库。我用的版本分别是mysql-5.1.48-win32.msi和mysql-connector-odbc-5.1.5-win32.msi。安装好后,点击开始菜单一设置一控制面板一管理工具一数据源(ODBC) 用户DSN-添加一 选择MySQLODBC5.1Driver。如下图:然后双击MySQLODBC5.1Driver进行配置。配置好可以点Test进行下测试(如下图),如果能连上会弹出connection successful 对话框。上图中的Data Source Name:中的内容就是代码里DSN所对应的值。例如:DSN二MySqlODBC;server=localhost;database二test。2、配置好后,就可以开始编码了。(1)首先导入 ADO 类型库。 #import c:program filescommon filessystemadomsado15.dll no_namespace rename(EOF,adoEOF)。您的环境中msadol5.dll不一定在这个目录下,请按实际情况修改。或者把msadol5.dl

      3、l这 个文件拷贝到你的工程目录下,直接#import msado15.dll no_namespace rename (EOF, adoEOF)包含进来。2 )创建 Connection 对象并连接数据库1. 2. CoInitialize(NULL);3. m_pConnection.CreateInstance(_uuidof(Connection);4. try5. 6. /设置连接时间7. m_pConnection-ConnectionTimeout = 5;8. /打开数据库连接9. HRESULT hr = m_pConnection-Open(DSN=MySqlODBC;server=localhost;database=test ,root,root,adModeUnknown);10.11.catch(_com_error &e)12.13.MessageBox(NULL, e.Description(), _T(), MB_OK)14.return FALSE;15.16.return TRUE;17.(3)执行SQL语句1. BOOL CDBManagerSub

      4、:ExecuteSQL( _bstr_t bstrSQL )2. 3. / _variant_t RecordsAffected;4. try5. 6. / 是否已经连接数据库7. if(m_pConnection = NULL)8. 9. /重新连接数据库10. Open(m_dbType, m_strServer, m_strUserName, m_strPasswor, m_strDBName);11. 12. / Connection 对象的 Execute 方法:(_bstr_t CommandText,13. / VARIANT * RecordsAffected, long Options )14. / 其中 CommandText 是命令字串,通常是 SQL 命令。15. / 参数 RecordsAffected 是操作完成后所影响的行数,16. / 参数 Options 表示 CommandText 的类型:adCmdText-文本命令;adCmdTable-表名17. / adCmdProc-存储过程;adCmdUnknown-未矢知18. _RecordsetPt

      5、r hr = m_pConnection-Execute(bstrSQL,NULL,adCmdText);19. return true;20. 21. catch(_com_error e)22. 23. MessageBox(NULL, e.Description(), _T(), MB_OK);24. return false;25. 26. _bstr_t bstrSQL为输入的SQL语句,如果返回TRUE,则执行成功,返回FLASH则会报对应的错误提示。例如:下面的创建testTable表的SQL语句:1.char* pQuery = create table if not exists testTable( ID VARCHAR(10), Name VARC HAR(255),Descs VARCHA(255),PRIMARY KEY (ID);2.ExecuteSQL(pQuery);3、附上 mysql 数据库的操作,方便没有安装 Navicat for mysql 的朋友参考。打开“开始所有程序-MySQL-MySQL Server 5.0-MySQL Command

      6、 Line Client.exe,如果没有设置密码就直接按 回车,会提示服务器启动成功。1.mysql SHOW DATABASES;/显示所有的数据库,注意一定要 敲“;”后再按回车2.mysql CREATE DATABASE mydb;/创建数据库3.mydbmysql USE mydb;/选择你所创建的数据库4.mydbmysql SHOW TABLES; /显示数据库中的表5.mysql CREATE TABLE mytable (username VARCHAR(100), visitelist VARCHAR(200),rem ark VARCHAR (200), PRIMARY KEY (username);/创建一个表 mytable:用户名;访问列表,主键 为 username6.mysql DESCRIBE mytable;/显示表的结构(二)通过MySQL自己的API函数进行连接1、使用API的方式连接,需要加载mysql的头文件和lib文件。在VS2010的附加包含目录中添加MySQLMySQL Server 5.1include。在安装MySql的目录下找。

      7、把libmysql.dll和libmysql.lib文件拷贝到所建的工程目录下。然后在头文件里包含以下内容:1./mysql 所需的头文件和库文件2.#includewinsock.h3.#includemysql.h4.#pragma comment(lib,libmySQL.lib)2、进行编码(1)连接 mysql 数据库头文件里定义数据源指针 MYSQL m_sqlCon;/连接 MySql 数据库1.try2.3.mysql_init(&m_sqlCon);4. / localhost:服务器root为账号密码test为数据库名33 0 6为端口5. if(!mysql_real_connect(&m_sqlCon,localhost,root,root,test,3306,NULL,0)6. 7. AfxMessageBox(_T(数据库连接失败!);8. return FALSE;9. 10. return TRUE;11. 12. catch (.)13. 14. return FALSE;15. 2)关闭数据库1. mysql_close(&m_sqlCon);3)创

      8、建表1. char* pQuery =create table if not exists DS_Building( ID VARCHAR(10),Name VARCHAR(255),Descs VARCHAR(255),PRIMARY KEY (ID)2. if(mysql_real_query(&m_sqlCon,pQuery,( UINT)strlen(pQuery)!=0)3. 4. const char* pCh = mysql_error(&m_sqlCon);5. return FALSE;6. 附 MySQL 的 API 接口:1. mysql_affected_rows()返回被最新的 UPDATE, DELETE 或 INSERT 查询影响的行数。2. mysql_close() 关闭一个服务器连接。3. mysql_connec t()连接一个MySQL服务器。该函数不推荐;使用mysql_real_connec t()代替。4. mysql_change_user() 改变在一个打开的连接上的用户和数据库。5. mysql_create_db() 创建一个数据库

      9、。该函数不推荐;而使用 SQL 命令 CREATE DATABASE。6. mysql_data_seek() 在一个查询结果集合中搜寻一任意行。7. mysql_debug() 用给定字符串做一个 DBUG_PUSH。8. mysql_drop_db()抛弃一个数据库。该函数不推荐;而使用SQL命令DROP DATABASE。9. mysql_dump_debug_info() 让服务器将调试信息写入日志文件。10. mysql_eof() 确定是否已经读到一个结果集合的最后一行。这功能被反对; mysql_errno() 或 mysql_error() 可以相反被使用。11. mysql_errno() 返回最近被调用的 MySQL 函数的出错编号。12. mysql_error() 返回最近被调用的 MySQL 函数的出错消息。13. mysql_escape_string() 用在 SQL 语句中的字符串的转义特殊字符。14. mysql_fetch_field() 返回下一个表字段的类型。15. mysql_fetch_field_direct () 返回一个表字段的类型,给出一个字段编号。16. mysql_fetch_fields() 返回一个所有字段结构的数组。

      《C++连接mysql数据库的两种方法》由会员新**分享,可在线阅读,更多相关《C++连接mysql数据库的两种方法》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.