热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++对MySQL数据库进行导出和导入操作

相信大家应该在网上看到很多利用SQL语句对MySQL数据库的表或者数据库本身进行导出和导入操作。在window环境下利用dos命令行导出数据库(我的mysq直接装在c

相信大家应该在网上看到很多利用SQL语句对MySQL数据库的表或者数据库本身进行导出和导入操作。在window环境下利用dos命令行导出数据库(我的mysq直接装在c盘根目录下下,其bin目录为:c:/mysql/bin):

1、执行MySQL数据库导出操作:

c:\mysql\bin>mysqldump -uroot -proot code_command > c:/code_command

2、导入Mysql数据库操作:

常用source 命令。进入mysql数据库控制台,如:mysql -u root -p ;mysql>use code_command ;然后使用source命令,后面参数为脚本文件(如这里用到的.sql):mysql>source c:/code_command.sql

最近在MFC环境下开发需要将导入和导出功能集成到应用程序中,查询了mysql的官方API,我没有找到对应的接口,查询了 hellokandy写的博客(https://blog.csdn.net/hellokandy/article/details/80497234),也没有找到对应的接口,因此采取利用c++调用dos窗口利用sql命令实现该功能,具体代码如下:

//导出数据库
void CDlgUserMangement::OnBtnExportSQL()
{//WinExec("cmd /c C:/mysql/bin/mysqldump.exe -hlocalhost -uroot -proot code_command > c:/q/bb.sql",SW_NORMAL);// TODO: 在此添加控件通知处理程序代码CString strFile="";CFileDialog dlgFile(TRUE,_T("*.sql"),NULL,OFN_HIDEREADONLY,_T("SQL File(*.sql)|*.sql"),NULL);if (IDOK==dlgFile.DoModal()){strFile=dlgFile.GetPathName();CString cmdSQL="cmd /c C:/mysql/bin/mysqldump.exe -hlocalhost -uroot -proot code_command > "+strFile;WinExec(cmdSQL,SW_HIDE);//SW_HIDE 不闪MessageBox("数据库导出成功!","提示");}}//导入数据库
void CDlgUserMangement::OnBtnImportSQL()
{char cmdstr[1000];char path[1024];FILE *f;CString strFile &#61; "";CFileDialog dlgFile(true,_T("*.sql"),NULL,OFN_HIDEREADONLY,_T("SQL File(*sql)|*.sql"),NULL);if (dlgFile.DoModal() &#61;&#61; IDOK){strFile &#61; dlgFile.GetPathName();sprintf(cmdstr,"&#64;echo off\n");strcpy(path,"set str&#61;\"C:\\mysql\\bin\\\"\n");sprintf(cmdstr,"%s%s\n",cmdstr,path);sprintf(cmdstr,"%s%s\n",cmdstr,"%str%mysql.exe -h localhost -uroot -proot code_command <"&#43;strFile&#43;"\n");f &#61; fopen("c:\\mysql\\bin\\tmp.bat","w");fprintf(f,"%s",cmdstr);fclose(f);//WinExec("tmp.bat",SW_HIDE);//SW_HIDE 不闪ShellExecute(NULL,_T("open"),_T("c:\\mysql\\bin\\tmp.bat"),_T(""),NULL,SW_HIDE);//system("tmp.bat");remove("tmp.bat");MessageBox("数据库导入成功&#xff01;","提示");}
}

 


推荐阅读
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文介绍了如何在 Spring 3.0.5 中使用 JdbcTemplate 插入数据并获取 MySQL 表中的自增主键。 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
author-avatar
looloSam
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有