VB6从Recordset插入表

时间:2018-08-17 03:07:45

标签: 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访问视图,但是可以通过cn2访问表

所以这不能完成

我想知道怎么做

表和视图完全相同

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

我认为有两种方法可以做到

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

简单的例子将非常有帮助,谢谢

1 个答案:

答案 0 :(得分:0)

这是行不通的,因为即使您将记录从第一台服务器中拉到记录集中,您仍试图直接从视图中插入,而不是从记录集中插入。

您可以遍历记录集,然后将记录一个接一个地插入另一个数据库,但这很麻烦,而且很慢。更好的方法是使用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

那应该让您入门。