Virtab-Referenz: Aufruf von ER2SQL

Aufruf:

Die ER2SQL wird mit folgenden Kommandozeilen-Parametern aufgerufen:

ER2SQLO.EXE <Definitionsfile> [<Defaultausgabefile>] <cmd> <cmd> ...

  • Der SQL-Code für ORACLE wird von “ER2SQLO.EXE” produziert. Code für den Microsoft SQL-Server wird von “ER2SQLM.EXE” produziert.
  • <Definitionsfile> ist der Name und Pfad der ASCII-Datei, aus der Datenbank- und Virtab-Definitionen gelesen  werden. Dies ist der einzige Pflichtparameter.
  • <Defaultsausgabefile> ist die Datei, in die ER2SQL seine Ausgabe schreibt, wenn in einzelnen <cmd>’s keine andere Datei angegeben ist. Fehlt diese Option, gibt ER2SQL seinen Text in die Standardausgabe aus.
  • Unbekannte <cmd> werden stillschweigend ignoriert, ER2SQL protokolliert aber die durchgeführten Aktionen auf der Standardausgabe.
  • <cmd> sind einer oder mehrere der folgenden Befehlsoptionen:

Optionen zur Erzeugung einer Datenbank-Definition:

<cmd>

Bedeutung

-defdbtables

SQL-Code für Datenbank-Basistabellen und Sequenzen erzeugen.

-defdbindexes

SQL-Code für Standard-Indizes auf den für Datenbank-Basistabellen erzeugen..

-defdboptindexes

Optimale Indizes für die Datenbank-Basistabellen erzeugen, so dass alle alle Virtabs im Definitionsfile optimal laufen.

-defdbconstraints

SQL-Code für Constraints auf den Datenbank-Basistabellen.

-dropdbtables

SQL-Code für die Löschung der Datenbank-Basistabellen und Sequenzen.

-dropdbindexes

SQL-Code für die Löschung der Indizes

-dropdboptindexes

SQL-Code für die Löschung der optimierten Indizes

-dropdbconstraints

SQL-Code für die Löschung der Constraints

Optionen zur Code-Erzeugung für serverseitige Virtab-Objekte:

<cmd>

Bedeutung

-vt:<virtabname|pattern>
[,<virtabname|pattern>,...]

Ausgabe von SQL-Code nur für die angegebene Virtabs. Angegeben wird eine Komma-Liste von Namen.
Fehlt dies Angabe, wird für alle definierten Virtabs SQL-Code erzeugt.
Ist ein <virtabname> = “ALL”, wird ebenfalls Code für alle Virtabs erzeugt.
Ist “<virtabname> = “ALL_DEPENTENDS”, so wird zusätzlich auch noch COde für alle Virtabs erzeugt, die wegen USEs oder MODIFIES von den gelisteten Virtabs abhängen.

Virtabnamen dürfen hier auch mehrmals das Wildcardzeichen “*” enthalten, es werden dann alle Virtabs erzeugt, deren Namen auf das angegebene Muster passt.

-defview

SQL-Code für die Views der Virtabs.

-defprocs

SQL-Code für die INSERT- / UPDATE- / DELETE-Procedures der Virtabs.

-deftrigger

SQL-Code für die View-Trigger der Virtabs.

-dropview

SQL-Code fuer die Loeschung der Virtab-Views

-dropprocs

SQL-Code fuer die Loeschung der Virtab-Procedures

-grantrole:<rollenname>

Erzeugt PUBLIC SYNONYMS für View und Proceduren und GRANTed <rollenname> die Zugriffsrechte für die Benutzung.

-defcolprocs

Erzeugt Muster für korrekte ONINSERT-, ONUPDATE-, ONDELETE- und .ONGET-Procedures.

-deftable

SQL-Code für das Tabellen-Interface der Virtabs (samt Triggern). Ist seit ORACLE 9 überholt..

-droptable

SQL-Code für die Löschung der Virtab-Interface-Tabellen.

Der Befehlsblock "-vt:<virtabname>... -def... -def... -drop... -drop... " darf in der gleichen Kommandozeile mehrmals für verschiedene <virtabname> angegeben werden.

 

Optionen zur Modifikation des Codes der serverseitigen Virtab-Objekte:

<cmd>

Bedeutung

-autovr

Virtabs direkt nach der Definition wie normale Tables zur internen DB-Beschreibung hinzufügen.

-vr:<ausgabefile>

Für definierte Virtabs eine Datenbank-Beschreibung aus TABLE und LINK-Anweisungen erzeugen, als ob sie normale Tables wären.
("VR" = virtual entity relationship diagram)

-v_

Aliase für die Virtabs-Views mit dem Prefix "V_" statt “VT_” erzeugen (Abwärtskompatibilität).

-oldprocnames

Alte, lange Prozedurnamen erzeugen:
“PR_INSERT_*” statt “PI_*”, (Abwärtskompatibilität)

-noerrorvardiag

Verhindert die Ausgabe von Variablenwerten für                           2000x-Fehler in den Prozeduren.
(Kürzere Prozeduren).

-nobidiprocparms

Keine Rückgabe von Werte über die Parameter der stored Prozedures
(Abwärtskompatibilität)

-nofkcheck

Keine Test auf identische FKs in INSERT-Procedure (kein Fehler 20010)

-fastdeleteproc

Keine Abhängigkeitsanalyse durch FN_LN*-Functions in den DELETE-Procedures.

-nonochangeprocs

Für NOCHANGE-Virtabs (Views) werden keine INSERT-, UPDATE oder DELETE-Prozeduren erzeugt; ebenso keine View-Trigger.

-info:<text>

 Eigener Text, der in allen produzierten Sourcen im Headerkommentar zu lesen ist.

-upcase

alle SQL-Objektnamen im erzeugten Code in Grosschrift darstellen.

Optionen zur Codeerzeugung für die Application-Interfaces:

<cmd>

Bedeutung

-delphi[:<ausgabefile>]

Delphi-Interface-Unit BDE, Variante 1:
Benötigt modifiziertes Package “db.pas”.

-delphi2[:<ausgabefile>]

Delphi-Interface-Unit BDE, Variante 2.
Benutzt BDE “cached updates”

-delphi3[:<ausgabefile>]

Delphi-Interface-Unit BDE, Variante 3.
Benutzt BDE “cached updates”, und produziert visuelle Komponenten.

-delphi3_odac[:<ausgabefile>]

Delphi-Interface-Unit ODAC, Variante 3
Benutzt die ODAC-Komponenten statt der BDE.

-delphi3_sqldirect[:<ausgabefile>]

Delphi-Interface-Unit SQLDirect, Variante 3
Benutzt die SQLDirect-Komponenten statt der BDE.

-dbname:<name>

Datenbankname für Delphi-Interface-Units angeben. (Zwang)

-dbschema:<name>

Schema der Virtabs-Views und Procedures für Delphi-Interface-Units angeben (Zwang)

-delphiclasses:<baseclass-unit>,
<baseclass of TVirtabTable>,
<baseclass of TVirtabQuery>,
<baseclass of TStoredProc>

Unit (*.pas) und Klassen, wenn nicht die Virtab-Datasets nicht von TTable/TQuery/TStoredProc abgeleitet werden soll.
(Diese Option muss VOR der -delphi...-Option kommen!)

-java[:<ausgabefile>]

Java-Klasse für JDBC-RecordSet, Variante 1.

Debugging und Diagnose:

<cmd>

Bedeutung

-report_columns[:<ausgabefile>]

Ausgabe einer Datei, die für alle Spalten aller Virtabs verschiedene Attribute darstellt.

-report_dependencies[:<ausgabefile>]

Ausgabe einer Datei, die die Abhängigkeiten der Virtabs untereinander grafisch darstellt.

-report_tableuse[.<ausgabefile>]

Ausgabe von Infos über die Verwendung der Datenbanktabellen in den Virtabs. Anzeige, welche Basistabellen in welchen Virtabs potentiell überflüssig sind.

-listvt<:ausgabefile>

Ausgabe einer Datei, die eine Liste aller Virtabnamen enthält.

-test[:<ausgabefile>]

Testausgabe der internen Darstellung der Virtabs.

-debugcode

Virtab-Procedures mit Debugausgabe nach Table VTDEBUGOUT erzeugen.

 

Beispiele:

1) Erzeugen der Datenbankdefinition:

er2sqlo.exe demo.vt demodb.sql -defdbtables -defdbindexes
           -defdbconstraints

2) Erzeugen der View, Prozeduren und Trigger:

er2sqlo.exe demo.vt demo.sql -defview -defprocs -deftrigger

3) Erzeugen des Applikation-Interfaces für Borland-Delphi (Virtab-Datasets werden von eigenen Datasets abgeleitet):

er2sqlo.exe demo.vt demo.sql -dbname:ORCL -dbschema:VTDEMO
           -delphiclasses:MyDatasetsU,TMyTable,TMyQuery,TMyStoredProc
           -delphi3:vt_orcl.pas

4) Erzeugen des Java/JDBC-Interfaces:

er2sqlo.exe demo.vt demo.sql -java:virtab_orcl_resultset.java

 

 

[Referenz] [ER2SQL cmdline] [DB-Voraussetzungen] [Definitionsfile-Aufbau] [Syntax: TABLE und LINK] [Syntax: VIRTUALTABLE] [Syntax: TABLE] [Syntax: COLUMN] [Syntax: CONSTRAINT] [Syntax: USES, MODIFY, ...] [Fehler von ER2SQL] [Laufzeitfehler] [Syntax-Hervorhebung] [SQL-Objekt-Namen]