每次在操作数据库的时候最烦的就是根据表单提交的内容写sql语句特别是字段比较多的时候很麻烦动不动就容易写错所以我就写了下面的生成sql语句的函数用了用觉得还可以
程序代码
<%
========以下所有函数都没有加入容错机制所以一定要保证参数的正确性========
================参数说明================
此Function返回的是插入数据的sql语句
注意使用此Function必须使form里的字段名和数据库里的字段名一致
并且按钮不能为submit要为button通过JavaScript的submit方法提交表单
objForm必须为requestForm
tbName为插入数据的表名
numStr为不需要用单引号引起来的字段字段之间用逗号()分割没有请用代替
=======================================
Function insertStr(objFormtbNamenumStr)
dim tbField()
dim tbfieldVal()
i=
for each objItem in objForm
redim preserve tbField(i)
tbField(i)=objItem
redim preserve tbfieldVal(i)
numPos=instr(numStrobjItem)
if numPos<> then
tbfieldVal(i)=trim(objForm(objItem))
else
tbfieldVal(i)=&trim(objForm(objItem))&
end if
i=i+
next
insertStr=insert into &tbName&(&join(tbField)&) values(&join(tbfieldVal)&)
End Function
===================参数说明=========================
此Function返回的更新数据的sql语句
注意使用此Function必须使form里的字段名和数据库里的字段名一致
并且按钮不能为submit要为button通过Javascript的submit方法提交表单
objForm必须为requestForm
tbName为更新数据的表名
whereField为更新的条件字段有多个请用()分割
whereJoin为更新的条件字段有多个时设置是and还是or
numStr为不需要用单引号引起来的字段字段之间用逗号()分割没有请用代替
===================================================
Function updateStr(objFormtbNamewhereFieldwhereJoinnumStr)
dim setFieldVal()
dim whereStrArr()
i=
t=
for each objItem in objForm
wherePos=instr(whereFieldobjItem)
if wherePos= then
redim preserve setFieldVal(i)
numPos=instr(numStrobjItem)
if numPos<> then
setFieldVal(i)=objItem&=&trim(objForm(objItem))
else
setFieldVal(i)=objItem&=&trim(objForm(objItem))&
end if
i=i+
else
redim preserve whereStrArr(t)
numPos=instr(numStrobjItem)
if numPos<> then
whereStrArr(t)=objItem&=&trim(objForm(objItem))
else
whereStrArr(t)=objItem&=&trim(objForm(objItem))&
end if
t=t+
end if
next
wherePos=instr(whereField)
if wherePos<> then
whereStr= where &join(whereStrArr &whereJoin& )
else
whereStrArray=whereStrArr
whereStr= where &whereStrArray()
end if
updateStr=update &tbName& set &join(setFieldVal)&whereStr
End Function
==============参数说明=================
此Function返回更新数据的sql语句
只是更新条件不是通过form提交过来的比如session等
conditions为更新的条件
numStr为不需要用单引号引起来的字段字段之间用逗号()分割没有请用代替
======================================
Function updateStr(objFormtbNameconditionsnumStr)
dim setFieldVal()
i=
for each objItem in objForm
redim preserve setFieldVal(i)
numPos=instr(numStrobjItem)
if numPos<> then
setFieldVal(i)=objItem&=&trim(replace(objForm(objItem)))
else
setFieldVal(i)=objItem&=&trim(replace(objForm(objItem)))&
end if
i=i+
next
updateStr=update &tbName& set &join(setFieldVal)& where &conditions
End Function