VC6.0在多线程中读写数据库会不会导致报错runtime error,该怎么处理

VC6.0在多线程中读写数据库会不会导致报错runtime error
我用VC6.0开发了一个程序,里面需要开两个线程对sqlserver数据库中的同一个表进行读、写和删除,程序运行一段时间后会弹出错误对话框Microsoft Visual C++ Runtime Library,提示Runtime Error!程序名 abnormal program termination
这个错误是不是同时操作同一个表导致的?怎么解决?

------解决方案--------------------
同一个表进行写和删除?应该要加个锁或者临界区来进行线程同步吧,还有就是,操作数据库,一般都用异常捕捉try..catch吧
------解决方案--------------------
如果是通过不同的COM对象访问,不需要,数据库自己会做并发保护。如果是同一个COM对象,这是不行的,因为COM对象不能跨套间使用,如果lz使用同一个connection做,他必须首先做marshal/unmarshal,然后也许要考虑并发控制问题。在我看来,他应该每次创建新对象访问数据库
探讨
同一个表进行写和删除?应该要加个锁或者临界区来进行线程同步吧,还有就是,操作数据库,一般都用异常捕捉try..catch吧

------解决方案--------------------
而且如果是“运行一段时间之后”才出错,应该和这个无关。lz只是在瞎猜,没有调试,很多问题是不可能有准确答案的

------解决方案--------------------
探讨

引用:
如果是通过不同的COM对象访问,不需要,数据库自己会做并发保护。如果是同一个COM对象,这是不行的,因为COM对象不能跨套间使用,如果lz使用同一个connection做,他必须首先做marshal/unmarshal,然后也许要考虑并发控制问题。在我看来,他应该每次创建新对象访问数据库

引用:
同一个表进行写……

------解决方案--------------------
可能数据集关闭了还在读,各种可能就很多了~
加try...catch...捕获一下异常吧~具体问题具体分析,需要精确定位才好查错~
try
{
//code
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}