VFP与ASP相结合开发Web数据库应用

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  ----index.htm中包括一个到Onerecord.asp的超联接、一个Text用于输入查询语句、一个SubmitButton用于提交查询,点击该Button后将调用Clsq2t.asp。----点击菜单File|New,在New对话框中选Files|ActiveServerPage,新建Onerecord.asp,它使用onerecord组件在Web页面上浏览数据库,代码如下:

  < %@ LANGUAGE="VBSCRIPT" % >
  < html >
  < HEAD >
  < /HEAD >
  < BODY >
  < FORM ACTION="Onerecord.asp" METHOD="POST" ID="scanform" >
  < %set ox=server.createobject("classes.onerecord")
  ox.setdatapath("d:/vfpweb/data")
  if session("currentno")="" then
  session("currentno")=1'first time open the page
  currentno=1
  else
  if isnumeric(session("currentno")) then
  currentno=session("currentno")
  else
  currentno=1
  end if
  end if
  ox.goto(currentno)
  % >
  < %if request.form("cmdnext")< >"" then
  ox.movenext
  end if% >
  < %if request.form("cmdprev")< >"" then
  ox.moveprevious
  end if% >
  < %if isnumeric(request.form("txtgoto")) then
  temp=cint(request.form("txtgoto"))
  ox.goto(temp)
  end if% >
  < %session("currentno")=ox.getcurrentno% >
  < p >
  当前记录:< %=ox.getcurrentno% >< br >
  书 号:< %=ox.getbookno% >< br >
  书 名:< %=ox.getbookname% >< br >
  责 编:< %=ox.geteditor% >< br >
  出版时间:< %=ox.getpubdate% >< br >
  < /p >
  < p >
  < %if not ox.iseof then'如果不是文件未则显示按钮Next% >
  < INPUT TYPE=submit VALUE="Next" NAME="cmdnext" >
  < %end if% >
  < %if not ox.isbof then'如果不是文件头则显示按钮Prev% >
  < INPUT TYPE=submit VALUE="Prev" NAME="cmdprev" >
  < %end if% >
  < %set ox=nothing% >
  < INPUT LANGUAGE="VBScript" TYPE=submit
  VALUE="Goto"
  ONCLICK="if not isnumeric(scanform.txtgoto.value) then
  window.alert("Must input a number")
  window.event.cancelbubble=true
  end if"
  NAME="cmdgoto" >
  < INPUT TYPE=text SIZE=20 NAME="txtgoto" >< /p >
  < a href=index.htm > Return Index< /a >
  < /FORM >
  < /BODY >
  < /HTML >
  

  ----该页面显示数据库当前记录各字段的值,并在页面下方显示三个按钮Next(下一条),Prev(上一条)和Goto。其中使用了Server Side Code(符号<%和%>之间的代码,在服务器端执行),产生组件及对组件各方法和属性的调用;Client SideCode(在客户端执行),在ONCLICK的事件响应中检验用户输入的记录号(必须是一个数字)。由于WebBrowser基于的HTTP是一个无状态协议,它并不知道各客户的当前记录。为了在各个页面调用中记住当前记录号,使用了session对象。session对象在跟踪和保持客户的使用状态上很有用处,感兴趣者可以查阅Visual InterDev的联机帮助。----再新建Clsq2t.asp,它使用使用clsq2t组件在Web页面上显示任意查寻结果,代码如下:
  

  < %@ LANGUAGE="VBSCRIPT" % >
  < HTML >
  < HEAD >
  < /HEAD >
  < BODY >
  < %qs=request.form("qstring")% >
  你输入的查询要求是: < br >< %=qs% >< hr >
  < a href=index.htm > Return Index< /a >< br >
  < %set ox=Server.CreateObject("classes.clsq2t")% >
  < %ox.SetDataPath("d:/vfpweb/data")% >
  < %ox.QueryToTable(qs)% >
  < %Set ox = Nothing% >
  < /BODY >
  < /HTML >

  ----由于输出操作都已封装在组件clsq2t之中,故该组件的使用相当简明。应该指出的是,该组件应该用于开发之中,而不应提供给最终用户,因为不能保证用户输入的SQL Select串的有效和合法。6.调试注意事项

  ----此处两个组件皆是进程内服务器,当有Bug时将会使系统挂起甚至崩溃。----当修改组件代码时,你会发现无法覆盖老的.dll文件。这是因为即使退出Visual InterDev,组件仍被WebServer锁定(这就是为什么VFP试图用clearall释放资源时会挂起服务器)。这时必须停止WebServer并再启动之,在开发过程中可能要如此反复多次。如果系统被挂起或崩溃,WebServer无法响应,这时只有使出最后一招:关机并重新启动。VFP5.0版本的RunTime Library只支持一个实例,就是说:如果上述两个组件在两个不同的prg文件中实现,则它们不能同时被使用。这一点在VFP6.0中已得到改进(但仍是单线程的)。

  7.评述

  ----Web数据库开发更专业化的方法似乎是ASP+VB+ADO(ActiveX Data Object)+SQLServer。其中ADO不仅可用于Web数据库开发,也可用在VB、VFP中替代DAO、RDO开发传统的C/S应用,功能更为强大。然而对于中小企业来说,VFP简便易用,对资源要求不高,而且我国很多高校学生都学习过Foxbase或Foxpro,他们可以很快掌握VisualFoxpro,故可以比较容易地找到编程和系统维护人才。VFP用于开发Internet/Intranet是一个较好的选择,国外已有许多大型应用的成功凡例。

上一页234下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答