以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之三 导出数据库数据为xml格式自定义
来源:互联网 发布:刘轩豪网络 诈骗 编辑:程序博客网 时间:2024/05/17 22:22
void CXMLwithSQLDlg::OnBnClickedCoutput()
{
long ColCounti;
FieldsPtr fields;
BSTR bstrColName[100];
CString m_nd[100];
m_list.DeleteAllItems();
CFileException e;
CString strFileName;
_RecordsetPtr pRs;
pRs = m_ado.GetRecordset();
try
{
//pRs = m_ado.GetRecordset();
MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr xmlRoot;
//定义文档头对象
MSXML2::IXMLDOMProcessingInstructionPtr head;
HRESULT hr = pDoc.CreateInstance(_uuidof(MSXML2::DOMDocument30));
if(!SUCCEEDED(hr))
{
MessageBox("Error");
return;
}
//创建文档头
head = pDoc->createProcessingInstruction(_bstr_t(_T("xml")), \
_bstr_t(_T("version='1.0' encoding='UTF-8'")));
pDoc->appendChild(head);
//创建根节点
pDoc->raw_createElement((_bstr_t)(char*) "Log", &xmlRoot);
xmlRoot->Puttext("\n");
/* 创建属性和属性值*/
xmlRoot->setAttribute("Pri", "16");
xmlRoot->setAttribute("tablename", (char*)(_bstr_t) tname);
xmlRoot->setAttribute("Remark", "审计日志");
//把xmlRoot节点放到pDoc下
pDoc->raw_appendChild(xmlRoot, NULL);
MSXML2::IXMLDOMElementPtr childNode;
HRESULT h = pRs->get_Fields(&fields);
if(SUCCEEDED(h))
{
fields->get_Count(&ColCounti);
}
while(!pRs->adoEOF)
{
for(long i = 0;i < ColCounti;i++)
{
fields->Item[i]->get_Name(&bstrColName[i]);
if(pRs->GetCollect(bstrColName[i]).vt != VT_NULL)
{
m_nd[i] = (char*)(_bstr_t) pRs->GetCollect(bstrColName[i]);
}
else
{
m_nd[i] = "";
}
}
MSXML2::IXMLDOMElementPtr childNode1;
//创建节点
pDoc->raw_createElement((_bstr_t)(char*)"LogID", &childNode1);
//给创建的节点赋值
childNode1->Puttext((char*)(_bstr_t) m_nd[0]);
//创建节点属性和属性值
childNode1->setAttribute("Remark", "记录ID");
//把创建的新节点放根节点xmlRoot下
xmlRoot->appendChild(childNode1);
/*子节点中创建子节点 */
MSXML2::IXMLDOMElementPtr childNode2;
pDoc->raw_createElement((_bstr_t)(char*) "Subject", &childNode2);
childNode2->setAttribute("Remark", "事件主题");
MSXML2::IXMLDOMElementPtr childNode3;
pDoc->raw_createElement((_bstr_t)(char*) "Node", &childNode3);
childNode3->Puttext((char*)(_bstr_t) m_nd[1]);
childNode3->setAttribute("Remark", "主题IP地址");
childNode2->appendChild(childNode3);
MSXML2::IXMLDOMElementPtr childNode4;
pDoc->raw_createElement((_bstr_t)(char*) "NodeID", &childNode4);
childNode4->Puttext((char*)(_bstr_t) m_nd[2]);
childNode4->setAttribute("Remark", "主题ID");
childNode2->appendChild(childNode4);
MSXML2::IXMLDOMElementPtr childNode5;
pDoc->raw_createElement((_bstr_t)(char*) "ComputerName", &childNode5);
childNode5->Puttext((char*)(_bstr_t) m_nd[3]);
childNode5->setAttribute("Remark", "计算机名称");
childNode2->appendChild(childNode5);
MSXML2::IXMLDOMElementPtr childNode6;
pDoc->raw_createElement((_bstr_t)(char*) "UsreName", &childNode6);
childNode6->Puttext((char*)(_bstr_t) m_nd[4]);
childNode6->setAttribute("Remark", "用户名或责任人");
childNode2->appendChild(childNode6);
MSXML2::IXMLDOMElementPtr childNode7;
pDoc->raw_createElement((_bstr_t)(char*) "Deparment", &childNode7);
childNode7->Puttext((char*)(_bstr_t) m_nd[5]);
childNode7->setAttribute("Remark", "部门");
childNode2->appendChild(childNode7);
MSXML2::IXMLDOMElementPtr childNode8;
pDoc->raw_createElement((_bstr_t)(char*) "Program", &childNode8);
childNode8->Puttext((char*)(_bstr_t) m_nd[6]);
childNode8->setAttribute("Remark", "部件");
childNode2->appendChild(childNode8);
MSXML2::IXMLDOMElementPtr childNode9;
pDoc->raw_createElement((_bstr_t)(char*) "Facility", &childNode9);
childNode9->Puttext((char*)(_bstr_t) m_nd[7]);
childNode9->setAttribute("Remark", "类型");
childNode2->appendChild(childNode9);
xmlRoot->appendChild(childNode2);
////////////////////////
MSXML2::IXMLDOMElementPtr childNode10;
pDoc->raw_createElement((_bstr_t)(char*) "Object", &childNode10);
childNode10->setAttribute("Remark", "事件客体");
MSXML2::IXMLDOMElementPtr childNode11;
pDoc->raw_createElement((_bstr_t)(char*) "ObjectName", &childNode11);
childNode11->Puttext((char*)(_bstr_t) m_nd[8]);
childNode11->setAttribute("Remark", "文件名");
childNode10->appendChild(childNode11);
xmlRoot->appendChild(childNode10);
//////////////////////////////
MSXML2::IXMLDOMElementPtr childNode12;
pDoc->raw_createElement((_bstr_t)(char*) "Details", &childNode12);
childNode12->Puttext((char*)(_bstr_t) m_nd[9]);
childNode12->setAttribute("Remark", "事件内容");
xmlRoot->appendChild(childNode12);
MSXML2::IXMLDOMElementPtr childNode13;
pDoc->raw_createElement((_bstr_t)(char*) "Result", &childNode13);
childNode13->Puttext((char*)(_bstr_t) m_nd[10]);
childNode13->setAttribute("Remark", "事件结果");
xmlRoot->appendChild(childNode13);
MSXML2::IXMLDOMElementPtr childNode14;
pDoc->raw_createElement((_bstr_t)(char*) "EntryStamp", &childNode14);
childNode14->Puttext((char*)(_bstr_t) m_nd[11]);
childNode14->setAttribute("Remark", "发生时间");
xmlRoot->appendChild(childNode14);
MSXML2::IXMLDOMElementPtr childNode15;
pDoc->raw_createElement((_bstr_t)(char*) "Level", &childNode15);
childNode15->Puttext((char*)(_bstr_t) m_nd[12]);
childNode15->setAttribute("Remark", "事件风险级别");
xmlRoot->appendChild(childNode15);
MSXML2::IXMLDOMElementPtr childNode16;
pDoc->raw_createElement((_bstr_t)(char*) "Type", &childNode16);
childNode16->Puttext((char*)(_bstr_t) m_nd[13]);
childNode16->setAttribute("Remark", "事件种类");
xmlRoot->appendChild(childNode16);
MSXML2::IXMLDOMElementPtr childNode17;
pDoc->raw_createElement((_bstr_t)(char*) "ProductType", &childNode17);
childNode17->Puttext((char*)(_bstr_t) m_nd[14]);
childNode17->setAttribute("Remark", "产品类别");
xmlRoot->appendChild(childNode17);
MSXML2::IXMLDOMElementPtr childNode18;
pDoc->raw_createElement((_bstr_t)(char*) "BehaviourType", &childNode18);
childNode18->Puttext((char*)(_bstr_t) m_nd[15]);
childNode18->setAttribute("Remark", "行为类别");
xmlRoot->appendChild(childNode18);
MSXML2::IXMLDOMElementPtr childNode19;
pDoc->raw_createElement((_bstr_t)(char*) "Reservation", &childNode19);
childNode19->Puttext((char*)(_bstr_t) m_nd[16]);
childNode19->setAttribute("Remark", "保留项");
xmlRoot->appendChild(childNode19);
pRs->MoveNext();
}
//导出xml格式路径选择字符串
CFileDialog FileLog(FALSE,"xml",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"xml (*.xml)|*.xml|所有文件(*.*)|*.*||",NULL);
if(FileLog.DoModal() == IDOK)
{
strFileName = FileLog.GetFileName();
}
//导出保存
pDoc->save((char*)(_bstr_t)strFileName);
AfxMessageBox("导出成功");
xmlRoot.Release();
pDoc.Release();
}
catch (_com_error e)
{
e.Description();
}
}
{
long ColCounti;
FieldsPtr fields;
BSTR bstrColName[100];
CString m_nd[100];
m_list.DeleteAllItems();
CFileException e;
CString strFileName;
_RecordsetPtr pRs;
pRs = m_ado.GetRecordset();
try
{
//pRs = m_ado.GetRecordset();
MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr xmlRoot;
//定义文档头对象
MSXML2::IXMLDOMProcessingInstructionPtr head;
HRESULT hr = pDoc.CreateInstance(_uuidof(MSXML2::DOMDocument30));
if(!SUCCEEDED(hr))
{
MessageBox("Error");
return;
}
//创建文档头
head = pDoc->createProcessingInstruction(_bstr_t(_T("xml")), \
_bstr_t(_T("version='1.0' encoding='UTF-8'")));
pDoc->appendChild(head);
//创建根节点
pDoc->raw_createElement((_bstr_t)(char*) "Log", &xmlRoot);
xmlRoot->Puttext("\n");
/* 创建属性和属性值*/
xmlRoot->setAttribute("Pri", "16");
xmlRoot->setAttribute("tablename", (char*)(_bstr_t) tname);
xmlRoot->setAttribute("Remark", "审计日志");
//把xmlRoot节点放到pDoc下
pDoc->raw_appendChild(xmlRoot, NULL);
MSXML2::IXMLDOMElementPtr childNode;
HRESULT h = pRs->get_Fields(&fields);
if(SUCCEEDED(h))
{
fields->get_Count(&ColCounti);
}
while(!pRs->adoEOF)
{
for(long i = 0;i < ColCounti;i++)
{
fields->Item[i]->get_Name(&bstrColName[i]);
if(pRs->GetCollect(bstrColName[i]).vt != VT_NULL)
{
m_nd[i] = (char*)(_bstr_t) pRs->GetCollect(bstrColName[i]);
}
else
{
m_nd[i] = "";
}
}
MSXML2::IXMLDOMElementPtr childNode1;
//创建节点
pDoc->raw_createElement((_bstr_t)(char*)"LogID", &childNode1);
//给创建的节点赋值
childNode1->Puttext((char*)(_bstr_t) m_nd[0]);
//创建节点属性和属性值
childNode1->setAttribute("Remark", "记录ID");
//把创建的新节点放根节点xmlRoot下
xmlRoot->appendChild(childNode1);
/*子节点中创建子节点 */
MSXML2::IXMLDOMElementPtr childNode2;
pDoc->raw_createElement((_bstr_t)(char*) "Subject", &childNode2);
childNode2->setAttribute("Remark", "事件主题");
MSXML2::IXMLDOMElementPtr childNode3;
pDoc->raw_createElement((_bstr_t)(char*) "Node", &childNode3);
childNode3->Puttext((char*)(_bstr_t) m_nd[1]);
childNode3->setAttribute("Remark", "主题IP地址");
childNode2->appendChild(childNode3);
MSXML2::IXMLDOMElementPtr childNode4;
pDoc->raw_createElement((_bstr_t)(char*) "NodeID", &childNode4);
childNode4->Puttext((char*)(_bstr_t) m_nd[2]);
childNode4->setAttribute("Remark", "主题ID");
childNode2->appendChild(childNode4);
MSXML2::IXMLDOMElementPtr childNode5;
pDoc->raw_createElement((_bstr_t)(char*) "ComputerName", &childNode5);
childNode5->Puttext((char*)(_bstr_t) m_nd[3]);
childNode5->setAttribute("Remark", "计算机名称");
childNode2->appendChild(childNode5);
MSXML2::IXMLDOMElementPtr childNode6;
pDoc->raw_createElement((_bstr_t)(char*) "UsreName", &childNode6);
childNode6->Puttext((char*)(_bstr_t) m_nd[4]);
childNode6->setAttribute("Remark", "用户名或责任人");
childNode2->appendChild(childNode6);
MSXML2::IXMLDOMElementPtr childNode7;
pDoc->raw_createElement((_bstr_t)(char*) "Deparment", &childNode7);
childNode7->Puttext((char*)(_bstr_t) m_nd[5]);
childNode7->setAttribute("Remark", "部门");
childNode2->appendChild(childNode7);
MSXML2::IXMLDOMElementPtr childNode8;
pDoc->raw_createElement((_bstr_t)(char*) "Program", &childNode8);
childNode8->Puttext((char*)(_bstr_t) m_nd[6]);
childNode8->setAttribute("Remark", "部件");
childNode2->appendChild(childNode8);
MSXML2::IXMLDOMElementPtr childNode9;
pDoc->raw_createElement((_bstr_t)(char*) "Facility", &childNode9);
childNode9->Puttext((char*)(_bstr_t) m_nd[7]);
childNode9->setAttribute("Remark", "类型");
childNode2->appendChild(childNode9);
xmlRoot->appendChild(childNode2);
////////////////////////
MSXML2::IXMLDOMElementPtr childNode10;
pDoc->raw_createElement((_bstr_t)(char*) "Object", &childNode10);
childNode10->setAttribute("Remark", "事件客体");
MSXML2::IXMLDOMElementPtr childNode11;
pDoc->raw_createElement((_bstr_t)(char*) "ObjectName", &childNode11);
childNode11->Puttext((char*)(_bstr_t) m_nd[8]);
childNode11->setAttribute("Remark", "文件名");
childNode10->appendChild(childNode11);
xmlRoot->appendChild(childNode10);
//////////////////////////////
MSXML2::IXMLDOMElementPtr childNode12;
pDoc->raw_createElement((_bstr_t)(char*) "Details", &childNode12);
childNode12->Puttext((char*)(_bstr_t) m_nd[9]);
childNode12->setAttribute("Remark", "事件内容");
xmlRoot->appendChild(childNode12);
MSXML2::IXMLDOMElementPtr childNode13;
pDoc->raw_createElement((_bstr_t)(char*) "Result", &childNode13);
childNode13->Puttext((char*)(_bstr_t) m_nd[10]);
childNode13->setAttribute("Remark", "事件结果");
xmlRoot->appendChild(childNode13);
MSXML2::IXMLDOMElementPtr childNode14;
pDoc->raw_createElement((_bstr_t)(char*) "EntryStamp", &childNode14);
childNode14->Puttext((char*)(_bstr_t) m_nd[11]);
childNode14->setAttribute("Remark", "发生时间");
xmlRoot->appendChild(childNode14);
MSXML2::IXMLDOMElementPtr childNode15;
pDoc->raw_createElement((_bstr_t)(char*) "Level", &childNode15);
childNode15->Puttext((char*)(_bstr_t) m_nd[12]);
childNode15->setAttribute("Remark", "事件风险级别");
xmlRoot->appendChild(childNode15);
MSXML2::IXMLDOMElementPtr childNode16;
pDoc->raw_createElement((_bstr_t)(char*) "Type", &childNode16);
childNode16->Puttext((char*)(_bstr_t) m_nd[13]);
childNode16->setAttribute("Remark", "事件种类");
xmlRoot->appendChild(childNode16);
MSXML2::IXMLDOMElementPtr childNode17;
pDoc->raw_createElement((_bstr_t)(char*) "ProductType", &childNode17);
childNode17->Puttext((char*)(_bstr_t) m_nd[14]);
childNode17->setAttribute("Remark", "产品类别");
xmlRoot->appendChild(childNode17);
MSXML2::IXMLDOMElementPtr childNode18;
pDoc->raw_createElement((_bstr_t)(char*) "BehaviourType", &childNode18);
childNode18->Puttext((char*)(_bstr_t) m_nd[15]);
childNode18->setAttribute("Remark", "行为类别");
xmlRoot->appendChild(childNode18);
MSXML2::IXMLDOMElementPtr childNode19;
pDoc->raw_createElement((_bstr_t)(char*) "Reservation", &childNode19);
childNode19->Puttext((char*)(_bstr_t) m_nd[16]);
childNode19->setAttribute("Remark", "保留项");
xmlRoot->appendChild(childNode19);
pRs->MoveNext();
}
//导出xml格式路径选择字符串
CFileDialog FileLog(FALSE,"xml",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"xml (*.xml)|*.xml|所有文件(*.*)|*.*||",NULL);
if(FileLog.DoModal() == IDOK)
{
strFileName = FileLog.GetFileName();
}
//导出保存
pDoc->save((char*)(_bstr_t)strFileName);
AfxMessageBox("导出成功");
xmlRoot.Release();
pDoc.Release();
}
catch (_com_error e)
{
e.Description();
}
}
- 以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之三 导出数据库数据为xml格式自定义
- 以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之四 读取xml格式文档到界面
- 以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之二 读取数据数据到界面
- 题阅读评论评论权限操作 以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之五 导入xml格式文档数据到数据库
- 以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之一连接数据库
- SSIS_数据库表数据导出为XML格式
- 用数据库获取XML格式的数据
- 将数据库数据转换为xml格式
- swift解析xml格式的数据 对xml的节点和value的操作
- .net从将数据库中的数据导出到Excel格式的xml
- 一段换汤不换药的代码-Excel和数据库中数据匹配并根据条件刷新数据相关数据的代码
- 读取数据库字段值为xml格式的数据都页面
- php将数据库中的数据转换成xml格式的
- XML的主要相关技术
- dom4j将数据库中的数据转化为xml格式
- 一段导出数据库的代码
- 导出xml格式的文件
- Excel2010导出xml格式的
- Smarty
- 数据仓库和数据挖掘方面比较好的书籍
- struts2框架中,radio类型的input标签,如何传值?
- 你打算什么时候从重复中惊醒
- vc++获取系统时间
- 以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之三 导出数据库数据为xml格式自定义
- 全局变量和文件的读取
- 亲,淘宝数字产品业务部诚邀您加入
- 以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之四 读取xml格式文档到界面
- struts2 ognl 原理
- 软件项目管理手段
- 微软等数据结构+算法面试100题(21)--二叉树打印到叶子节点的所有路径
- 110 - Meta-Loopless Sorts
- 题阅读评论评论权限操作 以前实习期间写的一段mfc编程,对数据库和xml格式文档的相关操作 主要相关代码 之五 导入xml格式文档数据到数据库