我有一个程序在一个线程中填充数据库。 我为所有查询使用一个连接。多数民众赞成,所以我将能够在交易中运行它们。
每一秒我都会得到一组必须输入SQL Server 2005 Express的新文件。
应用程序可以运行24到36个小时,然后突然在查询中获得“EAccessViolation”。
此查询至少执行了24 * 60 * 60次。
如果没有参数的查询也会发生这种情况,因为大多数查询(90%)都有参数,所以我并不感到害羞。它们是插入/更新或使用参数选择。
当这发生后,所有查询都获得相同的EAccessViolation,一段时间后我得到一个StackOverflow。
虽然代码是以sutch构造的,但是处理异常的方式以及下次代码运行时没有问题。
事实上,这种情况发生在varios查询中(并没有从以前的版本改变),唯一的变化是使用BCB Builder 2007中的dbGo代替我们使用Cpp Builder 6.0进行ADO。我认为它是Windows版MDAC(2.8)或CodeGear的de dbGo中的某种软件。事实上,在之前的版本(ADO BCB6.0)中,我们没有碰到它,而现在使用(dbGO和BCB2007)我们就是让它变得非常可疑。
我希望有些人有一些不错的想法,这可能是造成这一切的原因。
目前我无法在桌面上重现它。我仍然试图让它再现,这将无可非议地提供更多信息。
我愿意接受建议。
问候
jvdn。
答案 0 :(得分:0)
我怀疑司机 - 尝试使用不同的驱动程序来查看是否可以隔离问题。还尝试重写查询以使用不同的语法,也许你可以经常重新连接连接?