ADSI,使用ASP来实现通用的对数据库控制编程 |
|
| 2003-04-10 |
| |
非常有价值的代码,下面的代码是使用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
%>
|
|
| |
|
发表评论
推荐文章
关闭窗口
|
|
|
|