在VB6中重用连接对象

时间:2011-11-27 18:41:21

标签: sql vb6

我有一个函数,它循环超过一百万条记录并连接到三个不同的数据库。语言是VB6。以下是涉及的步骤:

public function update(ByVal recordID As Integer) 'RecordID refers to a record in an SQL database

'Connect to an Oracle database
'Do a select and update the current record (recordID passed to function) if necessary
'Close connection

'Connect to an SQL database(1)
'Do a select and update the current record (recordID passed to function) if necessary
'Close connection

'Connect to an SQL database(2)
'Do a select and update the current record (recordID passed to function) if necessary
'Close connection

End Function

这个函数被多次调用,我认为在很多迭代中打开和关闭连接是浪费的(有时不需要连接到三个数据库中的一个或多个)。有一个更好的方法吗?我相信有两种方式:

  1. 连接池(尽管我所做的研究表明,如果您使用不同的提供程序,例如ODBC for Oracle connections和OLEDB for Microsoft SQL Server连接,建议不要这样做。
  2. 连接到每个数据库一次,然后通过引用传递连接对象以进行每次迭代的更新。有问题的工作需要一天时间才能完成。
  3. 在类中为每个连接创建一个实例变量。这三个变量可以在开始时打开,也可以在结束时关闭。
  4. 最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

解决方案2和3在功能上是等效的,唯一的区别在于代码的组织。通常我更喜欢#3。但是在重用连接对象时要小心异常。一旦异常上升,我不确定该对象的状态是否得到保证。所以至少要考虑到这一点并在那种情况下“重新开放”。 另一点是多线程,但我想这将是单线程批处理工作吗?