浅谈ASP编程的思路与纠错

原创 2004年03月01日 10:11:00
对于用ASP技术编程的初学者来说,无从下手是第一感觉,笔者曾经有这么一段经历。经过一番"磨难"以后,你就会找到灵感。现将本人编程中积累的一些经验,拟成本文,奉献给读者。

1 首先要学习一些例子程序。

接到任务后,不要盲目地急于编写代码,而是先看一下别人成功的例子,然后在其上修改或模仿调试,这样会加快你熟悉的速度。例如,关于ASP编程的教科书上经常有这么一个例子出现,即显示系统当前时间的语句:<%=now()%> ,别看这么简单的一条语句,里边却包含了ASP的编程思想和格式,会给你后边的工作带来很大的帮助。比如说,测试IIS(Internet Information Server)WEB SERVER是否正常工作,用上边的一个语句测试就足够了。

2 在WINDOWS NT上安装ODBC后,要测试和后台数据库确实连通后,再开始编程测试。
可能您没有看懂题目的意思,我在这里解释一下:比如说,后台数据库是ORACLE,那么在NT SEVER上首先要安装SQL*NET(或NET 8),然后配置ODBC,确定和ORACLE数据库连通,可以用SQL*PLUS测试,还要选择和ORACLE数据库相同的字符集,这个工作要在注册表里完成。最后在ODBC里边测试和ORACLE数据库连通后,说明WEB SERVER 到后台数据库端的工作就完成了,下边再开始编程工作。反过来,你若先编程,后做ODBC的工作,那么你无法调试程序是否正确,可能大大降低编程效率。在ODBC配置中要选择MICROSOFT ODBC FOR ORACLE,不要选择ORACLE ODBC DRIVER,否则不能和数据库建立联系。

在ASP程序中,和数据库连接的语句是比较固定的,举例如下:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "odbclink","o7people","peoplepd"
在这里,odbclink是数据源的名字,可以说成是ODBC和数据库连接的定义,o7people是ORACLE的一个用户名,peoplepd是用户o7people的密码。
3 记录下出错信息,寻找纠错规律。
在编程、调试过程中,是一个出错、纠错的循环过程,但是时间长了,会发现一些规律,排除错误的效率会大大提高。
3.1 出错信息:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'
[Microsoft][ODBC driver for Oracle][Oracle]ORA-00933: SQL command not properly ended
/default.asp, 行781
这种错误,一般是在执行 Conn.Execute("SQL 语句")操作时,所定义的"SQL 语句"有问题,检查此语句就能发现问题,如日期格式不对,等等。
zhezhong
3.2 出错信息:
ADODB.Field 错误 '800a0bcd'
BOF 或 EOF 中有一个是"真",或者当前的记录已被删除,但应用程序要求操作的是当前的记录。
/lzjsblr.asp, 行123
这个错误,一般发生在执行下列语句的过程中:
set RS = Conn.Execute("SQL 语句" )
varnum1=RS(0)
RS.CLOSE
所取的值RS(0)无意义或无意义,还要检查"SQL 语句"的正确性。
3.3 出错信息:
Microsoft VBScript 编译器错误 错误 '800a0409'
未结束的字符串常量
/people/default.asp, 行86
insert_sql = insert_sql & dwdm & ",'" & d1 & "','" & t1 & "','" & t2 & "',
--------------------------------------------------------------------------^
次项错误也是出在SQL语句的定义上,检查引号、单引号等的配对情况。
4 下边是一个基于浏览器的网上用户注册登记程序,笔者在里边运用了一些技巧,奉献给感兴趣的读者。
<html>
<head>
……
<
<%'和数据库连接
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "odbclink","o7people","peoplepd"
'将选择的数据放入选择框
Set RS = Conn.Execute("SELECT dwmc FROM tab_dw order by dwdm")
%>
<% Do While Not RS.EOF %> <option><% = RS(0) %></option>
<%
RS.MoveNext
Loop
RS.Close
%>
<%
'定义变量
Dim D1,D2,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,csrq,sqrq
'事件触发按钮
B1="commit"
B2="return"
%>
<%
'将信息初始化
Sub Reset()
D1 = ""
……
T9 = date()
T10 = ""
End Sub
%>
<%
Call Reset()
%>
<%
'信息提交条件(触发条件)
if Request("B1") = "commit" Then 'Save Button
D1 = Request("D1")
set DWDM_RS = Conn.Execute("SELECT dwdm FROM table_dw where dwmc='"&D1&"' " )
DWDM=DWDM_RS(0)
DWDM_RS.CLOSE
D2 = Request("D2")
……
'日期数据转换成ORACLE识别的格式
csrq = DAY(T6) & "-" & month_array(Month(T6)) & "-" & Year(T6)
sqrq = DAY(T9) & "-" & month_array(Month(T9)) & "-" & Year(T9)
'定义SQL语句
Sql_insert = "INSERT INTO peopleuser(dwdm,dwmc,sjks,tele,address,zipcode,xm,xb,csrq,peoplename,peoplepd,sqsj,bz) VALUES ('"
Sql_insert = Sql_insert & DWDM & "','" & D1 & "','" & T1 & "','" & T2 & "','" & T3 & "','" & T4 & "','"
Sql_insert = Sql_insert &T5&"','"& D2 & "','" & CSRQ & "','" & T7 & "','" & T8 & "','" & SQRQ & "','"
Sql_insert = Sql_insert & T10 & "')"
'将信息入库
Set LFMC_R4 = Conn.Execute(Sql_insert)
'信息提交完成后,将屏幕信息初始化
call reset()
end if
%>

浅谈ASP编程的思路与纠错 作者:胡洪祥

对于用ASP技术编程的初学者来说,无从下手是第一感觉,笔者曾经有这么一段经历。经过一番"磨难"以后,你就会找到灵感。现将本人编程中积累的一些经验,拟成本文,奉献给读者。 1 首先要学习一些例子程序。接...
  • qunluo
  • qunluo
  • 2004年07月18日 21:49
  • 1113

浅谈人工智能

历史      各个文明中都有杰出的工匠发明了自动机器来代替人类劳动,早在春秋时期鲁班就发明了世界上第一个机器人,可在空中飞翔‘三日不下’;三国时期蜀汉的诸葛亮发明了‘木牛流马’来运送战备物资,称得上...
  • oba_gaga
  • oba_gaga
  • 2016年10月09日 20:57
  • 4207

码字的检错纠错

前言:任何编码方案都至少有三个参数: 码字长度d(数据字长度+校验位长度) 数据字长度k 最小汉明距离dmind_{min} 也即 C(n,k),dminC(n,k) ,d_{min}汉明距离...
  • minghu9
  • minghu9
  • 2015年11月11日 19:57
  • 620

编程困难没思路,我差到哪儿了?

【来信】老师您好!  我是一名计算机专业大二的学生,我现在在做一系列c语言竞赛一些容易的题目,可是我发现我碰到的问题会很没有思路,不知道方向,看见网上的很多同学都能够解决,而我却不能,我不知道自己差到...
  • sxhelijian
  • sxhelijian
  • 2012年09月15日 08:32
  • 9210

给初学编程解题没思路的学生的建议

一个通过评论完成的答疑——学生:老师,最近一直用您的C++程序设计课程学习和练习,老师给的答案详细明了,很容易懂,但是有些在自己写的时候很难想到,尤其是像类似于本文程序中对“输入的时间d天后是哪年哪月...
  • sxhelijian
  • sxhelijian
  • 2013年10月12日 16:14
  • 5282

CRC循环冗余检测码 及其 检错纠错

知识环境:    数据校验码:通常三种:奇偶校验码;海明校验码;循环冗余校验码。循环冗余码(CRC):    主要用于串行传送,网络,同步通信及磁表面存储等场合。即给信息码右边加上几位校验码,以增加整...
  • wumaosen
  • wumaosen
  • 2009年12月20日 21:03
  • 5783

SSD纠错码向LDPC码演变

作者:Stephen Bates                 SSD控制器芯片中采用的纠错编码(ECCs)的类型正在发生一场演变,相信许多这篇博文的读者对此都有所了解。传统上采用的纠错码是基于群...
  • u014602076
  • u014602076
  • 2014年04月28日 14:22
  • 5523

浅谈人工智能:现状、任务、构架与统一 | 正本清源

朱松纯   加州大学洛杉矶分校UCLA 统计学和计算机科学教授 视觉、认知、学习与自主机器人中心主任 VCLA@UCLA   2017年11月02日 刊登于 《视觉求索》微信公众号 目...
  • x32sky
  • x32sky
  • 2017年11月03日 17:37
  • 1665

校验码中码距与纠错能力的关系

纠错编码的基本原理 1、        基本概念 为了方便对差错编码原理进行叙述下面先介绍一些基本术语。 1、        信息码元——指进行差错编码前送入的原始信息编码。 2、      ...
  • yunkai666
  • yunkai666
  • 2012年10月13日 22:01
  • 3726

CRC码校验纠错原理

在接收端收到了CRC码后用生成多项式为G(x)去做模2除,若得到余数为0,则码字无误。若如果有一位出错,则余数不为0,而且不同位出错,其余数也不同。可以证明,余数与出错位的对应关系只与码制及生成多项式...
  • gowyz
  • gowyz
  • 2012年04月17日 11:20
  • 8329
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈ASP编程的思路与纠错
举报原因:
原因补充:

(最多只允许输入30个字)