我正在开发一个导入应用程序,以从 Informix 数据库中检索大约 100 万条记录,并将其批量插入 MSSQL 数据库。查询很简单:SELECT * FROM <view_name>
. 为了从 Informix 获取数据,我使用 ODBC 读取器,在执行命令后,我将它直接传递给 SQLBulkInsert。
问题就在这里:有时会检索到所有数据。但是,有时读者只能检索到记录 #181 — 发生此问题时,它始终取决于该记录。所以我做了一个SELECT SKIP 180 FIRST 2 * FROM <view_name>
检查这些记录的数据没有损坏或任何东西,但似乎数据是好的。我还延长了连接超时时间(即使打开连接后这没有直接影响)。这是一个非常烦人的问题,因为它只是偶尔发生,而且总是 #182 记录会停止整个检索过程。
有没有其他人有任何类似的问题?或者有人对可能导致这种情况的原因有任何想法吗?
这是我用来通过 ODBC 检索数据的大纲代码:
OdbcCommand cmd = _conn.CreateCommand();
cmd.CommandText = //sql statement;
OdbcDataReader reader = cmd.ExecuteReader();
return reader;