我在vba中有一个连接MySQL的代码。我的查询返回1M +记录并将其存储在记录集中。
sqlQuery = "SELECT * FROM tbl_name";
rst.Open strSql, mysqlConnection, adOpenStatic
起初,我只尝试了几条记录,但效果很好。但是,当我尝试1M +记录时,Is说对象是开放的。
我将如何解决这个问题?
答案 0 :(得分:0)
我无法发表评论 - 因此必须将此作为答案。听起来你没有在第一次使用后关闭你的记录集和连接 - 所以它被你再次打开它们的请求搞糊涂了。
你需要一个如下声明:
rst.close
mysqlConnection.close
在显示的行中运行查询后。
如果你还没有关闭,你可能想在下面写下这些,然后再将它们移开。
道歉,如果你已经尝试过这个 - 但这让我感到震惊 原因和我最初使用ODBC对象时遇到的问题
答案 1 :(得分:0)
我的第一个代码是这样的:
Call MySqlConnectionOpen
sqlQuery = "SELECT * FROM tbl_name";
rst.Open sqlQuery, mysqlConnection, adOpenStatic
...copy records
rst.Close
Set rst=Nothing
Call MySqlConnectionClose
然后我将其改为:
Call MySqlConnectionOpen
sqlQuery = "SELECT * FROM tbl_name";
Set rst = MySqlConn.Execute(sqlQuery)
...copy records
rst.Close
Set rst=Nothing
call mysqlConnectionClose
幸运的是它有效。