跨数据库表间数据Copy的源代码

简介: 跨数据库表间数据Copy的源代码
/***************************************************************************************************
** 函数名  :RestoreData
** 输  入  :const CString &desc 目的数据库路径
**           const CString &source 源数据库路径
** 输    出:
** 功能描述:将源数据库中的内容导入到目的数据库中
** 全局变量:
** 调用模块:
** 作    者:刘志永
** 日    期:2008-9-10
** 修    改:
** 日    期:
** 版    本:
***************************************************************************************************/
BOOL CDbRestore::RestoreData(const CString &desc, const CString &source)
{
 try
 {
  //CoInitialize(NULL);
  //_ConnectionPtr pconn(__uuidof(Connection));
  //_ConnectionPtr pSourceConn(__uuidof(Connection));
  //_RecordsetPtr prs(__uuidof(Recordset));
  //_CommandPtr m_pCmd(__uuidof(Command));
  //int dwMinSize = WideCharToMultiByte(CP_OEMCP,NULL,desc,-1,NULL,0,NULL,FALSE);
  //char lpszStr[MAX_PATH+1];
  //WideCharToMultiByte(CP_OEMCP,NULL,desc,-1,lpszStr,dwMinSize,NULL,FALSE);
  //int dwSourceMinSize = WideCharToMultiByte(CP_OEMCP,NULL,source,-1,NULL,0,NULL,FALSE);
  //char lpszSourceStr[MAX_PATH+1];
  //WideCharToMultiByte(CP_OEMCP,NULL,source,-1,lpszSourceStr,dwSourceMinSize,NULL,FALSE);
  CString tmpFrom(source);
  CString tmpTo(desc);   
  char buf[512];
  buf[0]='0';
  strcpy(buf,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");
  strcat(buf,tmpTo);  
  strcat(buf,";Persist Security Info=False");
  char bufSource[512];
  bufSource[0]='0';
  strcpy(bufSource,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");
  strcat(bufSource,tmpFrom); 
  strcat(bufSource,";Persist Security Info=False");
  pconn->ConnectionString=buf; 
  pSourceConn->ConnectionString=bufSource;
  pconn->Open("","","",adConnectUnspecified);
  prs=pconn->OpenSchema(adSchemaTables);
  m_pCmd->ActiveConnection = pconn;
  pSourceConn->Open("","","",adConnectUnspecified);
  while (!prs->EndOfFile)
  {
   //_bstr_t bstTableType=(_bstr_t)prs->Fields->GetItem("TABLE_TYPE")->Value;
   if (!strcmp((_bstr_t)prs->Fields->GetItem("TABLE_TYPE")->Value,"TABLE"))
   {
    try
    {
     _bstr_t bstTableName=(_bstr_t)prs->Fields->GetItem("TABLE_NAME")->Value;
     char buf[512];
     strcpy(buf,"INSERT   INTO  ");
     strcat(buf,bstTableName);
     strcat(buf," SELECT * From ");
     strcat(buf,bstTableName);
     strcat(buf," IN '");
     strcat(buf, tmpFrom);
     strcat(buf,"'");
     _bstr_t bstSql=buf;
     m_pCmd->CommandText=bstSql;
     m_pCmd->CommandType=adCmdText;
     m_pCmd->Execute(NULL,NULL,adCmdText);
    }
    catch (...)
    {
    }
    prs->MoveNext();
  }
   else
    prs->MoveNext();
  }
  prs->Close();
  pconn->Close();
  pSourceConn->Close(); 
  return TRUE;
 }
 catch (...)
 {
  return FALSE;
 }
}
相关文章
|
20天前
|
SQL 关系型数据库 索引
关系型数据库SQLserver插入数据
【7月更文挑战第28天】
30 4
|
4天前
|
SQL JavaScript 前端开发
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
|
2天前
|
存储 NoSQL 算法
使用图数据库进行复杂数据建模:探索数据关系的无限可能
【8月更文挑战第17天】图数据库以其高效的关系查询能力、直观的数据表示方式、灵活的数据模型和强大的可扩展性,在复杂数据建模和查询中展现出了巨大的潜力。随着大数据和人工智能技术的不断发展,图数据库的应用领域也将不断拓展和深化。对于需要处理复杂关系网络和数据关联性的场景来说,图数据库无疑是一个值得深入研究和应用的强大工具。
|
4天前
|
资源调度 关系型数据库 MySQL
【Flink on YARN + CDC 3.0】神操作!看完这篇教程,你也能成为数据流处理高手!从零开始,一步步教会你在Flink on YARN模式下如何配置Debezium CDC 3.0,让你的数据库变更数据瞬间飞起来!
【8月更文挑战第15天】随着Apache Flink的普及,企业广泛采用Flink on YARN部署流处理应用,高效利用集群资源。变更数据捕获(CDC)工具在现代数据栈中至关重要,能实时捕捉数据库变化并转发给下游系统处理。本文以Flink on YARN为例,介绍如何在Debezium CDC 3.0中配置MySQL连接器,实现数据流处理。首先确保YARN上已部署Flink集群,接着安装Debezium MySQL连接器并配置Kafka Connect。最后,创建Flink任务消费变更事件并提交任务到Flink集群。通过这些步骤,可以构建出从数据库变更到实时处理的无缝数据管道。
17 2
|
9天前
|
SQL 关系型数据库 MySQL
"告别蜗牛速度!解锁批量插入数据新姿势,15秒狂插35万条,数据库优化就该这么玩!"
【8月更文挑战第11天】在数据密集型应用中,高效的批量插入是性能优化的关键。传统单条记录插入方式在网络开销、数据库I/O及事务处理上存在明显瓶颈。批量插入则通过减少网络请求次数和数据库I/O操作,显著提升效率。以Python+pymysql为例,通过`executemany`方法,可实现在15秒内将35万条数据快速入库,相较于传统方法,性能提升显著,是处理大规模数据的理想选择。
26 5
|
5天前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
5天前
|
JavaScript 前端开发 数据处理
在vue中的form表单中下拉框中的数据来自数据库查询到的数据
这篇文章介绍了如何在Vue框架的表单中将下拉框的数据通过后端接口从数据库动态查询并加载,包括前端HTML代码、JavaScript数据处理、后端接口实现以及表单提交的完整流程。
在vue中的form表单中下拉框中的数据来自数据库查询到的数据
|
6天前
|
SQL 前端开发 数据库
逻辑删除数据库中的数据。
这篇文章介绍了逻辑删除和物理删除的概念与区别,并详细演示了如何在数据库中实现逻辑删除,包括在表中添加一个表示删除状态的字段,并通过修改该字段的值来实现数据的逻辑删除,同时提供了相应的SQL语句、DAO层、Service层和Controller层的代码示例以及前端页面的展示。
逻辑删除数据库中的数据。
|
9天前
|
固态存储 关系型数据库 MySQL
"惊!20亿数据秒速入MySQL,揭秘数据库极速插入的黑科技,你不可不知的绝密技巧!"
【8月更文挑战第11天】面对20亿级数据量,高效插入MySQL成为挑战。本文探讨优化策略:合理设计数据库减少不必要的字段和索引;使用批量插入减少网络往返;优化硬件如SSD和内存及调整MySQL配置;并行处理加速插入;附Python示例代码实现分批导入。这些方法将有效提升大规模数据处理能力。
25 2
|
14天前
|
存储 NoSQL 分布式数据库
数据库革命来临:未来数据的超级英雄,新一代存储技术震撼登场!
【8月更文挑战第6天】随着信息技术的发展,数据成为核心资源。新一代数据库技术以高性能、高可扩展性和支持多种数据模型等特点,解决了传统系统处理大数据时的不足。主流技术包括NoSQL(如MongoDB)、NewSQL(如Google Spanner)和多模型数据库(如ArangoDB)。未来趋势将侧重更高性能、智能优化及强化数据安全,持续推动数据存储领域的创新与发展。
30 7