我有一个在单个线程中填充数据库的程序。I 对所有查询使用一个连接。这就是我将能够在事务中运行它们。
每一秒我都会得到一组新的文件,这些文件必须输入到 SQL Server 2005 Express 中。
该应用程序可以运行 24 到 36 小时,然后在查询中突然获得“EAccessViolation”。
该查询将执行至少 24 * 60 * 60 次。
我不确定它是否也发生在没有参数的查询中,因为大多数查询(90%)都有参数。它们是插入/更新或带有参数的选择。
当发生这种情况时,之后的所有查询都会得到相同的 EAccessViolation,过了一会儿我得到了 StackOverflow。
虽然代码是以这样一种方式构造的,即异常将被处理,并且下次代码应该运行没有问题。
事实上,这发生在各种查询中(与以前的版本相比没有改变),唯一的改变是我们没有使用 BCB Builder 2007 中的 dbGo,而是使用 Cpp Builder 6.0 进行了 ADO。
我认为它在 Windows 版本的 MDAC(2.8) 或 CodeGear 的 de dbGo 中有一些软件。事实上,在以前的版本(ADO BCB6.0)中我们没有遇到它,而现在(dbGO 和 BCB2007)我们有,这使得这部分非常可疑。
我希望有些人有一些不错的想法,这可能是这一切的原因。
目前我无法在桌面上重现它。我仍在尝试复制它,这将明确提供更多信息。
我愿意接受建议。
问候
合资公司。