Dies ist der Befehl odb, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
odb – Object-Relational Mapping (ORM)-Compiler für C++
ZUSAMMENFASSUNG
ODB [ Optionen ] Datei [ Datei... ]
BESCHREIBUNG
Gegeben eine Reihe von C++-Klassen in einer Header-Datei, ODB generiert C++-Code, der Ihnen dies ermöglicht
Objekte dieser Klassen in einer relationalen Datenbank (RDBMS) beibehalten, abfragen und aktualisieren. Der
Die relationale Datenbank, auf die der generierte Code abzielen soll, wird mit den erforderlichen Angaben angegeben
--Datenbank Möglichkeit (siehe unten).
Für eine Eingabedatei im Formular name.hxx (Stattdessen können auch andere Dateierweiterungen verwendet werden
.hxx), im Einzeldatenbankmodus (Standardeinstellung), haben die generierten C++-Dateien standardmäßig
die folgenden Namen: name-odb.hxx (Header-Datei), name-odb.ixx (Inline-Datei) und Name-
odb.cxx (Quelldatei). Darüber hinaus, wenn die --generate-schema Option angegeben ist und die
SQL Schemaformat wird angefordert (siehe --schema-format), Die name.sql Datenbankschemadatei ist
generiert. Wenn die getrennte Wenn das Schemaformat angefordert wird, lautet der Datenbankerstellungscode
ins Separate erzeugt name-schema.cxx Datei.
Im Multidatenbankmodus (siehe --multi-database Option unten), die generierten Dateien
entsprechend der verbreitet Datenbank haben die gleichen Namen wie im Einzeldatenbankmodus.
Bei anderen Datenbanken enthalten die Dateinamen den Datenbanknamen: Name-odb-db.hxx, Name-odb-
db.ixx, Name-odb-db.cxx, Name-db.sql und Namensschema-db.cxx (woher db ist die Datenbank
Name).
OPTIONAL
--help Nutzungsinformationen drucken und beenden.
--Version
Version drucken und beenden.
-I dir Speichern dir am Anfang der Liste der zu durchsuchenden Verzeichnisse eingefügt
Header-Dateien.
-D Name[=def]
Makro definieren Name mit Definition def. Wenn die Definition weggelassen wird, definieren Sie sie Name sein
1.
-U Name
Brechen Sie alle vorherigen Makrodefinitionen ab Name, entweder eingebaut oder mitgeliefert
-D .
--Datenbank|-d db
Generieren Sie Code für die db Datenbank. Gültige Werte sind Mssql, mysql, Orakel, pgsql,
SQLite und verbreitet (nur Multi-Datenbank-Modus).
--multi-database|-m tippe
Aktivieren Sie die Unterstützung mehrerer Datenbanken und geben Sie deren Typ an. Gültige Werte für diese Option
sind statisch und dynamisch.
Im Multidatenbankmodus können Optionen, die die Art bestimmen (z. B. --Schema-
Format), Namen (z. B. --odb-file-suffix) oder Inhalt (zum Beispiel Prolog
und Epilog-Optionen) der Ausgabedateien kann der Datenbankname vorangestellt werden
gefolgt von einem Doppelpunkt, zum Beispiel mysql:value. Dies schränkt den Wert eines solchen ein
Option, die nur auf generierte Dateien angewendet wird, die dieser Datenbank entsprechen.
--default-database db
Wenn statische Multidatenbankunterstützung verwendet wird, geben Sie die Datenbank an, die verwendet werden soll
machte den Standard. Wenn dynamische Multidatenbankunterstützung verwendet wird, verbreitet immer
zur Standarddatenbank gemacht.
--generate-query|-q
Abfrageunterstützungscode generieren. Ohne diese Unterstützung können Sie Ansichten nicht verwenden und können nur
Laden Sie Objekte über ihre IDs.
--generate-prepared
Generieren Sie vorbereiteten Unterstützungscode für die Abfrageausführung.
--omit-unprepared
Lassen Sie unvorbereiteten (einmaligen) Unterstützungscode für die Abfrageausführung weg.
--generate-session|-e
Generieren Sie einen Sitzungsunterstützungscode. Mit dieser Option wird die Sitzungsunterstützung aktiviert
Standard für alle persistenten Klassen mit Ausnahme derjenigen, für die dies explizit der Fall war
deaktiviert mit der db Sitzung Pragma.
--generate-schema|-s
Generieren Sie das Datenbankschema. Das Datenbankschema enthält SQL-Anweisungen, die
Erstellen Sie Datenbanktabellen, die zum Speichern persistenter Klassen erforderlich sind, die in der Datei definiert sind
zusammengestellt wird. Beachten Sie, dass durch die Anwendung dieses Schemas alle vorhandenen Informationen gelöscht werden
Die in solchen Tabellen gespeicherten Daten gehen verloren.
Abhängig von der verwendeten Datenbank (--Datenbank Option) wird das Schema generiert
entweder als eigenständige SQL-Datei oder eingebettet in den generierten C++-Code. Standardmäßig
Die SQL-Datei wird für MySQL, PostgreSQL, Oracle und Microsoft SQL generiert
Serverdatenbanken und das Schema sind in den C++-Code für SQLite eingebettet
Datenbank. Benutzen Sie die --schema-format Option zum Ändern des Standardschemaformats.
Wenn die Unterstützung für die Weiterentwicklung des Datenbankschemas aktiviert ist (d. h. die Objektmodellversion
angegeben ist), löst diese Option auch die Generierung des Datenbankschemas aus
Migrationsanweisungen, wiederum entweder als eigenständige SQL-Dateien oder eingebettet in die
generierter C++-Code. Sie können die Generierung von Schemamigrationsanweisungen unterdrücken
durch Angabe der --suppress-migration .
--generate-schema-only
Generieren Sie nur das Datenbankschema. Beachten Sie, dass diese Option nur gültig ist, wenn
Generieren eines Schemas als eigenständige SQL-Datei (siehe --schema-format für Details).
--suppress-migration
Unterdrücken Sie die Generierung von Datenbankschema-Migrationsanweisungen.
--suppress-schema-version
Unterdrücken Sie die Generierung der Schemaversionstabelle. Wenn Sie diese Option angeben, dann
Von Ihnen wird außerdem erwartet, dass Sie die Datenbankschemaversion und -migration manuell angeben
Zustand zur Laufzeit mit dem odb::database::schema_version() Funktion.
--schema-version-table Name
Geben Sie den Namen der alternativen Schemaversionstabelle anstelle des Standardnamens an
schema_version. Wenn Sie diese Option angeben, müssen Sie dies auch manuell tun
Geben Sie den Namen der Schemaversionstabelle zur Laufzeit mithilfe von an
odb::database::schema_version_table() Funktion. Der Tabellenname kann qualifiziert werden.
--schema-format Format
Generieren Sie das Datenbankschema im angegebenen Format. Passieren SQL as Format zu
Generieren Sie das Datenbankschema als eigenständige SQL-Datei oder übergeben Sie es eingebettet einbetten
Schema in den generierten C++-Code. Der getrennte Der Wert ist ähnlich eingebettet
außer dass der Code zur Schemaerstellung in einer separaten C++-Datei generiert wird (Name-
schema.cxx standardmäßig). Dieser Wert ist vor allem nützlich, wenn Sie das platzieren möchten
Schemaerstellungsfunktionen in ein separates Programm oder eine separate Bibliothek integrieren. Wiederholen Sie dies
Option zum Generieren desselben Datenbankschemas in mehreren Formaten.
--omit-drop
Auslassen DROP Anweisungen aus dem generierten Datenbankschema.
--omit-create
Auslassen CREATE Anweisungen aus dem generierten Datenbankschema.
--schema-name Name
Verwenden Sie die Name als Datenbankschemaname. Schemanamen werden hauptsächlich dazu verwendet
zwischen mehreren eingebetteten Schemata im Schemakatalog unterscheiden. Sie sind nicht
zu verwechseln mit Datenbankschemata (Datenbank-Namespaces), die mit angegeben werden
--Schema Möglichkeit. Wenn diese Option nicht angegeben ist, wird der leere Name angezeigt
Der Standardschemaname wird verwendet.
--fkeys-deferrable-mode m
Verwenden Sie den Einschränkungsprüfmodus m in Fremdschlüsseln, die für Objektbeziehungen generiert werden.
Gültige Werte für diese Option sind nicht_aufschiebbar, unmittelbar und latente (Standard).
MySQL und SQL Server unterstützen für diese Datenbanken keine aufschiebbaren Fremdschlüssel
Solche Schlüssel werden auskommentiert generiert. Andere von der ODB generierte Fremdschlüssel
Compiler (z. B. diejenigen, die zur Unterstützung von Containern und polymorphen Hierarchien verwendet werden)
werden immer als nicht aufschiebbar generiert.
Beachten Sie auch, dass, wenn Sie eines von beiden verwenden nicht_aufschiebbar or unmittelbar Modus, dann die Reihenfolge
in dem Sie Objekte innerhalb einer Transaktion beibehalten, aktualisieren und löschen
wichtig.
--default-pointer ptr
Verwenden Sie die ptr als Standardzeiger für persistente Objekte und Ansichten. Objekte und Ansichten
denen kein Zeiger zugewiesen ist db Zeiger Pragma wird dies verwenden
Zeiger standardmäßig. Der Wert dieser Option kann sein * was den Rohzeiger bezeichnet
und ist der Standard- oder qualifizierte Name einer Smart-Pointer-Klassenvorlage, z
Beispiel std::auto_ptr. Im letzteren Fall erstellt der ODB-Compiler das Objekt
oder Ansichtszeiger durch Hinzufügen eines einzelnen Vorlagenarguments des Objekt- oder Ansichtstyps
zum Beispiel der qualifizierte Name std::auto_ptr. Die ODB-Laufzeit verwendet ein Objekt
und zeigen Sie Zeiger an, die zurückgegeben werden sollen, und im Falle von Objekten werden sie dynamisch übergeben und zwischengespeichert
zugeordnete Instanzen von Objekt- und Ansichtstypen.
Mit Ausnahme des Rohzeigers und der standardmäßigen intelligenten Zeiger, die in definiert sind
In der Header-Datei wird von Ihnen erwartet, dass Sie die Definition des Standardzeigers einschließen
der Anfang der generierten Header-Datei. Es gibt zwei gängige Wege, dies zu erreichen
Dies: Sie können entweder den erforderlichen Header in die zu kompilierende Datei einfügen oder Sie
kann die Verwendung --hxx-prologue Option, um das Notwendige hinzuzufügen #einschließen Richtlinie an die
generierten Code.
--Sitzungstyp tippe
Verwenden Sie die tippe als alternativer Sitzungstyp anstelle des Standardtyps odb::session. Dies
Mit dieser Option können Sie eine benutzerdefinierte Sitzungsimplementierung angeben, die von verwendet werden soll
persistente Klassen. Beachten Sie, dass Sie auch die Definition von angeben müssen
benutzerdefinierten Sitzungstyp in die generierte Header-Datei. Dies wird normalerweise erreicht mit
--hxx-prologue* Optionen.
--Profil|-p Name
Geben Sie ein Profil an, das während der Kompilierung verwendet werden soll. Ein Profil ist eine Option
Datei. Der ODB-Compiler sucht zunächst nach einer datenbankspezifischen Version mit dem Namen
konstruiert durch Anhängen der -Datenbank.Optionen Suffix zu Name, Wobei Datenbank is
Der Datenbankname, wie er mit angegeben wurde --Datenbank Möglichkeit. Wenn diese Datei nicht vorhanden ist
gefunden, dann sucht der ODB-Compiler nach einer datenbankunabhängigen Version mit dem Namen
konstruiert, indem nur das angehängt wird .Optionen Suffix.
Die Profiloptionsdateien werden in denselben Verzeichnissen wie C++ gesucht
Header im Lieferumfang enthalten #einschließen <...> Direktive (integrierte Pfade plus diese
angegeben mit dem -I Optionen). Die Optionsdatei wird zunächst im gesucht
Verzeichnis selbst und dann in seinem odb/ Unterverzeichnis.
Informationen zum Format der Optionsdatei finden Sie im --options-Datei Option unten. Du
Sie können diese Option wiederholen, um mehr als ein Profil anzugeben.
--auf einmal
Generieren Sie Code für alle Eingabedateien sowie für alle darin enthaltenen Dateien
sofort einbinden. Das Ergebnis ist ein einzelner Satz von Quell-/Schemadateien, die alle enthalten
der generierte Code. Wenn mehr als eine Eingabedatei zusammen damit angegeben wird
Option, dann die --Name eingeben Die Option muss ebenfalls angegeben werden, um die bereitzustellen
Basisname für die Ausgabedateien. In diesem Fall ist das Verzeichnis Teil einer solchen Basis
Der Name wird als Speicherort der kombinierten Datei verwendet. Dies kann für die wichtig sein
#einschließen Richtlinienbeschluss.
--Schema Schema
Geben Sie ein Datenbankschema (Datenbank-Namespace) an, das dem zugewiesen werden soll
persistente Klassen in der Datei, die kompiliert wird. Datenbankschemata sollen nicht sein
verwechselt mit Datenbankschemanamen (Schemakatalognamen), die mit angegeben werden
--schema-name .
--export-symbol Symbol
Insert Symbol an Stellen, an denen DLL-Steueranweisungen exportieren/importieren
(__declspec(dllexport/dllimport)) sind notwendig. Siehe auch die --extern-symbol
Option unten.
--extern-symbol Symbol
If Symbol definiert ist, fügen Sie es an den Stellen ein, an denen eine Vorlageninstanziierung erfolgen muss
, erklärt extern. Diese Option wird normalerweise zusammen mit verwendet --export-symbol wann
Sowohl die Unterstützung mehrerer Datenbanken als auch Abfragen sind aktiviert.
--std Version
Geben Sie den C++-Standard an, der während der Kompilierung verwendet werden soll. Gültige Werte sind
c ++ 98 (Standard), c ++ 11 und c ++ 14.
--warn-hard-add
Warnung vor hart hinzugefügten Datenelementen.
--warn-hard-delete
Warnen Sie vor endgültig gelöschten Datenelementen und persistenten Klassen.
--warn-hard
Warnen Sie sowohl vor dauerhaft hinzugefügten als auch vor dauerhaft gelöschten Datenmitgliedern und persistenten Klassen.
--output-dir|-o dir
Schreiben Sie die generierten Dateien nach dir anstelle des aktuellen Verzeichnisses.
--Name eingeben Name
Verwenden Sie die Name anstelle der Eingabedatei, um die Namen der generierten Dateien abzuleiten. Wenn
--auf einmal Option angegeben ist, dann der Verzeichnisteil von Name wird als die verwendet
Speicherort der kombinierten Datei. Siehe die --auf einmal Option für Details.
--Änderungsprotokoll Datei
Änderungsprotokoll lesen/schreiben von/bis Datei anstelle der Standard-Changelog-Datei. Der
Der Standardname der Changelog-Datei wird vom Namen der Eingabedatei abgeleitet und platziert
in dasselbe Verzeichnis wie die Eingabedatei. Notiere dass der --output-dir Option tut
hat keinen Einfluss auf den Speicherort der Änderungsprotokolldatei. Mit anderen Worten, standardmäßig das Changelog
Die Datei wird vom ODB-Compiler als weitere Eingabe und nicht als Ausgabe behandelt
kann es ändern. Benutzen Sie die --changelog-in und --changelog-out Optionen zur Angabe
verschiedene Eingabe- und Ausgabe-Chaneglog-Dateien.
--changelog-in Datei
Änderungsprotokoll lesen von Datei anstelle der Standard-Changelog-Datei. Wenn diese Option ist
angegeben, dann müssen Sie auch die Ausgabe-Changelog-Datei mit angeben --Änderungsprotokoll-
.
--changelog-out Datei
Changelog schreiben an Datei anstelle der Standard-Changelog-Datei. Wenn diese Option ist
angegeben, dann müssen Sie auch die Eingabe-Changelog-Datei mit angeben --Änderungsprotokoll-
in.
--changelog-dir dir
Verwenden Sie die dir anstelle des Eingabedateiverzeichnisses als Änderungsprotokolldateiverzeichnis. Das
Das Verzeichnis wird auch zu den mit dem angegebenen Changelog-Dateien hinzugefügt --Änderungsprotokoll,
--changelog-in und --changelog-in Optionen, es sei denn, es handelt sich um absolute Pfade.
--init-changelog
Erzwingen Sie eine Neuinitialisierung des Änderungsprotokolls, auch wenn eines vorhanden ist (alle vorhandenen).
Der Änderungsverlauf geht verloren). Diese Option ist vor allem für automatisierte Anwendungen nützlich
Testen.
--odb-file-suffix Suffix
Verwenden Sie die Suffix um die Namen der generierten C++-Dateien zu erstellen. Im Einzel-
Datenbankmodus Der Standardwert für diese Option ist -odb. Im Multidatenbankmodus
es ist -odb für die entsprechenden Dateien verbreitet Datenbank und -odb-db (woher db
ist der Datenbankname) für andere Datenbanken.
--sql-file-suffix Suffix
Verwenden Sie die Suffix um den Namen der generierten Schema-SQL-Datei zu erstellen. Im Einzel-
Im Datenbankmodus wird standardmäßig kein Suffix verwendet. Im Multidatenbankmodus die Standardeinstellung
Wert für diese Option ist -db (woher db ist der Datenbankname).
--schema-file-suffix Suffix
Verwenden Sie die Suffix um den Namen der generierten Schema-C++-Quelldatei zu erstellen. Im
Einzeldatenbankmodus Der Standardwert für diese Option ist -Schema. Im Multi-
Datenbankmodus ist es -Schema-db (woher db ist der Datenbankname). Siehe die --Schema-
Format Option für Details.
--changelog-file-suffix sfx
Verwenden Sie die sfx um den Namen der Changelog-Datei zu erstellen. Im Einzeldatenbankmodus von
Standardmäßig wird kein Suffix verwendet. Im Multidatenbankmodus der Standardwert hierfür
Option ist -db (woher db ist der Datenbankname).
--hxx-Suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung .hxx um den Namen des generierten C++ zu konstruieren
Header-Datei.
--ixx-suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung .ixx um den Namen des generierten C++ zu konstruieren
Inline-Datei.
--cxx-suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung .cxx um den Namen des generierten C++ zu konstruieren
Quelldatei.
--sql-suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung .sql um den Namen des generierten zu konstruieren
Datenbankschemadatei.
--changelog-suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung . Xml um den Namen der Changelog-Datei zu erstellen.
--hxx-prologue Text
Insert Text am Anfang der generierten C++-Headerdatei.
--ixx-prolog Text
Insert Text am Anfang der generierten C++-Inline-Datei.
--cxx-prologue Text
Insert Text am Anfang der generierten C++-Quelldatei.
--schema-prologue Text
Insert Text am Anfang der generierten Schema-C++-Quelldatei.
--sql-prologue Text
Insert Text am Anfang der generierten Datenbankschemadatei.
--migration-prologue Text
Insert Text am Anfang der generierten Datenbankmigrationsdatei.
--sql-interlude Text
Insert Text schließlich DROP und vor jedem CREATE Anweisungen in der generierten
Datenbankschemadatei.
--hxx-epilog Text
Insert Text am Ende der generierten C++-Headerdatei.
--ixx-Epilog Text
Insert Text am Ende der generierten C++-Inline-Datei.
--cxx-epilog Text
Insert Text am Ende der generierten C++-Quelldatei.
--schema-epilog Text
Insert Text am Ende der generierten Schema-C++-Quelldatei.
--sql-epilog Text
Insert Text am Ende der generierten Datenbankschemadatei.
--migration-epilog Text
Insert Text am Ende der generierten Datenbankmigrationsdatei.
--hxx-prologue-datei Datei
Fügen Sie den Inhalt von ein Datei am Anfang der generierten C++-Headerdatei.
--ixx-prologue-datei Datei
Fügen Sie den Inhalt von ein Datei am Anfang der generierten C++-Inline-Datei.
--cxx-prologue-datei Datei
Fügen Sie den Inhalt von ein Datei am Anfang der generierten C++-Quelldatei.
--schema-prologue-file Datei
Fügen Sie den Inhalt von ein Datei am Anfang der generierten Schema-C++-Quelle
Datei.
--sql-prologue-file Datei
Fügen Sie den Inhalt von ein Datei am Anfang der generierten Datenbankschemadatei.
--migration-prologue-file f
Fügen Sie den Inhalt der Datei ein f zu Beginn der generierten Datenbankmigration
Datei.
--sql-interlude-file Datei
Fügen Sie den Inhalt von ein Datei schließlich DROP und vor jedem CREATE Aussagen in
die generierte Datenbankschemadatei.
--hxx-epilogue-file Datei
Fügen Sie den Inhalt von ein Datei am Ende der generierten C++-Headerdatei.
--ixx-epilogue-file Datei
Fügen Sie den Inhalt von ein Datei am Ende der generierten C++-Inline-Datei.
--cxx-epilogue-file Datei
Fügen Sie den Inhalt von ein Datei am Ende der generierten C++-Quelldatei.
--schema-epilogue-file Datei
Fügen Sie den Inhalt von ein Datei am Ende der generierten Schema-C++-Quelldatei.
--sql-epilogue-file Datei
Fügen Sie den Inhalt von ein Datei am Ende der generierten Datenbankschemadatei.
--migration-epilogue-file f
Fügen Sie den Inhalt der Datei ein f am Ende der generierten Datenbankmigrationsdatei.
--odb-prologue Text
Kompilieren Text vor der Eingabe-Header-Datei. Mit dieser Option können Sie weitere hinzufügen
Deklarationen, wie z. B. benutzerdefinierte Merkmalsspezialisierungen, in die ODB-Kompilierung ein
verarbeiten.
--odb-prologue-file Datei
Kompilieren Datei Inhalt vor der Eingabe-Header-Datei. Prologue-Dateien werden zusammengestellt
nach all den Textfragmenten des Prologs (--odb-prologue Möglichkeit).
--odb-epilog Text
Kompilieren Text nach der Eingabe-Header-Datei. Mit dieser Option können Sie weitere hinzufügen
Deklarationen, wie z. B. benutzerdefinierte Merkmalsspezialisierungen, in die ODB-Kompilierung ein
verarbeiten.
--odb-epilogue-file Datei
Kompilieren Datei Inhalt nach der Eingabe-Header-Datei. Epilogdateien werden zusammengestellt
nach all den Textfragmenten des Epilogs (--odb-epilog Möglichkeit).
--table-prefix Präfix
Speichern Präfix auf Tabellennamen und für Datenbanken mit globalem und/oder fremdem Index
Schlüsselnamen, auch zu diesen Namen. Das Präfix wird beiden Namen hinzugefügt
angegeben mit dem db Tabelle und db Index Pragmas und solche, die automatisch waren
abgeleitet von Klassen- und Datenelementnamen. Wenn Sie ein Trennzeichen benötigen, z. B. ein
Wenn Sie zwischen dem Präfix und dem Namen einen Unterstrich einfügen, sollten Sie ihn in das einfügen
Präfixwert.
--index-suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung _i Indexnamen zu erstellen. Das Suffix ist nur
Namen hinzugefügt, die automatisch aus Datenelementnamen abgeleitet wurden. Wenn du
Dann ist ein Trennzeichen, beispielsweise ein Unterstrich, zwischen dem Namen und dem Suffix erforderlich
Sie sollten es in den Suffixwert einschließen.
--fkey-suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung _fk um Fremdschlüsselnamen zu konstruieren. Wenn du
Dann ist ein Trennzeichen, beispielsweise ein Unterstrich, zwischen dem Namen und dem Suffix erforderlich
Sie sollten es in den Suffixwert einschließen.
--sequence-suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung _seq um Sequenznamen zu konstruieren. Wenn du es brauchst
ein Trennzeichen, z. B. einen Unterstrich, zwischen dem Namen und dem Suffix, dann Sie
sollte es in den Suffixwert aufnehmen.
--sql-name-case Häuser
Konvertieren Sie alle automatisch abgeleiteten SQL-Namen in Groß- oder Kleinschreibung. Gültige Werte
für diese Option sind obere und senken.
--table-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur Transformation verwendet werden
automatisch abgeleitete Tabellennamen. Weitere Informationen finden Sie im Abschnitt „SQL-NAMENTRANSFORMATIONEN“ weiter unten
.
--column-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur Transformation verwendet werden
automatisch abgeleitete Spaltennamen. Weitere Informationen finden Sie im Abschnitt „SQL-NAMENTRANSFORMATIONEN“ weiter unten
.
--index-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur Transformation verwendet werden
automatisch abgeleitete Indexnamen. Weitere Informationen finden Sie im Abschnitt „SQL-NAMENTRANSFORMATIONEN“ weiter unten
.
--fkey-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur Transformation verwendet werden
automatisch abgeleitete Fremdschlüsselnamen. Weitere Informationen finden Sie im Abschnitt SQL-NAMENTRANSFORMATIONEN
unten für Details.
--sequence-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur Transformation verwendet werden
automatisch abgeleitete Sequenznamen. Weitere Informationen finden Sie im Abschnitt SQL-NAMENTRANSFORMATIONEN
unten für Details.
--statement-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur Transformation verwendet werden
automatisch abgeleitete vorbereitete Anweisungsnamen. Siehe SQL-NAMENTRANSFORMATIONEN
Abschnitt unten für Details.
--sql-name-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur Transformation aller verwendet wird
automatisch abgeleitete SQL-Namen. Weitere Informationen finden Sie im Abschnitt SQL-NAMENTRANSFORMATIONEN weiter unten
Details.
--sql-name-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit dem SQL-Namen angegeben sind
--*-regex Optionen. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke dies nicht tun
tun, was Sie von ihnen erwartet haben.
--accessor-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Transformieren von Datenelementnamen verwendet werden
Funktionsnamen bei der Suche nach einer geeigneten Zugriffsfunktion. Das Argument zu
Diese Option ist ein Perl-ähnlicher regulärer Ausdruck im Formular /Anleitungen/Ersatz/.
Stattdessen kann jedes beliebige Zeichen als Trennzeichen verwendet werden / und das Trennzeichen kann sein
flüchtete hinein Anleitungen und Ersatz mit einem Backslash (). Sie können angeben
mehrere reguläre Ausdrücke durch Wiederholen dieser Option.
Alle regulären Ausdrücke werden in der angegebenen Reihenfolge und zuerst ausprobiert
Es wird ein Ausdruck verwendet, der eine geeignete Zugriffsfunktion erzeugt. Jeder Ausdruck ist
habe es zweimal versucht: zuerst mit dem tatsächlichen Mitgliedsnamen und dann mit dem des Mitglieds Öffentlichkeit
Name Dies wird durch Entfernen der allgemeinen Mitgliedsnamendekorationen erreicht, z
führende und nachgestellte Unterstriche, die m_ Präfix usw. Der ODB-Compiler auch
enthält eine Reihe integrierter Ausdrücke für häufig verwendete Accessornamen, z
get_foo, getFoo, getfoo, und nur foo. Die integrierten Ausdrücke werden zuletzt ausprobiert.
Der folgende Ausdruck transformiert beispielsweise Datenelemente mit öffentlichen Namen
in der Form foo auf Zugriffsnamen im Formular GetFoo:
/(.+)/Get\u$1/
Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.
--accessor-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --accessor-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.
--modifier-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Transformieren von Datenelementnamen verwendet werden
Funktionsnamen bei der Suche nach einer geeigneten Modifikatorfunktion. Das Argument zu
Diese Option ist ein Perl-ähnlicher regulärer Ausdruck im Formular /Anleitungen/Ersatz/.
Stattdessen kann jedes beliebige Zeichen als Trennzeichen verwendet werden / und das Trennzeichen kann sein
flüchtete hinein Anleitungen und Ersatz mit einem Backslash (). Sie können angeben
mehrere reguläre Ausdrücke durch Wiederholen dieser Option.
Alle regulären Ausdrücke werden in der angegebenen Reihenfolge und zuerst ausprobiert
Es wird ein Ausdruck verwendet, der eine geeignete Modifikatorfunktion erzeugt. Jeder Ausdruck ist
habe es zweimal versucht: zuerst mit dem tatsächlichen Mitgliedsnamen und dann mit dem des Mitglieds Öffentlichkeit
Name Dies wird durch Entfernen der allgemeinen Mitgliedsnamendekorationen erreicht, z
führende und nachgestellte Unterstriche, die m_ Präfix usw. Der ODB-Compiler auch
enthält eine Reihe integrierter Ausdrücke für häufig verwendete Modifikatornamen, z
set_foo, setFoo, setfoo, und nur foo. Die integrierten Ausdrücke werden zuletzt ausprobiert.
Der folgende Ausdruck transformiert beispielsweise Datenelemente mit öffentlichen Namen
in der Form foo zu Modifikatornamen im Formular SetFoo:
/(.+)/Set\u$1/
Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.
--modifier-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --Modifikator-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.
--include-with-brackets
Verwenden Sie im generierten Text spitze Klammern (<>) anstelle von Anführungszeichen („“) #einschließen
Richtlinien.
--include-Präfix Präfix
Speichern Präfix zu den generierten #einschließen Direktive Pfade.
--include-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur generierten Transformation verwendet werden #einschließen
Direktive Pfade. Das Argument dieser Option ist ein Perl-ähnlicher regulärer Ausdruck in
die Form /Anleitungen/Ersatz/. Stattdessen kann jedes beliebige Zeichen als Trennzeichen verwendet werden
/ und das Trennzeichen kann im Inneren maskiert werden Anleitungen und Ersatz mit Backslash
(). Sie können mehrere reguläre Ausdrücke angeben, indem Sie diese Option wiederholen. All die
Reguläre Ausdrücke werden in der angegebenen Reihenfolge ausprobiert und der erste Ausdruck
Streichhölzer verwendet werden.
Die folgenden Ausdruckstransformationen umfassen beispielsweise Pfade im Formular
foo/bar-odb.h zu Pfaden im Formular foo/generated/bar-odb.h:
%foo/(.+)-odb.h%foo/generated/$1-odb.h%
Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.
--include-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --enthalten-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.
--guard-präfix Präfix
Speichern Präfix zu den generierten Header-Inclusion-Guards. Das Präfix wird in umgewandelt
Großbuchstaben und Zeichen, die in einem Präprozessor-Makronamen unzulässig sind, sind
durch Unterstriche ersetzt.
--show-sloc
Gibt die Anzahl der generierten physischen Quellcodezeilen (SLOC) aus.
--sloc-limit num
Stellen Sie sicher, dass die Anzahl der generierten physischen Quellcodezeilen (SLOC) nicht zunimmt
überschreiten num.
--options-Datei Datei
Weitere Optionen lesen Sie unter Datei wobei jede Option in einer separaten Zeile erscheint
optional gefolgt von einem Leerzeichen und einem Optionswert. Leere Zeilen und Zeilenanfang
mit # werden ignoriert. Optionswerte können in doppelte () eingeschlossen werden.") oder Single (')
Anführungszeichen, um führende und nachfolgende Leerzeichen beizubehalten und Leerzeichen anzugeben
Werte. Wenn der Wert selbst nachgestellte oder führende Anführungszeichen enthält, schließen Sie ihn mit einem ein
zusätzliche Anführungszeichen, zum Beispiel '"X"'. Nicht führende und nicht nachgestellte Anführungszeichen sind
als Teil des Optionswerts interpretiert.
Die Semantik der Bereitstellung von Optionen in einer Datei entspricht der Bereitstellung derselben
Satz von Optionen in der gleichen Reihenfolge in der Befehlszeile an der Stelle, an der die
--options-Datei Option angegeben ist, mit der Ausnahme, dass die Shell mit Escapezeichen und Anführungszeichen versehen ist
nicht benötigt. Sie können diese Option wiederholen, um mehr als eine Optionsdatei anzugeben.
-x zu erhalten
Passieren zu erhalten an den zugrunde liegenden C++-Compiler (g ++). Die zu erhalten Wert, der das nicht tut
beginnen mit - gilt als die g ++ Name der ausführbaren Datei.
-v Drucken Sie die ausgeführten Befehle aus, um die Kompilierungsphasen auszuführen.
--verfolgen
Verfolgen Sie den Kompilierungsprozess.
--mysql-engine Sie
Verwenden Sie die Sie anstelle der Standardeinstellung InnoDB in der generierten Datenbankschemadatei. Für
Weitere Informationen zu den Speicher-Engine-Optionen finden Sie in der MySQL-Dokumentation. Wenn du
möchte die Datenbank-Standard-Engine verwenden, pass Standard als Wert dafür
.
--sqlite-override-null
Sorgen Sie dafür, dass alle Spalten im generierten Datenbankschema zulässig sind NULL Werte. Das ist
Dies ist vor allem bei der Schemamigration nützlich, da SQLite das Löschen von nicht unterstützt
Säulen. Indem Sie alle Spalten erstellen NULL wir können sie später „löschen“, indem wir sie festlegen
Werte zu NULL. Beachten Sie, dass diese Option sogar die überschreibt nicht null Pragma.
--sqlite-lax-auto-id
Erzwingen Sie keine monoton steigenden automatisch zugewiesenen Objekt-IDs. In diesem
Modus lässt das generierte Datenbankschema das weg AUTOINKREMENT Schlüsselwort, das dazu führt
schnellere Objektpersistenz, kann aber dazu führen, dass automatisch zugewiesene IDs nicht in einem sind
streng aufsteigende Reihenfolge. Weitere Informationen finden Sie in der SQLite-Dokumentation.
--pgsql-server-version sehen
Geben Sie die minimale PostgreSQL-Serverversion an, mit der der generierte C++-Code und
Schema wird verwendet. Diese Informationen dienen der versionierten Aktivierung
Optimierungen und Problemumgehungen im generierten C++-Code und -Schema. Die Version
muss in der sein Dur.Moll bilden zum Beispiel 9.1. Wenn diese Option nicht angegeben ist,
dann 7.4 oder später wird angenommen.
--oracle-client-version sehen
Geben Sie die Mindestversion der Oracle-Clientbibliothek (OCI) an, mit der die generiert wird
C++-Code wird verlinkt. Diese Informationen dienen der versionierten Aktivierung
Optimierungen und Workarounds im generierten C++-Code. Die Version muss vorhanden sein
Dur.Moll bilden zum Beispiel 11.2. Wenn diese Option nicht angegeben ist, dann 10.1
oder später wird angenommen.
--oracle-warn-truncation
Warnung vor SQL-Namen, die länger als 30 Zeichen sind und daher
gekürzt. Beachten Sie, dass während der Generierung des Datenbankschemas (--generate-schema) ODB
erkennt, wenn solche Kürzungen zu Namenskonflikten führen, und gibt sogar eine Diagnose aus
ohne Angabe dieser Option.
--mssql-server-version sehen
Geben Sie die Mindestversion des SQL Server-Servers an, mit der der generierte C++-Code und erstellt werden soll
Schema wird verwendet. Diese Informationen dienen der versionierten Aktivierung
Optimierungen und Problemumgehungen im generierten C++-Code und -Schema. Die Version
muss in der sein Dur.Moll bilden zum Beispiel 9.0 (SQL Server 2005), 10.5 (2008R2),
or 11.0 (2012). Wenn diese Option nicht angegeben ist, dann 10.0 (SQL Server 2008) oder
später angenommen wird.
--mssql-short-limit Größe
Geben Sie die Größenbeschränkung für kurze Daten an. Wenn es sich um ein Zeichen, ein nationales Zeichen oder eine Binärdatei handelt
Wenn der Datentyp eine maximale Länge (in Bytes) hat, die kleiner oder gleich diesem Grenzwert ist, dann ist er
wird behandelt als kurz die Datenerfassung, sonst ist es lange die Datenerfassung. Für Kurzdaten-ODB-Pre-
weist einen Zwischenpuffer der maximalen Größe zu und bindet ihn direkt an a
Parameter- oder Ergebnisspalte. Auf diese Weise kann die zugrunde liegende API (ODBC) lesen/schreiben
direkt von/zu diesem Puffer. Bei langen Daten werden die Daten gelesen/geschrieben
in Stücken mit dem SQLGetData()/SQLPutData() ODBC-Funktionen. Während die langen Daten
Dieser Ansatz reduziert den von der Anwendung möglicherweise benötigten Speicher
größere CPU-Ressourcen. Das Standardlimit für kurze Daten beträgt 1024 Byte. Beim Einstellen von a
Stellen Sie sicher, dass das benutzerdefinierte kurze Datenlimit ausreichend groß ist, sodass kein Objekt vorhanden ist
Die ID in der Anwendung wird als lange Daten behandelt.
SQL NAME/FUNKTION TRANSFORMATIONEN
Der ODB-Compiler bietet eine Reihe von Mechanismen zur automatisch abgeleiteten Transformation
SQL-Namen wie Tabellen, Spalten usw., um einer bestimmten Namenskonvention zu entsprechen. Bei der
Auf einer höheren Ebene können wir globalen Namen (Tabellen und bei einigen Datenbanken auch Indizes) ein Präfix hinzufügen
und/oder Fremdschlüssel) mit dem --table-prefix Möglichkeit. Ebenso können wir benutzerdefiniert angeben
Suffixe für automatisch abgeleitete Indizes (--index-suffix; Standard ist _i), Unbekannter Schlüssel
(--fkey-suffix; Standard ist _fk) und Sequenz (--sequence-suffix; Standard ist _seq) Namen.
Schließlich können wir mit dem auch alle Namen in Groß- oder Kleinschreibung umwandeln --sql-name-case
Option (gültige Werte sind obere und senken).
Auf der unteren Ebene können wir eine Reihe regulärer Ausdrücke angeben, um beliebige Ausdrücke zu implementieren
Transformationen der automatisch abgeleiteten SQL-Namen. Wenn wir einen bestimmten Stammgast wollen
Wenn ein Ausdruck nur auf einen bestimmten Namen angewendet werden soll, zum Beispiel auf eine Tabelle oder Spalte, dann verwenden wir einen
dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog. --Art-Regex Optionen, wo Art kann sein Tabelle, Überblick, Index, fkey, Reihenfolge, oder auch
Aussage. Andererseits, wenn wir möchten, dass unsere regulären Ausdrücke für alle SQL-Anweisungen gelten
Namen, dann verwenden wir die --sql-name-regex .
Die Interaktion zwischen den Transformationen höherer und niedrigerer Ebene ist wie folgt. Präfixe
und Suffixe werden zuerst hinzugefügt. Anschließend werden die regulären Ausdruckstransformationen angewendet.
Abschließend wird der Name auf Wunsch in Groß- oder Kleinschreibung umgewandelt. Beachten Sie auch, dass alle
diese Transformationen außer --table-prefix gelten nur für automatisch abgeleitete Namen.
Mit anderen Worten: Wenn der Name einer Tabelle, Spalte usw. explizit mit einem Pragma angegeben wurde,
dann wird es unverändert verwendet, ohne dass irgendwelche Transformationen (mit Ausnahme des Tabellenpräfixes) angewendet werden.
Der Wert für die --*-regex Optionen ist ein Perl-ähnlicher regulärer Ausdruck im Formular
/Anleitungen/Ersatz/. Stattdessen kann jedes beliebige Zeichen als Trennzeichen verwendet werden / und der
Trennzeichen können im Inneren maskiert werden Anleitungen und Ersatz mit einem Backslash (). Sie können
Geben Sie auch mehrere reguläre Ausdrücke an, indem Sie diese Optionen wiederholen.
Alle regulären Ausdrücke werden in der mit dem Namen angegebenen Reihenfolge ausprobiert
Ausdrücke (zum Beispiel --table-regex) zuerst versucht, gefolgt von den generischen Ausdrücken
(--sql-name-regex). Der erste passende Ausdruck wird verwendet.
Betrachten Sie als Beispiel einen regulären Ausdruck, der einen Klassennamen im Formular umwandelt CFoo
zu einem Tabellennamen im Formular FOO:
--table-regex '/C(.+)/\U$1/'
Betrachten Sie als interessanteres Beispiel die Transformation von Klassennamen, die auf folgen
Großbuchstabenkonvention (z. B. FooBar) zu Tabellennamen, die auf folgen
durch Unterstriche getrennt, ausschließlich Großschreibung (z. B. FOO_BAR). Für diesen Fall wir
müssen separate Ausdrücke verwenden, um Ein-Wort-, Zwei-Wort- usw. Namen zu verarbeiten:
--table-regex '/([Az][az]+)/\U$1/'
--table-regex '/([Az][az]+)([Az][az]+)/\U$1_$2/'
Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.
REGEX UND SHELL ZITIEREN
Bei der Eingabe eines regulären Ausdrucksarguments in der Shell-Befehlszeile ist dies häufig der Fall
Es ist notwendig, Anführungszeichen zu verwenden (das Argument in „“ oder „“ einzuschließen), um dies zu verhindern
Shell daran hindert, bestimmte Zeichen, zum Beispiel Leerzeichen, als Argumenttrennzeichen zu interpretieren und
$ als variable Erweiterungen.
Leider ist es schwierig, dies auf eine Art und Weise zu erreichen, die über POSIX-Shells hinweg portierbar ist.
wie sie unter GNU/Linux und UNIX sowie in der Windows-Shell zu finden sind. Wenn Sie beispielsweise „
Beim Zitieren erhalten Sie mit POSIX-Shells ein falsches Ergebnis, wenn Ihr Ausdruck $ enthält.
Die Standardmethode zur Behebung dieses Problems auf POSIX-Systemen ist stattdessen die Verwendung von „“.
Leider entfernt die Windows-Shell „ “ nicht aus Argumenten, wenn sie an übergeben werden
Anwendungen. Daher müssen Sie möglicherweise „ “ für POSIX und „ “ für Windows verwenden ($ ist nicht
wird unter Windows als Sonderzeichen behandelt).
Alternativ können Sie Optionen für reguläre Ausdrücke in einer Datei speichern, eine Option pro Zeile.
und verwenden Sie diese Datei mit dem --options-Datei Möglichkeit. Bei diesem Ansatz ist dies nicht erforderlich
Sorgen Sie sich um Shell-Zitate.
DIAGNOSE
Wenn die Eingabedatei kein gültiges C++ ist, ODB gibt Diagnosemeldungen an STDERR aus und wird beendet
mit Exit-Code ungleich Null.
Verwenden Sie ODB online über die Dienste von onworks.net