Recordsets in HTML darstellen gehört zur täglichen Arbeit eines ASP-Programmierers. Ein bischen "Do Until" hier, etwas "Loop" da, dazwischen noch etwas "Response.Write rs.Fields..." und schon ist ein Recordset im Browser.
Allerdings ist das nicht die schnellste Methode. Für jedes Tabellen-Feld wird "Response.Write" ausgeführt, oder noch schlechter; das HTML-Table wird als String generiert und mit "Response.Write" ausgegeben. Immer wird also viel Script vom IIS interpretiert, z.B. 100-mal "Response.Write...". ASP wird interpretiert und ist deshalb um ein vielfaches langsamer als Kompilierte Applikationen. Und bei der String-Generierung werden sehr sehr viele Bytes kopiert und verschoben, ist also noch mal langsamer. Anders ist es, wenn Sie GetString von ADO verwenden.
GetString von ADO
= konvertiert ein komplettes Recordset in einen String. Spalten- und Zeilenwerte lassen sich mit benutzerdefinierten Trennzeichen versehen.
Alles was man also tun muss, ist die Trennzeichen als HTML-TABLE-Tags zu definieren. Sie lassen sich Ihr HTML-Table also von einer COM-Komponente erstellen, die sicher schneller ist als ASP-Script.
Sample: GetString-Methode zum erstellen eines HTML-Tables
sSQL = "SELECT TOP 20 [CustomerID], ContactName, CompanyName FROM Customers" set conn = Server.CreateObject("ADODB.Connection") set rs = Server.CreateObject("ADODB.Recordset") conn.Open Application("ToNW_ConnectionString") rs.Open sSQL, conn, adOpenForwardOnly, adLockReadOnly ' Kopf-Zeile mit Spaltennamen genieren Response.Write "<table border=""1""><tr bgcolor=""red"">" for i = 0 to rs.Fields.Count - 1 Response.Write "<td>" & rs.Fields(i).Name & "</td>" next ' Table mit GetString genieren Response.Write "</tr><tr><td>" Response.Write rs.GetString(adClipString,100,"</td><td>", "</td></tr><tr><td>", "") Response.Write "</td></tr></table>" set rs = nothing set conn = nothing
|
TIP!!!
GetString können Sie auch einsetzen, wenn Sie z.B. Recordsets in CSV-Files konvertieren möchten.