分页: 6/25 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]
Feb 1
修改header.asp。找到
<body onload="initJS()" onkeydown="PressKey()">

替换为
<% if memName<>Empty then %>
<body onload="initJS()" onkeydown="PressKey()">
<% else %>
<body onload="initJS()" onkeydown="PressKey()" oncontextmenu='return false'
ondragstart='return false' onselectstart ='return alse' onbeforecopy='return
false'>
<% end if %>

即可,『在IE浏览器下有效,FF中无效』
Tags:
Jun 30
ASP是个好东西,它强大的交互能力以及数据处理能力使得它成为了商业网站的钟爱。但ASP程序的设计和调试却并不容易,光是高档服务器+WINDOWS NT操作系统+IIS服务器+SQL SERVER数据库系统的配置就不是我们个人用户所能够染指的。难道ASP真的与我们这些个人用户无缘吗?难道我们非要有如此奢侈的软硬件环境才能够走上ASP的学习之路吗?

  经过笔者的一番努力,终于运用一些常用的软件配置出了一个功能完整的ASP开发调试环境,并在这上面开发了一些小的系统。
  一、 硬件配置
  PⅢ450双CPU+1G内存+10G以上的SCSI硬盘,请不要害怕,这不过是一台使用WINDOWS NT的WEB服务器的标准配置。当然,我们无需这样的配置,我们需要的只是一台能够流畅运行WINDOWS 98的机器。(什么?你使用的是P100+16M内存+540M硬盘,那还是去升一下级吧。)
  二、 软件配置
  首先,我们需要安装WINDOWS 98,这一点相信大家都会吧。(什么,你连这个也不会,那ASP也不用学了,先进扫盲班吧。)
  其次,我们需要安装Personal Web Server(简称PWS),你问那里可以找到,太简单了,在WINDOWS 98的光盘里有一个名为“add-ones”的目录,打开后里面又有一个名为“PWS”的目录,运行里面的SETUP.EXE便开始了安装(图1)。
  在安装程序运行到“最小、典型、自定义安装”选择的时候,请选择“自定义”,然后选择“Personal Web Server(PWS)”,再按“显示子组件”。接着选择“文档”,再按“显示子组件”,最后选择“Active Server Page”。这个组件将安装包括ASP教程、VBScript教程以及Jscript教程在内的一些文档,对于今后的开发大有益处。选择完毕之后一路按“确定”,再按“下一步”,开始设置“WWW服务”文档存放的目录,缺省值是“C:Inetpubwwwroot”,建议不要改变。然后设置的是“MTS安装文件夹”,缺省值是“C:Program FilesMts”,建议也不要改变。再按一次“下一步”之后,最关键的安装便开始了,请耐心等待,这样配置的PWS大约有90多兆(图2),可能要耗费相当时间。
  安装完毕之后,请再运行OFFICE 97的安装程序。(什么,这个也没有!如果你有SQL、ORACAL、INFOMIX这些大型数据库那也行,不过似乎有些大材小用。)请选择“自定义安装”,然后在组件列表中请选择“Microsoft Access”和“Data Access”(使用过VB的用户请不要搞错,这个Data Access只是为连接各种数据格式的数据库而提供的驱动程序以及工具,并非VB中的那个小型数据库软件)。
  到目前为止,需要安装的软件以及全部安装完毕了,但不要高兴得太早,现在你的ASP还没有处理数据库的能力,(什么,你不需要处理数据库,那你用ASP干吗,论交互性JAVA Script并不比ASP差,还好学许多呢?)接下来,我们还需要进行数据库创建和ODBC设置这两个步骤。

  三、 数据库创建
  一个好的程序=数据+算法。对于一个数据库程序来说,数据库是必不可缺的。我们下面便要用Access创建一个。
  1)请启动Access。由于在这里我们仅仅是给读者做一个示范,所以创建的是一个最最简单的数据库,只包括一个表并且这个表中仅有一个字段(关于“数据库”、“表”、“字段”这些概念请查阅一本好的数据库书籍或Access的帮助本档)。
  2)请选择“新建数据库”中的“空数据库”,然后按“确定”,并输入数据库的文件名(在这个示范中为C:TEST.MDB)再按“创建”。
  3)选择“表”,并按“新建”。
  4)输入一个字段,字段名称为“name”,数据格式为“文本”,字段大小为“10”。
  5)关闭窗口,并在弹出窗口询问你“你要保存对‘表1’设计的更改吗?”时选择,并将“表名称”设置为“table1”。
  6)接着会弹出窗口告诉你还没有创建“主关键字”,“是”还是“否”,“是”或者“否”关系都不大,随便选择一个。
  7)到此,一个十分基本的数据库便完成了,当然,为了便于我们的测试工作,请再激活刚刚建立的“table1”,并随便往里面输入一些数据。

  四、 设置ODBC
  在设置ODBC之前,有必要将ODBC的概念与读者解释一下,这有利于下面内容的理解。ODBC(Open Database Connectivity开放式数据库互联)是微软推出的一种工业标准,一种开放的独立于厂商的API应用程序接口,可以跨平台访问各种个人计算机、小型机以及主机系统。ODBC作为一个工业标准,绝大多数数据库厂商、大多数应用软件和工具软件厂商都为自己的产品提供了ODBC接口或提供了ODBC支持,这其中就包括常用的SQL SERVER、ORACAL、INFORMIX等。
  我们所要做的,就是在创建数据库脚本之前,提供一条使 ADO(ASP用于处理数据库的部件) 定位、标识和与数据库通讯的途径。数据库驱动程序使用 Data Source Name (DSN) 定位和标识特定的 ODBC 兼容数据库,将信息从 Web 应用程序传递给数据库。典型情况下,DSN 包含数据库配置、用户安全性和定位信息,且可以获取 Windows NT 注册表项中或文本文件的表格。
  通过 ODBC,我们可以选择希望创建的 DSN 的类型:用户、系统 或 文件。系统 DSN 允许所有的用户登录到特定的服务器上去访问数据库,而用户 DSN 使用适当的安全身份证明限制数据库到特定用户的连接。文件 DSN 用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制 DSN 文件,可以轻易地从一个服务器转移到另一个服务器。在本示例中,我们使用文件 DSN。当然,由于你使用的数据库不同,具体的设置也稍有不同,在这里我们只介绍Access、SQL Server、ORACAL三种数据库的ODBC设置。
  首先在 Windows 的“开始”菜单打开“控制面板”,双击“ODBC”图标,然后选择“文件 DSN”属性页,单击“添加”,选择数据库驱动程序,然后单击“下一步”。按照后面的指示配置适用于您的数据库软件的 DSN。
  1)配置 Microsoft Access 数据库的文件 DSN
  在“创建新数据源”对话框中,从列表框选择“Microsoft Access Driver”,然后单击“下一步”。
  键入您的 DSN 文件名(在本示例中使用test),然后单击“下一步”。
  单击“完成”创建数据源。
  在“ODBC Microsoft Access 97 安装程序”对话框中,单击“选择”。选择 Microsoft Access 数据库文件 (*.mdb),然后单击“确定”。
  2)配置 SQL Server 数据库文件 DSN
  在“创建新数据源”对话框中,从列表框中选择“SQL Server”,然后单击“下一步”。
  键入 DSN 文件的名称(在本示例中使用test),然后单击“下一步”。
  单击“完成”创建数据源。
  键入运行SQL服务程序的服务器的名称、登录ID和密码。
  在“创建SQL Server的新数据源”对话框中,在“服务器”列表框中键入包含 SQL Server 数据库的服务器的名称,然后单击“下一步”。
  选择验证登录ID的方式。
  如果要选择SQL服务器验证,请输入一个登录ID和密码,然后单击“下一步”。
  在“创建 SQL Server 的新数据源”对话框中,设置默认数据库、存储过程设置的驱动程序和 ANSI 标识,然后单击“下一步”。(要获取详细信息,请单击“帮助”。)
  在对话框(同样名为“创建 SQL Server 的新数据源”)中,选择一种字符转换方法,然后单击“下一步”。(详细信息,请单击“帮助”。)
  在下一个对话框(同样名为“创建SQL Server的新数据源”)中,选择登录设置。
  3)配置Oracle数据库文件DSN
  首先要确保 oracle 用户软件被正确地安装要创建 DSN 的计算机上。详细信息请与服务器管理员联系或参阅数据库软件文档。
  在“创建新数据源”对话框中,从列表框中选择“Microsoft ODBC for oracle”,然后单击“下一步”。
  键入 DSN 文件的名称(在本示例中使用test),然后单击“下一步”。
  单击“完成”创建数据源。
  输入用户名、密码和服务器名,然后单击“确定”。
  好了,在正确设置完ODBC之后,便迎来了最激动人心的时刻:ASP程序的编制。

  五、 ASP程序的编制
  一般来说,人们都喜欢使用所见即所得的HTML编辑器来编辑HTML文档,但是,所有的所见即所得的HTML编辑器都对ASP支持得不甚理想,所以建议大家先用所见即所得的HTML编辑器完成所有固定的HTML语句,然后再使用纯文本的编辑器(WINDOWS附带的记事本就可以了)加入ASP程序。在本示例中,ASP程序要完成的任务很简单,就是打开数据库将其中“table1”表中的“name”字段的所有数据读出,并输出到浏览器。
  具体程序:C:Inetpubwwwrootdefault.asp
    <%@ LANGUAGE=VBScript %>
    <%
    Set conn = Server.CreateObject(“ADODB.Connection”)
    conn.Open “test”
    set rs=conn.execute(“select * from table1”)
    do while not rs.eof
    response.write rs(“name”)+“

    rs.movenext
    loop
    rs.close
    conn.close
    %>
  程序到这里便结束了,还不快把它输入你的电脑,试一试它的效果。
  六、 小结
  终于,一个简单但是实用并且完整的ASP运行以及设计环境构造完毕了,一个最最简单的ASP程序也已经写完了。
Jun 30
在运行前几章的例子,可能或多或少的都会碰上一些问题
  

  如:组件编译后,又要修改,发生”权限被拒绝,’f:\csdn\fcom.dll’”等等的错误。

  
  当asp页面浏览时,打开任务管理器,会看到一个dllhost.exe,用户名为IWAM_YANG的进程。IWAM_YANG会根据计算机名而有所不同。
  

  可以使用以下几种方式来解决

  1. 重新启动iis.

  在控制面板中找到管理工具->internet信息服务->右键点击左边树图第二层本地计算机->所有任务->重新启动IIS即可,这个操作需要一点时间。

  此时你可以看到这个dllhost.exe的进程已经关闭
  

  2. 上面这种方法的缺点就是当前所有的网站都被关闭直到重新启动

  有没有针对单个网站或者虚拟目录的?有

  在控制面板中找到管理工具->internet信息服务->找到你的组件运行的虚拟目录。->右键属性->第一项虚拟目录中->应用程序保护->点击卸载即可。

  此时你可以看到这个dllhost.exe的进程已经关闭
  

  3. 如果你觉得麻烦,直接在Windows任务管理器中结束该进程既可

  
  4. 最后一种方法

  在控制面板中找到管理工具->组件服务->在树图中点击计算机,我的电脑,正在运行的进程->IIS Out-Of-Process Pooled Applications(2860)->右键关闭即可

  此时你可以看到这个dllhost.exe的进程已经关闭
Jun 30
错误处理   

  如果页面出错,而没有对错误的处理,那么页面会显示一个用户可能看不懂的错误。

  在asp脚本中可以使用

  On Error Resume Next

  ……

  if Err.Number<>0 then

  Response.Write Err.Description

  End if

  但是如果组件中出错呢?这种方法可以捕获错误,但是具体的错误如何知道呢?

  我们可以在组件中加入错误处理,来返回错误,这样可以容易的看到更加详细的出错信息,有助于我们排除错误。

  

  使用Err.Raise, Raise 被用来生成运行时错误

  打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fC6

  Option Explicit

  

  Public Sub showerror1()

  On Error GoTo ErrorHandle

  Dim i As Double

  i = 1 / 0

  ErrorHandle:

  Err.Raise Err.Number, Err.Source, Err.Description

  End Sub

  ‘生成自定义的错误

  Public Sub showerror2()

  Err.Raise 600, "自己定义的错误600", "这是描述自己程序的错误"

  End Sub

  

  Ok,一个组件就写好了,点击菜单->文件->生成fCom.dll文件

  确定,在目录下就会有fCom.dll文件

  

  测试

  打开visual interdev6.0,生成一个asp文件

  

  <%@ Language=VBScript %>

  <HTML>

  <BODY>

  <%

  ‘下面这一句很重要

  on error resume next

  set obj=server.CreateObject("fCom.fc6")

  obj.showerror1()

  ‘如果没有错误处理,就会产生一个出错的界面,很不专业

  ‘从 0–512 的范围保留为系统错误;从 513–65535 的范围可以用做用户定义的错误。

  ‘如果是保留错误,那么组件内错误号和页面处理的错误号是相一致的

  if err.number <>0 then

  Response.Write "错误信息" & err.number & err.Description

  end if

  Response.Write "<br>"

  

  ‘如果是用户定义的错误,那么在页面中可以分别进行处理

  obj.showerror2()

  if err.number<>0 then

  if err.number =600 then

  Response.Write err.number & err.Source & err.Description

  end if

  end if

  %>

  </BODY>

  </HTML>  

  配置好虚拟目录,在ie中执行此asp文件,得到结果如下:  

  错误信息11除数为零
600自己定义的错误600这是描述自己程序的错误
Jun 30
经常我们可以看到在连接数据库,打开记录集的时候,如下:
  

  rs.Open strsql, conn,adOpenDynamic ,adLockPessimistic

  在键入”,”的时候,后面会出现一个游标类型或者锁类型列表可以供选择。

  有时候我们为了简化,直接rs.open strsql,conn,1,3

  第一种方法是不是更加专业一些,我们来看看asp中如何实现

  

  打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fC5

  Option Explicit

  ‘定义枚举类型

  Public Enum Interfacedig

  icfirst = 1

  icsecond = 2

  icthree = 3

  icfour = 4

  icfive = 5

  icsix = 6

  icserven = 7

  iceight = 8

  End Enum

  

  '定义函数

  Public Function CallDat(ByVal idig As Integer, ByVal ics As Interfacedig) As Variant

  CallDat = idig * ics

  End Function

  

  Ok,一个组件就写好了,点击菜单->文件->生成fCom.dll文件

  确定,在目录下就会有fCom.dll文件

  

  测试

  打开visual interdev6.0,生成一个asp文件

  

  <%@ Language=VBScript %>

  <HTML>

  <BODY>

  <%

  ‘定义,还可以把这一部分放到一个文件中,就像ado的记录集<!--#include file="adovbs.inc"-->

  const icfirst = 1

  const icsecond = 2

  const icthree = 3

  const icfour = 4

  const icfive = 5

  const icsix = 6

  const icserven = 7

  const iceight = 8

  

  set obj=server.CreateObject("fCom.fc5")

  ‘这里可以使用iceight或者8,但是前者使代码具有更好的可读性

  a= obj.CallDat(4,iceight)

  Response.Write a

  Response.Write "<br>"

  a= obj.CallDat(4,8)

  Response.Write a

  %>

  <P> </P>

  

  </BODY>

  </HTML>

  

  配置好虚拟目录,在ie中执行此asp文件,得到结果如下:

  32
32
分页: 6/25 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]