每次在操作数据库的时候最烦的就是根据表单提交的内容写sql语句,特别是字段比较多的时候很麻烦,动不动就容易写错。所以我就写了下面的生成sql语句的函数,用了用觉得还可以。
程序代码:
<%
'========以下所有函数都没有加入容错机制,所以一定要保证参数的正确性========
'================参数说明================
'此Function返回的是插入数据的sql语句
'注意:使用此Function必须使form里的字段名和数据库里的字段名一致
'并且按钮不能为submit,要为button,通过javascript的submit方法提交表单
'objForm必须为request.Form
'tbName为插入数据的表名
'numStr为不需要用单引号引起来的字段,字段之间用逗号(,)分割,没有请用""代替
'=======================================
Function insertStr(objForm,tbName,numStr)
dim tbField()
dim tbfieldVal()
i=0
for each objItem in objForm
redim preserve tbField(i)
tbField(i)=objItem
redim preserve tbfieldVal(i)
numPos=instr(numStr,objItem)
if numPos<>0 then
tbfieldVal(i)=trim(objForm(objItem))
else
tbfieldVal(i)="'"&trim(objForm(objItem))&"'"
end if
i=i+1
next
insertStr="insert into "&tbName&"("&join(tbField,",")&") values("&join(tbfieldVal,",")&")"
End Function
'===================参数说明=========================
'此Function返回的更新数据的sql语句
'注意:使用此Function必须使form里的字段名和数据库里的字段名一致
'并且按钮不能为submit,要为button,通过javascript的submit方法提交表单
'objForm必须为request.Form
'tbName为更新数据的表名
'whereField为更新的条件字段,有多个请用(,)分割
'whereJoin为更新的条件字段有多个时设置是and还是or
'numStr为不需要用单引号引起来的字段,字段之间用逗号(,)分割,没有请用""代替
'===================================================
Function updateStr(objForm,tbName,whereField,whereJoin,numStr)
dim setFieldVal()
dim whereStrArr()
i=0
t=0
for each objItem in objForm
wherePos=instr(whereField,objItem)
if wherePos=0 then
redim preserve setFieldVal(i)
numPos=instr(numStr,objItem)
if numPos<>0 then
setFieldVal(i)=objItem&"="&trim(objForm(objItem))
else
setFieldVal(i)=objItem&"='"&trim(objForm(objItem))&"'"
end if
i=i+1
else
redim preserve whereStrArr(t)
numPos2=instr(numStr,objItem)
if numPos2<>0 then
whereStrArr(t)=objItem&"="&trim(objForm(objItem))
else
whereStrArr(t)=objItem&"='"&trim(objForm(objItem))&"'"
end if
t=t+1
end if
next
wherePos2=instr(whereField,",")
if wherePos2<>0 then
whereStr=" where "&join(whereStrArr," "&whereJoin&" ")
else
whereStrArray=whereStrArr
whereStr=" where "&whereStrArray(0)
end if
updateStr="update "&tbName&" set "&join(setFieldVal,",")&whereStr
End Function
'==============参数说明=================
'此Function返回更新数据的sql语句
'只是更新条件不是通过form提交过来的比如session等
'conditions为更新的条件
'numStr为不需要用单引号引起来的字段,字段之间用逗号(,)分割,没有请用""代替
'======================================
Function updateStr2(objForm,tbName,conditions,numStr)
dim setFieldVal()
i=0
for each objItem in objForm
redim preserve setFieldVal(i)
numPos=instr(numStr,objItem)
if numPos<>0 then
setFieldVal(i)=objItem&"="&trim(replace(objForm(objItem),"'",""))
else
setFieldVal(i)=objItem&"='"&trim(replace(objForm(objItem),"'",""))&"'"
end if
i=i+1
next
updateStr2="update "&tbName&" set "&join(setFieldVal,",")&" where "&conditions
End Function
创造与魔法 安卓版v1.0.0750
创造与魔法是一款开放世界手游,在游戏中玩家可探索这个奇妙的世
创造与魔法修改版 最新版v1.0.0750
创造与魔法无限点券版是款探索冒险游戏,该款游戏的操作还是蛮自
战争与文明官方版本 安卓版v1.7.16
战争与文明是一款由上海邮通科技有限公司开发的战争策略游戏,这
迷你世界0元领皮肤无限迷你币版 最新安卓版v1.43.0
迷你世界0元购买皮肤版是这款开放沙盒冒险建造游戏的特殊破解版
创造与魔法无限经验版 安卓版v1.0.0750
创造与魔法无限经验版是款可以改造环境,整个游戏的自由度还是蛮