D
DTHL
Unregistered / Unconfirmed
GUEST, unregistred user!
我用TQuery+TUpdateSQL来作缓存更新,环境是C++Builder4(14.4)+MsSQL7
在TQuery的AfterPost和AfterDelete事件中用以下程序段作更新
DM1->DbTbbus->StartTransaction();
try{
QryComm->ApplyUpdates();
DM1->DbTbbus->Commit();
}catch(...){
QryComm->CancelUpdates();
DM1->DbTbbus->Rollback();
Application->MessageBox("错误,取消所作修改!","警告",MB_OK + MB_ICONWARNING);
}
QryComm->CommitUpdates();
可是如果我所Insert,或Update数据如果Primary Key有冲突或其它数据库不完整错误的话,
try{}catch(...){}好象不工作。
总是先出现Mssql的错误提示信息,确认后再出现我用MssageBox作的提示,
例如:
Key violation.
Violation of PARMARY KEY constraint 'PK_mrcc'. Cannot insert duplicate
Key in object 'mrcc'.
然后再出现
'错误,取消所作修改!' 的提示信息要求确认
注明:我没有在IDE里面Run这个程序
这个问题我整了有一个星期了还不成,
真的很急,就要出货了,而且我大部份更新都是用这个方法来更新的,千万不要说没有办法!
有请各位大虾了!!
在TQuery的AfterPost和AfterDelete事件中用以下程序段作更新
DM1->DbTbbus->StartTransaction();
try{
QryComm->ApplyUpdates();
DM1->DbTbbus->Commit();
}catch(...){
QryComm->CancelUpdates();
DM1->DbTbbus->Rollback();
Application->MessageBox("错误,取消所作修改!","警告",MB_OK + MB_ICONWARNING);
}
QryComm->CommitUpdates();
可是如果我所Insert,或Update数据如果Primary Key有冲突或其它数据库不完整错误的话,
try{}catch(...){}好象不工作。
总是先出现Mssql的错误提示信息,确认后再出现我用MssageBox作的提示,
例如:
Key violation.
Violation of PARMARY KEY constraint 'PK_mrcc'. Cannot insert duplicate
Key in object 'mrcc'.
然后再出现
'错误,取消所作修改!' 的提示信息要求确认
注明:我没有在IDE里面Run这个程序
这个问题我整了有一个星期了还不成,
真的很急,就要出货了,而且我大部份更新都是用这个方法来更新的,千万不要说没有办法!
有请各位大虾了!!