═α±≥ε ∙σσ ε∩Φ±αφΦσ Γδ σ≥± ≡στ≤δⁿ≥α≥ε∞ δΦ≈φ√⌡ ²Ω±∩σ≡Φ∞σφ≥εΓ Φ φαßδ■ΣσφΦΘ αΓ≥ε≡α Φ φσ ∩≡σ≥σφΣ≤σ≥ φα ∩εδφε≥≤, ≥ε≈φε±≥ⁿ Φ Γ±σεß·σ∞δσ∞ε±≥ⁿ. ≡αΣΦ Σε±≥≤∩φε±≥Φ φσΩε≥ε≡√σ ≥σ≡∞Φφ√ Φ Γ√ΩδαΣΩΦ Σαφ√ Γ ≤∩≡ε∙σφφε∞ ΓΦΣσ. ∩ε Γετ∞εµφε±≥Φ ≥αΩΦσ ∞σ±≥α ±φαßµσφ√ ±±√δΩα∞Φ φα ßεδσσ ∩εΣ≡εßφεσ ε∩Φ±αφΦσ.
1. ε≥δΦ≈Φσ ε∩Φ±αφΦ ∞σ≥εΣεΓ Γ vbscript Φ javascript
2. ΩαΩ επ≡αφΦ≈Φ≥ⁿ Ωεδ-Γε Γ√ΓεΣΦ∞√⌡ ±≥≡εΩ ∩≡Φ Γ√∩εδφσφΦΦ τα∩≡ε±α?
3. ∩εδστφ√Θ ≥≡■Ω: ΩαΩ ε≡παφΦτεΓα≥ⁿ Γ√ΓεΣ εß·σΩ≥εΓ (φα∩≡Φ∞σ≡, Ωα≡≥ΦφεΩ) Γ ≥αßδΦ÷σ ∩ε Φ⌡ URL'α∞
4. ß√≥ⁿ ε±≥ε≡εµφ√∞ ± RecordCount
5. ΩαΓ√≈ΩΦ
6. ΓφΦ∞αφΦσ: ≥Φ∩√ char Φ varchar
7. ∩ε ∩εΓεΣ≤ ΣδΦφ√ ±≥≡εΩΦ
8. δ≤≈°σ ∩εδⁿτεΓα≥ⁿ± ±ΓεΘ±≥Γε∞ .value
9. "σ±δΦ RecordSet σ±≥ⁿ, ≥ε σπε ±≡ατ≤ φσ≥..."
┬ε ≈≥ε ±≡ατ≤ µσ Γδ ∩αδ± , ΩεπΣα ταΣ≤∞αδ ∩σ≡σΓεΣΦ≥ⁿ asp-⌠αΘδ√ Φτ vbscript φα javascript, ²≥ε ε≥δΦ≈Φσ ±Φφ≥αΩ±Φ≈σ±Ωεπε ε⌠ε≡∞δσφΦ ∞σ≥εΣεΓ Γ ≡ατφ√⌡ ±Ω≡Φ∩≥- τ√Ωα⌡. σ±δΦ Γ vbscript ≡αßε≥αδα ±≥≡εΩα:
rs.MoveNext
≥ε Γ javascript ±εε≥Γσ≥±≥Γ≤■∙α ±≥≡εΩα
rs.MoveNext;
Γ√ΣαΓαδα ±≥≡αφφ≤■ ε°ΦßΩ≤ ≥Φ∩α "εß·σΩ≥ φσ ∩εΣΣσ≡µΦΓασ≥ Σαφφεσ ±ΓεΘ±≥Γε ΦδΦ ∞σ≥εΣ". "± ΩαΩεΘ ±≥α≥Φ φσ ∩εΣΣσ≡µΦΓασ≥?" - Σε±≥α≥ε≈φε Σεδπε ±∩≡α°ΦΓαδ ±σß , ∩εΩα φσ ΣεπαΣαδ± ∩≡Φ∩Φ±α≥ⁿ ∩α≡≤ ±ΩεßεΩ :):
rs.MoveNext();
╟α±≤φ≤≥ⁿ ≡στ≤δⁿ≥α≥ τα∩≡ε±α Γ ∞α±±ΦΓ φ≤µφεπε ≡ατ∞σ≡α; Γ√Σα≥ⁿ φα ²Ω≡αφ ±εΣσ≡µΦ∞εσ ∞α±±ΦΓα. ╧≡Φ∞σ≡:
<% ' ╬≥Ω≡√≥Φσ ßατ√ Σαφφ√⌡, ⌠ε≡∞Φ≡εΓαφΦσ τα∩≡ε±α. Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "ADOSamples" sql="SELECT * FROM Orders" Set RS = Conn.Execute(sql) %> <TABLE BORDER=1> <TR> <% For i = 0 to RS.Fields.Count - 1 ' Γ√ΓεΣ Φ∞σφ ∩εδσΘ%> <TD><B><% = RS(i).Name %></B></TD> <% Next %> </TR> <% ' ╧ε∞σ±≥Φ≥ⁿ ∩σ≡Γ√σ 100 ±≥≡εΩ τα∩≡ε±α Γ 2-∞σ≡φ√Θ variant-∞α±±ΦΓ v=RS.GetRows(100) RS.close ' ταΩ≡√≥ⁿ εß·σΩ≥ ≥Φ∩α RecordSet Conn.close ' ταΩ≡√≥ⁿ εß·σΩ≥ ≥Φ∩α Connection %>
╬ßετΓα≥ⁿ ±εε≥Γσ≥±≥Γ≤■∙Φ∞ εß≡ατε∞ Φ∞ ∩εδ , ±εΣσ≡µα∙σπε URL, φα∩≡Φ∞σ≡ URLimage.
┬ ∩≡ε÷σ±±σ Γ√ΓεΣα Σαφφ√⌡ ∩≡εΓσ≡ ≥ⁿ Φ∞ ∩εδ φα φαδΦ≈Φσ ∩εΣ±≥≡εΩΦ "URL" Φ Γ ταΓΦ±Φ∞ε±≥Φ ε≥ ²≥επε Γ√ΓεΣΦ≥ⁿ ±εΣσ≡µΦ∞εσ ∩εδ ΩαΩ ≥σΩ±≥ ΦδΦ ΩαΩ ±±√δΩ≤, ΦδΦ ΩαΩ εß·σΩ≥, φα Ωε≥ε≡√Θ ²≥α ±±√δΩα ≤Ωατ√Γασ≥. ╧≡Φ∞σ≡:
<% ' Note: The following is a bit of a hack...If the column name contains ' the string "URL" anywhere in it, assume it is a URL to a gif or jpg ' file and generate the HTML to get the image and display. This works ' for the Products table in the Adventure Works database, but is not a ' general purpose solution. If InStr(RS(i).Name, "URL") > 0 Then Response.Write "<img src=""" & RS(i) & """>"
Else Response.Write RS(i) End If %>
╩εδΦ≈σ±≥Γε τα∩Φ±σΘ Γ ∩εδ≤≈σφφε∞ τα∩≡ε±σ ∞εµφε ε∩≡σΣσδΦ≥ⁿ ± ∩ε∞ε∙ⁿ■ property RecordCount:
<% sql="SELECT * FROM Orders" Set RS = Conn.Execute(sql) RS.RecordCount %>
╬ΣφαΩε ²≥ε τφα≈σφΦσ ∞εµσ≥ ≡αΓφ ≥ⁿ± -1 ≥εδⁿΩε Φτ-τα ≥επε, ≈≥ε ADO Γ Φ±∩εδⁿτ≤σ∞εΘ Ωεφ⌠Φπ≤≡α÷ΦΦ φσ ∞εµσ≥ ε∩≡σΣσδΦ≥ⁿ ΩεδΦ≈σ±≥Γε ±≥≡εΩ.
E±δΦ Γ τα∩≡ε±σ Φ±∩εδⁿτ≤■≥± ±≥≡εΩεΓ√σ τφα≈σφΦ , ≥ε δ≤≈°σ Φ±∩εδⁿτεΓα≥ⁿ ' (α∩ε±≥≡ε⌠), α φσ " (ΣΓεΘφεΘ α∩ε±≥≡ε⌠). ═σ±∞ε≥≡ φα ≥ε, ≈≥ε Γ ISQL/w Γ√∩εδφ ■≥± εßα τα∩≡ε±α εΣΦφαΩεΓε, Γ asp (ß√≥ⁿ ∞εµσ≥ Γ ²≥ε∞ ΓΦφεΓα≥ javascript) ΣΓεΘφεΘ α∩ε±≥≡ε⌠ Γ√τ√Γασ≥ ε°ΦßΩ≤. ═α∩≡Φ∞σ≡ δ≤≈°σ ≥αΩ:
<% sql="SELECT * FROM Orders WHERE id = '"+id+"'"; %>
α φσ ≥αΩ:
<% sql="SELECT * FROM Orders WHERE id = \""+id+"\""; %>
C≡αΓφΦΓα τφα≈σφΦ ∩σ≡σ∞σφφεΘ, ∩εδ≤≈σφφεΘ Φτ τα∩εδφσφφεΘ ⌠ε≡∞√, Φ ΦτΓδσ≈σφφεΘ Φτ ∩εδ ≥αßδΦ÷√ ≥Φ∩α char φσ ∞επ ΣεßΦ≥ⁿ± , ≈≥εß√ javascript ∩ε±≈Φ≥αδ Φ⌡ ≡αΓφ√∞Φ, ⌡ε≥ Γφσ°φσ εφΦ Γ√πδ ΣσδΦ ±εΓσ≡°σφφε εΣΦφαΩεΓ√∞Φ. ╧≡Φ≈σ∞ ± ε±≥αδⁿφ√∞Φ ∩σ≡σ∞σφφ√∞Φ ß√δε Γ±σ φε≡∞αδⁿφε. ╬Ωαταδε±ⁿ, ≈≥ε εφΦ ±≡αΓφΦΓαδΦ±ⁿ ± ∩εδ ∞Φ ≥Φ∩α varchar. ┬±∩ε∞φΦΓ ∩ε≈≥Φ ταß√≥√σ τφαφΦ ε ≥Φ∩α⌡ ∩εδσΘ ±≤ßΣ oracle, ∩≡Φ°σδ Ω Γ√ΓεΣ≤, ≈≥ε ΓΦφεΓα≥ ≥Φ∩ char, τφα≈σφΦσ Ωε≥ε≡επε Φ∞σσ≥ ΣδΦφ≤ ≥αΩ≤■, ΩαΩ≤■ εß· ΓΦδΦ Σδ ∩εδ . ╟φα≈σφΦσ µσ ≥Φ∩α varchar Φ∞σσ≥ ΣδΦφ≤ Γ ±εε≥Γσ≥±≥ΓΦΦ ± ±εΣσ≡µα∙σΘ± ±≥≡εΩεΘ.
╧≡ε∞≤≈ΦΓ°Φ±ⁿ ± ε∩≡σΣσδσφΦσ∞ ΣδΦφ√ ∩σ≡σ∞σφφεΘ, ≡σ°Φδ, ≈≥ε δ≤≈°σ Γ±σπε Γ ≥αßδΦ÷α⌡ φσ Φ±∩εδⁿτεΓα≥ⁿ ≥Φ∩ char ßστ ε±εßεΘ φσεß⌡εΣΦ∞ε±≥Φ.
╧σ≡σ∞σφφ√σ, ∩εδ≤≈σφφ√σ Φτ ⌠ε≡∞√ ±∩ε±εßε∞:
name = Request.form("name");
ΦδΦ Φτ ßατ√ Σαφφ√⌡:
sql = "SELECT name, passw, email FROM persons WHERE email = '"+email+"'"; rs = conn.Execute(sql); name = rs(0);
φα Γε∩≡ε± name.length ε≥Γσ≈α■≥ "φσΦτΓσ±≥φε". ╩επΣα ≤ ∞σφ Γ±σ µσ ΓετφΦΩδα φσεß⌡εΣΦ∞ε±≥ⁿ Γ ε∩≡σΣσδσφΦΦ ΣδΦφ√ ≥αΩΦ⌡ τφα≈σφΦΘ, ∩ε±≥≤∩Φδ ≥αΩ:
var name = ""; name += Request.form("name"); var name = ""; sql = "SELECT name, passw, email FROM persons WHERE email = '"+email+"'"; rs = conn.Execute(sql); name += rs(0);
═≤µφε ß√≥ⁿ ε±≥ε≡εµφ√∞ ± εß·σΩ≥α∞Φ Recordet. ┼±δΦ Γ html σ∙σ ∞εµφε Γ√Γσ±≥Φ ∩σ≡σ∞σφφ≤■ ≥αΩ:
<% rs = conn.Execute(sql); %> <%= rs(0)%>
≥ε, ≡αßε≥α ± ∩σ≡σ∞σφφεΘ, ∞εµφε φα∩ε≡ε≥ⁿ± φα φσ∩≡Φ ≥φε±≥Φ. ═α∩≡Φ∞σ≡, Γ√≡αµσφΦσ
(rs(0) == name)
Γ√Σα±≥ "δεµⁿ" ∩≡Φ ≥ε∞, ≈≥ε ∩≡Φ Γ√ΓεΣσ εßα τφα≈σφΦ ß≤Σ≤≥ εΣΦφαΩεΓ√∞Φ. ╧≡αΓΦδⁿφσσ ±Σσδα≥ⁿ ≥αΩ:
(rs(0).value == name)
╬∩ ≥ⁿ ∩≡ε ε±≥ε≡εµφε±≥ⁿ ± εß·σΩ≥α∞Φ Recordet. ─ε∩≤±≥Φ∞ ∞√ Γ√τ√Γασ∞ ⌡≡αφΦ∞≤■ ∩≡ε÷σΣ≤≡≤:
CREATE PROCEDURE do_test1 @num int AS select * from test where num = @num return 100
╧≡Φ φσΩε≥ε≡√⌡ τφα≈σφΦ ⌡ ∩α≡α∞σ≥≡α @num Σαφφα ∩≡ε÷σΣ≤≡α ß≤Σσ≥ Γ√ΣαΓα≥ⁿ εΣφ≤ ΦδΦ ±≥≡ε≈Ω≤ Φτ ≥αßδΦ÷√ test, α ∩≡Φ Σ≡≤πΦ⌡ - φσ Γ√ΣαΓα≥ⁿ φΦ εΣφεΘ. ┼±δΦ ∞√ εß≡α≥Φ∞± Ω rs, ∩εδ≤≈σφφε∞≤, φα∩≡Φ∞σ≡, ≥αΩΦ∞ ±∩ε±εßε∞:
rs = conn.Execute("do_test1 1"); rs.Close();
≥ε, φΦΩαΩΦ⌡ φσ∩≡Φ ≥φε±≥σΘ φσ ΓετφΦΩφσ≥.
┼±δΦ µσ ∩≡ε÷σΣ≤≡α ß≤Σσ≥ Γ√πδ Σσ≥ⁿ ≥αΩΦ∞ εß≡ατε∞:
CREATE PROCEDURE do_test2 @num int AS if @num = 1 select * from test where num = @num return 100 else return 200
≥ε ε∩σ≡α≥ε≡√:
rs = conn.Execute("do_test2 1"); rs.Close();
± ≡≤Ω ±εΘΣ≤≥, α Γε≥:
rs = conn.Execute("do_test2 0"); rs.Close();
Γ√τεΓ≤≥ ε°ΦßΩ≤ φα Close():
ADODB.Recordset error '800a0e78' Invalid operation on closed object.