Public Function XMLFromADO(ByVal pprs As adodb.recordset) As String '将纪录集转换成XML '使用纪录集内置功能转换
Dim strT As String Dim pstrem As ADODB.Stream
On Error GoTo Er strT = "" Set pstrem = New ADODB.Stream pprs.Save pstrem, adPersistXML strT = pstrem.ReadText Er: XMLFromADO = strT Set pprs = Nothing Set pstrem = Nothing End Function Public Function ADORSFromXML(ByVal sXML As String) As adodb.recordset Dim pstrem As ADODB.Stream Dim prs As ADODB.Recordset
Set pstrem = New ADODB.Stream Set prs = New ADODB.Recordset pstrem.Open pstrem.WriteText sXML pstrem.Position = 0 prs.Open pstrem Set ADORSFromXML = prs Set prs = Nothing Set pstrem = Nothing End Function
数据库引擎自己会做,你只要设置好ODBC数据源就行了,何必操心这些。
to IsMe(): 如果查询出来的数据集比较大呢,可能出现以下情况,怎么解决呢? 1、STRING类型放不下 2、当超过8192个BYTE时,用WINSOCK发送时,WINSOCK会把发送包自动分割成好几条来发送。cool222(菜得不能再菜) : 因为我是多个CLIENT连接在一个SERVER上,而此时CLIENT要查询远程的数据时,是通过SERVER来查询远程的,并且我不可能为每个CLIENT去配置ODBC,再说我可能根本不知道远程的用户名和密码,而只是通过协议让远程SERVER帮我完成再传送过来。
'将纪录集转换成XML
'使用纪录集内置功能转换
Dim strT As String
Dim pstrem As ADODB.Stream
On Error GoTo Er
strT = ""
Set pstrem = New ADODB.Stream
pprs.Save pstrem, adPersistXML
strT = pstrem.ReadText
Er:
XMLFromADO = strT
Set pprs = Nothing
Set pstrem = Nothing
End Function
Public Function ADORSFromXML(ByVal sXML As String) As adodb.recordset
Dim pstrem As ADODB.Stream
Dim prs As ADODB.Recordset
Set pstrem = New ADODB.Stream
Set prs = New ADODB.Recordset
pstrem.Open
pstrem.WriteText sXML
pstrem.Position = 0
prs.Open pstrem
Set ADORSFromXML = prs
Set prs = Nothing
Set pstrem = Nothing
End Function
如果查询出来的数据集比较大呢,可能出现以下情况,怎么解决呢?
1、STRING类型放不下
2、当超过8192个BYTE时,用WINSOCK发送时,WINSOCK会把发送包自动分割成好几条来发送。cool222(菜得不能再菜) :
因为我是多个CLIENT连接在一个SERVER上,而此时CLIENT要查询远程的数据时,是通过SERVER来查询远程的,并且我不可能为每个CLIENT去配置ODBC,再说我可能根本不知道远程的用户名和密码,而只是通过协议让远程SERVER帮我完成再传送过来。
能告诉我COM+怎么做么?最好有源代码?分不是问题。谢谢!!!
万分感谢!!!给我MAIL也行。[email protected]
有例子吗?能给我吗?