<script>ec(2);</script> 每次在操作数据库的时候最烦的就是根据表单提交的内容写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
|