📄 sql.aspx
字号:
<%@ Page Language="JScript" ContentType="text/xml" EnableSessionState ="false" EnableViewState="false" AutoEventWireup="false" Debug="true"%><%-- Since we do not allow updates to the DB we can cache the result for as long as we want--%><%@ OutputCache Duration="600" VaryByParam="*" %><%@ Import namespace="System.Data" %><%@ Import namespace="System.Data.Common" %><%@ Import namespace="System.Data.Odbc" %><%@ Import namespace="System.Data.OleDb" %><script language="JScript" runat="server">abstract class MyQuery { protected var ds : DataSet; protected var dt : DataTable; protected var dc : DataColumn; protected var dr : DataRow; public function executeQuery( sSql : String ) : void;}class OdbcQuery extends MyQuery { private const conStr : String = "Driver={MySQL};" + "Server=localhost;Database=nwind;uid=demo;pwd=demo;option=3"; private var con : OdbcConnection; private var cmd : OdbcCommand; private var da : OdbcDataAdapter; function executeQuery( sSql : String ) : void { con = new OdbcConnection(conStr); cmd = new OdbcCommand( sSql, con ); da = new OdbcDataAdapter(); da.SelectCommand = cmd; ds = new DataSet; try { da.Fill(ds); } catch (ex : OdbcException) { dt = new DataTable; dc = new DataColumn("Message"); dc.DataType = System.String; dt.Columns.Add(dc); dc = new DataColumn("Source"); dc.DataType = System.String; dt.Columns.Add(dc); for (var i : int = 0; i < ex.Errors.Count; i++) { dc = new DataColumn("Errors[" + i + "]"); dc.DataType = System.String; dt.Columns.Add(dc); } dr = dt.NewRow(); dr["Message"] = ex.Message; dr["Source"] = ex.Source; for (i = 0; i < ex.Errors.Count; i++) dr["Errors[" + i + "]"] = ex.Errors[i]; dt.Rows.Add(dr); ds.Tables.Add(dt); // throw ex; } ds.WriteXml( Response.Output, XmlWriteMode.WriteSchema ); }}class OleDbQuery extends MyQuery { private const conStr : String = "Provider=OraOLEDB.Oracle;Password=****;" + "Persist Security Info=True;User ID=****;Data Source=****"; private var con : OleDbConnection; private var cmd : OleDbCommand; private var da : OleDbDataAdapter; function executeQuery( sSql : String ) : void { con = new OleDbConnection(conStr); cmd = new OleDbCommand( sSql, con ); da = new OleDbDataAdapter(); da.SelectCommand = cmd; ds = new DataSet; try { da.Fill(ds); } catch (ex : OleDbException) { dt = new DataTable; dc = new DataColumn("Message"); dc.DataType = System.String; dt.Columns.Add(dc); dc = new DataColumn("Source"); dc.DataType = System.String; dt.Columns.Add(dc); for (var i : int = 0; i < ex.Errors.Count; i++) { dc = new DataColumn("Errors[" + i + "]"); dc.DataType = System.String; dt.Columns.Add(dc); } dr = dt.NewRow(); dr["Message"] = ex.Message; dr["Source"] = ex.Source; for (i = 0; i < ex.Errors.Count; i++) dr["Errors[" + i + "]"] = ex.Errors[i]; dt.Rows.Add(dr); ds.Tables.Add(dt); // throw ex; } ds.WriteXml( Response.Output, XmlWriteMode.WriteSchema ); }}</script><%Response.Cache.SetCacheability( HttpCacheability.NoCache );var q : MyQuery = new OdbcQuery;var sql : String = Request.QueryString["q"] || "SELECT 'Error: Missing query parameter (q)'";q.executeQuery( sql );%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -