`
happmaoo
  • 浏览: 4337909 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

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

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

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

在ASP程序中,和数据库连接的语句是比较固定的,举例如下:
SetConn=Server.CreateObject("ADODB.Connection")
Conn.Open"odbclink","o7people","peoplepd"
在这里,odbclink是数据源的名字,可以说成是ODBC和数据库连接的定义,
o7people是ORACLE的一个用户名,peoplepd是用户o7people的密码。
3记录下出错信息,寻找纠错规律。
在编程、调试过程中,是一个出错、纠错的循环过程,但是时间长了,
会发现一些规律,排除错误的效率会大大提高。
3.1出错信息:
MicrosoftOLEDBProviderforODBCDrivers错误’80040e14’
[Microsoft][ODBCdriverforOracle][Oracle]ORA-00933:SQLcommandnotproperlyended
/default.asp,行781
这种错误,一般是在执行Conn.Execute("SQL语句")操作时,
所定义的"SQL语句"有问题,检查此语句就能发现问题,如日期格式不对,等等。
zhezhong
3.2出错信息:
ADODB.Field错误’800a0bcd’
BOF或EOF中有一个是"真",或者当前的记录已被删除,但应用程序要求操作的是当前的记录。
/lzjsblr.asp,行123
这个错误,一般发生在执行下列语句的过程中:
setRS=Conn.Execute("SQL语句")
varnum1=RS(0)
RS.CLOSE
所取的值RS(0)无意义或无意义,还要检查"SQL语句"的正确性。
3.3出错信息:
MicrosoftVBScript编译器错误错误’800a0409’
未结束的字符串常量
/people/default.asp,行86
insert_sql=insert_sql&dwdm&",’"&d1&"’,
’"&t1&"’,’"&t2&"’,
--------------------------------------------------------------------------^
次项错误也是出在SQL语句的定义上,检查引号、单引号等的配对情况。
4下边是一个基于浏览器的网上用户注册登记程序,
笔者在里边运用了一些技巧,奉献给感兴趣的读者。
<html>
<head>
……
<
<%’和数据库连接
SetConn=Server.CreateObject("ADODB.Connection")
Conn.Open"odbclink","o7people","peoplepd"
’将选择的数据放入选择框
SetRS=Conn.Execute("SELECTdwmcFROMtab_dworderbydwdm")
%>
<%DoWhileNotRS.EOF%><option><%=RS(0)%></option>
<%
RS.MoveNext
Loop
RS.Close
%>
<%
’定义变量
DimD1,D2,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,csrq,sqrq
’事件触发按钮
B1="commit"
B2="return"
%>
<%
’将信息初始化
SubReset()
D1=""
……
T9=date()
T10=""
EndSub
%>
<%
CallReset()
%>
<%
’信息提交条件(触发条件)
ifRequest("B1")="commit"Then’SaveButton
D1=Request("D1")
setDWDM_RS=Conn.Execute("SELECTdwdmFROMtable_dwwheredwmc=’"&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="INSERTINTOpeopleuser(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&"’)"
’将信息入库
SetLFMC_R4=Conn.Execute(Sql_insert)
’信息提交完成后,将屏幕信息初始化
callreset()
endif
%>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics