Ein einfacher Query Analyzer
Geschrieben von: Christian Holm Der heutige Artikel befaßt sich mit einem altbekannten Thema - SQL Statements. Hierbei wird aber nicht auf die einzelnen SQL Statements eingegangen, sondern wie man sich ein ASP Formular codet, in dem man bequem Statements eingeben kann, und dann eine dementsprechende Ausgabe erhält. Das Formular sollte die Möglichkeit bieten, ein beliebiges SQL Statement einzugeben. Nach einem erfolgten Postback sollte anhand der Eingabe das Statement ausgeführt werden, und falls möglich ein Ergebnis angezeigt werden. Den Sourcecode zu diesem Beispiel finden Sie im Download in der Datei ExSQL.asp. Das Eingabeformular enthält keine Stolpersteine: <form method="post"> <table cellpadding="2" cellspacing="2" border="0"> <tr> <td valign="top">SQL Statement:</td> <td> <textarea name="txtSQLStmt" rows="8" cols="60"><%=strSQLStmt%> </textarea> </td> </tr> <tr> <td colspan="2" align="right"><input type="submit" value="Execute"></td> </tr> </table> </form> Interessanter hingegen ist der eigentliche Sourcecode. Damit dieser etwas mehr Komfort bzw. Sicherheit bietet, habe ich zusätzlich eine Fehlerbehandlung integriert. Gehen wir also den Sourcecode schrittweise durch: If bIsPostback Then Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open strConn On Error Resume Next Set objRS = objConn.Execute(strSQLStmt) If Err.Number <> 0 Then Response.Write "<p>Fehler bei der Ausführung des SQL Statements:<br><b>" Response.Write Err.Source & ", " & Err.Description & "</b></p>" Else Dieser Teil wird ausgeführt, wenn ein PostBack stattgefunden hat. Die Variable bIsPostback wurde so vorher mit bIsPostback = CLng(Request.ServerVariables("CONTENT_LENGTH")) zugewiesen. Nach der Instanzierung des Connection Objektes und Öffnung der Verbindung zur Datenbank (als Beispiel wurde hier die Northwind Datenbank hardcodiert) beginnt die Fehlerbehandlung. Falls die Number Property des Err Objektes ungleich 0 ist, ist ein Fehler aufgetreten. Dieser wird dann mit den Properties Source und Description beschrieben. Da die Execute Methode eine interessante Fehlerquelle darstellt, ist diese in der Fehlerbehandlung natürlich miteinbezogen. Als nächstes folgt die Alternativbedingung der If-Verzweigung, die ausgeführt wird wenn kein Fehler aufgetreten ist: Response.Write "<table cellpadding=""2"" cellspacing=""2"" border=""2"">" For FieldIndex = 1 To objRS.Fields.Count - 1 Response.Write " <th>" & objRS.Fields(FieldIndex).Name & "</th> " Next While Not objRS.EOF Response.Write "<tr>" For FieldIndex = 1 To objRS.Fields.Count - 1 Response.Write "<td>" & objRS(FieldIndex) & "</td>" Next Response.Write "</tr>" objRS.MoveNext Wend Response.Write "</table>" Dieser Code z.B. erlaubt es unabhängig von der vorhandenen Spaltenzahl einer Datenbank des eingegebenen SELECT Statements alle Datensätze zurückzugeben die der Bedingung im Statement genügen. Zwecks der Übersicht werden die gewonnenen Datensätze in einer HTML Tabelle ausgegeben. Ausgeführt in einem Browser erhält man nach Eingabe eines SQL-Statements folgendes Ergebnis: Es funktionieren nicht nur SELECT Statements - auch DELETE oder INSERT können ohne Probleme in diesem "Query Analyzer" abgesetzt werden. SchlußbemerkungDies war ein einfaches, erweiterbares Beispielskript, das den praktischen Zweck des Query Analyzers des SQL Servers auf ASP Basis widerspiegelt. Download des CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
Aktualisieren von Daten mit dem UPDATE Statement Links zu anderen SitesWenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |