在线数据库管理工具(db007) v1.5

  在线数据库管理工具 db007 下载:http://www.glzy8.com/codes/6195.html

  

复制代码 代码如下:

  <!--

  '********************************

  '* 用途:

  '^ 以视图界面方式在线处理access、sql数据库

  '* 作者:官世杰

  '* 创建日期:2006-5-28

  '* 2006-06-04 增加数据修改功能

  '* 2006-06-10 增加了在空表中插入数据功能

  '* 2006-09-8 增加修改字段名和表名功能,修正部分错误

  '* 执行sql,如果是 select 就返回结果,否则返回执行结果

  '* 本程序可以免费使用,转载请保留此信息

  '********************************

  -->

  <html>

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

  <title>在线数据库管理工具 db007 1.5</title>

  <style type="text/css">

  <!--

  body,td,th {font-family: "宋体";font-size: 12px;}

  form {margin:0px;padding:0px;}

  body {margin:5px;SCROLLBAR-ARROW-COLOR:#666666;SCROLLBAR-FACE-COLOR:#DDDDDD;SCROLLBAR-DARKSHADOW-COLOR:#999999;SCROLLBAR-HIGHLIGHT-COLOR:#FFFFFF;SCROLLBAR-3DLIGHT-COLOR:#CCCCCC;SCROLLBAR-SHADOW-COLOR:#FFFFFF;SCROLLBAR-TRACK-COLOR:#EEEEEE;}

  input {    border-width: 1px;border-style:solid;border-color: #CCCCCC #999999 #999999 #CCCCCC;height: 16px;}

  td {background:#FFF;}

  textarea {border-width: 1px;border-style: solid;border-color: #CCCCCC #999999 #999999 #CCCCCC;}

  a:link {text-decoration: none;}

  a:visited {text-decoration: none;}

  a:hover {text-decoration: underline;}

  a:active {text-decoration: none;}

  .fixSpan {width:150px;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;}

  -->

  </style>

  </head>

  <body>

  <%

  if request("key") = "db" then

  session("dbtype") = request("dbtype")

  session("dbstr") = request("dbstr")

  response.redirect "?"

  end if

  if request("key") = "createdatabase" then

  call createdatabase()

  end if

  if session("dbtype") = "" or session("dbstr") = "" then

  %>

  <form action="?key=db" method="post" name="dbt">

  <br>

  连接类型:

  <input name="dbtype" type="radio" value="access" onClick="dbstr.value='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Password=;Data Source=<%=server.mappath("/")&"\"%>'" checked>

  ACCESS

  <input disabled="disabled" type="radio" name="dbtype" value="sql" onClick="dbstr.value='driver={SQL Server};database=;Server=;uid=;pwd='">

  SQL<br><br>

  连接字符:<input name="dbstr" type="text" id="dbstr" size="120" value="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Password=;Data Source=<%=server.mappath("/")&"\"%>">

  <input type="submit" name="Submit" value="连接" /><br><br>

  注:access请使用绝对路径,本文件路径:<%=server.MapPath("db007.asp")%>

  </form>

  <form name="createdatabase" method="post" action="?key=createdatabase">

  <font color=red>创建数据库:</font>路径

  <input name="dataname" type="text" value="<%=server.MapPath("/")&"\database.mdb"%>" size="100">

  <input type="submit" name="Submit" value="创建">

  </form>

  <%

  response.End()

  end if

  '==================================================================建库

  sub createdatabase()

  dim DBName,dbstr,myCat

  on error resume next

  DBName = request("dataname")

  dbstr = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & DBName

  Set myCat = Server.CreateObject( "ADOX.Catalog" )

  myCat.Create dbstr

  if err <> 0 then

  response.write err.description

  session("dbtype") = ""

  session("dbstr") = ""

  response.write "<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  response.end

  end if

  session("dbtype") = "access"

  session("dbstr") = dbstr

  response.redirect "?"

  end sub

  '==================================================================调用链接函数

  conn()

  function conn()

  dim conn1,connstr

  on error resume next

  select case session("dbtype")

  case "access"

  '==================================================================连接ACCESS数据库

  connstr = session("dbstr")

  Set Conn1 = Server.CreateObject("ADODB.Connection")

  conn1.Open connstr

  case "sql"

  '==================================================================连接SQL数据库

  set conn1 = Server.CreateObject("ADODB.Connection")

  conn1.open session("dbstr")

  end select

  if err <> 0 then

  response.write err.description

  session("dbtype") = ""

  session("dbstr") = ""

  response.write "<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  response.end

  end if

  set conn = conn1

  end function

  Sub echo(str)

  Response.Write(str)

  End Sub

  Function IIf(var, val1, val2)

  If var = True Then

  IIf = val1

  Else

  IIf = val2

  End If

  End Function

  '正则表达式函数,用于删除注释

  '-------------------------------------

  Function RegExpReplace(strng, patrn, replStr)

  Dim regEx,match,matches              ' 建立变量。

  Set regEx = New RegExp               ' 建立正则表达式。

  regEx.Pattern = patrn               ' 设置模式。

  regEx.IgnoreCase = True               ' 设置是否区分大小写。

  regEx.Global = True   ' 设置全局可用性。

  RegExpReplace = regEx.Replace(strng, replStr)         ' 作替换。

  End Function

  '==================================================================ADOVBS 常量声明

  '---- DataTypeEnum Values ----

  Const adEmpty = 0

  Const adTinyInt = 16

  Const adSmallInt = 2

  Const adInteger = 3

  Const adBigInt = 20

  Const adUnsignedTinyInt = 17

  Const adUnsignedSmallInt = 18

  Const adUnsignedInt = 19

  Const adUnsignedBigInt = 21

  Const adSingle = 4

  Const adDouble = 5

  Const adCurrency = 6

  Const adDecimal = 14

  Const adNumeric = 131

  Const adBoolean = 11

  Const adError = 10

  Const adUserDefined = 132

  Const adVariant = 12

  Const adIDispatch = 9

  Const adIUnknown = 13

  Const adGUID = 72

  Const adDate = 7

  Const adDBDate = 133

  Const adDBTime = 134

  Const adDBTimeStamp = 135

  Const adBSTR = 8

  Const adChar = 129

  Const adVarChar = 200

  Const adLongVarChar = 201

  Const adWChar = 130

  Const adVarWChar = 202

  Const adLongVarWChar = 203

  Const adBinary = 128

  Const adVarBinary = 204

  Const adLongVarBinary = 205

  '---- FieldAttributeEnum Values ----

  Const adFldMayDefer = &H00000002

  Const adFldUpdatable = &H00000004

  Const adFldUnknownUpdatable = &H00000008

  Const adFldFixed = &H00000010

  Const adFldIsNullable = &H00000020

  Const adFldMayBeNull = &H00000040

  Const adFldLong = &H00000080

  Const adFldRowID = &H00000100

  Const adFldRowVersion = &H00000200

  Const adFldCacheDeferred = &H00001000

  '---- SchemaEnum Values ----

  '---- SchemaEnum Values ----

  Const adSchemaProviderSpecific = -1

  Const adSchemaAsserts = 0

  Const adSchemaCatalogs = 1

  Const adSchemaCharacterSets = 2

  Const adSchemaCollations = 3

  Const adSchemaColumns = 4

  Const adSchemaCheckConstraints = 5

  Const adSchemaConstraintColumnUsage = 6

  Const adSchemaConstraintTableUsage = 7

  Const adSchemaKeyColumnUsage = 8

  Const adSchemaReferentialConstraints = 9

  Const adSchemaTableConstraints = 10

  Const adSchemaColumnsDomainUsage = 11

  Const adSchemaIndexes = 12

  Const adSchemaColumnPrivileges = 13

  Const adSchemaTablePrivileges = 14

  Const adSchemaUsagePrivileges = 15

  Const adSchemaProcedures = 16

  Const adSchemaSchemata = 17

  Const adSchemaSQLLanguages = 18

  Const adSchemaStatistics = 19

  Const adSchemaTables = 20

  Const adSchemaTranslations = 21

  Const adSchemaProviderTypes = 22

  Const adSchemaViews = 23

  Const adSchemaViewColumnUsage = 24

  Const adSchemaViewTableUsage = 25

  Const adSchemaProcedureParameters = 26

  Const adSchemaForeignKeys = 27

  Const adSchemaPrimaryKeys = 28

  Const adSchemaProcedureColumns = 29

  Const adSchemaDBInfoKeywords = 30

  Const adSchemaDBInfoLiterals = 31

  Const adSchemaCubes = 32

  Const adSchemaDimensions = 33

  Const adSchemaHierarchies = 34

  Const adSchemaLevels = 35

  Const adSchemaMeasures = 36

  Const adSchemaProperties = 37

  Const adSchemaMembers = 38

  Const adSchemaTrustees = 39

  Const adSchemaFunctions = 40

  Const adSchemaActions = 41

  Const adSchemaCommands = 42

  Const adSchemaSets = 43

  '==================================================================返回字段类型函数

  Function typ(field_type)

  'field_type = 字段类型值

  Select Case field_type

  case adEmpty:typ = "Empty"

  case adTinyInt:typ = "TinyInt"

  case adSmallInt:typ = "SmallInt"

  case adInteger:typ = "Integer"

  case adBigInt:typ = "BigInt"

  case adUnsignedTinyInt:typ = "TinyInt" 'UnsignedTinyInt

  case adUnsignedSmallInt:typ = "UnsignedSmallInt"

  case adUnsignedInt:typ = "UnsignedInt"

  case adUnsignedBigInt:typ = "UnsignedBigInt"

  case adSingle:typ = "Single" 'Single

  case adDouble:typ = "Double" 'Double

  case adCurrency:typ = "Money" 'Currency

  case adDecimal:typ = "Decimal"

  case adNumeric:typ = "Numeric" 'Numeric

  case adBoolean:typ = "Bit" 'Boolean

  case adError:typ = "Error"

  case adUserDefined:typ = "UserDefined"

  case adVariant:typ = "Variant"

  case adIDispatch:typ = "IDispatch"

  case adIUnknown:typ = "IUnknown"

  case adGUID:typ = "GUID" 'GUID

  case adDATE:typ = "DateTime" 'Date

  case adDBDate:typ = "DBDate"

  case adDBTime:typ = "DBTime"

  case adDBTimeStamp:typ = "DateTime" 'DBTimeStamp

  case adBSTR:typ = "BSTR"

  case adChar:typ = "Char"

  case adVarChar:typ = "VarChar"

  case adLongVarChar:typ = "LongVarChar"

  case adWChar:typ = "Text" 'WChar类型 SQL中为Text

  case adVarWChar:typ = "VarChar" 'VarWChar

  case adLongVarWChar:typ = "Text" 'LongVarWChar

  case adBinary:typ = "Binary"

  case adVarBinary:typ = "VarBinary"

  case adLongVarBinary:typ = "LongBinary"'LongVarBinary

  case adChapter:typ = "Chapter"

  case adPropVariant:typ = "PropVariant"

  case else:typ = "Unknown"

  end select

  End Function

  '==================================================================返回字段类型列表

  Function fieldtypelist(n)

  dim strlist,str1,str2

  strlist = "<select name=""field_type"">"

  if session("dbtype") = "access" then

  strlist = strlist & "<option value=""VarChar"">文本</option>"

  strlist = strlist & "<option value=""Text"">备注</option>"

  strlist = strlist & "<option value=""Bit"">(是/否)</option>"

  strlist = strlist & "<option value=""TinyInt"">数字(字节)</option>"

  strlist = strlist & "<option value=""SmallInt"">数字(整型)</option>"

  strlist = strlist & "<option value=""Integer"">数字(长整型)</option>"

  strlist = strlist & "<option value=""Single"">数字(单精度)</option>"

  strlist = strlist & "<option value=""Double"">数字(双精度)</option>"

  strlist = strlist & "<option value=""Numeric"">数字(小数)</option>"

  strlist = strlist & "<option value=""GUID"">数字(同步ID)</option>"

  strlist = strlist & "<option value=""DateTime"">时间/日期</option>"

  strlist = strlist & "<option value=""Money"">货币</option>"

  strlist = strlist & "<option value=""Binary"">二进制</option>"

  strlist = strlist & "<option value=""LongBinary"">长二进制</option>"

  strlist = strlist & "<option value=""LongBinary"">OLE 对象</option>"

  else

  strlist = strlist & "<option value="""">选择类型</option>"

  strlist = strlist & "<option value=""BigInt"">bigint</option>"

  strlist = strlist & "<option value=""Binary"">binary(二进制数据类型)</option>"

  strlist = strlist & "<option value=""Bit"">bit(整型)</option>"

  strlist = strlist & "<option value=""Char"">char(字符型)</option>"

  strlist = strlist & "<option value=""DateTime"">datetime(日期时间型)</option>"

  strlist = strlist & "<option value=""Decimal"">decimal(精确数值型)</option>"

  strlist = strlist & "<option value=""Float"">float(近似数值型)</option>"

  strlist = strlist & "<option value=""Image"">image(二进制数据类型)</option>"

  strlist = strlist & "<option value=""Int"">int(整型)</option>"

  strlist = strlist & "<option value=""Money"">money(货币型)</option>"

  strlist = strlist & "<option value=""nchar"">nchar(统一编码字符型)</option>"

  strlist = strlist & "<option value=""ntext"">ntext(统一编码字符型)</option>"

  strlist = strlist & "<option value=""numeric"">numeric(精确数值型)</option>"

  strlist = strlist & "<option value=""nvarchar"">nvarchar(统一编码字符型)</option>"

  strlist = strlist & "<option value=""real"">real(近似数值型)</option>"

  strlist = strlist & "<option value=""smalldatetime"">Smalldatetime(日期时间型)</option>"

  strlist = strlist & "<option value=""smallint"">smallint(整型)</option>"

  strlist = strlist & "<option value=""smallmoney"">smallmoney(货币型)</option>"

  strlist = strlist & "<option value=""sql_variant"">sql_variant()</option>"

  strlist = strlist & "<option value=""text"">text(字符型)</option>"

  strlist = strlist & "<option value=""timestamp"">timestamp(特殊数据型)</option>"

  strlist = strlist & "<option value=""tinyint"">tinyint(整型)</option>"

  strlist = strlist & "<option value=""uniqueidentifier"">Uniqueidentifier(特殊数据型)</option>"

  strlist = strlist & "<option value=""varbinary"">varbinary(二进制数据类型)</option>"

  strlist = strlist & "<option value=""varchar"">varchar(字符型)</option>"

  end if

  str1 = """" & n & """"

  str2 = """" & n & """" & " selected"

  strlist = replace(strlist,str1,str2)

  strlist = strlist & "</select>"

  echo strlist

  End Function

  '==================================================================主界面

  sub main(str)

  on error resume next

  %>

  <script language=javascript>

  ie = (document.all)? true:false

  if (ie){

  function ctlent(eventobject){if(event.ctrlKey &&

  window.event.keyCode==13){this.document.exesql.submit();}}

  }

  </script>

  <script language="javascript">

  function table_delete()

  {

  if (confirm("确认删除该记录吗?   该操作将不可撤销!!!"))

  return true;

  else

  return false;

  }

  </script>

  <form action="?key=sql" method=post name="exesql">

  <font color=red>执行sql语句:</font><font color=#999999>(每句语句以“;”结束,支持(--)SQL注释,Ctrl + Enter 快速提交)</font>  <input type="button" value="刷新本页" onClick="javascript:location.reload()">

  <span onClick="document.exesql.sql.rows+=5;" style="cursor:pointer;">+</span>

  <span onClick="if(document.exesql.sql.rows>9)document.exesql.sql.rows-=5" style="cursor:pointer;">-</span>

  <div style="float:left;width:600px;">

  <textarea id="sql" name="sql" style="width:600px;" rows="9" ondblClick="this.select();" onKeyDown="ctlent()"><%=request("sql")%></textarea><br />

  <input type="checkbox" name="SchemaTable" value="1" style="border:0px;">adSchemaTables

  <input type="checkbox" name="SchemaColumn" value="2" style="border:0px;">adSchemaColumns

  <input type="checkbox" name="SchemaProvider" value="3" style="border:0px;">adSchemaProviderTypes

  分页大小:

  <select name="pageSize">

  <%

  if request("pageSize") <> "" and  isNumeric(request("pageSize")) then

  echo "<option value='"&request("pageSize")&"' selected>"&request("pageSize")&"</option>"

  else

  echo "<option value='50'>50</option>"

  end if

  %>

  <option value="10">10</option>

  <option value="20">20</option>

  <option value="30">30</option>

  <option value="40">40</option>

  <option value="50">50</option>

  <option value="60">60</option>

  <option value="70">70</option>

  <option value="80">80</option>

  <option value="90">90</option>

  <option value="100">100</option>

  </select>

  </div>

  <div style="float:left;width:50px;padding:60px 0px 0px 5px;">

  <input type="submit" name="Submit_confirm" value="提交"> <br /> <br />

  <input type="button" name="Submit3" value="清空" onClick="sql.value=''"><br /><br />

  <input type="button" name="ok" value="返回" onClick="javascript:history.go(-1)">

  </div>

  </form>

  <div style="clear:both"></div>

  <% if str = "" then %>

  <form action="?key=addtable" method="post">

  <div style="clear:both;text-align:left;"><br />

  <font color=red>创建新表:</font><br>

  表  名:<input type="text" name="table_name" size="20"><br>

  字段数:<input type="text" name="field_num" size="20">

  <input type="submit" name="Submit_create" value="提交">

  <input type="reset" name="Submit32" value="重置">

  </div>

  </form>

  <br><br>

  <a href="?key=tosql&strt=2">导出所有表结构到SQL</a>

  <%

  end if

  end sub

  '==================================================================创建表界面

  sub add_table(table_name,field_num)

  'table_name = 表名称

  'field_num  = 字段数

  on error resume next

  if not IsNumeric(field_num) then

  echo "字段数必须是整数。"

  echo "<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  exit sub

  end if

  %>

  <p class="hei"><span>创建表:</span><%=table_name%></p>

  <form action="?key=createtable" method="post">

  <table width="600" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td width="75" height="20" align="center">字段名</td>

  <td width="99" height="20" align="center">类 型</td>

  <td width="73" height="20" align="center">大 小</td>

  <td width="96" height="20" align="center">空值</td>

  <td width="83" height="20" align="center">自动编号</td>

  <td width="143" height="20" align="center">主 键</td>

  </tr>

  <% for i = 0 to field_num - 1 %>

  <tr>

  <td width="75" height="20" align="center">

  <input type="text" name="field_name" size="10">

  </td>

  <td width="99" height="20" align="center">

  <% fieldtypelist(0) %>

  </td>

  <td width="73" height="20" align="center">

  <input type="text" name="field_size" size="10">

  </td>

  <td width="96" height="20" align="center">

  <select name="null">

  <option value="NOT_NULL">NOT_NULL</option>

  <option value="NULL">NULL</option>

  </select>

  </td>

  <td width="83" height="20" align="center">

  <select size="1" name="autoincrement">

  <option></option>

  <option>自动编号</option>

  </select>

  </td>

  <td width="143" height="20" align="left">

  <select name="primarykey">

  <option></option>

  <option value="primarykey">primarykey</option>

  </select>

  </td>

  </tr>

  <% next %>

  <tr>

  <td height="35" align="center" colspan="5">

  <input type="hidden" name="i" value=<%=field_num%>>

  <input type="hidden" name="table_name" value="<%=table_name%>">

  <input type="submit" name="Submit" value=" 提 交 ">

  <input type="reset" name="Submit2" value=" 重 置 ">

  <input type="button" name="ok" value=" 放 弃 " onClick="javascript:history.go(-1)">

  </td>

  <td height="20"></td>

  </tr>

  </table>

  </form>

  <%

  end sub

  '==================================================================构建创建表的SQL语句

  sub create_table()

  dim sql,i,primarykey

  on error resume next

  sql = "CREATE TABLE ["&request("table_name")&"] ("

  for i = 1 to request("i")

  sql = sql & "[" & request("field_name")(i) & "] " & request("field_type")(i)

  if request("field_size")(i) <> "" then

  sql = sql & "(" & request("field_size")(i) & ")"

  end if

  if request("null")(i) = "NOT_NULL" then

  sql = sql & " not null"

  end if

  if request("autoincrement")(i) = "自动编号" then

  sql = sql & " identity"

  end if

  if request("primarykey")(i) = "primarykey" then

  primarykey = request("field_name")(i)

  end if

  'if primarykey <> "" then

  sql = sql & ","

  'end if

  next

  if primarykey<>"" then

  sql=sql&" primary key (["&primarykey&"]) "

  end if

  sql = sql & ")"

  sql = replace(sql,"()","")  '构建空表

  response.redirect "?key=sql&sql=" & sql

  end sub

  '==================================================================修改表名或字段名 2006-09-08

  sub reobj()

  on error resume next

  Dim mydb,mytable,tablename

  tablename = request("tablename")

  Set mydb = Server.CreateObject("ADOX.Catalog")

  mydb.ActiveConnection = conn

  if request("obj") = "field" then   '修改字段名

  dim fieldsname,newfieldsname

  fieldsname = request("fieldsname")

  newfieldsname = request("newfieldsname")

  Set mytable = Server.CreateObject("ADOX.Table")

  Set mytable = mydb.Tables(tablename)

  mytable.Columns(fieldsname).Name = newfieldsname

  end if

  if request("obj") = "table" then   '修改表名

  dim newtablename

  newtablename = request("newtablename")

  mydb.Tables(tablename).Name = newtablename

  end if

  if err <> 0 then

  echo  err.description

  echo "<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  exit sub

  end if

  if request("obj") = "field" then

  response.Redirect "?key=view&table_name=" & tablename

  else

  response.Redirect "?key=view&table_name=" & newtablename

  end if

  end sub

  '==================================================================查看表结构函数

  sub view(table_name)

  'table_name = 表名称

  dim rs,sql,table,primary,primarykey,i,editstr,typs

  on error resume next

  table = table_name

  Set primary = Conn.OpenSchema(adSchemaPrimaryKeys,Array(empty, empty, table))

  if primary("COLUMN_NAME") <> "" then

  primarykey = primary("COLUMN_NAME")

  end if

  primary.Close

  Set primary = Nothing

  %>

  <script language="javascript">

  function table_delete()

  {

  if (confirm("确认删除该记录吗?   该操作将不可撤销!!!"))

  return true;

  else

  return false;

  }

  </script>

  <font color=red>表:<%=table_name%></font>    <input type="button" value="刷新本页" onClick="javascript:location.reload()"><br><br>

  <% if request("key") = "editfidlevi" then call editfidlevi() %>

  <table width="600" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td width="125" height="20" align="center">字 段 名</td>

  <td width="110" align="center">类 型</td>

  <td width="83" align="center"> 设定大小</td>

  <td width="48" align="center">允许空</td>

  <td width="76" align="center">自动编号</td>

  <td width="54" align="center">主键</td>

  <td width="82" align="center">执行操作</td>

  </tr>

  <%

  sql = "SELECT * FROM [" & table_name & "] "

  Set rs = Conn.Execute(sql)

  if err = 0 then

  For i = 0 to rs.fields.count-1

  %>

  <tr>

  <td height="20" align="left"><%=rs(i).name%></td>

  <td align="left"><%=typ(rs(i).type)%></td>

  <td align="center"><%=rs(i).definedsize%></td>

  <td align="center"><%=iif((rs(i).Attributes and adFldIsNullable)=0,"No","Yes")%></td>

  <td align="center"><%=iif(rs(i).Properties("ISAUTOINCREMENT") = True,"是","否")%></td>

  <td align="center"><%=iif(rs(i).name = primarykey,"是","否")%></td>

  <td align="center">

  <a href="?key=editfidlevi&fidle=<%=rs(i).name%>&table_name=<%=table_name%>&fidletype=<%=typ(rs(i).type)%>">修改</a>

  <a href="?key=sql&sql=alter table [<%=table_name%>] drop [<%=rs(i).name%>];" onClick="return table_delete();">删除</a>

  </td>

  </tr>

  <%

  editstr = editstr&"<option value='"&rs(i).name&"'>"&rs(i).name&"</option>"

  next

  %>

  </table>

  <br>

  <a href="?key=tosql&strt=0&table_name=<%=table_name%>">导出表结构</a>

  <a href="?key=sql&sql=select * from <%=table_name%>&table_name=<%=table_name%>&primarykey=<%=primarykey%>">浏览表记录</a>

  <a href="?key=sql&sql=DROP TABLE <%=table_name%>" onClick="return table_delete();">删除表</a>

  <input type="text" name="newtablename" size="20" value="<%=table_name%>">

  <input type="button" value="修改表名" onClick="location.href='?key=reobj&obj=table&tablename=<%=table_name%>&newtablename='+newtablename.value">

  <br><br>

  <%

  '判断是否有主键

  if primarykey = "" then

  echo "<font color=red>该表没有主键,执行操作可能会导致数据损坏或丢失。</font><br>"

  echo "你可以将:"

  echo "<select name='keyname'>"

  For i=0 to rs.fields.count-1

  echo "<option value=" & rs(i).name & ">" & rs(i).name & "</option>"

  next

  echo "</select> "

  echo "<input type=button value=设为主键 onclick=""location.href='?key=sql&sql=ALTER TABLE ["&table_name&"] ADD PRIMARY KEY (['+keyname.value+'])';"">"

  echo "<br><br>"

  end if

  '显示修改字段名

  echo "<select name='fieldsname'>"

  echo "<option value=''>选择字段</option>"

  echo editstr

  echo "</select> 改名为 "  & chr(10)

  echo "<input type='text' name='newfieldsname' size='20'> "  & chr(10)

  echo "<input type=button value=修改字段名 onclick=""location.href='?key=reobj&obj=field&tablename="&table_name&"&fieldsname='+fieldsname.value+'&newfieldsname='+newfieldsname.value"">"

  echo "<br><br>"

  end if

  rs.close

  set rs = nothing

  %>

  <font color=red>增加字段:</font><br><br>

  <form action="?key=addfield" method="post">

  <table width="600" height="39" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td width="60" height="20" align="center">字段名</td>

  <td width="50" height="20" align="center">类型</td>

  <td width="58" height="20" align="center">设定大小</td>

  <td width="64" height="20" align="center">允许空值</td>

  <td width="66" height="20" align="center"> 自动编号</td>

  <td width="96" height="20" align="center">  </td>

  </tr>

  <tr>

  <td width="60" height="20" align="center">

  <input type="text" name="fldname" size="10">

  </td>

  <td width="50" height="20" align="center">

  <% fieldtypelist(0) %>

  </td>

  <td width="58" height="20" align="center">

  <input type="text" name="fldsize" size="10">

  </td>

  <td width="64" height="20" align="center">

  <input name="null" type="checkbox" value="ON" checked>

  </td>

  <td width="66" height="20" align="center">

  <input type="checkbox" name="autoincrement" value="ON">

  </td>

  <td width="96" height="20" align="center">

  <input type="hidden" name="table_name" value="<%=table_name%>">

  <input type="submit" value="提交">

  </td>

  </tr>

  </table>

  </form>

  <%

  end sub

  '==================================================================修改字段属性的界面

  sub editfidlevi()

  dim sql,rs,i

  on error resume next

  sql = "Select * From [" & request("table_name") & "]"

  set rs = conn.execute(sql)

  for i = 0 to rs.fields.count - 1

  if rs(i).name = request("fidle") then

  %>

  <script LANGUAGE="JavaScript">

  function validate(theForm) {

  if (theForm.type.value == "")

  {

  alert("请输入数据类型");

  theForm.type.focus();

  return (false);

  }

  return (true);

  }

  </script>

  <font color=red>修改字段属性:</font>

  <form action="?key=editfidle&fidle=<%=request("fidle")%>&table_name=<%=request("table_name")%>" method="post" name=frm onSubmit="return validate(frm)">

  <table width="600" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td width="60" height="20" align="center">字段名</td>

  <td width="50" height="20" align="center">类型</td>

  <td width="58" height="20" align="center">设定大小</td>

  <td width="64" height="20" align="center">允许空值</td>

  <td width="66" height="20" align="center">自动编号</td>

  <td width="96" height="20"></td>

  </tr>

  <tr>

  <td width="60" height="20" align="center"><%=rs(i).name%></td>

  <td width="50" height="20" align="center">

  <% fieldtypelist(request("fidletype")) %>

  </td>

  <td width="58" height="20"><input type="text" name="size" size="10"></td>

  <td width="64" height="20" align="center">

  <input type="checkbox" name="null" value="null"<%=iif((rs(i).Attributes and adFldIsNullable)=0,""," checked")%>>

  </td>

  <td width="66" height="20" align="center">

  <input type="checkbox" name="autoincrement" value="y"<%=iif(rs(i).Properties("ISAUTOINCREMENT") = True," checked","")%>>

  </td>

  <td width="96" height="20" align="center">

  <input type="submit" name="Submit" value="提交">

  </td>

  </tr>

  </table><br>

  </form>

  <%

  end if

  next

  end sub

  '==================================================================执行修改字段属性

  sub editfidle()

  on error resume next

  sql = "ALTER TABLE [" & request("table_name") & "] "

  sql = sql&"ALTER COLUMN [" & request("fidle") & "] "

  if request("field_type") <> "" then

  sql = sql & request("field_type")

  end if

  if request("size") <> "" then

  sql = sql & "(" & request("size") & ") "

  end if

  if request("null") = "" then

  sql = sql & " not null"

  end if

  if request("autoincrement") = "y" then

  sql = sql & " identity"

  end if

  sql = trim(sql)

  conn.execute(sql)

  response.redirect "?key=view&table_name="& request("table_name")

  end sub

  '==================================================================添加字段函数

  sub addfield()

  on error resume next

  fldname = request("fldname")

  fldtype = request("field_type")

  fldsize = request("fldsize")

  fldnull = request("null")

  fldautoincrement = request("autoincrement")

  table_name = request("table_name")

  if fldname <> "" and fldtype <> "" then

  sql = "alter table [" & table_name & "] add ["&fldname&"] " & fldtype

  if fldsize <> "" then

  sql = sql & "(" & fldsize & ")"

  end if

  if fldnull <> "ON" then

  sql = sql & " not null"

  end if

  if fldautoincrement = "ON" then

  sql = sql & " identity"

  end if

  conn.execute(sql)

  response.redirect "?key=view&table_name=" & table_name

  else

  echo "输入数据错误!<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  end if

  if err <> 0 then

  echo err.description

  echo "<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  response.end

  end if

  end sub

  '==================================================================编辑数据

  sub editdata()

  dim keys,names,values,action,rs,sql,tab

  on error resume next

  keys = request("primarykey")

  names = request("table_name")

  values = request("primarykeyvalue")

  action = request("action")

  Set rs = Server.CreateObject("Adodb.RecordSet")

  if action = "" or action = "save" or action = "new" then

  sql = "select * from " & names & " where " & keys & " = " & values

  end if

  if action = "pre" then

  sql = "select top 1 * from " & names & " where " & keys & " < " & values & " order by " & keys & " desc"

  end if

  if action = "next" then

  sql = "select top 1 * from " & names & " where " & keys & " > " & values & " order by " & keys & " asc"

  end if

  if action = "add" then

  sql = "Select * From [" & names & "]"

  end if

  rs.Open sql, conn, 1, 3

  if rs.eof and action = "new" then

  sql = "Select * From [" & names & "]"

  rs.Open sql, conn, 1, 3

  end if

  if action = "save" or action = "new" then

  If action = "new" Then rs.AddNew

  For Each tab In rs.Fields

  If Keys <> tab.Name Then

  rs(tab.Name) = Request.Form(tab.Name & "_Column")

  if err <> 0 then

  echo tab.name & err.description

  echo "<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  response.end

  end if

  End If

  Next

  rs.update

  end if

  echo "字段数据编辑<br>"

  echo "<table width=600 border=0 cellpadding=5 cellspacing=1 bgcolor=#CCCCCC><tr><td>"

  echo "<form action='?key=edit&table_name=" & names & "&primarykey=" & keys & "&primarykeyvalue=" & iif(action<>"add",rs(keys),"") & "' method='post' name='editor'>"

  echo "<br>"

  echo "<input type=hidden name=action value=save>"

  echo iif(action="add","","<input type=submit value=保存 onclick=this.form.action.value='save';> ")

  echo "<input type=button value=添加 onclick=if(confirm('确实要添加当前为新记录吗?')){this.form.action.value='new';this.form.submit();};> "

  echo "<input type=button value=上一条 onclick=""this.form.action.value='pre';this.form.submit();""> "

  echo "<input type=button value=下一条 onclick=""this.form.action.value='next';this.form.submit();"">  "

  echo "<a href='?key=view&table_name=" & names & "'>表结构</a>  "

  echo "<a href='?key=sql&sql=select * from " & names & "&table_name="& names & "&primarykey="&keys&"'>表浏览</a>  "

  echo "<a href='?'>主界面</a><br>"

  if not rs.eof or action = "add" then

  For Each tab In rs.Fields

  echo ""

  echo "<BR><font color=red>" & tab.Name & "</font> <font color=#999999>( " & typ(tab.Type) & " )</font><br>"

  if tab.Type = 201 Or tab.Type = 203 then

  echo "<textarea style='width:600;' name=""" & tab.Name & "_Column"" rows=6"

  echo IIf(tab.Name = keys, " disabled title='主键约束,将无法被修改.'>", ">")

  if action <> "add" then echo trim(tab.value)

  echo "</textarea>"

  else

  echo "<input type='text' style='width:600;' name='" & tab.Name & "_Column'"

  echo IIf(tab.Name = keys, " disabled title='主键约束,将无法被修改.'", " ") & " value='"

  if action <> "add" then echo trim(tab.value)

  echo "'>"

  end if

  echo "<br>"

  Next

  else

  echo "<script>alert('已经没有了!');history.back();</script>"

  Response.End()

  end if

  echo "<br>"

  echo iif(action="add","","<input type=submit value=保存 onclick=this.form.action.value='save';> ")

  echo "<input type=button value=添加 onclick=if(confirm('确实要添加当前为新记录吗?')){this.form.action.value='new';this.form.submit();};> "

  echo "<input type=button value=上一条 onclick=""this.form.action.value='pre';this.form.submit();""> "

  echo "<input type=button value=下一条 onclick=""this.form.action.value='next';this.form.submit();"">  "

  echo "<a href='?key=view&table_name=" & names & "'>表结构</a>  "

  echo "<a href='?key=sql&sql=select * from " & names & "&table_name="& names & "&primarykey="&keys&"'>表浏览</a>  "

  echo "<a href='?'>主界面</a>  "

  echo "</form></td></tr></table>"

  end sub

  '==================================================================显示存储过程

  sub showproc()

  dim sTableName,adox

  on error resume next

  echo "存储过程:<font color=red>" & Request("table_name") & "<font><br>"

  sTableName = Request("table_name")

  Set adox = Server.CreateObject("ADOX.Catalog")

  adox.ActiveConnection = Conn

  echo "<textarea cols=70 rows=8>" & adox.Procedures(sTableName).Command.CommandText & "</textarea><br>"

  if err <> 0 then

  echo err.description

  exit sub

  end if

  end sub

  '==================================================================分页导航

  '分页导航

  sub showNavBar (rs,page,pageUrl,pageSize)

  page = cint(page)

  %>

  <table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <% if request("primarykey") <> "" and request("table_name") <> "" then %>

  <td align="left">当前表:<font color=red><%=request("table_name")%></font>

  <a href="?key=edit&table_name=<%=request("table_name")%>&primarykey=<%=request("primarykey")%>&action=add">插入新记录</a>

  </td>

  <% end if %>

  <td align="right">

  <%

  echo "共有" & rs.recordCount & "条纪录 当前" & page & "/" & rs.PageCount & "页"

  if page > 1 then

  echo "<a href='" & pageUrl & "&page=1&pageSize="&pageSize&"'>首页</a> "

  echo "<a href='" & pageUrl & "&page=" & page - 1 & "&pageSize="&pageSize&"'>上页</a> "

  end if

  if (rs.PageCount > 1 and page < rs.PageCount) then

  echo "<a href='" & pageUrl & "&page=" & page + 1 & "&pageSize="&pageSize&"'>下页</a> "

  echo "<a href='" & pageUrl & "&page=" & rs.pageCount & "&pageSize="&pageSize&"'>末页</a> "

  end if

  echo "转到:第"

  echo "<select name='select2' onChange='location.href=this.value;'>"

  dim i

  for i = 1 to rs.PageCount

  echo "<option value='"& pageUrl &"&pageSize="&pageSize&"&page="& i & "' "

  if i = cint(page) then echo "selected"

  echo ">"& i &"</option>"

  next

  echo "</select>页"

  %>

  </td>

  </tr>

  </table>

  <%

  end sub

  '==================================================================显示查询

  sub showselect(sql)

  dim page,pageUrl,strdel,geturl

  pageSize = request("pageSize")             '设置每页显示的记录数

  if pageSize = "" or not isNumeric(pageSize) then pageSize = 50

  '判断是否删除

  if request("keylog") <> "" then

  strdel = "delete from " & request("table_name") & " where " & request("primarykey") & "=" & request("keylog")

  response.Write strdel

  conn.execute(strdel)

  geturl = "?" & replace(request.QueryString,"&keylog="&request("keylog"),"")

  response.Redirect geturl

  end if

  page = request("page")           '设置当前显示的页数

  if page="" or not isNumeric(page) then page=1

  pageUrl = "?key=sql&sql=" & sql

  if request("primarykey") <> "" and request("table_name") <> "" then

  pageUrl = pageUrl & "&table_name=" & request("table_name") & "&primarykey=" & request("primarykey")

  end if

  '--------------------------

  dim rs

  set rs = Server.CreateObject("ADODB.Recordset")

  rs.Open sql,conn,3

  if not rs.eof then

  rs.pageSize = pageSize

  if cint(page) < 1 then page = 1

  if cint(page) > rs.PageCount then page = rs.PageCount

  rs.absolutePage = page

  end if

  '显示分页导航

  showNavBar rs,page,pageUrl,pageSize

  '-------------------------------

  echo "<div style='overflow-x:auto;overflow-y:auto; width:800;height:380;'>"

  echo "<table border=0 border=0 cellpadding=3 cellspacing=1 bgcolor=#CCCCCC><tr>"

  primarykey = request("primarykey")

  if primarykey <> "" and request("table_name") <> "" then

  echo "<td bgcolor=#ffffff>操作</td><td bgcolor=#ffffff>删</td>"

  end if

  for i = 0 to rs.fields.count - 1         '循环字段名

  set field = rs.fields.item(i)

  echo "<td bgcolor=#ffffff>" & field.name & " </td>"

  next

  echo "</tr>"

  dim i,field,j

  do while not rs.eof and j < rs.pageSize                    '循环数据

  echo "<tr>"

  if primarykey <> "" and request("table_name") <> "" then

  echo "<td bgcolor=#ffffff nowrap><a href='?key=edit&table_name=" & request("table_name") & "&primarykey=" & primarykey & "&primarykeyvalue=" & rs(primarykey) & "'><font color=#666666>编辑</font></a></td>"

  echo "<td><a href='?"&Request.QueryString&"&keylog="&rs(primarykey)&"' onClick='return table_delete();'><font color=#FF000>×</font></a></td>"

  end if

  for i = 0 to rs.fields.count - 1

  set field = rs.fields.item(i)

  if len(field.value) < 12 then

  echo "<td bgcolor=#ffffff nowrap>" & field.value & " </td>"

  else

  echo "<td bgcolor='#ffffff'><span class='fixspan'>" & field.value & " </span></td>"

  end if

  next

  echo "</tr>"

  rs.MoveNext

  j = j + 1

  loop

  'response.ContentType ="application/vnd.ms-excel"'生成EXCEL表格

  echo "</table></div>"

  end sub

  sub exesql(sql)

  on error resume next

  '==================================================================执行sql函数

  if trim(request.form("SchemaTable")) <> "" then Call showSchema (adSchemaTables)

  if trim (request.form("SchemaColumn")) <> "" then Call showSchema(adSchemaColumns)

  if trim (request.form("SchemaProvider")) <> "" then Call showSchema(adSchemaProviderTypes)

  sql = trim(request("sql"))

  if sql = "" then exit sub

  sql = RegExpReplace(sql, "(--)(.)*\n", "")   '替换注释

  sql = RegExpReplace(sql, "\n[\s| ]*\r", "")  '替换空行

  sql = RegExpReplace(sql, "\n", "")           '替换换行符

  sql = RegExpReplace(sql, "\r", "")           '替换回车符

  if (LCase(left(sql,len("select"))) = "select") and instr(sql,"into") = 0 then

  Call showSelect (sql)

  if err <> 0 then echo "<br><font color=red>" & err.description & "</font>"

  response.end

  else

  '如果非select语句,允许执行多条以分号分隔的语句

  dim aSql,iLoop

  aSql = split(sql,";")

  for iLoop = 0 to UBound(aSql)

  if trim(aSql(iLoop)) <> "" then

  conn.execute (aSql(iLoop))

  if err <> 0 then

  echo "<br><font color=red>" & err.description & "<br>  <b>"

  echo iLoop + 1 & "、</b></font><font color=#CC6600>" & aSql(iLoop) & "</font><br>"

  'err.clear()     '忽略错误

  exit sub          '中止执行

  else

  echo "<div style='padding:3px 0px;border-bottom:1px solid #069;'><b>" & iLoop + 1 & "、</b>" & aSql(iLoop) & "</div>"

  end if

  end if

  next

  echo "<font color=red><h4>命令执行成功</h4></font>"

  end if

  end sub

  '显示数据库信息

  'QueryType有以下三个主要参数

  'adSchemaTables

  'adSchemaColumns

  'adSchemaProviderTypes

  'Call showSchema (adSchemaTables)

  sub showSchema(QueryType)

  dim rs

  'set rs = conn.OpenSchema()

  set rs = conn.OpenSchema (QueryType)

  'set rs = conn.OpenSchema (adSchemaProviderTypes)

  echo "<div style='overflow-x:auto;overflow-y:auto; width:800;height:380;'><table border=0 border=0 cellpadding=3 cellspacing=1 bgcolor=#CCCCCC><tr>"

  for i = 0 to rs.fields.count - 1         '循环字段名

  set field = rs.fields.item(i)

  echo "<td bgcolor='#FFFFFF'>" & field.name & " </td>"

  next

  echo "</tr>"

  dim i,field

  do while not rs.eof                      '循环数据

  echo "<tr>"

  for i = 0 to rs.fields.count - 1

  set field = rs.fields.item(i)

  echo "<td bgcolor='#FFFFFF'>" & field.value & "  </td>"

  next

  echo "</tr>"

  rs.MoveNext

  loop

  echo "</table></div>"

  end sub

  %>

  <%

  '==================================================================导出SQL

  sub tosql(strt)

  'strt = 0 导出结构

  'strt = 1 导出内容

  dim strsql

  if strt = "0"  then

  table = request("table_name")

  echo "以下是表 <font color=red>" & request("table_name") & "</font> 的结构: "

  echo "<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  strsql = getsql(table)

  end if

  if strt = "2" then

  echo "以下是 <font color=red> 数据库 </font> 的结构: "

  echo "<input type='button' name='ok' value=' 返 回 ' onClick='javascript:history.go(-1)'>"

  set objSchema = Conn.OpenSchema(adSchemaTables)

  Do While Not objSchema.EOF

  if objSchema("TABLE_TYPE") = "TABLE" then

  table = objSchema("TABLE_NAME")

  strsql = strsql & getsql(table)'table & "|"'getsql(table)

  end if

  objSchema.MoveNext

  Loop

  objSchema.close

  end if

  echo "<textarea cols=110 rows=38>" & strsql & "</textarea>"

  conn.close

  end sub

  '================================================================== 输出表结构

  function getsql(table)

  on error resume next

  getsql = "-- 表结构 " & table & " 的SQL语句。" & chr(10)

  dim primary,primarykey

  Set primary = Conn.OpenSchema(adSchemaPrimaryKeys,Array(empty,empty,table))

  if primary("COLUMN_NAME") <> "" then

  primarykey = primary("COLUMN_NAME")

  end if

  primary.Close

  set primary = nothing

  tbl_struct = "CREATE TABLE [" & table & "] ( " & chr(10)

  sql = "SELECT * FROM " & table

  Set rs = Conn.Execute(sql)

  if err = 0 then

  for i = 0 to rs.fields.count-1

  tbl_struct = tbl_struct & "[" & rs(i).name & "] "

  typs = typ(rs(i).type)

  if typs = "VARCHAR" or typs = "BINARY" or typs = "CHAR" then

  tbl_struct = tbl_struct & typs & "(" & rs(i).definedsize & ")"

  else

  tbl_struct = tbl_struct & typs & " "

  end if

  attrib = rs(i).attributes

  if (attrib and adFldIsNullable) = 0 then

  tbl_struct = tbl_struct&" NOT NULL"

  end if

  if rs(i).Properties("ISAUTOINCREMENT") = True then

  tbl_struct = tbl_struct & " IDENTITY"

  end if

  tbl_struct = tbl_struct & "," & chr(10)

  next

  if primarykey <> "" then

  tbl_struct = tbl_struct & "PRIMARY KEY ([" & primarykey & "]));"

  else

  len_of_sql = Len(tbl_struct)

  tbl_struct = Mid(tbl_struct,1,len_of_sql-2)

  tbl_struct = tbl_struct & ");"

  end if

  else

  tbl_struct = "CREATE TABLE [" & table & "];"

  end if

  getsql = getsql & tbl_struct & chr(10) & chr(10)

  end function

  sub help()

  echo "SQL 常用语句:<br><br>"

  echo "创建表:<br>"

  echo "CREATE TABLE [表名] (<br>"

  echo "[test1] int not null identity,<br>"

  echo "[test2] binary not null,<br>"

  echo "primary key ([test1]))<br><br>"

  echo "设置主键:ALTER TABLE [tablename] ADD PRIMARY KEY ([fieldname])<br><br>"

  echo "查询:select * from tablename where fieldname *** order by id desc<br><br>"

  echo "更新:update tanlename set fieldname = values,cn_name='values' where ID = 1<br><br>"

  echo "添加:insert into tanlename (fieldnam,fieldnam2)values (1,'values')<br><br>"

  echo "删除:delete from tanlename where fieldname = values<br><br>"

  echo "删除表:DROP TABLE 数据表名称<br><br>"

  echo "添加字段:ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL<br><br>"

  echo "删除字段:alter table [tablename] drop [fieldname]<br><br>"

  echo "修改字段:ALTER TABLE [表名] ALTER COLUMN [字段名] 类型(大小) NULL<br><br>"

  echo "新建约束:ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= '2000-1-1')<br><br>"

  echo "删除约束:ALTER TABLE [表名] DROP CONSTRAINT 约束名<br><br>"

  echo "新建默认值:ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT '51WINDOWS.NET' FOR [字段名]<br><br>"

  echo "删除默认值:ALTER TABLE [表名] DROP CONSTRAINT 默认值名<br><br>"

  end sub

  %>

  <!--程序界面主表格开始-->

  <table width="100%" height="100%" border="0" cellpadding="5" cellspacing="1" bgcolor="#CCCCCC">

  <tr>

  <td width="18%" valign="top">

  <div id="Layer1" style="overflow-x:auto;overflow-y:auto; width:100%;height:100%;">

  <div style="width:140px;height:0px;overflow:hidden;"></div>

  表: <a href="?">主界面</a> <a href="?key=exit">退出</a> <a href="?key=help">Help</a><br>

  <%

  set objSchema = Conn.OpenSchema(adSchemaTables)

  Do While Not objSchema.EOF

  if objSchema("TABLE_TYPE") = "TABLE" then

  '输出表名

  echo "<a href='?key=view&table_name="& objSchema("TABLE_NAME") &"'>" & objSchema("TABLE_NAME") & "</a><br>"

  end if

  objSchema.MoveNext

  Loop

  echo "所有视图:<br>"

  objSchema.MoveFirst

  Do While Not objSchema.EOF

  if objSchema("TABLE_TYPE") = "VIEW" then

  '输出表名

  echo "<a href='?key=sql&sql=SELECT * FROM [" & objSchema("TABLE_NAME")& "]'>" & objSchema("TABLE_NAME") & "</a><br>"

  end if

  objSchema.MoveNext

  Loop

  objSchema.Close

  set objSchema = nothing

  'echo "存储过程:<br>"

  'set objSchema = Conn.OpenSchema(adSchemaProcedures)

  'Do While Not objSchema.EOF

  '    echo "<a href='?key=proc&table_name="& objSchema("PROCEDURE_NAME") &"'>" & objSchema("PROCEDURE_NAME") & "</a><br>"

  'objSchema.MoveNext

  'Loop

  'objSchema.Close

  'set objSchema = nothing

  %>

  </div>

  </td>

  <td width="82%" valign="top">

  <div id="Layer2" style="overflow-x:anto;overflow-y:auto; width:100%;height:100%;">

  <%

  select case request("key")

  case "" '显示主界面

  call main("")

  case "addtable" '显示创建表界面

  call add_table(request("table_name"),request("field_num"))

  case "createtable" '执行创建表

  call create_table()

  case "view"

  call view(request("table_name"))

  case "sql"

  call main("1")

  call exesql(trim(request("sql")))

  case "addfield"

  call addfield()

  case "editfidlevi"

  call view(request("table_name"))

  case "editfidle"

  call editfidle()

  case "exit"

  session("dbtype") = ""

  session("dbstr") = ""

  session("db007pass") = ""

  response.redirect "?"

  case "tosql"

  call tosql(request("strt"))

  case "proc"

  call main("1")

  call showproc()

  case "help"

  call help()

  case "edit"

  call EditData()

  case "reobj"

  call reobj()

  end select

  %>

  </div>

  </td>

  </tr>

  </table>

  <!--程序界面主表格结束-->

  </body>

  </html>