QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6421|回复: 1
打印 上一主题 下一主题

ASP中令人震撼的Debug类(VBScript)

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2004-11-21 11:43 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>不知道用ASP写代码的朋友是不是和我有一样的感受,ASP中最头疼的就是调试程序的时候不方便,我想可能很多朋友都会用这样的方法“response.write ”,然后输出相关的语句来看看是否正确。前几天写了一个千行的页面,里面大概有七八个SUB/FUNCTION,调试的时候用了有三十几个response.write ,天,调试完后把这三十个一个个删除,累! </P>
9 {, f! H8 S- p<>今天看到一个ASP中的Debug类(VBS),试用了一下,绝!
8 g7 u. H" m: z* R使用方法很简单:
  q4 ~$ C# u1 S4 [. Btest.asp </P>, \' b/ i# w# I: M( U3 L
<>&lt;!--#INCLUDE FILE="debuggingConsole.asp"--&gt; # ]5 S1 c5 A( ?# \. ]
&lt;%
% j# R) A  q3 p. ^: i0 Coutput="XXXX"
. M* i) o9 u& p: ]Set debugstr = New debuggingConsole
8 o" a% g. ~# G8 {, c5 b9 j+ Ndebugstr.Enabled = true
" O% P* M; \+ [+ u' J9 r   debugstr.Print "参数output的值", output % _6 v* M' @3 M2 t& d! m9 u
   '…… 1 l, g! k5 w' i8 t( G
   debugstr.draw
; E3 b. }; b0 k) H$ ]! D+ GSet debugstr = Nothing 0 y; l/ f. F  |& V. P- w$ S  H& e' H. Q
%&gt; </P>
& F( o0 L: i2 m- n5 _: \+ z* H8 [<>=================================================== </P>( m. ~/ y& N: g$ A' {9 @& @
<>debuggingConsole.asp </P>; n3 `6 [3 U! G* |# z; b- X
<>&lt;% 0 r( M- n+ R4 f0 i, Z) O$ D
Class debuggingConsole </P>1 n8 R$ [) ^! Y) H
<>   private dbg_Enabled
1 Z  H' x6 ?% y/ I0 J. w" e7 C   private dbg_Show
$ S1 Q8 E: Z' A. I3 A( E   private dbg_RequestTime
! V6 q6 Q6 h- _) G   private dbg_FinishTime
" a. Z) c2 R9 A5 b* s   private dbg_Data
+ I. i8 V3 z. x   private dbg_DB_Data
# ~! Z" j: b) J  `1 N   private dbg_AllVars / g/ |" B* H% V# U! D
   private dbg_Show_default
+ @; c- G* x1 v, J0 D3 P0 o* [   private DivSets(2) 0 {$ M4 ?) M+ x' S1 Z$ E0 R/ @
   , n" \" Q: {' k" M' b
'Construktor =&gt; set the default values $ ^# Q" k3 _, g& v/ ^. u3 s; T1 s
Private Sub Class_Initialize()
' }& o  z- u$ C; |. _, B% B   dbg_RequestTime = Now() . C7 {) o* L% J% @# U/ y
   dbg_AllVars = false ' {1 I2 a8 I2 }6 D* X! Q3 b5 D6 e
   Set dbg_Data = Server.CreateObject("Scripting.Dictionary") </P>
) l7 V! O7 u/ [, p4 A" }6 T6 T<>DivSets(0) = "&lt;TR&gt;&lt;TD style='cursor:hand;' onclick=""javascript:if (document.getElementById('data#sectname#').style.display=='none'){document.getElementById('data#sectname#').style.display='block';}else{document.getElementById('data#sectname#').style.display='none';}""&gt;&lt;DIV id=sect#sectname# style=""font-weight:bold;cursor:hand;background:#7EA5D7;color:white;padding-left:4;padding-right:4;padding-bottom:2;""&gt;|#title#| &lt;DIV id=data#sectname# style=""cursor:text;display:none;background:#FFFFFF;padding-left:8;"" onclick=""window.event.cancelBubble = true;""&gt;|#data#| &lt;/DIV&gt;|&lt;/DIV&gt;|" </P>
" n' B) h$ a7 U5 ~- v0 ?<>   DivSets(1) = "&lt;TR&gt;&lt;TD&gt;
. m1 F8 X, x) Q0 D$ w& d&lt;DIV id=sect#sectname# style=""font-weight:bold;cursor:hand;background:#7EA5D7;color:white;padding-left:4;padding-right:4;padding-bottom:2;"" onclick=""javascript:if (document.getElementById('data#sectname#').style.display=='none'){document.getElementById('data#sectname#').style.display='block';}else{document.getElementById('data#sectname#').style.display='none';}""&gt;|#title#| &lt;DIV id=data#sectname# style=""cursor:text;display:block;background:#FFFFFF;padding-left:8;"" onclick=""window.event.cancelBubble = true;""&gt;|#data#| &lt;/DIV&gt;|&lt;/DIV&gt;|" </P>
' u7 {4 Z& Z- i. d! \' |<>   DivSets(2) = "&lt;TR&gt;&lt;TD&gt;&lt;DIV id=sect#sectname# style=""background:#7EA5D7;color:lightsteelblue;padding-left:4;padding-right:4;padding-bottom:2;""&gt;|#title#| &lt;DIV id=data#sectname# style=""display:none;background:lightsteelblue;padding-left:8""&gt;|#data#| &lt;/DIV&gt;|&lt;/DIV&gt;|" </P>
" D- q5 L$ F! _) E. z7 L<>   dbg_Show_default = "0,0,0,0,0,0,0,0,0,0,0" 3 X" |/ R- r+ `3 {- `7 ?
End Sub </P>
4 f  V& {4 B$ p. g* R<>ublic Property Let Enabled(bNewValue) ''[bool] Sets "enabled" to true or false
2 i) P" K. s& k   dbg_Enabled = bNewValue
/ e7 p" N" q0 K4 [" Q  HEnd Property </P>9 E) c1 D% `  L8 G
<>ublic Property Get Enabled ''[bool] Gets the "enabled" value
* d* |3 h0 r  U7 u6 B( ?+ P# M   Enabled = dbg_Enabled
; @& Q; [: W5 R4 o8 ]( e7 L$ GEnd Property </P>- A9 e, ?1 K- \$ q4 }; u4 Y" a
<>ublic Property Let Show(bNewValue) ''[string] Sets the debugging panel. Where each digit in the string represents a debug information pane in order (11 of them). 1=open, 0=closed
6 r% ]& G1 E- S  N   dbg_Show = bNewValue
' R7 g% w9 y4 _2 S( @5 SEnd Property </P>
+ e- e  g5 H  A. S/ M& g/ `& _+ l$ `; g<>ublic Property Get Show ''[string] Gets the debugging panel.
- h' Q2 t" a3 [) S, F% |' K/ o! G   Show = dbg_Show
- m  ~1 H7 q: e# v( QEnd Property </P>( n2 H0 n7 Q# X) Z/ r
<>ublic Property Let AllVars(bNewValue) ''[bool] Sets wheather all variables will be displayed or not. true/false - F* w& p. ]% v/ w' h8 H
   dbg_AllVars = bNewValue
; h8 s& Y/ V8 B, r* hEnd Property </P>3 F7 M8 J. H% E- @, N2 B8 C- o
<>ublic Property Get AllVars ''[bool] Gets if all variables will be displayed.
1 m4 W/ a' G+ u, j/ `  {   AllVars = dbg_AllVars
; _/ W, W6 m& G: @" LEnd Property </P>
* O) b7 V: s6 H; f9 [+ C/ S<>'*********************************************************** 7 R" z, N6 N% D; j2 M
''@SDESCRIPTION: Adds a variable to the debug-informations. 4 k8 C6 ~2 y/ G/ q$ _4 D8 g0 [- x
''@PARAM:  - label [string]: Description of the variable
: h# Q0 R' V/ J' n) W''@PARAM:  - output [variable]: The variable itself
: _9 I% U  W2 p& L( X'***********************************************************
" o4 {! W' j7 H- n4 LPublic Sub Print(label, output)
& y/ o2 B; ?5 M7 E  d6 A, b   If dbg_Enabled Then
6 |( C. P1 `: M3 t6 x     if err.number &gt; 0 then
: X( k* f1 N8 B+ J' F       call dbg_Data.Add(ValidLabel(label), "!!! Error: " &amp; err.number &amp; " " &amp; err.Description)
" Q" F# [* L2 e# T# n0 M  r  ?- Y       err.Clear
, a' i2 u. a0 ?& |) B) I1 v     else ' y! P6 {7 [) I
       uniqueID = ValidLabel(label)
" a0 [# V% o4 R, s# k/ ~       response.write uniqueID 3 L4 d( V, U2 `6 R1 W0 \; F
       call dbg_Data.Add(uniqueID, output)
) R1 Q, U& E$ k& M$ I# q1 j     end if
5 F- ], T9 T1 s3 M   End If
: J# M2 s0 J' h1 MEnd Sub
3 d7 d9 Q- d, ^$ _  9 B/ r2 m- J2 e% ?3 w
'*********************************************************** 7 Y7 V) O5 r& V9 \5 ?1 X
'* ValidLabel 2 |8 U4 N' ?6 Y4 g+ q2 _# q
'***********************************************************
' R  C' n( Z$ X3 n* |Private Function ValidLabel(byval label)
+ y& @7 i7 t/ y( D5 A   dim i, lbl
6 Y8 c& D, K. }* R( u2 ?0 X   i = 0
, d! G4 S8 Y" c   lbl = label
. L( @+ U5 e4 q! ~- C; e) C. F   do & i5 {( z% `( O5 h- h# j$ Y& p
   if not dbg_Data.Exists(lbl) then exit do 9 D9 {7 P# }8 r
   i = i + 1
5 |( Z  w) P" U4 p. D# x   lbl = label &amp; "(" &amp; i &amp; ")"
7 X3 x. ~( w- |! i/ T1 W   loop until i = i
+ o: W6 J/ V  \, a) V4 f  9 }- ~& A9 a3 q+ ?; t3 C' i
   ValidLabel = lbl 3 D8 b! s+ \  b, C1 l/ t- d: }6 {7 Z
End Function
$ `: n- C% D8 |/ D. u  1 s5 K6 {" p; H/ o9 d
'***********************************************************
$ d" R' U( ~* O- C'* PrintCookiesInfo
5 v: {4 I; K, {3 k) |'***********************************************************
% t8 l) S2 Y  @% m0 k5 mPrivate Sub PrintCookiesInfo(byval DivSetNo)
- Y! w8 Q$ S; [2 u8 Q   dim tbl, cookie, key, tmp
7 y5 D/ _& s+ H8 G" t   For Each cookie in Request.Cookies ; o, A! t9 g4 D" S4 o2 a/ U! q
   If Not Request.Cookies(cookie).HasKeys Then $ I# @/ q; w- S8 C5 g7 K
     tbl = AddRow(tbl, cookie, Request.Cookies(cookie))   4 p1 [6 J1 T4 u9 ?& W/ B
   Else " {' \& z7 D9 m% k8 ]
     For Each key in Request.Cookies(cookie)
) s* f; k. Z: f9 w0 J$ c     tbl = AddRow(tbl, cookie &amp; "(" &amp; key &amp; ")", Request.
: o  z! ?1 |0 c) z- w$ q! E  v. FCookies(cookie)(key))   
. A+ o, j% |) J2 p6 B/ |# v- Y/ u   Next
$ Z0 A' A9 s7 [( H3 C   End If
# g1 }3 T8 d& j7 d; A9 K, \   Next </P>
, q) L" p1 A% x& a<>   tbl = MakeTable(tbl)
9 h& y6 a+ ^3 u: a/ ^6 N  D+ h   if Request.Cookies.count &lt;= 0 then DivSetNo = 2
# {4 T. V5 b5 f8 q   tmp = replace(replace(replace(DivSets(DivSetNo),"#sectname#","COOKIES"),"#title#","COOKIES"),"#data#",tbl) 9 W* l& f7 F" A/ O; x7 K, a
   Response.Write replace(tmp,"|", vbcrlf) ' }) K9 j" {) [8 g- P
end sub 1 ~' X4 r& b2 U8 }9 \/ K/ p7 {
  / e9 ~, V- R. F* V, M# f- B
'*********************************************************** 7 z* {# _" v9 b2 i% Z% I# Q
'* PrintSummaryInfo 1 l* i/ F+ u, `6 D
'*********************************************************** 3 i, A  p( F+ ?: M
Private Sub PrintSummaryInfo(byval DivSetNo) ' S9 Y! v, d4 @5 c* c, G# ?
   dim tmp, tbl 9 U' t2 D* Y7 i/ Y" l
   tbl = AddRow(tbl, "Time of Request",dbg_RequestTime) / [: G2 m% f( E7 ]5 A* ]9 b" {' l
   tbl = AddRow(tbl, "Elapsed Time",DateDiff("s", dbg_RequestTime, dbg_FinishTime) &amp; " seconds") $ p8 G0 w/ D/ y$ K' D! k
   tbl = AddRow(tbl, "Request Type",Request.ServerVariables("REQUEST_METHOD"))
8 w& I- P* {' W   tbl = AddRow(tbl, "Status Code",Response.Status)
( ]$ |. a% E, K* o  }   tbl = AddRow(tbl, "Script Engine",ScriptEngine &amp; " " &amp; ScriptEngineMajorVersion &amp; "." &amp; ScriptEngineMinorVersion &amp; "." &amp; ScriptEngineBuildVersion) ; A+ U& |- m& q0 X3 N: o, r2 k/ [
   tbl = MakeTable(tbl)
5 g; M# U( ?9 z' v! f! B   tmp = replace(replace(replace(DivSets(DivSetNo),"#sectname#","SUMMARY"),"#title#","SUMMARY INFO"),"#data#",tbl) 3 K  r  _/ ]8 H9 }+ g$ u# I+ N; i0 ?
   Response.Write replace(tmp,"|", vbcrlf)   w0 ^* t4 X( c/ {: S- ]7 r7 a7 F
End Sub </P>
5 R$ n) g9 }4 w" |6 @5 L3 ^, f" ?<>'***********************************************************
5 r' J9 q' e. @, {''@SDESCRIPTION: Adds the Database-connection object to the debug-instance. To display Database-information
3 ^% V  H+ t1 A6 R' q& M''@PARAM:  - oSQLDB [object]: connection-object
" D! }+ p+ D" e3 H; x'***********************************************************
! Q5 [. f& z  y6 C0 r) b" CPublic Sub GrabDatabaseInfo(byval oSQLDB)
: }5 w* \0 C' T0 d2 S8 X4 Q   dbg_DB_Data = AddRow(dbg_DB_Data, "ADO Ver",oSQLDB.Version) 2 {9 _9 k0 t1 T; |/ U. k- ~- j
   dbg_DB_Data = AddRow(dbg_DB_Data, "OLEDB Ver",oSQLDB.Properties("OLE DB Version")) 1 Q2 I" f( @3 I' t7 B5 f% k
   dbg_DB_Data = AddRow</P>
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持1 反对反对0 微信微信
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

(dbg_DB_Data, "DBMS",oSQLDB.Properties("DBMS Name") &amp; " Ver: " &amp; oSQLDB.Properties("DBMS Version"))
. V: s2 r( [1 n# j   dbg_DB_Data = AddRow(dbg_DB_Data, "rovider",oSQLDB.Properties("rovider Name") &amp; " Ver: " &amp; oSQLDB.Properties("rovider Version"))
1 @; A6 b* a. ]! `# T7 F- q7 `End Sub <>'***********************************************************
- X/ [8 h3 E; F9 j' ^, B# L'* PrintDatabaseInfo
1 W% l& P- E3 r2 c: @$ U'***********************************************************
( L! q5 b6 u2 ~9 }0 K$ bPrivate Sub PrintDatabaseInfo(byval DivSetNo) 9 |$ L2 {. ?, X5 Q! H# F
   dim tbl
  u7 P/ p2 I/ J  s/ V  ?   tbl = MakeTable(dbg_DB_Data)
4 X4 E) ~( B% b  i   tbl = replace(replace(replace(DivSets(DivSetNo),"#sectname#","DATABASE"),"#title#","DATABASE INFO"),"#data#",tbl)
& n7 d* H7 G! i: I- K2 `+ D   Response.Write replace(tbl,"|", vbcrlf)
# }5 |  t9 A$ O( s. ^End Sub </P><>'***********************************************************
6 G1 @' i! c8 R# v$ _'* PrintCollection
4 M7 b3 l- b& G4 ~' V'***********************************************************
# O! `( X& a% W& v2 @Private Sub PrintCollection(Byval Name, ByVal Collection, ByVal DivSetNo, ByVal ExtraInfo)
  s  N$ Y2 [1 x  `   Dim vItem, tbl, Temp
! \/ _! o7 Z- z6 g# |. o. u" e   For Each vItem In Collection
! P( J7 |0 U1 }     if isobject(Collection(vItem)) and Name &lt;&gt; "SERVER VARIABLES" and Name &lt;&gt; "QUERYSTRING" and Name &lt;&gt; "FORM" then 7 y8 h: r$ `* v: y
       tbl = AddRow(tbl, vItem, "{object}")
# t$ I4 i5 b$ V- R- Q     elseif isnull(Collection(vItem)) then
5 _! Q8 i4 x! G! [( Y       tbl = AddRow(tbl, vItem, "{null}") 5 a; m  q9 S+ e7 M5 o, r$ u
     elseif isarray(Collection(vItem)) then 2 D% O& b& z8 H
       tbl = AddRow(tbl, vItem, "{array}") # k1 G' |! N) c, ]' z# O
     else 4 a: n+ h: n( R, c1 j4 J! {
       if dbg_AllVars then ; `5 k6 O( q* ^! r2 B
       tbl = AddRow(tbl, "&lt;nobr&gt;" &amp; vItem &amp; "&lt;/nobr&gt;", server.HTMLEncode(Collection(vItem))) # H& q: v+ k& X7 E* g, H
     elseif (Name = "SERVER VARIABLES" and vItem &lt;&gt; "ALL_HTTP" and vItem &lt;&gt; "ALL_RAW") or Name &lt;&gt; "SERVER VARIABLES" then
" w0 c& N9 F0 O- F       if Collection(vItem) &lt;&gt; "" then
3 ?! v0 {; t% u: C3 a7 y       tbl = AddRow(tbl, vItem, server.HTML
( O8 Y! {. X4 HEncode(Collection(vItem))) ' &amp; " {" &amp; TypeName(Collection(vItem)) &amp; "}") " C3 q/ ]( h/ {; i- F$ |8 d
       else & @( j* s! t1 [" v
       tbl = AddRow(tbl, vItem, "...") + L: d/ \+ w; N% x% ]. v. ]
       end if
8 O" J; y: u# r! j8 d; O2 Z) @3 j     end if
0 E) O/ B5 h2 j/ K   end if 8 e4 j' M3 K! O* f
   Next
- A1 @; W2 F  S% v" y   if ExtraInfo &lt;&gt; "" then tbl = tbl &amp; "&lt;TR&gt;&lt;TD COLSPAN=2&gt;&lt;HR&gt;&lt;/TR&gt;" &amp; ExtraInfo
& v6 {- O' ^! r9 m& M% ^- q9 o   tbl = MakeTable(tbl) # Y) F! d+ _( j. w- a. D3 m3 W
   if Collection.count &lt;= 0 then DivSetNo =2
- c. n, k: }+ m     tbl = replace(replace(DivSets(DivSetNo),"#title#",Name),"#data#",tbl)
% c8 n6 Z  |" x: F" N0 ?5 i     tbl = replace(tbl,"#sectname#",replace(Name," ",""))
+ B- \( `1 r9 ~6 X8 m     Response.Write replace(tbl,"|", vbcrlf) % K1 ^" m; _. ~; G' o; i
End Sub
1 R9 ?# R# u" P. Z9 x  
  a+ a, X1 @5 V# ]- v% [; x+ ]) w'*********************************************************** % ~$ }5 P5 S/ r6 B
'* AddRow 3 m1 i7 i) A% Q/ L
'*********************************************************** 4 v# R  _  s+ j3 X* m
Private Function AddRow(byval t, byval var, byval val) 7 P$ R# {3 a+ Z# L7 P- v4 \
   t = t &amp; "|&lt;TR valign=top&gt;|&lt;TD&gt;|" &amp; var &amp; "|&lt;TD&gt;= " &amp; val &amp; "|&lt;/TR&gt;" $ R6 a+ L( y7 W8 b! f* L2 R
   AddRow = t 1 i/ U; w) ?" I3 G/ h% D8 p
End Function </P><>'*********************************************************** 0 _3 I9 n/ f1 x, T5 _! `
'* MakeTable
: e1 ~) _/ s4 @'*********************************************************** 5 m! L/ |( k7 Y: Z, S
Private Function MakeTable(byval tdata)
1 ~, W) T# X- V9 r2 [8 O, \1 T   tdata = "|&lt;table border=0 style=""font-size:10pt;font-weight:normal;""&gt;" + tdata + "&lt;/Table&gt;|" 3 S. ^$ B/ y% y/ w2 D
   MakeTable = tdata 6 v$ k1 P/ U3 C8 n/ p- ^
End Function </P><>'***********************************************************
  y2 E5 k# Z; e0 r''@SDESCRIPTION: Draws the Debug-panel
; ~, B( P) A# b& c" g'***********************************************************
& Q! E& t: T' TPublic Sub draw() ! D  y" O5 X8 y4 E; \
   If dbg_Enabled Then
8 y5 Y* C& f! g- p     dbg_FinishTime = Now()
9 K$ i/ Y+ |2 l  r5 x2 Q  
( O, B% F9 @2 v1 j   Dim DivSet, x " S3 L, `* K1 S, M" L4 I2 [: h
   DivSet = split(dbg_Show_default,",")
9 c% v% w8 W$ F% w$ \     dbg_Show = split(dbg_Show,",") 4 _: h  O* h9 a# U6 `2 F
  & W# H# b. L! [0 ~6 g
   For x = 0 to ubound(dbg_Show)
" m$ X$ T8 @6 T* V# i" [5 H     divSet(x) = dbg_Show(x)
! h1 B  R7 i3 B9 H1 l9 A  e) \   Next
* x' |" a- s6 L  7 F: U3 r. P; T  O+ V/ [$ Q7 \9 j
   Response.Write "&lt;BR&gt;&lt;Table width=100% cellspacing=0 border=0 style=""font-family:arial;font-size:9pt;font-weight:normal;""&gt;&lt;TR&gt;&lt;TD&gt;&lt;DIV style=""background:#005A9E;color:white;padding:4;font-size:12pt;font-weight:bold;""&gt;Debugging-console:&lt;/DIV&gt;" ; o8 b! w* e9 L6 a) t3 A! V
   Call PrintSummaryInfo(divSet(0)) 5 v) B- `* O1 ]( ^7 s
     Call PrintCollection("VARIABLES", dbg_Data,divSet(1),"") 8 b; X: v( X( S1 x& o
    Call PrintCollection("QUERYSTRING", Request.QueryString(), divSet(2),"")
5 j' `, j# m' e% x$ S. ~    Call PrintCollection("FORM", Request.Form(),divSet(3),"")
, U, G, L. v1 H  i/ |. O) |    Call PrintCookiesInfo(divSet(4))
  b+ D% x2 Q! h1 l8 ]0 M    Call PrintCollection("SESSION", Session.Contents(),divSet(5),AddRow(AddRow(AddRow("","Locale ID",Session.LCID &amp; " (&amp;H" &amp; Hex(Session.LCID) &amp; ")"),"Code Page",Session.CodePage),"Session ID",Session.SessionID)) . h1 P) {# t, v. C2 p
    Call PrintCollection("APPLICATION", Application.Contents(),divSet(6),"") 8 n! D6 Y- c; ~) ?2 v
    Call PrintCollection("SERVER VARIABLES", Request.ServerVariables(),divSet(7),AddRow("","Timeout",Server.ScriptTimeout)) 0 M3 {5 R+ f4 _7 x/ s7 N
    Call PrintDatabaseInfo(divSet(8))
" _. Q5 _$ `4 a$ |8 A    Call PrintCollection("SESSION STATIC OBJECTS", Session.StaticObjects(),divSet(9),"")
3 r" }% w$ z! ^! i* i, f    Call PrintCollection("APPLICATION STATIC OBJECTS", Application.StaticObjects(),divSet(10),"")
, L6 k: a- [- ~    Response.Write "&lt;/Table&gt;"
( f- p: ?" `' m   End If
0 Q  k2 U2 }& I! k4 z' AEnd Sub </P><>'Destructor
4 V$ c" ^! \! ?+ h4 RPrivate Sub Class_Terminate() " J7 N! \5 K: c
   Set dbg_Data = Nothing
. l( }: m& p+ A! a; F! q8 ]End Sub </P><>End Class </P><>%&gt; </P><>类的说明: </P><>
" T& g% y) l/ ~: b2 {' c3 }/ MCLASS debuggingConsole
3 f( L6 H' O/ \, c" [Version: 1.2 </P><>-------------------------------------------------------------------------------- </P><>ublic Properties </P><>roperty Let Enabled(bNewValue)===[bool] Sets "enabled" to true or false ; }4 M' y+ {$ j1 }: T- Q
&amp;n2 a( }# h+ d$ K7 Z
bsp; 0 M* [" e# N9 S" }+ U" ^
Property Get Enabled===[bool] Gets the "enabled" value 8 d$ r0 L1 g2 E+ z+ B
  
- M% j- r7 j$ i5 r7 {Property Let Show(bNewValue)===[string] Sets the debugging panel. Where each digit in the string represents a debug information pane in order (11 of them). 1=open, 0=closed
) X' f% l8 ^/ N' v8 b2 K; B$ ~  6 @. `  M  x+ ^  A0 U
Property Get Show===[string] Gets the debugging panel. 7 Y4 c% `+ O- ^/ l: u
  1 @8 g0 a" Z4 G, d9 j. ]& z
Property Let AllVars(bNewValue)===[bool] Sets wheather all variables will be displayed or not. true/false </P><>roperty Get AllVars===[bool] Gets if all variables will be displayed.  </P><>-------------------------------------------------------------------------------- 3 i0 N5 a! M8 P( I4 D  F' z
Public Methods </P><>public sub===Print (label, output) ' W7 {* `( T* w8 K
   Adds a variable to the debug-informations.  </P><>public sub===GrabDatabaseInfo (byval oSQLDB) - q, g; k% R; D4 K
   Adds the Database-connection object to the debug-instance. To display Database-information  </P><>public sub===draw ()
& \% p3 v5 t6 T, k8 D% o& n   Draws the Debug-panel  </P><>-------------------------------------------------------------------------------- 4 g% ?$ E$ ~9 z/ Q! n
Methods Detail
" @: C" K, P9 q* ~6 z$ u* G  
/ F5 N5 t% U: u3 Fpublic sub===Print (label, output) / t/ b& {* u3 R0 d5 C- g
Parameters:  
9 B" C2 v, y" D" v1 o   - label [string]: Description of the variable
: ]" V( H. |  G- R  q   - output [variable]: The variable itself . C* g0 Y& B) v5 `8 ?1 Z! r
  
. x9 I' r& i/ x5 r) h; kpublic sub===GrabDatabaseInfo (byval oSQLDB) 1 |4 z$ F1 d- Y* w/ ?. w1 e6 N
Parameters:  6 e& d( O" E. H  p
   - oSQLDB [object]: connection-object</P>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-11-28 00:29 , Processed in 2.054020 second(s), 57 queries .

回顶部