[收稿日期] [作者简介] 常婉纶(),女,西安理工大学计算机系教师,西安交通大学在读硕士研究生。
基于文本编辑方式下的ASP 脚本调试技巧
常婉纶
(西安理工大学,陕西西安710082)
【摘 要】 基于ASP 技术WEB 应用系统的开发正在广泛流行,而大量的初学者面临着如何在文本编辑方式下对脚本程序的编写与调试问题。通过ASP 中脚本程序常见错误进行分析,并且指出相应的代码编写及调试技巧,为
ASP 开发的初学人员提供捷径。
【关键词】 ASP 文本编辑器;错误提示;调试技巧
SkillsFor ASPScr i ptDebu gBasedOnTextEditTechni
que
CHANG
Wan 2lun
【Abstr act 】 TheASPtechnolo gyisoneofthemost populartechnolo giesusedindevelo pmentofWeba
pplications ystem
at present.Butalar geamountofbe
ginnerfacewithhowtoeditanddebu
gtheirscri ptin g programbasedontextedit
technique.Inorderto provideashortcutforbe
ginner,thisthesisanal
ysismistakewhichisoftenoccurredinASPscri
ptin g
program,and
providesomeskillsforbe ginnertoeditanddebu g programs.
【Keywor ds 】 activeserve pagestexteditormistake promptdebu gskills
〔中图分类号〕TP393.3    〔文献标识码〕A     〔文章编号〕1674-3229(2008)03-0050-02
  ASP (ActiveServerPa ges )是Microsoft 公司于
1996年推出的Web 应用程序开发技术。其主要特性是能够把HTML 、脚本、组件等有机地组合在一
起,形成一个能够在服务器上运行的应用程序。由于ASP 技术的学习过程相对简单,现实世界需要提供更多的Web 服务来满足日益增长的信息需求,因而越来越多的人步入了ASP 开发者的行列。但ASP 的开发没有专门的IDE 来支持,也只有在IIS 中编译运行时才能发现错误,作为初学人员在实际脚本程序的开发过程中,很容易因为脚本出错造成的页面无法显示而产生畏难情绪。
1 ASP 常见错误分析
学习ASP 本身就要具备程序设计的基础,所以对于一些脚本语句不完整的错误通过文本编辑工具都可以解决。除此之外,就是IIS 运行时的对象和变量及函数调用的意外错误,此种错误一般在代码编写时很难发现,只能借助浏览器提示的错误信息进行判断。这里列出初学者在ASP 开发中常遇的
几类错误:1.1 信息丢失
主要分两种情况:第一种表单信息丢失。Web
应用中,表单是系统提供给用户的一个交互式界面,针对表单结构编写的脚本要保证其中的各项信息能够完整正确地传递给服务器,一旦出现信息丢失,就容易造成一条不完整的记录进入到数据库当中。第二种是URL 查询字符串参数值丢失。这主要是针对通过页面的连接过程传递若干参数,通常连接代码都写成<ahref=“modify.as p?id=<%=rs (“id ”)%>”>修改</a>这种形式,说明modify.asp 页面的请求通过这样的连接来实现,如果仅在地址栏的虚拟目录下输入文件名,那么就会出现如下的报错提示:
“MicrosoftJETDatabaseEn gine (0x80040E14)语法错误(操作符丢失)在查询表达式‘id=’中。
/m ysite/modif y.as p,第52行”。
这里需要说明的是报错出现在“第52行”,这是
5
2008年6月廊坊师范学院学报(自然科学版)
Jun.2008第8卷第3期
JournalofLan gfangTeachersColle ge (NaturnalScienceEdition )
Vol.8No.3
2008-02-18
1978-0
由于该句表达式中变量id没有获取到URL查询字符串传递过来的参数值而引发的错误。
1.2 数据库连接错误
ASP主要是通过ADO组件来完成对各种数据库如ACCESS,SQLSEVER等的访问,数据库的连接过程就是先通过设定Connection对象的连接字符串,然后通过该对象的Open方法建立连接,所以连接字符串是保证数据库连接成功的关键一步。
比较容易出现的就是这类报错:
MicrosoftOLEDBProviderforODBCDrivers
(0x80004005)
[Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序/m ysite/conn. asp,第3行
从上面的错误信息可以看出,这里所采用是ODBC数据源的连接方式,所以每当数据库的位置发生变化,不要忘记修改ODBC数据源中的DSN。
1.3 字段名冲突
在具体访问数据库表的过程中,在确保SQL语句中表名、字段名书写正确的情况下所出现的错误: MicrosoftJETDatabaseEn gine(0x80040E14)
FROM子句语法错误
(或者)
INSERTINTO语句语法错误
这类语法错误不指明出错的具体位置及原因,所以为了修改正确让程序员大伤脑筋。其实出错原因很简单,就是表名、字段名与系统关键字重名,常见的就是使用了“user”、“name”、“password”、“note”等标识充当了表名、字段名等。
1.4 访问权限
当前页面脚本发生错误Web应用系统的实现免不了要对数据库中的信息进行添加、删除、修改。在完成这一类操作时,容易遇到不允许操作的情况,报错信息如下: MicrosoftOLEDBProviderforODBCDrivers
(0x80004005)
[Microsoft][ODBCMicrosoftAccessDriver]不能更新。数据库或对象为只读。
出现这样的错误原因是该站点对于用户的写入权限是关闭的,这种问题常见于WindowsXP操作系统,出于安全的考虑,一般不允许外部用户对计算机的内部文件进行写入操作,所以只要在站点文件夹的“共享及安全”选项中给用户加入写入权限即可。
2 脚本的编写与调试技巧
ASP默认支持的脚本语言有VBScri pt和Jscript 两种,开发工具主要是UltraEdit或EditPlus这种基于文本特性的编辑器,还有就是Macromedia公司的Dreamweaver,这些工具可以加载不同的语法着定义,并支持代码缩进,便于程序员编写代码。
不管采用哪种编程语言、什么样的编辑器,都应当养成一个良好的编程习惯。为帮助初学者快速地到错误所在,正确实现代码功能,这里提出了几点脚本的编写和调试技巧:
(1)一是写程序前先想清楚程序的整个逻辑功能,比如要将记录集的逐条记录显示在浏览器端,那么就要使用循环语句来控制记录的逐条输出。再就是使用选择结构来判断记录集是否为空,一旦对空记录集进行操作,就会出现报错信息。二是注意代码的缩进和对齐。书写程序时,不使用缩进可能会出现很多不必要的语法错误。像“缺少end”等等这样的错误信息。一般函数体、过程体、循环体(for, while,do)、条件判断体(if)和条件选择(switch,case, select)需要向内缩进一格,同层次的代码在同层次的缩进层上。如此可以方便地查看条件判断和循环的代码内容。三是适当添加注释语句,以提高程序代码的可读性。
(2)把握“三个统一”。第一,标识表单各个元素名称的Name属性的值应与服务器脚本中用来接收这些元素值的request对象form集合中各个名称要统一;第二,程序文件中变量的名字要统一。因为VBScript默认的是不需强制对变量定义,这也就造成了当程序较长时,出现变量名写错的情况,所以当出现信息丢失时,首先要检查前后同一个变量名写的是否一致,而且最好在脚本的开始位置就使用“OptionEx plicit”强制定义变量;第三,程序代码中所出现的数据库名、表名、字段名要与该项目所使用的数据库名、表名、字段名一致。
(3)做好页面文件之间的链接。Web应用系统中文件种类较多,有静态的html文件、动态asp文件、样式文件等,而且很多的动态文件侧重的是实现功能(比如信息的添加、删除等操作),执行结束后就自动调转至其他页面,而浏览器端的用户是感觉不出这些文件的存在。非常重要的一点就是,这类文件在调用的过程中一定要加上查询字符串。
(下转56页)
5
第8卷第3期常婉纶:基于文本编辑方式下的ASP脚本调试技巧2008年6月
1
问题,为农村地区各类经济组织提供覆盖全国的结算服务,努力增强农村信用社全系统协作功能,实现信息资源共享,变单一的资金支持为多功能全方位的综合配套服务。
(3)建立健全内部控制制度。金融业的风险是客观存在的,但风险的大小又是可控的,控制风险关键在于制度。对于农信社而言,运转有效的信贷管理控制、授权批准控制、组织规划控制、文件记录控制、员工素质控制、内部报告控制、内部审核控制等,是其健康发展的保证。要建立扭亏增盈责任制,严格考核、建立健全农村信用社内部管理、岗位规范和相互制约的操作程序。所有农信社都应结合自身实际,研究并不断加强内部控制制度的建设,并以此为基础,促进全社员工增强风险意识,最大限度地防范和规避金融风险。
(4)建立严格的外部监督机制,完善风险补偿机制。国家监督是保证金融秩序稳定的前提,改革过渡时期,要特别注意防范和处置农村信用社风险,对可能出现支付风险的农村信用社,监管部门要及时提出
处置预案,并建立突发性支付风险的应急处理补偿机制。中央政府负责为农村政策性金融机构的发展壮大提供支持,包括适时充实资本金,提供低成本资金和融资担保等。地方应政府根据“谁决策、谁受益、谁补偿”的原则,对农村政策性金融在当地提供的金融服务形成的可以预见的价格亏损提供补贴。
(5)建立科学的人力资源管理制度。应建立健全科学的人力资源管理规章制度,并通过对农信社员工进行强制性的培训教育,提高员工的素质,规范员工的执业行为,逐步过渡到实行农信社员工资格准入制度。根据农信社工作性质,建议将农信社岗位初步分为客户经理和会计两大类,相应建立客户经理资格准入制度和会计资格准入制度。客户经理资格重在信贷业务知识的考核,会计资格侧重考核对财务会计知识的掌握。取得资格证的农信社员工还可根据业务知识、业务能力的不同分为不同层次,不同层次员工享受不同的薪酬,真正发挥薪酬对员工的正向激励作用,降低其逆向道德风险。
[参考文献]
[1]张玉喜.网络金融的风险管理研究[J].管理世界,2002,
(10).
[2]冉勇.论我国中央银行对网上银行的监管[J].财经科学,
2001,(2).
[3]倪建民,崔宇清.网上银行———风险识别与监管框架[J].
国际金融研究,2001,(3).
[4]L.Schmidt,&E。Hunter,TheValidit yandUtilit yofSe2
lectionMethodinPersonalPs ycholo gy:PracticalandTheo2 reticalIm plicationof85YearsofResearchFindin gs[J].Ps y2 chologyBulletin,1998,(2).
(上接51页)
  作为程序员所做的工作除了要将链接的URL 及查询字符串写正确,还要在上面提到的这类动态文件中加入相应的条件判断,判断传递过来的变量值是否有效,针对各种情况采用一定的调转语句,避免单独访问这类页面时出现前面所提到的错误信息。
(4)标记调试方法。有时为了知道程序执行到了哪个地方,通常在程序里加进一些标记,比如re2 sponse.write“abc”,然后将这句移动位置,这样就能确定程序到底有没有执行到我们希望到的地方。在调试循环的时候,常常需要输出循环控制变量的值到浏览器以帮助调试。
再就是一些由于是变量值引起的错误,比如数据库连接或记录集打开错误,通常在出错语句的前面输出
sql语句以确认sql语句没有错误。出于这个考虑,通常使用sql=“语句”setrs=execute(sql)来代替直接运行setrs=execute(“语句”),当语句出错时,可以很方便地在前面来个response.writes ql 来查看sql语句到底有没有问题。
总之,要想学好ASP就要克服初学过程中所遇到的种种困难,养成良好的程序书写风格,不断地在程序编写与调试中积累经验,成为一名优秀的开发人员。
[参考文献]
[1]高怡新.ASP网络应用程序设计[M].人民邮电出版社,
2005:139-155.
[2]韩国峰.ASP网站开发典型模块与实例精讲[M].电子工
业出版社,2007.7:16-25.
[3]黄天戌.ASP技术的出错处理[J].计算机系统应用,
2003,(3).
65
2008年6月廊坊师范学院学报(自然科学版)第8卷第3期