我正在尝试从DB2数据库中的表中检索XML列。使用下面的代码,我可以检索任何没有xml作为数据类型的列:
query = "some query"
strConn = "my connection string"
set dbConn = CreateObject("ADODB.Connection")
set rs = CreateObject("ADODB.RecordSet")
dbConn.Open strConn
rs.Open query, dbConn
rs.MoveFirst
While Not rs.EOF
data = rs.Fields(0)
rs.MoveNext
Wend
dbConn.Close
当数据是xml数据类型时,“data = rs.Fields(0)”行会抛出“未指定的错误”。我想因为记录集返回一个XML对象,我需要将它分配给这样的DOM对象:
Set xDOM = CreateObject("Microsoft.XMLDOM")
rs.Save xDOM, adPersistXML
但是这仍然不起作用,QTP在执行保存行时抛出“未指定的错误”。
我用谷歌搜索答案,但找不到任何有用的东西。是否有人成功完成了这项工作?
感谢您阅读我的问题。
答案 0 :(得分:0)
根据DB2 - .NET datatypes,DB2Xml映射到Byte()/ Blob。所以也许你可以像盖茨先生那样处理你的XML领域deals with pictures,例如:
Set cn = New ADODB.Connection ---> CreateObject("ADODB.Connection")
cn.Open "DB2 Connection String"
Set rs = New ADODB.Recordset ---> CreateObject("ADODB.Recordset")
rs.Open "Your SQL", cn, adOpenKeyset, adLockOptimistic ---> Const defines needed
Set mstream = New ADODB.Stream ---> CreateObject("ADODB.Stream")
mstream.Type = adTypeBinary ---> Const define needed
mstream.Open
mstream.Write rs.Fields("Your XML field").Value
mstream.SaveToFile "fullfilespec.xml", adSaveCreateOverWrite ---> Const define needed
rs.Close
cn.Close
(显然未经测试的空气码)
P.S。你的rs.Save xDOM, adPersistXML
完全错了; .Save将整个记录集保存到指定为第一个参数的文件中。