欢迎光临
我们一直在努力

浅谈ASP编程的思路与纠错-ASP教程,ASP技巧

建站超值云服务器,限时71元/月

对于用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

%>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 浅谈ASP编程的思路与纠错-ASP教程,ASP技巧
分享到: 更多 (0)

相关推荐

  • 暂无文章