很多人一定用過Query Analyzer,這個工具的功能如何如何,就不用我說了,這次給大家介紹下Web下的Query Analyzer,界面如圖1,使用ASP寫的。
(圖1)
源程序如下:
<% dim conn dim connstr
on error resume next if request("selectdb")="mdb" then if request("dbname")<>"" then connstr="DBQ="+server.mappath(request("dbname"))+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") if err.number<>0 then err.clear set conn=nothing response.write "錯誤:數(shù)據(jù)庫連接出錯!" else if request("dbpass")<>"" then conn.open connstr else Conn.Open connstr,"admin",request("dbpass") end if if err then set conn=nothing response.write "錯誤:數(shù)據(jù)庫連接出錯!!!<br>" + err.description err.clear end if end if end if elseif request("selectdb")="mssql" then if request("dbname")<>"" then connstr = "Provider=SQLOLEDB.1" connstr = connstr & ";Data Source=" & request("sqlip") 'sql_server數(shù)據(jù)庫 connstr = connstr & ";User ID=" & request("sqladmin") '數(shù)據(jù)庫服務器用戶 connstr = connstr & ";Password=" & request("sqlpass") '登錄口令 connstr = connstr & ";Initial Catalog=" & request("sqldb") '數(shù)據(jù)庫名 set conn=server.createobject("ADODB.CONNECTION") if err.number<>0 then err.clear set conn=nothing response.write "錯誤:數(shù)據(jù)庫連接出錯!" else conn.open connstr if err then set conn=nothing response.write "錯誤:數(shù)據(jù)庫連接出錯!!!<br>" + err.description err.clear end if end if end if end if sub endConnection() conn.close set conn=nothing end sub
%> <HTML> <HEAD> <TITLE>Query Analyzer</TITLE> <STYLE type=text/css>BODY {FONT-FAMILY: "宋體", "Arial Narrow", "Times New Roman"; FONT-SIZE: 9pt} P {FONT-FAMILY: "宋體", "Arial Narrow", "Times New Roman"; FONT-SIZE: 9pt} BR {FONT-FAMILY: "宋體", "Arial Narrow", "Times New Roman"; FONT-SIZE: 9pt} TD {FONT-FAMILY: "宋體", "Arial Narrow", "Times New Roman"; FONT-SIZE: 9pt} .p9 {FONT-SIZE: 9pt; LINE-HEIGHT: 14pt} A:link {COLOR: #004080; FONT-SIZE: 9pt; LINE-HEIGHT: 14pt; TEXT-DECORATION: none} A:visited {COLOR: #004080; FONT-SIZE: 9pt; LINE-HEIGHT: 14pt; TEXT-DECORATION: none} A:hover {COLOR: #ff0000; FONT-SIZE: 9pt; LINE-HEIGHT: 14pt; TEXT-DECORATION: underline} .p105 {FONT-SIZE: 10.5pt} INPUT.yellowbtn {BACKGROUND-COLOR: #88a3f2; COLOR: #000000; FONT-SIZE: 9pt} </STYLE> </HEAD> <BODY BGCOLOR="#FFFFFF" topmargin="0"> <script language=JavaScript> function setWB(x) { document.main.whichbutton.value = x; document.main.submit(); }
function showSQL(x) {
sqlvalue = document.main.sql.value;
if (x == 0) { smsg = "\n怎樣使用sql語句幫助:\n\n"; smsg = smsg + "1. 在選擇框里選一個命令\n"; smsg = smsg + "2. 點擊[顯示]按鈕\n"; smsg = smsg + "3. sql語句會顯示在左邊的文本框里面\n\n"; smsg = smsg + "4. 修改此語句來適合你數(shù)據(jù)庫結構\n\n"; smsg = smsg + "5. 根據(jù)語句查詢結果或執(zhí)行命令\n\n"; alert(smsg); }
else if (x == 1) { smsg = "SELECT columnName1, columnName2\n"; smsg = smsg + " FROM tableName\n"; smsg = smsg + " WHERE columnName = 'value'\n\n"; document.main.sql.value = smsg; }
else if (x == 2) { smsg = "INSERT INTO tableName\n"; smsg = smsg + " (columnName, IntegerColumnName)\n"; smsg = smsg + " VALUES ('value', numericValue)\n\n"; document.main.sql.value = smsg; }
else if (x == 3) { smsg = "UPDATE tableName\n"; smsg = smsg + " SET columnName = 'value'\n"; smsg = smsg + " WHERE columnName = 'value'\n\n"; document.main.sql.value = smsg; }
else if (x == 4) { smsg = "DELETE columnName\n"; smsg = smsg + " FROM tableName\n"; smsg = smsg + " WHERE columnName = 'value'\n\n"; document.main.sql.value = smsg; }
else if (x == 5) { smsg = "CREATE TABLE tableName\n"; smsg = smsg + " (columnName1 varchar(20),\n"; smsg = smsg + " columnName2 char(20),\n"; smsg = smsg + " columnName3 integer)\n\n"; document.main.sql.value = smsg; }
else if (x == 6) { smsg = "DROP TABLE tableName\n\n"; document.main.sql.value = smsg; }
else if (x == 7) { smsg = "SELECT a.columnName, b.columnName\n"; smsg = smsg + " FROM tableName a, tableName b\n"; smsg = smsg + " WHERE a.columnName = b.columnName\n\n"; document.main.sql.value = smsg; } }
function helpme(){ helpmsg="在上面的那個文本框輸入一句sql語句,例如:\n\n"; helpmsg+="select * from tablename\n\n"; helpmsg+="如果需要查詢結果,則按[查詢結果],如果只\n"; helpmsg+="需執(zhí)行一句sql語句,則按[執(zhí)行sql語句],一\n"; helpmsg+="般select是用于查詢的,update、delete、\n"; helpmsg+="create table等是用于執(zhí)行的。\n\n"; helpmsg+="在sql語句幫助表里可以獲得一些基本sql語句\n"; helpmsg+="的語法。";
alert(helpmsg);}
</script> <form action="<%=request.servervariables("script_name")%>" method=post name=main> <br>
<table border=0 cellpadding=2 cellspacing=2 width=100% align="center"> <tr bgcolor="#00CCFF"> <td width="157">
<input type="radio" name="selectdb" value="mdb" <%if request("selectdb")="mdb" then response.write "checked" %>> MDB數(shù)據(jù)庫</td> <td width="588"> 數(shù)據(jù)庫: <input type="text" name="dbname" value="<%=request("dbname")%>"> (例如:db.mdb,或dir/db.mdb)<br> 密 碼:
<input type="password" name="dbpass" value="<%=request("dbpass")%>"> </td> </tr> <tr bgcolor="#00FFCC"> <td height="40" width="157">
<input type="radio" name="selectdb" value="mssql" <%if request("selectdb")="mssql" then response.write "checked" %>> MS_SQLServer</td>
<td height="40" width="588"> 服務器: <input type="text" name="sqlip" value="<%=request("sqlip")%>"> (SQLSERVER 的IP地址)<br> 數(shù)據(jù)庫: <input type="text" name="sqldb" value="<%=request("sqldb")%>"> <br> 登錄名: <input type="text" name="sqladmin" value="<%=request("sqladmin")%>"> <br> 密 碼:
<input type="password" name="sqlpass" value="<%=request("sqlpass")%>"> </td> </tr>
<tr bgcolor="#33CCFF"> <td width="157" rowspan="2"> <table border=0 cellpadding=2 cellspacing=2 width="83%" align="center"> <tr>
<td align=center bgcolor=#00CCCC valign=center>SQL向導</td> </tr> <tbody> <tr> <td align=left bgcolor=#00CCCC valign=center> <div align="center"> <select name=sqlsyntax size=5> <option selected>Choose SQL</option> <option>Select</option> <option>Insert</option> <option>Update</option> <option>Delete</option> <option>Create Table</option> <option>Drop Table</option> <option>Simple Join</option> </select> </div> </td> </tr> <tr> <td align=left bgcolor=#00CCCC valign=center> <div align="center"> <input name=sqlasst1 onClick=showSQL(document.main.sqlsyntax.selectedIndex); type=button value="顯示"> <input name=sqlasst2 onClick="document.main.sql.value='';" type=button value="清除"> </div> </td> </tr>
</td>
<td width="588"> SQL Query : </td> </tr> <tr>
<td width="588" align="center" bgcolor="#33CCFF"> <textarea cols=50 name=sql rows=12 wrap=VIRTUAL></textarea> </td> </tr> <tr> <td colspan="2"> <input name=whichbutton type=hidden value="NORS"> <input name=action2 type=hidden value=exec> <input name=selindex type=hidden> <b> <input name=b1 class=yellowbtn onClick="setWB('GetRS');" type=button value="查詢結果"> <input name=b2 class=yellowbtn onClick="setWB('NORS');" type=button value="執(zhí)行SQL語句"> <input name=b3 class=yellowbtn onClick="helpme();" type="button" value="幫助"> </b> <b> <script language=JavaScript> document.main.sql.focus(); if (document.main.selindex.value != "") { document.main.db.options[document.main.selindex.value].selected = true; } </script> </b></td> </tr>
<br> </form> <p> <% dim sql,rs ifrs=request("whichbutton") sql=request("sql") if sql<>"" then select case ifrs case "NORS" conn.execute sql if err then response.write "這句sql語句有錯誤,沒有完全執(zhí)行。<br>"&err.description&"<br>"&sql else response.write "執(zhí)行成功!" end if case "GetRS" set rs=server.createobject("adodb.recordset") rs.open sql,conn,1,1 if err then response.write "這句查詢sql語句有錯誤,沒有完全執(zhí)行。<br>"&err.description&"<br>"&sql else response.write "找到了<b>"&cstr(rs.recordcount)&"</b>個結果" %> <table border="1" align="center"> <tr> <% colnum=rs.fields.count for i=0 to rs.fields.count-1 %>
<td bgcolor="#33CCFF"><font color='red'><%=rs(i).name%></font></td> <%next%> </tr> <%do while not rs.eof k=0 %> <tr> <%for k=0 to colnum-1%> <td><%=rs(rs(k).name)%></td> <%next %> </tr> <% rs.movenext loop %>
<% rs.close set rs=Nothing end if end select end if endconnection %> </BODY> </HTML>
Query Analyzer就這么簡單,當然還需要改進,這就看你的了,呵呵...:)
|