自动生成sql语句
作者:亮亮 来源:亮亮的博客 发布时间:2008-05-09 12:42:00
标签:sql,函数,Function,asp
每次在操作数据库的时候最烦的就是根据表单提交的内容写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


猜你喜欢
- python代码 for i, para in enumerate(self._net.module.featur
- 本文实例讲述了Python实现的三层BP神经网络算法。分享给大家供大家参考,具体如下:这是一个非常漂亮的三层反向传播神经网络的python实
- 前言自动化测试中我们存放数据无非是使用文件或者数据库,那么文件可以是csv,xlsx,xml,甚至是txt文件,通常excel文件往往是我们
- 本文是从百度百科中摘录出来的,asp在it中还有Application Service Provider,也就是应用服务供应商的意思。概述A
- PHP下载图片后文件打开显示损坏问题用php写个图片下载方法,测试发现下载的图片大小都没问题,但是无法打开文件。解决方法如下:首先打开文件下
- redis-pyredis-py是Python操作Redis的第三方库,它提供了与Redis服务器交互的API。GitHub地址:https
- 我们平日办公时用得最多的软件是Execl、Word或WPS Office等,你的计算机中一定储存着大量的XLS、DOC、WPS文件吧!网页制
- 使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑
- 开发环境:python版本2.X#!/usr/bin/env python# -*- coding:utf-8 -*-# 适合python版
- 楔子pandas 支持我们从 Excel、CSV、数据库等不同数据源当中读取数据,来构建 DataFrame。但有时数据并不来自这些外部数据
- 模拟浏览器进行网页加载,当requests,urllib无法正常获取网页内容的时候一、声明浏览器对象注意点一,Python文件名或者包名不要
- 引言通常,您可能希望在 Pandas DataFrame 中插入一个新列。幸运的是,使用 pandas insert()函数很容易做到这一点
- pytho的使用和分发完全是免费的,它是一种面向对象的语言,它的。它的类模块支持多态,操作符重载和多重继承等高级概念,并且以python特有
- 我们先看一个简单的例子:<input type="text" onblur="alert(this.va
- 方法说明: 同步版的fs.writeFile() 。语法:fs.writeFileSync(filename, data, [o
- MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(
- 实现方法: 建立一个用户附加表InviteUser_NewUser,结构如下: 然后跟着我的思路走: 用户接这个链接后 =》 进
- 假设有一个表,结构如下:mysql> CREATE TABLE `a` ( `id
- 每次在"万达影城"网上购票总会用到左上角选择城市的功能。如下:今天就在ASP.NET MVC中实现一下。我想最好的方式应
- 通过网上查找资料了解关于性能优化方面的内容,现简单整理,仅供大家在优化的过程中参考使用,如有什么问题请及时提出,再做出相应的补充修改。 一、