我有以下脚本成功读取数据库中的记录:
sDSN = MyDSN
sUsername = username
sPassword = password
sSQL ="Select TOP 1 * myTable"
sDSN = "DSN=" & sDSN & ";UID=" & sUsername & ";PWD=" & sPassword & ";"
Set sConnect = CreateObject("ADODB.Connection")
WScript.Echo "Opening connection to source..."
sConnect.Open sDSN
Set resultSet = sConnect.Execute(sSQL)
On Error Resume Next
resultSet.MoveFirst
Do While Not resultSet.eof
WScript.Echo resultSet("ID") & "," & resultSet("SomeColumn") & "," & resultSet("SomeOtherColumn")
resultSet.MoveNext
Loop
resultSet.Close
sConnect.Close
Set sConnect = Nothing
这很好用,输出如下内容:
1,值1,值2
所以我想要做的就是将其写回另一个数据库。我意识到我可以手动编写一个指定每列的查询,但我想知道是否有一些方法可以在一个简单的命令中插入resultset()
。
有人知道这是否可行?它是CACHÉ,因为有人总是问:)
答案 0 :(得分:1)
在VBScript中,没有简单的方法。我不确定CACHE是什么或做什么,所以这并不会影响我的答案。
您需要做的是在结果集的每个循环上构建插入查询的文本。
dim InsertSQL = "insert into MyNewTable values (" & resultSet("ID") & "," & resultSet("SomeColumn") & ")"
答案 1 :(得分:1)
如果没有人有更好的答案,那么这种方法运作得相当好,无论表格如何都可重复使用
tSQL = "INSERT INTO targetTable VALUES ("
For i = 0 To resultSet.fields.Count
tSQL = tSQL & resultSet(i)
if i <> resultSet.fields.Count Then
tSQL = tSQL & ","
end if
Next
tSQL = tSQL & ")"