HiView数据库操作



#include "StdAfx.h"
#include "OperatorData.h"
extern CString szVariable;
//////////////////////////////////// 类的成员函数 ////////////////////
//默认构造函数
CDatabase::CDatabase()
{
//设置数据源
m_DatabaseScore="";
//数据库备份转换
m_str = "";
//数据库备份路径
m_strPath = "";
//数据库的用户名
m_userName = "";
//数据库的密码
m_passWord = "";

}
//默认析构函数
CDatabase::~CDatabase()
{}
// 数据库接口
bool CDatabase::interFace(CString szPath)
{
/* cout<<"请输入数据库的用户名:";
char name[20];
cin>>name;
// strcpy(m_userName,name);
cout<<"请输入数据库的密码:";
char password[20];
cin>>password;*/
// strcpy(m_passWord,password);
//数据库的用户名
// szUserName = "";
//数据库的密码
// szPassWord = "";
//////////////////////////////////////////////////////
//数据库的用户名
m_userName = "sa";//"sa";
//数据库的密码
m_passWord = "";//"sa"; 
//数据库备份,恢复路径
m_strPath = szPath;
//////////////////////////////////////////////////////////////////////////////
return true;
}
// 配置函数
bool CDatabase::configurationInfomation()
{
CoInitialize(NULL);


// 设置数据库连接信息
int hr =-1;  
try  

//1 创建Connection对象   
hr = m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))   
{   
CString szSQL;


CString name = CString("sa");//数据库的用户名
CString pass = "sa"; //数据库的密码
CString Source="MICROSOF-120A44"/*szVariable*/;   //数据库的服务器名称
//初始化数据源
szSQL.Format("Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=master;Data Source=%s",pass,name,Source);
//连接数据库
m_pConnection->Open((_bstr_t)szSQL,"","",adModeUnknown);
}   
else 
{
AfxMessageBox("初始化 Connectiong 失败");
}
//2 创建Recordptr对象   
hr= m_pRecordSet.CreateInstance("ADODB.Recordset");
if(SUCCEEDED(hr))  ;else AfxMessageBox("初始化 ADODB.Recordset 失败");//cout<<"初始化 ADODB.Recordset 失败"<<endl;
//3 创建Command对象   
hr =m_pCommand.CreateInstance("ADODB.Command");
if(SUCCEEDED(hr))  ;else AfxMessageBox("初始化 ADODB.Command 失败");//cout<<"初始化 ADODB.Command 失败"<<endl;

}   
  catch(_com_error e)
{  
CString errormessage;  
errormessage.Format("连接数据库失败!错误信息:%s",e.ErrorMessage()); 
//errormessage.Format("连接数据库失败!错误信息:%s",e); 
AfxMessageBox(errormessage); 
return FALSE;



//信息配置成功
return true;
}
// 设置数据库备份
bool CDatabase::backupDatabase()
{
try
{
m_pCommand->ActiveConnection = m_pConnection;//建立连接
m_str.Format("backup database HiView to disk = %s with init",m_strPath);//语句赋值
m_pCommand->CommandText=_bstr_t(m_str);//
m_pRecordSet = m_pCommand->Execute(NULL,NULL,adCmdText);//执行语句
}
//捕获异常
catch(_com_error e)
{  
CString errormessage;  
errormessage.Format("备份数据库失败!错误信息:%s",e.ErrorMessage()); 
AfxMessageBox(errormessage);


return false;

// this->MessageBox("恭喜您,数据库备份成功!");
return true;
}
// 恢复数据库备份
bool CDatabase::restoreDatabase()
{
try
{
m_pCommand->ActiveConnection = m_pConnection;
m_str.Format("use master  restore database HiView from disk = %s with replace",m_strPath);//with recovery,replace
m_pCommand->CommandText=_bstr_t(m_str);


//执行数据库恢复
m_pRecordSet = m_pCommand->Execute(NULL,NULL,adCmdText);
//断开数据库
m_str.Format("USE master ALTER   DATABASE   HiView SET OFFLINE WITH ROLLBACK IMMEDIATE");//with recovery,replace
m_pCommand->CommandText=_bstr_t(m_str);
m_pRecordSet = m_pCommand->Execute(NULL,NULL,adCmdText);
//重新连接数据库
m_str.Format("USE master ALTER   DATABASE   HiView SET ONLINE WITH ROLLBACK IMMEDIATE");//with recovery,replace
m_pCommand->CommandText=_bstr_t(m_str);
m_pRecordSet = m_pCommand->Execute(NULL,NULL,adCmdText);
}
//捕获异常
catch(_com_error e)
{  
CString errormessage;  
errormessage.Format("数据库恢复失败!错误信息:%s",e.ErrorMessage()); 
AfxMessageBox(errormessage);
return false ;

//this->MessageBox("恭喜您,数据库还原成功!");
return true;
}
// 清空表
bool CDatabase::emptyTable(CString cstableName)
{
try
{
m_DataBase_Name = "HiView";
m_strPath = "'d:\\abc.bak'";
m_pCommand->ActiveConnection = m_pConnection;
CString m_str;
m_str.Format("use %s truncate table %s",m_DataBase_Name,cstableName);
m_pCommand->CommandText=_bstr_t(m_str);
m_pRecordSet = m_pCommand->Execute(NULL,NULL,adCmdText);
}
//捕获异常
catch(_com_error e)
{  
CString errormessage;  
errormessage.Format("清空表失败!/r/n错误信息:%s",e.ErrorMessage()); 
AfxMessageBox(errormessage);
return false;

//this->MessageBox("恭喜您,表清理成功!");
return true;
}
内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值