VB6从记录集插入到表中

VB6从记录集插入到表中,vb6,Vb6,有一个视图和一个表 两者的列完全相同 但它们位于不同的服务器中 我想做的事情如下 cn1.ConnectionString = "Server1" cn2.ConnectionString = "Server2" sql = "SELECT * FROM VIEW" Set rs.1ActiveConnection = cn1 rs1.Open sql, cn1 sql = "INSERT INTO table SELECT * FROM view" cn2.Execute (sql) 我可以

有一个视图和一个表

两者的列完全相同

但它们位于不同的服务器中

我想做的事情如下

cn1.ConnectionString = "Server1"
cn2.ConnectionString = "Server2"
sql = "SELECT * FROM VIEW"
Set rs.1ActiveConnection = cn1
rs1.Open sql, cn1
sql = "INSERT INTO table SELECT * FROM view"
cn2.Execute (sql)
我可以通过cn1访问视图,但通过cn2访问表

所以这是不可能的

我想知道怎样才能做到

表和视图完全相同

我搜索了很多,但没有适合我的好例子

我认为有两种方法

将记录集插入表或将每个字段插入另一个字段


简单的示例将非常有用,谢谢

这不起作用,因为即使您将记录从第一台服务器拉入记录集中,您也试图直接从视图插入,而不是从记录集中插入

您可以循环浏览记录集,并将记录逐个插入到另一个数据库中,但这需要大量往返,而且速度非常慢。更好的方法是使用
UpdateBatch
一次性从记录集中插入。基本思路如下:

cn1.ConnectionString = "Server1"
cn2.ConnectionString = "Server2"
sql = "SELECT * FROM VIEW"
Set rs.ActiveConnection = cn1

Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient 'you need a client-side recordset

rs1.Open sql, cn1, adLockBatchOptimistic 'you need to set the locktype to this

Set rs.ActiveConnection = cn2 'now you're connecting your recordset to the other server
rs.UpdateBatch                'and updating the database all in one batch

这应该让您开始。

这并不是“从记录集插入到表中”。它只是运行一个insert查询。看看这个答案,看看它是否有帮助。如果您正在运行SQL 2008+,您可以将服务器名称、数据库名称和用户名添加到select语句中。您需要确保在连接中使用的登录名可以访问其他服务器。您的sql类似于“从[服务器名称][数据库名称][架构名称(可能是dbo)]插入表select*。查看”