Interaktive Verarbeitung von SQL-Anweisungen.
yardsql
yardsql ist ein dialogorientiertes Programm, mit dem interaktiv SQL-Anweisungen ausgeführt werden können.Nach der Anmeldung an das DBS steht ein Texteditor zur Verfügung, mit dem SQL-Anweisungen eingegeben werden können. In der oberen Statuszeile wird der Status des Editors (INS für Einfügemodus bzw. "" für Überschreibmodus) sowie die Nummer der aktuellen Zeile und die Gesamtzahl Zeilen angezeigt. Werden mehrere SQL-Befehle hintereinander eingegeben, müssen sie durch ein Semikolon getrennt werden. Lediglich hinter dem letzten Befehl ist kein Semikolon erforderlich. Die Ausführung der Befehle erfolgt über die Funktionstaste F1. Bei der Ausführung von SELECT Anweisungen wird ein Fenster geöffnet, in dem die Ergebnismenge angezeigt wird. In diesem Fenster kann beliebig in alle Richtungen gescrollt werden. Nach Drücken der Taste CANCEL wird das Fenster geschlossen und die Ausführung der SQL-Befehle fortgesetzt. Für alle anderen Befehle wird in der untersten Zeile die korrekte Ausführung bestätigt, oder eine Fehlermeldung ausgegeben.
Im Falle eines Fehlers wird die Ausführung unterbrochen und eine Fehlermeldung angezeigt. Diese Fehlermeldung muß durch eine beliebige Taste quittiert werden, bevor die Ausführung beim nächsten SQL-Befehl fortgesetzt wird. Soll die Ausführung an dieser Stelle abgebrochen werden, so muß die Fehlermeldung mit der Taste "q" quittiert werden.
Alle SQL-Befehle werden als ein zusammenhängender Text behandelt. Bei der Anlage eines neuen Textes (F4) bleibt der alte Text erhalten und kann jederzeit wieder erreicht werden (F2 bzw. F3). Diese Texte gehen jedoch verloren, wenn yardsql beendet wird. Über die Tasten F5 und F6 können SQL-Befehle gespeichert bzw. Texte geladen werden.Ergebnismengenfenster
Zu jeder SELECT Anweisung stellt yardsql die Ergebnismenge in einem Fenster dar, in dem vertikal und horizontal durch die Ergebnismenge geblättert werden kann. Ist die Ergebnismenge breiter als der Bildschirm, wird ein virtuelles Fenster in der Größe der Ergebnismenge angelegt, und jeweils ein Ausschnitt auf dem Bildschirm dargestellt. In der rechten oberen Ecke wird jeweils der aktuelle Datensatz sowie die Gesamtzahl Sätze in der Ergebnismenge angezeigt.
Das vertikale Blättern erfolgt über die Tasten PGUP und PGDOWN. Bei großen Ergebnismengen werden nicht alle Datensätze auf einmal geladen, sondern sukzessive nachgeladen, wenn vom letzten Datensatz weiter nach unten geblättert wird. Erst wenn sich beim Blättern über PGDOWN die Gesamtzahl Datensätze nicht mehr ändert, ist das Ende der Ergebnismenge erreicht. Über die Tasten PGLEFT und PGRIGHT läßt sich der Bildschirmausschnitt eines virtuellen Fensters nach links und rechts verschieben.Sofern die angezeigte Ergebnismenge updatable ist, können Sätze der Ergebnismenge geändert oder gelöscht werden. Das Einfügen neuer Sätze ist nicht möglich. Das aktuelle Feld einer Zeile einer änderbaren Ergebnismenge läßt sich mit den Tasten TAB und BTAB verändern. Dabei ist das aktuelle Feld immer unabhängig vom aktuell dargestellten Bildschirmausschnitt.
Ist das aktuelle Feld eine BLOB oder TEXT Spalte, kann über die Funktionstaste F1 das beim Anlegen der Tabelle spezifizierte Programm zur Bearbeitung von BLOBs aufgerufen werden. Dazu wird der BLOB in eine temporäre Datei kopiert und dem Programm als Parameter übergeben. Wurde beim Anlegen der Tabelle kein solches Programm angegeben, verwendet yardsql die Shellvariable YARDBLOBPROG zur Ermittlung eines Programmes. Über die Taste DELLINE kann ein Datensatz der Ergebnismenge gelöscht werden. Sicherheitshalber fragt yardsql, ob der Datensatz wirklich gelöscht werden soll. Wird dies bestätigt, wird der Datensatz, bzw. die Datensätze bei einem Join, in der Datenbank gelöscht. Werden Datensätze in einem Satz der Ergebnismenge verändert, fragt yardsql entsprechend, ob die Änderungen in der Datenbank gespeichert werden sollen.
Zur einwandfreien Funktion von yardsql ist es erforderlich, daß es einen termcap Eintrag für das eingesetzte Terminal gibt. Solange die Shellvariablen YARDTERMCAP und TERMCAP nicht gesetzt sind, wird $YARDHOME/etc/termcap verwendet. Ist eine der beiden Variablen gesetzt, wird die entsprechende Datei verwendet, wobei YARDTERMCAP Vorrang hat. In jedem Fall muß die Datei mit komplettem Pfadnamen angegeben werden. Zur Identifikation des Terminals wird die Shellvariable TERM verwendet. Soll für yardsql eine andere Terminaleinstellung als für andere Programme verwendet werden, die ebenfalls TERM abfragen, kann die Variable YARDTERM mit dem Terminalnamen gesetzt werden.
Um eine einwandfreie Funktion zu erreichen, sollten die in der termcap Beschreibung im Anhang aufgeführten Sequenzen definiert sein. Die folgende Aufstellung gibt Aufschluß über die unterstützen Funktionstasten sowie deren Bedeutung. Welche Taste an einem jeweiligen Terminal welchen Code auslöst, wird einzig durch die Definition in termcap festgelegt. Da es vorkommen kann, daß nicht alle Tastencodes richtig eingetragen sind, stehen für die meisten Tasten Alternativtasten zur Verfügung (siehe Anhang).
- CANCEL
- Abbruch der aktuellen Funktionalität und Rückkehr zum nächsthöheren Programmpunkt.
- PGLEFT
- Innerhalb einer Ergebnismenge, deren Fenster zu breit für den Bildschirm ist, nach links blättern.
- PGRIGHT
- Innerhalb einer Ergebnismenge, deren Fenster zu breit für den Bildschirm ist, nach rechts blättern.
- PGUP
- Innerhalb einer Ergebnismenge seitenweise nach oben blättern.
- PGDOWN
- Innerhalb einer Ergebnismenge seitenweise nach unten blättern.
- CURUP
- In einer angezeigten Ergebnismenge eine Zeile nach oben gehen. Steht der Cursor bereits in der obersten Zeile, wird die Ergebnismenge nach unten gescrollt. Im Textfeld eine Zeile nach oben gehen.
- CURDOWN
- In einer angezeigten Ergebnismenge eine Zeile nach unten gehen. Steht der Cursor bereits in der untersten Zeile, wird die Ergebnismenge nach oben gescrollt. Im Textfeld eine Zeile nach unten gehen.
- DELETE
- Ein einzelnes Zeichen löschen. Dieser Code kann wie alle anderen Codes über eine ESC-Sequenz generiert werden. Zusätzlich dazu wird dieser Code bei Betätigen der Taste DEL am Terminal ausgelöst. Da die Taste DEL bei einigen Terminals zur Generierung des Signals SIGINT (Einstellung über "stty intr ...") verwendet wird, kann yardsql auf diesen Terminals nicht über diese Taste abgebrochen werden. Alternativ kann der Abbruch über SIGTERM oder durch Umstellung des Interrupts auf z.B. ^C erfolgen.
- DELLINE
- Löschen einer ganzen Zeile.
- INSERT
- Umschalten vom Einfüge- in den Überschreibmodus.
- F1
- Die SQL-Befehle im Texteditor ausführen.
- F2
- Umschalten auf einen bisherigen Text von SQL-Befehlen.
- F3
- Umschalten auf einen neuen Text von SQL-Befehlen.
- F4
- Anlegen eines neuen Texts SQL-Befehle. Auf den bisherigen kann durch die Taste F2 umgeschaltet werden.
- F5
- Einlesen eines Textes aus einer ASCII-Datei. Es werden alle Dateien im aktuellen Directory mit der Endung .sql angezeigt, so daß eine Datei ausgewählt werden kann.
- F6
- Den aktuellen Text in einer ASCII-Datei speichern. Dazu muß ein Name für diese Datei angegeben werden, der bis zu 10 Zeichen lang sein darf. Die Endung .sql wird automatisch angehangen.
- F7
- Aufruf eines Editors, um den aktuellen Text editieren zu können. Die Voreinstellung ist vi. Über die Shellvariable YARDEDIT kann individuell ein Editor bestimmt werden.
- TAB
- Innerhalb eines Ergebnismengenfensters in das rechtsgelegene Feld wechseln.
- BTAB
- Innerhalb eines Ergebnismengenfensters in das linksgelegene Feld wechseln.
Zum den SQL-Anweisungen, die in yardsql verwendet werden können, siehe auch Kapitel 4, SQL-Referenz.
Die Shellvariable YARDHOME muß gesetzt sein.Die Shellvariable YARDDBS muß gesetzt sein.
Das DBS muß im Online Mode sein.