| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 363 人关注过本帖
标题:建立中间层服务器
只看楼主 加入收藏
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:758
专家分:2536
注 册:2013-1-30
收藏
得分:0 
*中间层服务 WebService,编译DLL发布到IIS
DEFINE CLASS mywebbaseclass as Session
    DataSession=2
    databasename='mydatabase'
    PROCEDURE Init()
        SET ESCAPE OFF
        set carr off
        set mark to /
        set century on
        set date ymd
        set hours to 24
        set delete on
        set talk off
        set exact on
        set status bar off
        set safety off
        set conf on
        SET SYSMENU OFF
    ENDPROC

    PROCEDURE Destroy
    ENDPROC

    FUNCTION ConnectSQLServer() as Integer
        LOCAL iConn as Integer
        LOCAL connect_tmp as String
        LOCAL cText as String
        =SQLSETPROP(0,"DispLogin" ,3)
        connect_tmp="Driver={SQL Server};Server=192.168.1.200;Address=192.168.1.200,1433;Network=dbmssocn;Uid=sa;Pwd=密码;" &&连接数据库服务器,假设数据库服务器IP 192.168.1.200
        iConn=SQLSTRINGCONNECT(connect_tmp)
        IF iConn=-1
            cText='连接数据库失败'+chr(13)+chr(10)
            strtofile(cText,'error.txt',.t.)
        ELSE
            = SQLSETPROP(iConn, 'Transactions', 2)
            =SQLSETPROP(iConn, 'DisconnectRollback',.t.)
            = SQLEXEC(iConn,"USE "+THIS.databasename)
        ENDIF
        RETURN iConn
    ENDFUNC

    PROCEDURE DisConnectSQLServer(iConn as Integer)
        SQLDISCONNECT(iConn)
    ENDPROC

    PROCEDURE Error(nError as Integer,cMethod as String, nLine as Integer)
        CLOSE DATABASES
        =SQLDISCONNECT(0)
        =SYS(1104)
        LOCAL cText as String
        cText=;
        '出错时间:'+transform(datetime())+chr(13)+chr(10)+;
        '错误代码:'+str(nError,4)+chr(13)+chr(10)+;
        '错误提示:'+message()+chr(13)+chr(10)+;
        '错误方法:'+cMethod+chr(13)+chr(10)+;
        '错误行号:'+transform(nLine)+chr(13)+chr(10)
        strtofile(cText,'error.txt',.t.)
        comreturnerror("Fox Web Service",cText)
        CLEAR ALL
    ENDPROC
ENDDEFINE

DEFINE CLASS mywebservice as mywebbaseclass olepublic
    FUNCTION EXECUTE_SQL (SQL_STR as string) as string  &&执行客户端的SQL
        IF EMPTY(SQL_STR)
            RETURN ''
        ENDIF
        LOCAL cXML as String
        LOCAL SQL_ERR AS Integer
        LOCAL SQL_iConn AS Integer
        LOCAL OUT_filename as String
        cXML=''
        SQL_iConn=THIS.ConnectSQLServer()
        IF SQL_iConn<>-1
            SQL_ERR=SQLEXEC(SQL_iConn,SQL_STR,'cursor_TMP')
            IF SQL_ERR<>-1 AND USED('cursor_TMP')
                CURSORTOXML('cursor_TMP','cXML')
                cXML=STRCONV(cXML,13)
            ENDIF
            IF USED('cursor_TMP')
                USE IN cursor_TMP
            ENDIF
        ENDIF
        =this.DisConnectSQLServer(SQL_iConn)
        RETURN cXML  &&返回查询结果
    ENDFUNC
ENDDEFINE

**************************************************************


*客户端
*关联中间层
loWS = NEWOBJECT("WSHandler","_ws3client.vcx")
oweb =loWS.SetupClient("http://192.168.1.244:8080/myseb/mywebservice.WSDL", "", "")  &&假设中间层服务器IP: 192.168.1.244 IIS端口:8080

*执行SQL
xml_tmp=oweb.EXECUTE_SQL("select * from 表 where 查询条件") &&调用中间层的 EXECUTE_SQL() 执行SQL
xml_tmp=STRCONV(xml_tmp,14)
XMLTOCURSOR(xml_tmp,'cursor_TMP')
SELECT cursor_TMP
BROWSE


收到的鲜花
  • kangss7 天前 11:27 送鲜花  1朵  
7 天前 10:17
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2007
专家分:4047
注 册:2012-2-29
收藏
得分:0 
回复 11楼 kiff
试一试,谢谢!
7 天前 12:07
easyppt
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:359
专家分:866
注 册:2021-11-24
收藏
得分:0 
回复 11楼 kiff

客户端对象: oweb 创建的类 代码能分享吗,另外服务器端IIS 发布的DLL 是怎么调用的 ,是 myseb/mywebservice.WSDL 这个文件吗,这个文件的代码是怎样的  

7 天前 14:39
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:331
专家分:776
注 册:2014-6-12
收藏
得分:0 
以下是引用easyppt在2025-4-30 14:39:10的发言:

回复 11楼 kiff

客户端对象: oweb 创建的类 代码能分享吗,另外服务器端IIS 发布的DLL 是怎么调用的 ,是 myseb/mywebservice.WSDL 这个文件吗,这个文件的代码是怎样的  


_ws3client.vcx 在“C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc”
是VFP9自带的

7 天前 15:49
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:425
专家分:1356
注 册:2015-10-2
收藏
得分:0 
kiff版主出现啦!
7 天前 20:27
快速回复:建立中间层服务器
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015442 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved