我在一个表,想如果特殊字段有则只需更新记录,如果没有则插入记录,请问如何用SQL语句实现
我的想法是
if (false==m_DBCnt->Execute(“update....", NULL, adCmdText))
{
m_DBCnt->Execute(“insert into ....", NULL, adCmdText)
}我是这样想的,可是我不知道怎么才能知道第一句有没有正确的执行?
请高人帮忙。
我的想法是
if (false==m_DBCnt->Execute(“update....", NULL, adCmdText))
{
m_DBCnt->Execute(“insert into ....", NULL, adCmdText)
}我是这样想的,可是我不知道怎么才能知道第一句有没有正确的执行?
请高人帮忙。
解决方案 »
- windows api能否从内存指针得到句柄?
- 怎样在VC2008中进行控件的变量关联?
- ========今天是我在CSDN过的第一个生日=======
- COM连接点接收器问题 _ATL_FUNC_INFO 如何写 对于[out,retval] 参数
- 对话框上的EDIT控件如何才能输入超过32K大的字符串
- 我在1996年用QB编写了一个中型DOS软件mmsi.exe,现在有那种软件可以将其逆向工程,还原出设计框架。
- 关于VC++网络编程学习书的问题,各位老大进来看看!
- 在ISPro中做的安装程序,如何开始就显示别的窗体?
- 用vc++写com 传递数组(safearray)的问题
- 在vc里怎样定义一个类
- 如何用mfc设计成网上相册的客户端?
- 刚开始学习vc++,请大家推荐书吧。
一个笨办法是:先用 SELECT 语句查一下,查到了就更新,没有就插入。
{
m_DBCnt->Execute(“update....", NULL, adCmdText))
}
catch(_comm_error e)
{
if(e.wcode == ??) //忘了是多少了,试试就知道了
{
m_DBCnt->Execute(“insert into ....", NULL, adCmdText)
}
}
{
m_DBCnt->Execute(“insert into ....", NULL, adCmdText)
}
_variant_t vtEffect;
m_DBCnt->Execute("update....",&vtEffect,adCmdText);
if (vtEffect.lval > 0)
m_DBCnt->Execute("insert into...",NULL,adCmdText);
try
{
m_DBCnt->Execute("insert into...",NULL,adCmdText);
}
catch(...)
{
m_DBCnt->Execute("update....",NULL,adCmdText);
}不过感觉不是很严谨..
方式一:
try
{
m_DBCnt->Execute("insert into...",NULL,adCmdText);
}
catch(...)
{
m_DBCnt->Execute("update....",NULL,adCmdText);
}
这种方式是不行的。
方式二:
if (NULL==m_DBCnt->Execute(“update....", NULL, adCmdText))
{
m_DBCnt->Execute(“insert into ....", NULL, adCmdText)
}
方式三:
_variant_t vtEffect;
m_DBCnt->Execute("update....",&vtEffect,adCmdText);
if (vtEffect.lval > 0)
m_DBCnt->Execute("insert into...",NULL,adCmdText);
这种方法把vtEffect.lval > 0改为vtEffect.lval ==0
就可以了,谢谢各位。