非常有价值的代码,下面的代码是使用adsi
的对象数据库概念编制成的,只要你理解了
我在前面文章说的东西,下面的代码只不过是adsi牛刀小试而已
只要有了下面这个思路,以后不论是对付什么数据库,就是不知道
数据库的结构也不用害怕了。
<%
— define dsn names in array
database_list=array("dsn_1","dsn_2","dsn_3")
— enable deleting table? — carefull!!
strenabledeletetable = false
—- end declaration
—- do not change code below this line ———————————————
field_value=array("integer","double","char(255)","memo","date","currency","yesno")
field_display=array("integer","number","text","memo","date/time","currency","yes/no")
dsn_name = request("databasename")
if not dsn_name = "" then
set con = server.createobject("adodb.connection")
con.open "dsn=" & dsn_name
end if
table_name = request("tablename")
if request("addnewtable")<>"" then
if request("newtablename") <> "" then
sql = "create table " & request("newtablename") & " (fldauto counter)"
con.execute(sql)
end if
end if
if request("addnewfield")<>"" then
if request("newfieldname") <> "" then
sql = "alter table " & table_name & " add " & request("newfieldname") & " " & request("newfieldtype") & " null"
con.execute(sql)
end if
end if
if request("deletetable")<>"" then
sql = "drop table " & request("tablename")
con.execute(sql)
end if
if request("deletecolumn")<>"" then
for each item in request("deletecol")
sql = "alter table " & request("tablename") & " drop " & item
con.execute(sql)
next
end if
—– file name——————————————————–
file = request.servervariables("script_name")
file = strreverse(file)
pos = instr(file,"/")
file = left(file, pos-1)
file = strreverse(file)
%>
<%
response.write "<!doctype html public ""-//w3c//dtd html 3.2 final//en"">"
response.write "<html><head><title>database control</title></head>"
response.write "<body bgcolor=""#ffffff""><br><br><center>"
————————————————————
response.write "<form action=""" & file & """ method=post>"
response.write "<b><font face=verdana size=3 color=""#008080""><u>total database control</u></font></b><br><br>"
response.write "<font face=verdana,arial size=2><b>database name: </b></font>"
response.write "<select name=""databasename"">"
for i = 0 to ubound(database_list)
if database_list(i) = request("databasename") then
response.write "<option value=""" & database_list(i) & """ selected>" & database_list(i)
else
response.write "<option value=""" & database_list(i) & """>" & database_list(i)
end if
next
response.write "</select> "
response.write "<input type=submit name=godatabase value=go>"
response.write "<hr></form>"
————————————————————-
response.write "<form action=""" & file & "?databasename=" & server.urlencode(dsn_name) & """ method=post>"
if dsn_name<>"" then
set table = con.openschema (20)
response.write "<font face=verdana,arial size=2>table names in " & dsn_name & ": </font><select name=tablename>"
while not table.eof
tblname = table("table_name")
if left(tblname,4) <> "msys" and left(tblname,3) <> "sys" and left(tblname,4) <> "rtbl" then
if tblname = table_name then
response.write "<option value=""" & tblname & """ selected>" & tblname
else
response.write "<option value=""" & tblname & """>" & tblname
end if
end if
table.movenext
wend
response.write "</select>"
response.write "<input type=submit name=table value=go>"
if strenabledeletetable = true then
response.write " <input type=submit name=deletetable value=delete>"
end if
response.write "</form>"
response.write "<form action=""" & file & "?databasename=" & server.urlencode(dsn_name) & """ method=post>"
response.write "<table><tr>"
response.write "<td colspan=2><font face=verdana,arial size=2 color=""#ff0000"">add new table into " & dsn_name & "</font></td>"
response.write "</tr><tr>"
response.write "<th><font face=verdana,arial size=2>table name:</font></th>"
response.write "<td><input type=text name=newtablename></td>"
response.write "</tr><tr>"
response.write "<td colspan=2 align=center><input type=submit name=addnewtable value=""add new table""></td></tr></table>"
response.write "</form><hr>"
end if
if table_name <> "" and request("deletetable")="" then
response.write "<form action=""" & file & "?databasename=" & server.urlencode(dsn_name) & "&tablename=" & table_name & """ method=post>"
response.write "<table border=2 align=center cellpadding=2 cellspacing=2>"
response.write "<tr>"
response.write "<th colspan=4 align=left><font face=verdana,arial size=3 color=teal>" & table_name & "</font></th>"
response.write "</tr><tr><th><font face=verdana,arial size=2>field name</font></th>"
response.write "<th><font face=verdana,arial size=2>field size</font></th>"
response.write "<th><font face=verdana,arial size=2>field datatype</font></th>"
response.write "<th><font face=verdana,arial size=2>delete</font></th></tr>"
sql = "select * from " & table_name
set rs = con.execute(sql)
for each fldname in rs.fields
response.write "<tr>"
response.write "<td><font face=verdana,arial size=2 color=""#000000"">" & fldname.name & "</font></td>"
response.write "<td><font face=verdana,arial size=2 color=""#000000"">" & fldname.definedsize & "</font></td>"
response.write "<td><font face=verdana,arial size=2 color=""#000000"">" & gettypename(fldname.type) & "</font></td>"
response.write "<td align=center><input type=checkbox name=deletecol value=""" & fldname.name & """></td>"
response.write "</tr>"
next
response.write "<tr><td colspan=4 align=center><input type=submit name=deletecolumn value=""delete selected column""></td></tr>"
response.write "</table>"
response.write "<table><tr>"
response.write "<td colspan=2><font face=verdana,arial size=2 color=""#ff0000"">add new field into " & table_name & "</font></td>"
response.write "</tr><tr>"
response.write "<th><font face=verdana,arial size=2>field name:</font></th>"
response.write "<td><input type=text name=""newfieldname""></td>"
response.write "</tr><tr>"
response.write "<th><font face=verdana,arial size=2>field type:</font></th>"
response.write "<td><select name=""newfieldtype"">"
for i = 0 to ubound(field_value)
response.write "<option value=""" & field_value(i) & """>" & field_display(i)
next
response.write "</select></td></tr>"
response.write "<tr><td colspan=2 align=center><input type=submit name=addnewfield value=""add new field""></td></tr></table>"
response.write "</form>"
end if
response.write "</center></body></html>"
function gettypename(id)
select case id
case "3"
gettypename = "number"
case "200"
gettypename = "text"
case "129"
gettypename = "text"
case "201"
gettypename = "memo"
case "6"
gettypename = "currency"
case "11"
gettypename = "yes/no"
case "5"
gettypename = "number"
case "7", "133","134","135"
gettypename = "date/time"
case else
gettypename = id
end select
end function
sub selectdatatype(it)
response.write "<select name=editcolname>"
for i = 0 to ubound(field_value)
if field_display(i) = it then
response.write "<option value=""" & field_value(i) & """ selected>" & field_display(i)
else
response.write "<option value=""" & field_value(i) & """>" & field_display(i)
end if
next
response.write "</select>"
end sub
%>
