用ASP、VB和XML建立互联网应用程序(4)

2016-01-29 17:26 1 1 收藏

用ASP、VB和XML建立互联网应用程序(4),用ASP、VB和XML建立互联网应用程序(4)

【 tulaoshi.com - ASP 】

  前面我们已经介绍了使用ASP和XML混合编程,那是因为ASP页面能够很容易让我们看清应用程序正在做什么,但是你如果你不想使用ASP的话,你也可以使用任何你熟悉的技术去创建一个客户端程序。下面,我提供了一段VB代码,它的功能和ASP页面一样,也可以显示相同的数据,但是这个VB程序不会创建发送到服务器的XML字符串。它通过运行一个名叫Initialize的存储过程,从服务器取回XML字符串,来查询ClientCommands表的内容。

  ClientCommands表包括两个域:command_name域和command_xml域。客户端程序需要三个特定的command_name域:getCustomerList,CustOrderHist和RecentPurchaseByCustomerID。每一个命令的command_xml域包括程序发送到getData.asp页面的XML字符串,这样,就可以集中控制XML字符串了,就象存储过程名字所表现的意思一样,在发送XML字符串到getData.asp之前,客户端程序使用XML DOM来设置存储过程的参数值。我提供的代码,包含了用于定义Initialize过程和用于创建ClientCommands表的SQL语句。

  我提供的例程中还说明了如何使用XHTTPRequest对象实现我在本文一开始时许下的承诺:任何远程的机器上的应用程序都可以访问getData.asp;当然,你也可以通过设置IIS和NTFS权限来限制访问ASP页面;你可以在服务器上而不是客户机上存储全局应用程序设置;你可以避免通过网络发送数据库用户名和密码所带来的隐患性。还有,在IE中,应用程序可以只显示需要的数据而不用刷新整个页面。

  在实际的编程过程中,你们应当使用一些方法使应用程序更加有高效性。你可以把ASP中的关于取得数据的代码端搬到一个COM应用程序中去然后创建一个XSLT变换来显示返回的数据。好,我不多说了,现在你所要做的就是试一试吧!

   Option Explicit
   Private RCommands As Recordset
   Private RCustomers As Recordset
   Private RCust As Recordset
   Private sCustListCommand As String
   Private Const dataURL = "http://localhost/XHTTPRequest/getData.asp"
   Private arrCustomerIDs() As String
   Private Enum ActionEnum
   VIEW_HISTORY = 0
   VIEW_RECENT_PRODUCT = 1
  End Enum

  Private Sub dgCustomers_Click()
   Dim CustomerID As String
   CustomerID = RCustomers("CustomerID").Value
   If CustomerID <> "" Then
    If optAction(VIEW_HISTORY).Value Then
     Call getCustomerDetail(CustomerID)
    Else
     Call getRecentProduct(CustomerID)
    End If
   End If
  End Sub

  Private Sub Form_Load()
   Call initialize
   Call getCustomerList
  End Sub

  Sub initialize()
   ' 从数据库返回命令名和相应的值

   Dim sXML As String
   Dim vRet As Variant
   Dim F As Field
   sXML = "<?xml version=""1.0""?>"
   sXML = sXML & "<command><commandtext>Initialize</commandtext>"
   sXML = sXML & "<returnsdata>True</returnsdata>"
   sXML = sXML & "</command>"
   Set RCommands = getRecordset(sXML)
   Do While Not RCommands.EOF
    For Each F In RCommands.Fields
     Debug.Print F.Name & "=" & F.Value
    Next
    RCommands.MoveNext
   Loop
  End Sub

  Function getCommandXML(command_name As String) As String
   RCommands.MoveFirst
   RCommands.Find "command_name='" & command_name & "'", , adSearchForward, 1
   If RCommands.EOF Then
    MsgBox "Cannot find any command associated with the name '" & command_name & "'."
    Exit Function
   Else
    getCommandXML = RCommands("command_xml")
   End If
  End Function

  Sub getRecentProduct(CustomerID As String)
   Dim sXML As String
   Dim xml As DOMDocument
   Dim N As IXMLDOMNode
   Dim productName As String
   sXML = getCommandXML("RecentPurchaseByCustomerID")
   Set xml = New DOMDocument
   xml.loadXML sXML
   Set N = xml.selectSingleNode("command/param[name='CustomerID']/value")
   N.Text = CustomerID
   Set xml = executeSPWithReturn(xml.xml)
   productName = xml.selectSingleNode("

来源:https://www.tulaoshi.com/n/20160129/1501390.html

延伸阅读
什么是 互联网 支付?今天我给大家分享一些互联网的相关知识,希望可以帮助到你。 什么是互联网支付:定义 网银、第三方支付、移动支付作为互联网支付的主要表现形式。互联网支付就属于那种需要特别“照顾”的。因为从微观层面上说,互联网支付直接涉及到用户的财产安全等切身利益,从宏观层面上,还关系到国家金融体系...
标签: 生活常识
互联网金融模式下,移动理财投资具有以下根本性特点:所有小额资金个人都可以参与到移动理财投资,进入全民理财的阶段;单独的会员制交易单位体系可能将不复存在。 移动互联网金融概念股-移动互联网资源 什么是移动互联网金融 移动互联网金融是传统金融行业与移动互联网相结合的新兴领域。移动互联网金融区别于传统金融服...
弥漫在中国各行业的心浮气躁,在互联网设计领域也不能幸免。 视觉设计在做交互设计的事,交互设计在做产品经理的事,产品经理在做老板的事,就是没人做自己专业领域的事,并且是沉下心来踏踏实实去追求做到极致。 大家都太浮躁。 比如,一个公司的网站,请了一堆设计师,都很忙。但是网站上一个输入框都丑了好多年,还继续在那丑着。问起来...
为了方便用户使用和使系统具有灵活性,大多数Win-dows应用程序将用户所做的选择以及各种变化的系统信息记录在初始化(INI)文件中。因此,当系统的环境发生变化时,可以直接修改INI文件,而无需修改程序。由此可见,INI文件对系统功能是至关重要的。本文将介绍采用VisualBasicforWindows(下称VB)开发Windows应用程序时如何读写INI文件。 ...
标签: 投资 理财
信息风险 这一点应该也是很多人知道并且担心的,而且互联网的信息共享性也确实让很多人感到担心。不仅是金融方面,在其他的方面我们也面临着信息被泄露而的风险吗,但是互联网金融和我们口袋里的钱息息相关。所以为了避免这一类的风险我们要尽量保护好自己的个人信息,不要随便打开一些链接网站,上传自己的照片和身份信息等等。 监管...

经验教程

19

收藏

84
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部