在Visual FoxPro中创建Web服务

本文档详细阐述了如何在Visual FoxPro中创建Web服务,涉及建立COM服务程序、配置IIS、创建和发布Web服务、在IntelliSense中注册服务、使用SoapClient30对象以及手动分发Web服务的步骤。示例展示了如何通过XMLAdapter和CursorAdapter与SQL Server交互,创建获取和更新数据的Web服务。
摘要由CSDN通过智能技术生成

Visual FoxPro中创建Web服务

注:该文章节选自作者的Visual FoxPro程序设计参考手册》

创建一个Web服务是一个复杂的过程,这涉及到要使用Internet信息服务(IIS)、Visual FoxPro COM服务程序和简单对象访问协议(SOAP)。在这节中将结合上节中介绍的XMLAdapter和在20.4节中介绍的CursorAdapter来建立一个可以通过HTTP进行获取和修改SQL Server 2000附带示例数据库NorthwindCustomers表的Web服务实例。该Web服务的流程图18-11所示。可以看出,这是一个3层架构的客户/服务器模式。

18-11 Web服务流程图

18.4.1 建立COM服务程序

创建Web服务,首先要建立一个COM服务程序,然后才可以使用Visual FoxProWeb服务发布向导将COM升迁为Web服务。

1.建立项目和类

新建一个名为MyWebService的项目,然后在项目中使用以下代码创建一个叫做MyClass.prg文件,在其中建立了一个ChangeCustomer

DEFINE CLASS ChangeCustomer AS Session OLEPUBLIC

    DataSession=2       &&私有数据工作期

   

    PROCEDURE Init

        SET MULTILOCKS ON

    ENDPROC

   

    PROCEDURE GetCustomerInfo HelpString "获取客户信息"

        LOCAL oXMLAdapter AS XMLAdapter,oCA AS String,cXML AS String

        oCA=CREATEOBJECT("MyCursorAdapter")    &&建立CursorAdapter对象

        oCA.CursorFill()                            &&oCAAlias属性指定的名称生成临时表

        oXMLAdapter=NEWOBJECT("XMLAdapter")   &&建立XMLAdapter

        oXMLAdapter.AddTableSchema(oCA.Alias)      &&加载临时表到XMLAdapter对象

        oXMLAdapter.ToXML("cXML")               &&生成XML字符串

        RELEASE oXMLAdapter,oCA                 &&释放对象实例

        RETURN cXML                            &&返回XML字符串

    ENDPROC

 

    PROCEDURE UpdateCustomer(cXML AS String) HelpString "更新客户信息"

        LOCAL oXMLAdapter AS XMLAdapter,oCA AS CursorAdapter

        oXMLAdapter=NEWOBJECT("XMLAdapter")     &&建立XMLAdapter

        oXMLAdapter.UTF8Encoded=.F.

        oXMLAdapter.IsDiffGram=.T.

        oXMLAdapter.LoadXML(cXML,.F.)              &&加载XML

              

        oCA=CREATEOBJECT("MyCursorAdapter")

        oXMLAdapter.Tables(1).ChangesToCursor(oCA.Alias) &&还原缓冲表

        oCA.CursorAttach(oCA.Alias)                    &&将还原出的缓冲表与CursorAdapter建立关联

        =TABLEUPDATE(.T.)                          &&发送更新

        RELEASE oXMLAdapter,oCA

    ENDPROC    

   

    PROCEDURE Error(nError AS Integer,cMethod AS String,nLine AS Integer)

        LOCAL cText AS String

        cText=cMethod+" 错误号="+LTRIM(STR(nError,5))+" 行号="+LTRIM(STR(nLine,8))+" "+MESSAGE()

        COMRETURNERROR(cText,_VFP.ServerName)

    ENDPROC

ENDDEFINE    

 

*!* 建立基于CursorAdapter的子类,用于连接到SQL Server

DEFINE CLASS MyCursorAdapter AS CursorAdapter

    Alias="Customer"

    BreakOnError= .F.

    DataSourceType="ODBC"

    Tables="Customers"

    SendUpdates=.T.

    AllowDelete=.T.

    AllowInsert=.T.

    AllowUpdate=.T.

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值