|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。汇合|语句别的思索
接近函数的顶部,您会注重到我们利用了replace函数,把数据中的每一个单引号交换成两个单引号。这是由于SQL翻译器利用单引号做为字符串的分开符,假如数据中有单引号,就会形成SQL注释毛病。把一个单引号转换成两个单引号,能够确保SQL翻译器在文本中准确到场单引号。
到了如今,就只剩下两个成绩要办理:空值Null及从终极SQL语句中省略字段。列表D中到场了这两个成绩的代码。
列表D:buildSQLInsert函数的终极版。
<%
functionbuildSQLInsert(targetTable,omitFields)
iStr="insertinto"&targetTable&""
vStr="values("
nStr="("
在表单汇合中轮回,并创建起SQL语句的构成部分
foreachxinrequest.form
fieldName=uCase(x)
判别字段是不是被省略?
ifinStr(uCase(omitFields),x)=0then
fieldData=replace(request.form(fieldName),_
"","")
假如没无数据,就拔出NULL
iftrim(fieldData)=""then
fieldData="NULL"
vStr=vStr&fieldData&","
nStr=nStr&fieldName&","
else
typeDelimPos=inStr(fieldName,"_")
iftypeDelimPos=0then
是文本字段
创建字段名列表
nStr=nStr&fieldName&","
vStr=vStr&""&fieldData&","
else
字段是别的范例
fieldType=left(fieldName,typeDelimPos-1)
fieldName=mid(fieldName,typeDelimPos+1)
把字段名到场称号列表
nStr=nStr&fieldName&","
把字段范例酿成年夜写以确保婚配
selectcaseuCase(fieldType)
case"NUM"
vStr=vStr&fieldData&","
把不明范例按文本型处置
caseelse
vStr=vStr&""&fieldData&","
endselect
endif
endif
endif
next
把开头的","从我们创建的字符串中往失落
vStr=left(vStr,len(vStr)-2)&")"
nStr=left(nStr,len(nStr)-2)&")"
把SQL语句整合起来
buildSQLInsert=iStr&nStr&vStr
endfunction
iftrim(request("fName")&request("lname")&request("age"))""then
response.write(buildSQLInsert("")&"<BR<")
response.write(buildSQLInsert("NUM_AGE")&"<BR>")
response.write(buildSQLInsert("lname,fname")&"<BR>")
response.write(buildSQLInsert("mycheckbox,fname")&
=<"<BR<")
else
%>
<html>
<body>
<formname=fmethod=postaction="列表4.asp">
Gimmeyour:<br>
FirstName:<inputtype=textname="fName"<<br>
LastName:<inputtype=textname="lName"<<br>
Age:<inputtype=textname="num_age"<<br>
<inputtype="checkbox"value="Y"name="MyCheckBox"<Doyouwantthischecked?<br>
<inputtype="submit"value="Submit">
</form>
</body>
</html>
<%
endif
%>
空值Null的处置相称复杂。假如我们收到的字段为空,我们就在终极SQL字段中放空值。这很复杂,主要的是要注重:利用这类办法的条件是,在做此项操纵之前,已对表双数据举行过校验。比方,假如您的数据库不同意fname利用空值,您就要在向ASP代码提交数据之前,确保用户填写了这个字段。(客户端JavaScript做这件事十分优异。)
别的一个成绩是,偶然您大概不想在SQL语句中包括某个字段。列表D经由过程在函数中增添omitFields参数(省略字段)来办理这个成绩。在这个参数中传送的任何字段名城市被扫除在终极SQL语句以外。假如要省略不止一个字段,只需用逗号分开便可。假如不想省略任何字段,只需给函数传送一个空字符串("")便可。注重,要按字段在HTML文件中的称号来传送字段名,而不要按字段在数据库中的称号来传送(比方,传送num_age,而不是age。)
</p>楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|