快速业务通道

asp根据表单自动生成sql语句的函数

作者 佚名技术 来源 ASP编程 浏览 发布时间 2012-03-12

WebjxCom提示:每次在操作数据库的时候最烦的就是根据表单提交的内容写sql语句,特别是字段比较多的时候很麻烦,动不动就容易写错。所以我就写了下面的生成sql语句的函数,用了用觉得还可以。

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

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号