Makros können ganz einfach über die DEFINE MAKRO
-Anweisung definiert werden:
DEFINE MAKRO __msg "MESSAGE \"Hallo Welt!\" TYPE I"; $(__msg); UNDEFINE MAKRO __msg;
In diesem Beispiel wird das Makro __msg
mit dem Wert
MESSAGE "Hallo Welt!" TYPE I
belegt. Ein Aufruf des Makros via $(__msg)
führt daher dazu, dass der Text Hallo Welt! in einem Dialog dargestellt wird.
Makrovariablen können entweder vor oder während der Ausführung von OMS-SL-Skripten ausgewertet werden. Dazu stehen die Makrofunktionen $
– und (ab Version 2.2) $!
zur Verfügung.
- Mit der
$
-Funktion werden Makros vor der Ausführung komplett ersetzt. Zum Beispiel wird das SkriptSELECT * FROM Einkäufe WHERE Auftragsdatum = {d'$(.Year)-$(.Month)-$(.Day)'};
in einem Präprozessor-Schritt zu
SELECT * FROM Einkäufe WHERE Auftragsdatum = {d'2015-01-01'};
ausgewertet und an die Datenbank übergeben.
- Das
$!
-Makro wertet die Makrovariablen erst zur Laufzeit aus. Möchte man zum Beispiel im Batch-Modus eine Logdatei schreiben, die das aktuelle Datum als Dateinamen enthält, dann könnte das folgendermaßen umgesetzt werden:DEFINE MAKRO __date "$!(.Year)$!(.Month)$!(.Day)"; DEFINE MAKRO __logfile "$(.WorkingDir)\$(__date)_Logfile.log";
Diese Möglichkeit besteht ab OMS Version 2.2.
Die vom OMS vorgegebenen Makrovariablen beginnen mit einem vorangestellten „.“. Es folgt die Liste aller vordefinierten Makrovariablen:
Makrovariable | Beschreibung | Ab |
---|---|---|
.ActiveDSN |
Name der aktiven DSN. | v1.x |
.AffectedRows |
Anzahl der Zeilen, die von der Skriptausführung betroffen waren. | v2.2 |
.BatchMode |
„Off“, falls kein Batchlauf aktiv ist. Andernfalls „On“. | v1.x |
.ColumnName |
Ist im Schema-Browser eine Spalte markiert, dann ist der Wert dieser Makrovariablen gleich dem Namen der Spalte. | v1.x |
.ConfigDir |
Das Konfigurationsverzeichnis, das i.d.R. auch die oms.config-Datei beinhaltet. | v1.x |
.Day |
v1.x | |
.DBMS |
Sofern eine Verbindung besteht, enthält diese Makrovariable den vom ODBC-Treiber definierten Names des DBMS, das geradeüber den Schema-Browser oder über ein OMS-SL-Skript verwendet wird. | v1.x |
.DocumentName |
Der Name des aktiven Dokuments (OSL-Skript). | v2.2 |
.ForeignKeyName |
Gibt den Namen des im Schema-Browser markierten Fremdschlüssels an. | v1.x |
.HelpContextID |
Kontext-ID zum aktuellen Hilfe-Thema. | v1.x |
.HelpURL |
URL zur Online-Hilfe (https://www.oms.cherware.de/docs/). | v1.x |
.Homepage |
https://www.oms.cherware.de | v1.x |
.Hour |
Die Stunde der aktuellen Uhrzeit. | v1.x |
.IndexName |
Gibt den Namen des im Schema-Browser markierten Index an. | v1.x |
.LastError |
Gibt die letzte Fehlermeldung wieder, sofern es eine gab. | v2.2 |
.LastMessage |
Gibt die letzte Meldung wieder, sofern es eine gab. | v1.x |
.LogFileFormat |
v2.2 | |
.MediaDir |
Ein Verzeichnis für Medien (Zur freien Verfügung). | v1.x |
.Minute |
Die Minute der aktuellen Uhrzeit. | v1.x |
.Month |
Der Monat des aktuellen Datums. | v1.x |
.PluginDir |
Das Plugin-Verzeichnis. | v1.x |
.PrimaryKeyName |
Gibt den Namen des im Schema-Browser markierten Primärschlüssels an. | v1.x |
.ProcedureName |
Ist im Schema-Browser eine Prozedur markiert, dann enthält diese Makrovariable den Namen der Prozedur. | v1.x |
.RunningTime |
Nach Ausführung eines Skripts gibt dieses Makro die benötigte Laufzeit in Millisekunden wieder. | v2.2 |
.Second |
Die Sekunde der aktuellen Uhrzeit. | v1.x |
.TableName |
Ist im Schema-Browser eine Tabelle oder ein darunterliegendes Element (z.B. eine Spalte, ein Index etc.) markiert, dann ist der Wert dieser Makrovariablen gleich dem Namen der Tabelle. | v1.x |
.WorkingDir |
Gibt das Arbeitsverzeichnis an. | v1.x |
.Year |
Das Jahr des aktuellen Datums | v1.x |
Pingback: ODBC Management Studio 2.2.1 | ODBC Management Studio