sundy原創 2004-11-02
資料庫設計的小**,表單多而操作簡單,一般就只有插入刪除修改等操作。每次都要重複寫插入修改的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=;server=sundy;database=test;uid=sa;pwd=;")
'表的主鍵欄位名
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
ifinstr(",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 & ""
")) & "
"'"end
select
ifields = ifields & ", "
" & _" & vbcrlf
idatafields = idatafields & ","
" & _ " & vbcrlf
updatesql = updatesql & ","
" & _ " & vbcrlf
endif
next
ifields = mid(ifields,1,len(ifields) - 9)
idatafields = mid(idatafields,1,len(idatafields) - 9)
insertsql = insertsql & ifields & ") values ("
" & _" & vbcrlf & idatafields & ")"
""updatesql = mid(updatesql,1,len(updatesql) - 9) & ""
" & _ " & vbcrlf & ""
" where " & keyfieldname & "="
" & request.querystring("
"" & keyfieldname & ""
")"end
ifconn.close()
set conn = nothing
%>
表名:"tablename" type="text" id="tablename" value="product_research">
關鍵字字段:"keyfield" type="text" id="keyfield" value="pf_id">
過濾「'」函式:"funquote" type="text" id="funquote" value="fixquote">"subtable" type="submit" id="subtable" value="submit">
insert sql:
<% response.write("
")%>
update sql:
<% response.write("
")%>
form>
實體類自動生成SQL插入執行語句
乙個簡單的根據實體類自動生成sql插入語句的例子 using system using system.collections.generic using system.collections.specialized using system.text using system.reflection ...
JDBC插入或修改的sql
merge into xi price a using select 108615 catentry id,101514 store id,1454.00 listprice,8.00 price,6.0 discount,updatetime,labelimg,labelposition,9.00...
關於SQL語句的自動生成!(一)
作者 peterxu blog.csdn blog http blog.csdn.net peterreg 在我們的日常程式設計中,資料庫的程式基本上都要與sql語句打交道,sql語句的編寫不可避免的成為乙個頭疼的工作。且因為sql語句是string型別,因此在編譯階段查不出錯,只有到執行時才能發現...