打印本文 打印本文 关闭窗口 关闭窗口
自动生成插入,修改的SQL
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2013  更新时间:2007/11/14 12:55:40  文章录入:mintao  责任编辑:mintao
    数据库设计的小网站,表单多而操作简单,一般就只有插入删除修改等操作。每次都要重复写插入修改的SQL,
是不是觉得很麻烦呢,我是这么觉得,所以,自己写了一个自动产生插入,修改的SQL,就方便多了,一下是ASP代码,
对ACCESS,SQL Server都适用。如果对你有帮助,可以拿去用用,还可以改进。

<%
Dim tableName,strSQL,rsFields,fieldsCount,totalCount
Dim insertSQL,iFields,iDataFields,updateSQL,deleteSQL
Dim keyFieldName,funQuote
Dim conn
dim dbPath
''''SQL SERVER 连接字符串
''''conn.Open("Driver={sql server};server=sundy;database=test;uid=sa;pwd=;")
Set conn = Server.CreateObject("ADODB.Connection")
''''下面以Access数据库为例
dbconn = "driver={Microsoft Access Driver (*.mdb)};dbq=" & SERVER.MapPath("data/db.mdb")
conn.open dbconn

''''表的主键字段名
keyFieldName = request.Form("keyfield")
''''用于过滤提交表单中的“''''“的函数名
funQuote = request.Form("funQuote")
''''表名
tableName = request("tableName")
If request.Form("subTable")<> "" Then
    strSQL = "Select Top 1 * From " & tableName
    set rsFields = Server.CreateObject("Adodb.recordset")
    rsFields.open strSQL,conn,1,1
    fieldsCount = rsFields.Fields.count
    insertSQL = """INSERT INTO " & tableName & "("" & _" & vbCrlf
    updateSQL = """UPDATE " & tableName & SET "" & _" & vbCrlf
    For i = 0 TO fieldsCount - 1
        If INSTR(",3,202,203,","," & rsFields.fields(i).type & ",") > 0 AND Ucase(rsFields.fields(i).name) <> Ucase(keyFieldName) Then
            iFields  = iFields & """" & rsFields.Fields(i).name
            Select case rsFields.fields(i).type
                case 3 ''''INT
                    iDataFields  = iDataFields & """"" & request.Form(""" & rsFields.fields(i).name & """) & """
                    updateSQL = updateSQL & """" & rsFields.Fields(i).name & "="" & request.Form(""" & rsFields.fields(i).name & """) & """
                case 202 ''''CHAR
                    iDataFields  = iDataFields & """''''"" & " & funQuote & "(request.Form(""" & rsFields.fields(i).name & """)) & ""''''"
                    updateSQL = updateSQL & """" & rsFields.Fields(i).name & "=''''"" & " & funQuote & "(request.Form(""" & rsFields.fields(i).name & """)) & ""''''"
                case 203 ''''TEXT
                    iDataFields  = iDataFields & """''''"" & " & funQuote & "(request.Form(""" & rsFields.fields(i).name & """)) & ""''''"
                    updateSQL = updateSQL & """" & rsFields.Fields(i).name & "=''''"" & " & funQuote & "(request.Form(""" & rsFields.fields(i).name & """)) & "

[1] [2]  下一页

打印本文 打印本文 关闭窗口 关闭窗口