在.NET平台中期望值最高,广告做的最多的要算是WebServices了。WebServices是Web上的类,与Web应用程序不同的是,这个类不返回HTML页面,只以XML文档返回一个或几个值。因此,任何能够处理XML的应用程序都可以调用其方法和使用其结果。WebServices更多是Internet上的应用,不过小型企业内部系统开发使用WebServices,也有许多好处。个人认为,与COM+和DCOM相比,从布置到维护,WebServices更胜一筹。同时,从COM数据据传输转换到XML大大提高了应用程序的伸缩性和相互操作性,对不同的需求,可以用不同的语言开发相应的应用程序,并共享数据。 这里不深入探讨WebServices和XML,只示例通过VB6.0调用VS2005编译的WebServices。
作为VB6.0的程序员和爱好者,数据库开发中的ADO 2.0是再熟悉不过的了。不过.NET平台对ADO的结构体系作了扩展,增加了组件,解决了其不足,优化了性能,也就是ADO.NET。与熟悉的ADO相比,已经有太多的不同。那么,如何在VB6.0中通过WebServices获取记录集呢?示例如下:
'
==================== WebServices的代码 ===================
' 首先要在COM组件中添加ADO
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Data
Imports System.Data.Odbc
Imports System.Configuration.ConfigurationManager
Imports System.Xml
Imports ADODB
< WebService( Namespace : Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class TESTClass TEST
Inherits System.Web.Services.WebService
'读取config中的连接字符串
Public Function cnString()Function cnString() As String
Return ConnectionStrings("connToPgSql").ToString()
End Function
'ADO记录集转换为XML
<WebMethod()> _
Public Function RecordsetToXmlTest()Function RecordsetToXmlTest(ByVal Uid As String) As XmlDataDocument
Dim sql As String = "select * from where uid='" & Uid & "'"
Dim cn As New Connection
Dim rs As New Recordset
Dim st As New Stream
Dim xd As New XmlDataDocument
cn.ConnectionString = cnString
cn.Open()
rs.Open(sql, cn, CursorTypeEnum.adOpenForwardOnly, LockTypeEnum.adLockReadOnly, 1)
rs.Save(st, PersistFormatEnum.adPersistXML)
st.Flush()
st.Position = 0
xd.LoadXml(st.ReadText(st.Size))
Return xd
st = Nothing
rs = Nothing
cn = Nothing
xd = Nothing
End Function
End Class
''======================== VB6.0 的代码 ======================
' 首先要在COM组件中添加ADO
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Data
Imports System.Data.Odbc
Imports System.Configuration.ConfigurationManager
Imports System.Xml
Imports ADODB
< WebService( Namespace : Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class TESTClass TEST
Inherits System.Web.Services.WebService
'读取config中的连接字符串
Public Function cnString()Function cnString() As String
Return ConnectionStrings("connToPgSql").ToString()
End Function
'ADO记录集转换为XML
<WebMethod()> _
Public Function RecordsetToXmlTest()Function RecordsetToXmlTest(ByVal Uid As String) As XmlDataDocument
Dim sql As String = "select * from where uid='" & Uid & "'"
Dim cn As New Connection
Dim rs As New Recordset
Dim st As New Stream
Dim xd As New XmlDataDocument
cn.ConnectionString = cnString
cn.Open()
rs.Open(sql, cn, CursorTypeEnum.adOpenForwardOnly, LockTypeEnum.adLockReadOnly, 1)
rs.Save(st, PersistFormatEnum.adPersistXML)
st.Flush()
st.Position = 0
xd.LoadXml(st.ReadText(st.Size))
Return xd
st = Nothing
rs = Nothing
cn = Nothing
xd = Nothing
End Function
End Class
''======================== VB6.0 的代码 ======================