谁能帮我解释这段代码

horsemz 2008-11-12 09:52:34
CString sql;
if ( 1 == m_IsAddOrmodify) {
if (1 == m_ISRootOrArea) {
sql=" insert into TREE(NAME, PARENT, Record1, Record2, Record3) values('" +
m_AreaName + "','ROOT'" + ",'" + m_ip1 + "','" + m_ip2 + "','" + m_ip3 + "')";

// AfxMessageBox(sql);
}else if (2 == m_ISRootOrArea) {
sql.Format("insert into TREE(NAME, PARENT) values(\'%s\', \'%d\')", m_AreaName, m_Areaid);
}else
return;
try
{
_variant_t RecordsAffected;
theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
}
catch(_com_error e)///捕捉异常
{
CString temp;
temp.Format("添加区域出错:%s",e.ErrorMessage());
AfxMessageBox(temp);
}
}else if ( 2 == m_IsAddOrmodify) {

sql.Format("select * from TREE where ID=%d", m_Areaid);
_RecordsetPtr m_pRecordset;

try{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((_variant_t)sql, _variant_t((IDispatch*)theApp.m_pConnection, true),adOpenStatic,adLockOptimistic,adCmdText);

m_pRecordset->PutCollect("NAME", _variant_t(m_AreaName));

if (1 == m_ISRootOrArea) {
m_pRecordset->PutCollect("Record1", _variant_t(m_ip1));
m_pRecordset->PutCollect("Record2", _variant_t(m_ip2));
m_pRecordset->PutCollect("Record3", _variant_t(m_ip3));
}

m_pRecordset->Update();
m_pRecordset->Close();
}
catch (_com_error e) {
CString temp;
temp.Format("修改区域出错:%s",e.ErrorMessage());
AfxMessageBox(temp);
}

初接触数据库,帮我看看代码每句都什么意思,我要看懂这段要去看什么?ODBC?DAO?ADO? 还有这种写入数据库的方式是不是已经过时了?
...全文
50 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanjunwu 2008-11-12
  • 打赏
  • 举报
回复
insert into TREE(NAME, PARENT, Record1, Record2, Record3 插入数据sql。
theApp.m_pConnection->Execute 执行此sql语句。
如果2 == m_IsAddOrmodify
就去执行("select * from TREE where ID=%d)由m_pRecordset->Open((_variant_t)sql)去执行。
m_pRecordset->PutCollect("NAME", _variant_t(m_AreaName));
插入数据
更新数据库
关闭连接。

你这是在com中操作数据库的。
以前我也搞过。
大概就是这样 。有时间,给你好好分析下。
shakaqrj 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dirdirdir3 的回复:]
就是ADO,
大概意思是判断是否加入还是修改,加入就用Insert语句来加,如果修改就先读取原来的数据,修改部分再更新。

[/Quote]
en还有就是判断是否为根的,这点只有楼主自己知道了
dirdirdir3 2008-11-12
  • 打赏
  • 举报
回复
就是ADO,
大概意思是判断是否加入还是修改,加入就用Insert语句来加,如果修改就先读取原来的数据,修改部分再更新。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧