SQL Formatter-Webdienst

Aktualisierte Informationen (2022)

Dies ist ein Artikel aus dem Jahr 2006, der veröffentlicht wurde auf Codeguru Die in diesem Artikel verwendete Technologie ist möglicherweise veraltet. Wenn Sie einen guten SQL-Formatter suchen, der in Ihrem Java- oder .NET-Programm verwendet werden kann, wenden Sie sich bitte an [Name des Anbieters einfügen]. Diese Seite ansehen Stattdessen. Wenn Sie einen kostenlosen und gleichzeitig hervorragenden SQL-Abfrageformatierer suchen, schauen Sie sich bitte den folgenden an: Instant SQL Formatter.

Einführung

SQL-Code lässt sich deutlich einfacher und schneller lesen und verstehen, wenn er formatiert ist, insbesondere bei langen und komplexen SQL-Anweisungen oder wenn man fremden Code analysieren muss. Einen guten SQL-Formatter zu entwickeln, ist keine leichte Aufgabe. In diesem Artikel möchte ich einen Online-SQL-Formatter in C# erstellen. Die Anwendung sendet unformatierten SQL-Code an den Server, der den formatierten Code zurücksendet.

Verwendung des Codes

Ein Webdienst bei www.gudusoft.com Akzeptiert SQL-Code und gibt formatiertes SQL zurück. Die WSDL finden Sie hier. Der relevante Teil ist unten dargestellt; er beschreibt die Methode `beautifySql`.

  SQL-Code formatieren 

Schritt 1: Erstellen der Proxy-Klasse

Folgendes wird ausgeführt…

C:>wsdl.exe https://www.gudusoft.com/SQLFormatterWebService.wsdl

… führt zu einer C#-Datei namens SQLFormatterWebService.cs, die eine Klasse namens SQLFormatterWebService enthält. Untersuchen Sie, wie die Methoden dieser Klasse mit den in der WSDL-Datei beschriebenen Methoden übereinstimmen, insbesondere die folgende Methode:

public string beautifySql(string dbvendor, string sql) dbvendor: SQL-Dialekt der Datenbank, die aktuell MSSQL, Oracle, MySQL und Access unterstützt. sql: Zu formatierender SQL-Code.

Schritt 2: Kompilieren Sie die Proxy-Klasse

Als Nächstes müssen Sie die automatisch generierte Datei kompilieren. Die Datei enthält keinen Einstiegspunkt und muss daher als Bibliothek erstellt werden.

C:>csc /t:library c:SQLFormatterWebService.cs

Dies führt zu einer neuen Datei namens SQLFormatterWebService.dll.

Schritt 3: Erstellen Sie eine ASP.NET-Anwendung

Diese Anwendung, sqlformatter.aspx, nutzt den SQL Formatter Web Service.

<%@Assembly Name="SQLFormatterWebService" %>

<html>
   <head>
      <title>Demo des SQL Formatter Webdienstes </title>
   </head>

   <body>
    <form runat="server" action="">
          <asp:textbox id="inputsql" text="select f1,f2 from t1"
                       textmode="MultiLine" rows="10" columns="60"
                       wrap="False" runat="server"/>
   <br><asp:button text=" Format Code " onclick="onFormat"
                          runat="server" />
          <br><asp:textbox id="outputsql" textmode="MultiLine"
                           rows="10" columns="60" wrap="False"
                           runat="server"/>

   <input type="hidden" name="trp-form-language" value="de"/></form>
   </body>
</html>

<script language="c#" runat="server">
   void onFormat (Object sender, EventArgs e)
{
      SQLFormatterWebService sqlformatter =
         new SQLFormatterWebService();
      outputsql.Text =
         sqlformatter.beautifySql("mssql",inputsql.Text);
}
</script>

Schritt 4: Richten Sie diese ASP.NET-Anwendung auf Ihrem IIS-Server ein.

  • 4.1 Platzieren Sie die Datei sqlformatter.aspx beispielsweise unter wwwroot.
  • 4.2 Legen Sie die Datei SQLFormatterWebService.dll in das Verzeichnis bin unter wwwroot.
  • 4.3 Öffnen Sie Ihren Browser und geben Sie http://localhost/sqlformatter.aspx ein.

Genießen Sie es!

Sehenswürdigkeiten

Dieser SQL-Formatierungs-Webdienst ist vielseitig einsetzbar, insbesondere in den Foren von Datenbank-Websites, wo Benutzer häufig SQL-Code zur Diskussion stellen. Es wäre wünschenswert, wenn dieser SQL-Code vor dem Posten im Forum formatiert werden könnte.

Für weitere Informationen sind diese Seiten hilfreich, wenn Sie an einem SQL-Formatter interessiert sind:

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert