Das Programm SOGSQL erlaubt die interaktive Ausführung von SQL Kommandos.
SQL Scripte können aus Dateien gelesen oder direkt eingegeben werden.
Bei der Ausführung wird die "SOG Generic SQL Syntax" unterstützt.
sogsql [Parameter...] [SqlDatei]
Ausführung eines Datenbankupdates oder eine SQL-Datei ohne weitere Nachfrage. Nach Ausführung beendet sich SOG SQL nicht.
Ausführung eines Datenbankupdates oder eine SQL-Datei ohne weitere Nachfrage. SOGSQL anschließend automatisch beenden. Sollten Fehler auftreten, bleibt SOGSQL stehen, und zeigt diese an.
Startet die automatische Datenbankaktualisierung.
Startet die automatische Datenbankaktualisierung für den ausgewählten Updateteil.
Startet die automatische Datenbankaktualisierung außer für den ausgewählten Updateteil.
Setzt das aktuelle Projekt.
Setzt die aktuelle Firma.
Setzt den Einzelschrittmodus für die Ausführung der automatischen Datenbankaktualisierung.
Erzeugt ein dbrel-Create Script, und beendet sich wieder.
Stellt die gewünschte Datenbankevrbindung ein. Initialwert=Global.
Testfunktion: Kein Ignorieren von Updatescripten bei -R.
Ausgabe im Format "Ein Datenfeld pro Zeile".
Ausgabe nur mit einer Überschrift. Gesamt Ausgabe muss dabei gepuffert werden, bevor der erste Datensatz ausgegeben werden kann.
Ausgabe im Format "Feste Spaltenbreiten". In diesem Format wird versucht, bei der ersten Datenzeile die Struktur der SQL-Anweisung auszuwerten zm festzulegen, wie breit jede Spalte werden soll. Anschließend erfolgt die Ausgabe jeweils in der so ermittelten Breite.
Umsetzungen für Eingabe und Darstellung von Zeichen im SOG-Unicode Zeichensatz aktivieren.
Nur Umsetzung GenericSQL in Nativ SQL durchführen. Ergebnis ausgeben.
Keine Echo-Ausgabe der SQL Kommandos.
Ruft sogsql im Bearbeitungsmodus für eine bestimmte Datenbanktabelle auf. Es wird automatisch ein SQL für die Anzeige der ersten 100 Zeilen der Tabelle gebildet und angezeigt.
Die Anzahl der anfangs dargestellten Datensätze kann über die Umgebungsvariable SOGSQLTabOptNumberOfRecords eingestellt werden.
Keine Ausgabe von Fehlermeldungen aus SQL Triggern in das Systemprotokoll. (z.B. KeyKorrektur oder hhupd-Korrektur)
Ermöglicht die Eingabe einer Programmauthentifikation um Zugriff auf SOG ERP Interne Datenbankkennworte zu bekommen. Das benötigte Kennwort ändert sich in regelmäßigen abständen.
Führt eine Anmeldung für den aktuellen Sachbearbeiter durch. Ermöglicht die Nutzung von Sachbearbeiter bezogenen SQL Funktionen.
Wird diese Option verwendet, kann über die Oberfläche weder das Projekt noch die Firma für die auszuführenden SQL-Anweisungen eingestellt werden.
Wirkt wie -sach. Setzt jedoch vorher den für die Funktion "-sach" genutzten Sachbearbeiter.
Keine Prüfung der Codepage der genutzen Datenbank.
Liest die angegebene SQL-Datei zum Programmstart in den Editor.
Das Fenster von SOGSql ist im wesentlichen 2-geteilt. In der obern Hälft können SQL-Anweisungen definiert werden, in der unteren Hälfte wird die Ausgabe dargestellt.
Die Schaltflächen "Ausführen" oder die Taste "F5" startet die Ausführung der eingegebenen SQL-Anweisungen. Ist in diesem Augenblick in dem oberen Textfenster ein Text markiert, so wird nur der markierte Teil als SQL-Anweisung ausgeführt. Besteht keine Markierung, wird die gesamte Eingabe ausgeführt.
Die Schaltfläche "Abbrechen" kann eine laufende SQL-Anweisung abbrechen. Dabei wird auf der Datenbank gestartete Datenbankprozess mit abgebrochen.
Beim Betätigen der Ausführen Schaltfläche wird jeweils die durch die Datenbankverbindung definierte Startdatenbank wieder als aktuelle Datenbank eingestellt.
Wird druch die sql-Anweisung "use Database" eine andere Datenbank zur aktuellen gemacht, wirkt dies nur für die aktuelle SQL-Ausführung.
Bei der nächsten Betätigung von "Ausführen" (oder F5) wird wieder die Startdatenbank als aktuelle eingestellt.
Für die Ausführung der SQL-Anweisungen werden die für Zugriffsrechte verwendet die der aktuelle Benutzer auf der Datenbank hat (Windows-Rechte). Alternativ kann auch die Datei "hhdblevel.ini" zur Steuerung von Zugriffsrechten verwendet werden. Dies wird aber nicht empfohlen.
Speichern von SQL-Scripten und Ausgaben
Über das Menü "Datei" kann das aktuelle SQL-Script geladen oder gespeichert werden. Hier finden Sie auch den Menüpunkt "Ausgabe speichern unter ...". Über diesen kann der Inhalt des Ausgabefensters gespeichert werden.
Über das Menü "Bearbeiten" stehen Funktionen zum Suchen von Textpassagen zur Verfügung. Die Suche wirkt jeweils auf das aktive Textfenster. Also entweder auf die SQL-Eingabe, oder auf die SQL-Ausgabe. Über die Tasten "F3" und "Umschalt-F3" können Sie weiter bzw. rückwärts suchen.
Eine Ersetzungsfunktion steht nicht zur verfügung. Nutzen Sie dazu bitte die Zwischenablage.
Über den Menüpunkt Optionen können verschiedene Optionen ein- und ausgeschaltet werden.
Die Optionen haben folgende Bedeutung:
Bei einem Dbupdate wird vor Ausführung eines SQL-Kommando jeweils die Bestätigung des Benutzers eingeholt.
Sorgt dafür, dass in der Ausgabe zuerst die eingegebenen SQL-Kommandos noch einmal wiederholt werden.
Quelldatei mit Zeilenumbruch darstellen.
Quelldatei mit SQL Syntaxvisualisierung darstellen.
Ausgabe im Format "Ein Datenfeld pro Zeile".
Feste Feldbreite ausgeben
Bei einer nicht Tabellarischen Ausgabe erfolgt die Formatierung der Spalten mit einer Spaltenbreite, die sich aus der Definition der Quelldaten ergibt, nicht aus der effektiven Inhalten.
Nur eine Überschrift.
Ausfbereitung erfolgt mit nur einer Überschrift an Stelle einer seitenweisen Aufbereitung mit seintenweisen Überschriften.
tab-Option: Felldnamen sortieren
Bei Verwendung der tab-Kommandozeilenoption werden Feldnamen speziell sortiert.
Font verkleiner / vergrößern
Einstellen der Fontgröße für ein- und Ausgabefenster
Nur SOG Generic-SQL umsetzen
Nur die Syntax-Umsetzung durchführen. Nicht die Kommandos selbst laufen lassen.
set statics io on / set statistics time on
Einschalten der entsprechenden Optionen. Ausgabe erfolgt im Ausgabefenster (oder der Ausgabedatei).
show plan
Nur den Ausführungsplan, im Xml Format, ausgebenn.
schema dump
Nur den SQL Schema Dump ausgeben.
Intern ausführen.
SQL's werden durch sogsql ausgeführt statt über einen externen Prozess.
Ausgabe in Tabellenform
Ausgabe erfolgt nicht in Textform sonder über einen Tabellecontrol.
Ausgabe in Datei
Ausgabe wird in eine Datei umgelenkt.
Aktualisierungs GUI ermöglichen.
Der erste SQL erlaubt das Ändern der angezeigten Daten, sofern dies durch den genutzt SQL möglich ist.
Ablauf einer automatischen Datenbankaktualisierung
Durch Betätigen der Schaltfläche "DBUpdate starten" wird eine automatische Datenbankaktualisierung gestartet.
Dabei wird zuerst über einen SQL ermittelt, welche Datenbankteile aktualisiert werden müssen. Anschließend wird der Aktualisierungsprozess für jeden dieser Teile durchgeführt.
Für einen Aktualisierungsteil wird dann ermittelt, auf welcher Version die Datenbank ist, und ob bereits neue Aktualisierungsscripte im Verzeichnis ${PROJ}\sql\update bzw. ${PROJ\sql\DBTEIL vorliegen. Ist dies der Fall wird das Erste auszuführende SQL-Kommando ermittelt, und im SQL-Fenster dargestellt. Ist die Option SingleStep gesetzt, kann der Benutzer nun entscheiden, ob das SQL-Script ausgeführt wird, oder nicht. Ist die Option nicht gesetzt, wird die Anweisung automatisch ausgeführt.
Tritt bei der Ausführung kein Fehler auf, wird der Datenbankzustand entsprechend aktualisiert, und das nächste Kommando ausgeführt.
Tritt ein Fehler auf, so ist das ausgeführt Kommando im SQL-Fenster eingestellt, die Fehlermeldung erscheint mit Ausgabefenster. Der Benutzer muss nun manuell dafür sorgen, dass das Kommando ausgeführt wird. Entweder kann er das Umfeld so beeinflussen, dass das Kommando nun durchlaufen sollte, und die Schaltfläche "DBUpdate fortsetzen" betätigen. Oder er kann vorbereitenden SQL-Kommandos ausführen, und anschließend auf "DBUpdate fortsetzen" klicken. Oder er kann das aktuelle Kommando verändern und "Ausführen" drücken. Ist das veränderte Kommando dann fehlerfrei durchgeführt worden, kann mit der Schaltfläche "Aktuellen Schritt überspringen" das Update fortgesetzt werden. Als letztes hat er die Möglichkeit den fehlerbehafteten Schritt einfach mit der Schaltfläche "Aktuellen Schritt überspringen" zu überspingen. Dies sollte aber nur dann getan werden, wenn die notwendige Aktion bereits früher durchgeführt wurde, oder später noch durchgeführt werden soll. Anderenfalls kann es so Fehlern bei der weiteren Ausführung aus SOG ERP (VACOS) kommen.
Konfiguration einer OLEDB-Verbindung
Um einen Verbindung zu einer beliebigen OLEDB-Datenquelle aufzubauen gehen Sie wie folgt vor:
Starten Sie sogsql.
Wählen Sie den Menüpunkt "Datei" - "Verbindung konfigurieren".
Geben Sie als Datenbanktyp "oledb" an.
Tragen Sie unter "Servername" den OleDb-Connect String ein.
Beispiele für SQL Server:
Provider=sqloledb;Data Source=sogdb3;Initial Catalog=hdl_test_stolle;Integrated Security=SSPI;
Provider=sqloledb;Data Source=sogdb3;Initial Catalog=hdl_test_stolle;User Id=informix;Password=xyz;
Häufig verwendete SQL-Elemente, sowie die SOG-Generic-SQL Erweiterungen, werden mit einer anderen Farbe dargestellt.
Die SQL-Syntax wird nicht vollständig hervorgehoben. Nur häufig verwendete Elemente sind betroffen.
Diese Farbdarstellung kann über das Optionen-Menü abgeschaltet werden.
Mit Hilfe der Umgebungsvariablen "SOGSqlSyntaxFile" kann eine abweichende XML-Datei für die Definition dieser Farbdarstellungen hinterlegt werden.
MDX (Multidimensional Expressions) ist eine Abfragesprache die es erlaubt, Daten direkt aus einem Microsoft Analysis Cube abzurufen. Um in SOGSQL MDX verwenden zu können, muss zuerst eine entsprechende Connection angelegt werden. Setzen Sie dazu eine entsprechende Umgebungsvariable in einer der ENV-Dateien (z.B. in der Firmen-ENV Datei).
env OleDbCubeHDL (adomd|sogdb3|VacosCubeHDL)
In diesem Beispiel wird die Connection "CubeHDL" auf den Server "sogdb3" und dort auf den Katalog "VacosCubeHDL" festgelegt.
Nach der Registrierung der Umgebungsdatei steht die Verbindung in SOGSQL zur Verfügung.
Sie können nun MDX-Queries absetzen. Die Syntax dieser MDX-Sprache entnehmen Sie bitte der Microsoft-Dokumentation zu diesem Thema.
Beispiel:
select
non empty {[Kalenderjahr Jahr].members} on COLUMNS,
non empty {[Kunde.Kunde].MEMBERS} ON ROWS FROM [Buchungen]
where [Measures].[Buchungen Verkauf Bruttoumsatz];
#ssas
Einstellen der Überschrift einer SQL GUI-Tabelle
Wir vor einer SQL-Anweisung mit "/* SOGTitle:" eine Überschrift festgelegt, so wird die daraus erzeugte GUI-Tabelle mit diesem Text als Überschrift versehen.
Beispiel:
/* SOGTitle: lockown zu lockinfo */
select * from lockown where schutznummer in (select schutznummer from lockinfo);
Das Ergebnis wird dann nicht mit "Result2", sondern mit dem festgelegten Text beschriftet.