列表 D: buildSQLInsert函数的最终版。
1
2function buildSQLInsert( targetTable, omitFields)
3iStr = "insert into " & targetTable & " "
4vStr = "values ("
5nStr = "("
6' 在表单集合中循环,并建立起SQL语句的组成部分
7for each x in request.form
8fieldName = uCase(x)
9' 判断字段是否被省略?
10if inStr(uCase(omitFields),x) = 0 then
11fieldData = replace(request.form(fieldName), _
12"'", "''")
13' 如果没有数据,就插入 NULL
14if trim(fieldData) = "" then
15fieldData = "NULL"
16vStr = vStr & fieldData & ", "
17nStr = nStr & fieldName & ", "
18else
19typeDelimPos = inStr(fieldName, "_")
20if typeDelimPos = 0 then
21' 是文本字段
22' 建立字段名列表
23nStr = nStr & fieldName & ", "
24vStr = vStr & "'" & fieldData & "', "
25else
26' 字段是其它类型
27fieldType = left(fieldName, typeDelimPos - 1)
28fieldName = mid(fieldName, typeDelimPos + 1)
29' 把字段名加入名称列表
30nStr = nStr & fieldName & ", "
31' 把字段类型变成大写以确保匹配
32select case uCase(fieldType)
33case "NUM"
34vStr = vStr & fieldData & ", "
35'把不明类型按文本型处理
36case else
37vStr = vStr & "'" & fieldData & "', "
38end select
39end if
40end if
41end if
42next
43
44' 把结尾的", " 从我们建立的字符串中去掉
45vStr = left(vStr, len(vStr) - 2) & ")"
46nStr = left(nStr, len(nStr) - 2) & ") "
47
48' 把SQL语句整合起来
49buildSQLInsert = iStr & nStr & vStr
50end function
51
52
53if trim(request("fName")&request("lname")&request("age")) <> "" then
54response.write( buildSQLInsert("") & "
<br<") "<br="" &="" buildsqlinsert("num_age")="" response.write(="">")
response.write( buildSQLInsert("lname,fname") & "<br/>")
response.write( buildSQLInsert("mycheckbox,fname") &
=<"<br<") <html="" ```="" else="">
1
2end if
列表 D: buildSQLInsert函数的最终版。
1
2function buildSQLInsert( targetTable, omitFields)
3iStr = "insert into " &amp; targetTable &amp; " "
4vStr = "values ("
5nStr = "("
6' 在表单集合中循环,并建立起SQL语句的组成部分
7for each x in request.form
8fieldName = uCase(x)
9' 判断字段是否被省略?
10if inStr(uCase(omitFields),x) = 0 then
11fieldData = replace(request.form(fieldName), _
12"'", "''")
13' 如果没有数据,就插入 NULL
14if trim(fieldData) = "" then
15fieldData = "NULL"
16vStr = vStr &amp; fieldData &amp; ", "
17nStr = nStr &amp; fieldName &amp; ", "
18else
19typeDelimPos = inStr(fieldName, "_")
20if typeDelimPos = 0 then
21' 是文本字段
22' 建立字段名列表
23nStr = nStr &amp; fieldName &amp; ", "
24vStr = vStr &amp; "'" &amp; fieldData &amp; "', "
25else
26' 字段是其它类型
27fieldType = left(fieldName, typeDelimPos - 1)
28fieldName = mid(fieldName, typeDelimPos + 1)
29' 把字段名加入名称列表
30nStr = nStr &amp; fieldName &amp; ", "
31' 把字段类型变成大写以确保匹配
32select case uCase(fieldType)
33case "NUM"
34vStr = vStr &amp; fieldData &amp; ", "
35'把不明类型按文本型处理
36case else
37vStr = vStr &amp; "'" &amp; fieldData &amp; "', "
38end select
39end if
40end if
41end if
42next
43
44' 把结尾的", " 从我们建立的字符串中去掉
45vStr = left(vStr, len(vStr) - 2) &amp; ")"
46nStr = left(nStr, len(nStr) - 2) &amp; ") "
47
48' 把SQL语句整合起来
49buildSQLInsert = iStr &amp; nStr &amp; vStr
50end function
51
52
53if trim(request("fName")&amp;request("lname")&amp;request("age")) &lt;&gt; "" then
54response.write( buildSQLInsert("") &amp; "<br<") "<br="" &="" buildsqlinsert("num_age")="" response.write(="">")
55response.write( buildSQLInsert("lname,fname") &amp; "<br/>")
56response.write( buildSQLInsert("mycheckbox,fname") &amp;
57=&lt;"<br<") <html="" ```="" else="">
58<body>
59<form action="列表4.asp" method="post" name="f">
60Gimme your:<br/>
61First Name: <input <<br="" name="fName" type="text"/>
62Last Name: <input <<br="" name="lName" type="text"/>
63Age: <input <<br="" name="num_age" type="text"/>
64<input <do="" checked?<br="" name="MyCheckBox" this="" type="checkbox" value="Y" want="" you=""/>
65<input type="submit" value="Submit"/>
66</form>
67</body>
68
69
end if