我用VC+ADO+ACCESS2000数据库,我做一个更新语句,大概意思是这样的,我更新库存表,把以前库存中没有的数据添加上,如果有的话,则修改现有的数据,用一条语句完成。我用的是UPDATE KC,RKTMP SET KC。SL=KC。SL+RKTMP。SL,KC。JJ=RKTMP。JJ。这一条是用来更新的,INSERT INTO KC (ID,MC,JJ,SL,PH) SELECT ID,MC,JJ,SL,PH FROM RKTMP WHERE (SELECT ID NOT IN(SELECT SELECT ID FROM KC)。这一条是更新语句。
各位大侠,帮忙给小弟看一下。
多谢。
各位大侠,帮忙给小弟看一下。
多谢。
解决方案 »
- 如何把RGB数据显示出来并可以自由缩放
- 怎么用多线程接收TCP/IP协议数据
- 如何移动键盘输入光标
- 着急!为什么有些函数不能在线程里面调用,用时间调用才不出错误呢!
- DirectX 问题!主 surface和back surface 无法完成Flip()
- 在view类中如何调用CMainFrame类中的变量啊?谢谢,在线等
- 在google都搜索不到的问题:控件置前置后
- 请教如何结束一个程序
- 依然是链接的问题:...(
- 看过《essential c++(中文版)》(华中科技大学出版社)的朋友请帮忙?(之二)
- !暴难,各位大哥一定要帮个忙,CRcordSet::AddNew()究竟事将新的记录加在哪儿
- 关于删除注册表中的键的问题???
_ConnectionPtr m_ADOConnection;
::CoInitialize(0);
HRESULT hr=m_ADOConnection.CreateInstance(__uuidof(Connection));
if(hr!=S_OK) ::MessageBox(0,"无法打开数据库!","Error",MB_OK+MB_ICONERROR+MB_TOPMOST);
m_ADOConnection->ConnectionString="DSN=SmartPhone;UID=sa;PWD=sa";
m_ADOConnection->ConnectionTimeout=30;
try{
hr=m_ADOConnection->Open("","","",adConnectUnspecified);
}
catch(...)
{
::MessageBox(0,"无法打开数据库!","错误",MB_OK+MB_ICONERROR+MB_TOPMOST);
m_bResultOfDatabase=FALSE;
}
if(hr!=S_OK){
::MessageBox(0,"无法打开数据库!","Error",MB_OK+MB_ICONERROR+MB_TOPMOST);
m_bResultOfDatabase=FALSE;
}
::CoUninitialize();void CBkDialog::OnBtnupdate()
{
::CoInitialize(0);
_RecordsetPtr m_ADORecordSet;
_CommandPtr m_ADOCommand("ADODB.Command");
m_ADOCommand->putref_ActiveConnection(m_ADOConnection);
m_ADOCommand->put_CommandType(adCmdText);
_variant_t vSQL;
CString m_strSQL("");
m_strSQL.Format("Update yourtable set field1=value1,.... where condition",.....);
vSQL=(LPCTSTR)m_strSQL;
m_ADOCommand->put_CommandText(vSQL.bstrVal);
m_ADORecordSet=m_ADOCommand->Execute(0,0,adCmdText);
if(m_ADORecordSet==0){
::MessageBox(0,"Failed to update!","Error",MB_OK+MB_ICONERROR);
}
else{
......Do ....
}
......
....
::CoUninitialize();
}
是不是这样呢
INSERT INTO KC (KC.ID,KC.MC,KC.JJ,KC.SL,KC.PH) SELECT RKTMP.ID,RKTMP.MC,RKTMP.JJ,RKTMP.SL,RKTMP.PH FROM RKTMP WHERE RKTMP.ID NOT IN(SELECT KC.ID FROM KC)