自动生成sql语句

作者:亮亮 来源:亮亮的博客 时间:2008-05-09 12:42:00 

每次在操作数据库的时候最烦的就是根据表单提交的内容写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
标签:sql,函数,Function,asp
0
投稿

猜你喜欢

  • 通过session在ASP中改善动态分页的性能

    2007-09-11 14:00:00
  • 轻设计,让网站灵敏轻便的6个技巧

    2009-12-07 21:26:00
  • mysql 各种时间段查询

    2010-01-06 13:37:00
  • 使用Canal实现PHP应用程序与MySQL数据库的实时数据同步

    2023-05-25 01:54:39
  • asp根据出生时间判断生肖

    2008-03-24 19:49:00
  • 如何确定Oracle数据库表重复的记录

    2010-07-26 13:23:00
  • 用画为5.12地震受灾同胞们祈福 Ⅱ

    2008-05-31 07:37:00
  • 比较简单的异步加载JS文件的代码

    2009-07-06 13:13:00
  • 在asp中通过vbs类实现rsa加密与解密

    2010-05-27 12:18:00
  • Oracle常用命令大全集

    2010-07-21 13:18:00
  • 设计可以量化吗?

    2009-06-12 12:12:00
  • 使用 XMLSPY 设计项目的 Schema 原型

    2010-08-24 18:25:00
  • 网页屏蔽鼠标左右键和键盘按键功能

    2007-10-17 21:30:00
  • 讲解数据库加密技术的功能特性与实现方法

    2008-12-18 14:24:00
  • 经验总结:ASP与存储过程解析

    2008-11-07 13:33:00
  • 如何恢复/修复SQL Server的MDF文件

    2008-11-24 15:30:00
  • 解析:怎样掌握SQL Server中的数据查询

    2009-01-19 13:30:00
  • 从事设计行业的十年

    2008-04-01 09:44:00
  • SWFObject1.5: 基于Javascript的Flash媒体版本检测与嵌入模块

    2009-08-06 18:02:00
  • 宽屏不是用来阅读的

    2009-04-05 15:59:00
  • asp之家 网络编程 m.aspxhome.com