因胸联盟 发表于 2015-1-16 23:16:39

ASP网页设计利用表单汇合创建SQL语句3

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做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。

第二个灵魂 发表于 2015-1-20 08:51:14

不能只是将它停留在纸上谈兵的程度上。

爱飞 发表于 2015-1-24 08:40:59

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

简单生活 发表于 2015-1-24 15:26:01

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

海妖 发表于 2015-1-30 16:46:04

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

不帅 发表于 2015-2-3 13:17:28

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

金色的骷髅 发表于 2015-2-9 02:27:36

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

精灵巫婆 发表于 2015-2-26 18:29:44

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

再见西城 发表于 2015-3-22 20:12:38

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

谁可相欹 发表于 2015-3-22 20:12:38

那么,ASP.Net有哪些改进呢?
页: [1]
查看完整版本: ASP网页设计利用表单汇合创建SQL语句3