Il s'agit de la commande odb qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks à l'aide de l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
odb - compilateur de mappage objet-relationnel (ORM) pour C++
SYNOPSIS
ODB [ Options ] filet [ fichier... ]
DESCRIPTION
Étant donné un ensemble de classes C++ dans un fichier d'en-tête, ODB génère du code C++ qui vous permet de
persister, interroger et mettre à jour les objets de ces classes dans une base de données relationnelle (SGBDR). Les
la base de données relationnelle que le code généré doit cibler est spécifiée avec les
--base de données option (voir ci-dessous).
Pour un fichier d'entrée sous la forme nom.hxx (d'autres extensions de fichiers peuvent être utilisées à la place de
.hxx), en mode base de données unique (par défaut), les fichiers C++ générés par défaut ont
les noms suivants : nom-odb.hxx (En tête de fichier), nom-odb.ixx (fichier en ligne), et Nom-
odb.cxx (fichier source). De plus, si le --generate-schéma l'option est spécifiée et le
sql le format du schéma est demandé (voir --format-schéma) et de nom.sql le fichier de schéma de base de données est
généré. Si la séparé le format du schéma est demandé, le code de création de la base de données est
généré dans le séparé schéma-nom.cxx fichier.
En mode multi-bases de données (voir le --multi-base de données option ci-dessous), les fichiers générés
correspondant à la commun base de données ont les mêmes noms qu'en mode base de données unique.
Pour les autres bases de données, les noms de fichiers incluent le nom de la base de données : nom-odb-db.hxx, nom-odb-
db.ixx, nom-odb-db.cxx, Nom-db.sql et nom-schéma-db.cxx (OÙ db est la base de données
Nom).
OPTIONS
--Aidez-moi Imprimez les informations d'utilisation et quittez.
--version
Version imprimable et sortie.
-I dir Ajouter dir au début de la liste des répertoires à rechercher inclus
fichiers d'en-tête.
-D prénom[=def]
Définir une macro prénom avec définition def. Si la définition est omise, définissez prénom être
1.
-U prénom
Annuler toutes les définitions précédentes de macro prénom, soit intégré, soit fourni avec le
-D option.
--base de données|-d db
Générer du code pour le db base de données. Les valeurs valides sont MSSQL, mysql, oracle, pgsql,
sqlite et commun (mode multi-bases uniquement).
--multi-base de données|-m type
Activez la prise en charge de plusieurs bases de données et spécifiez son type. Valeurs valides pour cette option
are statique et Dynamic.
En mode multi-base de données, les options qui déterminent le genre (par exemple, --schéma-
le format), des noms (par exemple, --odb-file-suffixe), ou du contenu (par exemple, prologue
et les options d'épilogue) des fichiers de sortie peuvent être préfixés avec le nom de la base de données
suivi de deux points, par exemple, mysql:valeur. Cela limite la valeur d'un tel
option à appliquer uniquement aux fichiers générés correspondant à cette base de données.
--default-base de données db
Lorsque la prise en charge de plusieurs bases de données statiques est utilisée, spécifiez la base de données qui doit être
fait la valeur par défaut. Lorsque la prise en charge dynamique de plusieurs bases de données est utilisée, commun est toujours
fait la base de données par défaut.
--générer-requête|-q
Générez le code de prise en charge des requêtes. Sans ce support, vous ne pouvez pas utiliser les vues et ne pouvez
charger des objets via leurs identifiants.
--generate-préparé
Générez un code de support d'exécution de requête préparé.
--omit-non préparé
Omettez le code de prise en charge de l'exécution des requêtes non préparé (uniquement).
--générer-session|-e
Générez le code de support de session. Avec cette option, le support de session sera activé par
par défaut pour toutes les classes persistantes sauf celles pour lesquelles il a été explicitement
désactivé à l'aide du db Session pragmatique.
--generate-schéma|-s
Générez le schéma de la base de données. Le schéma de base de données contient des instructions SQL qui
créer les tables de base de données nécessaires pour stocker les classes persistantes définies dans le fichier
en cours de compilation. Notez qu'en appliquant ce schéma, toutes les informations existantes
stockées dans ces tables seront perdues.
Selon la base de données utilisée (--base de données option), le schéma est généré
soit en tant que fichier SQL autonome, soit incorporé dans le code C++ généré. Par défaut
le fichier SQL est généré pour MySQL, PostgreSQL, Oracle et Microsoft SQL
Les bases de données du serveur et le schéma sont intégrés dans le code C++ pour le SQLite
base de données. Utilisez le --format-schéma option pour modifier le format de schéma par défaut.
Si la prise en charge de l'évolution du schéma de la base de données est activée (c'est-à-dire que la version du modèle objet
est spécifié), alors cette option déclenche également la génération du schéma de base de données
instructions de migration, encore une fois sous forme de fichiers SQL autonomes ou intégrés dans le
code C++ généré. Vous pouvez supprimer la génération d'instructions de migration de schéma
en précisant le --suppression-migration option.
--generate-schema-only
Générez uniquement le schéma de la base de données. Notez que cette option n'est valide que lorsque
générer un schéma en tant que fichier SQL autonome (voir --format-schéma pour plus de détails).
--suppression-migration
Supprimez la génération d'instructions de migration de schéma de base de données.
--suppress-version-schéma
Supprimer la génération de la table des versions de schéma. Si vous spécifiez cette option, alors
vous devez également spécifier manuellement la version et la migration du schéma de base de données
état au moment de l'exécution à l'aide du odb::database::schema_version() la fonction.
--schéma-version-table prénom
Spécifiez le nom de table de version de schéma alternatif au lieu du nom par défaut
version_schéma. Si vous spécifiez cette option, vous devez également
spécifiez le nom de la table de version du schéma au moment de l'exécution à l'aide de la
odb::database::schema_version_table() fonction. Le nom de la table peut être qualifié.
--format-schéma le format
Générez le schéma de base de données au format spécifié. Passe sql as le format à
générer le schéma de base de données en tant que fichier SQL autonome ou passer intégré pour intégrer le
schéma dans le code C++ généré. Les séparé la valeur est similaire à intégré
sauf que le code de création de schéma est généré dans un fichier C++ séparé (Nom-
schéma.cxx par défaut). Cette valeur est principalement utile si vous souhaitez placer le
fonctionnalité de création de schéma dans un programme ou une bibliothèque distinct. Répétez ceci
option pour générer le même schéma de base de données dans plusieurs formats.
--omettre-drop
Omettre GOUTTE instructions du schéma de base de données généré.
--omettre-créer
Omettre CREATE instructions du schéma de base de données généré.
--nom-schéma prénom
Utilisez prénom comme nom de schéma de base de données. Les noms de schéma sont principalement utilisés pour
faire la distinction entre plusieurs schémas intégrés dans le catalogue de schémas. Ils ne sont pas
à confondre avec les schémas de base de données (espaces de noms de base de données) qui sont spécifiés avec
le --schéma option. Si cette option n'est pas spécifiée, le nom vide, qui est le
nom de schéma par défaut, est utilisé.
--fkeys-mode-différable m
Utiliser le mode de vérification des contraintes m dans les clés étrangères générées pour les relations d'objet.
Les valeurs valides pour cette option sont non_différable, Immédiat et différée (défaut).
MySQL et SQL Server ne prennent pas en charge les clés étrangères reportables et pour ces bases de données
ces clés sont générées en commentaire. Autres clés étrangères générées par l'ODB
compilateur (comme ceux utilisés pour prendre en charge les conteneurs et les hiérarchies polymorphes)
sont toujours générés comme non reportables.
Notez également que si vous utilisez soit non_différable or Immédiat mode, puis l'ordre
dans lequel vous persistez, mettez à jour et effacez des objets au sein d'une transaction devient
important.
--default-pointeur ptr
Utilisez ptr comme pointeur par défaut pour les objets et vues persistants. Objets et vues
qui n'ont pas de pointeur assigné avec le db aiguille pragma utilisera ceci
pointeur par défaut. La valeur de cette option peut être * qui désigne le pointeur brut
et est le nom par défaut ou qualifié d'un modèle de classe de pointeur intelligent, pour
Par exemple, std ::auto_ptr. Dans ce dernier cas, le compilateur ODB construit l'objet
ou pointeur de vue en ajoutant un seul argument de modèle du type objet ou vue à
le nom qualifié, par exemple std::auto_ptr. Le runtime ODB utilise l'objet
et afficher les pointeurs à retourner, et, dans le cas d'objets, passer et mettre en cache dynamiquement
instances allouées des types d'objet et de vue.
À l'exception du pointeur brut et des pointeurs intelligents standard définis dans le
fichier d'en-tête, vous devez inclure la définition du pointeur par défaut à
le début du fichier d'en-tête généré. Il existe deux manières courantes d'atteindre
ceci : vous pouvez soit inclure l'en-tête nécessaire dans le fichier en cours de compilation, soit vous
peut utiliser le --hxx-prologue possibilité d'ajouter le nécessaire #comprendre directive au
code généré.
--type-session type
Utilisez type comme type de session alternatif au lieu du type par défaut odb :: session. Ce
peut être utilisée pour spécifier une implémentation de session personnalisée à utiliser par le
classes persistantes. Notez que vous devrez également inclure la définition du
type de session personnalisé dans le fichier d'en-tête généré. Ceci est normalement réalisé avec
le --hxx-prologue* options.
--profil|-p prénom
Spécifiez un profil qui doit être utilisé lors de la compilation. Un profil est une option
déposer. Le compilateur ODB recherche d'abord une version spécifique à la base de données avec le nom
construit en ajoutant le -base de données.options suffixe à prénom, Où base de données is
le nom de la base de données comme spécifié avec le --base de données option. Si ce fichier n'est pas
trouvé, le compilateur ODB recherche une version indépendante de la base de données avec le nom
construit en ajoutant juste le .options suffixe.
Les fichiers d'options de profil sont recherchés dans le même ensemble de répertoires que C++
en-têtes inclus avec le #comprendre <...> directive (chemins intégrés plus ceux
spécifié avec le -I option). Le fichier d'options est d'abord recherché dans le
répertoire lui-même, puis dans son odb/ sous-répertoire.
Pour le format du fichier d'options, reportez-vous à la --fichier-options option ci-dessous. Tu
pouvez répéter cette option pour spécifier plus d'un profil.
--immediatement
Générer du code pour tous les fichiers d'entrée ainsi que pour tous les fichiers qu'ils
inclure à la fois. Le résultat est un ensemble unique de fichiers source/schéma qui contiennent tous
le code généré. Si plus d'un fichier d'entrée est spécifié avec ce
option, puis le --input-nom l'option doit également être spécifiée afin de fournir la
nom de base pour les fichiers de sortie. Dans ce cas, la partie répertoire d'une telle base
name est utilisé comme emplacement du fichier combiné. Cela peut être important pour le
#comprendre résolution directive.
--schéma schéma
Spécifiez un schéma de base de données (espace de noms de base de données) qui doit être affecté au
classes persistantes dans le fichier en cours de compilation. Les schémas de base de données ne doivent pas être
confondu avec les noms de schéma de base de données (noms de catalogue de schémas) qui sont spécifiés avec
le --nom-schéma option.
--export-symbole symbole
insérer symbole dans les endroits où les instructions de contrôle d'exportation/importation de DLL
(__declspec(dllexport/dllimport)) sont nécessaires. Voir aussi le --symbole-externe
option ci-dessous.
--symbole-externe symbole
If symbole est défini, insérez-le aux endroits où une instanciation de modèle doit être
a déclaré externe. Cette option est normalement utilisée avec --export-symbole quand
la prise en charge de plusieurs bases de données et les requêtes sont activées.
--std version
Spécifiez la norme C++ qui doit être utilisée lors de la compilation. Les valeurs valides sont
c ++ 98 (Par défaut), c ++ 11 et c ++ 14.
--warn-hard-add
Avertir des membres de données ajoutés en dur.
--warn-hard-delete
Avertir des membres de données supprimés définitivement et des classes persistantes.
--avertir-dur
Avertir à la fois des membres de données ajoutés et supprimés de manière définitive et des classes persistantes.
--rép-sortie|-o dir
Écrire les fichiers générés dans dir au lieu du répertoire courant.
--input-nom prénom
Utilisez prénom au lieu du fichier d'entrée pour dériver les noms des fichiers générés. Si
le --immediatement option est spécifiée, alors la partie répertoire de prénom est utilisé comme
emplacement du fichier combiné. Se référer au --immediatement option pour plus de détails.
--changelog filet
Lire/écrire le journal des modifications de/vers filet au lieu du fichier journal des modifications par défaut. Les
le nom du fichier journal des modifications par défaut est dérivé du nom du fichier d'entrée et il est placé
dans le même répertoire que le fichier d'entrée. Notez que le --rép-sortie l'option fait
n'affecte pas l'emplacement du fichier changelog. En d'autres termes, par défaut, le changelog
le fichier est traité comme une autre entrée plutôt que comme une sortie même si le compilateur ODB
peut le modifier. Utilisez le --changelog-in et --changelog-out options à spécifier
différents fichiers de changelog d'entrée et de sortie.
--changelog-in filet
Lire le journal des modifications de filet au lieu du fichier journal des modifications par défaut. Si cette option est
spécifié, vous devez également spécifier le fichier changelog de sortie avec --changelog-
ande.
--changelog-out filet
Écrire le journal des modifications dans filet au lieu du fichier journal des modifications par défaut. Si cette option est
spécifié, vous devez également spécifier le fichier changelog d'entrée avec --changelog-
in.
--changelog-rép dir
Utilisez dir au lieu du répertoire du fichier d'entrée comme répertoire du fichier du journal des modifications. Cette
est également ajouté aux fichiers du journal des modifications spécifiés avec le --changelog,
--changelog-in et --changelog-in options sauf s'il s'agit de chemins absolus.
--init-changelog
Forcer la réinitialisation du changelog même s'il existe (tous les
l'historique des modifications sera perdu). Cette option est principalement utile pour les
test.
--odb-file-suffixe suffixe
Utilisez suffixe pour construire les noms des fichiers C++ générés. Dans le seul-
mode base de données la valeur par défaut pour cette option est -odb. En mode multi-base de données
c'est -odb pour les fichiers correspondant au commun base de données et -odb-db (OÙ db
est le nom de la base de données) pour les autres bases de données.
--sql-suffixe-fichier suffixe
Utilisez suffixe pour construire le nom du fichier SQL de schéma généré. Dans le seul-
mode base de données par défaut aucun suffixe n'est utilisé. En mode multi-base de données, la valeur par défaut
la valeur de cette option est -db (OÙ db est le nom de la base de données).
--suffixe-fichier-schéma suffixe
Utilisez suffixe pour construire le nom du fichier source C++ du schéma généré. Dans le
mode base de données unique la valeur par défaut pour cette option est -schéma. Dans le multi-
c'est le mode base de données -schéma-db (OÙ db est le nom de la base de données). Voir le --schéma-
le format option pour plus de détails.
--changelog-file-suffixe sfx
Utilisez sfx pour construire le nom du fichier changelog. En mode base de données unique par
par défaut, aucun suffixe n'est utilisé. En mode multi-base de données, la valeur par défaut pour ce
option est -db (OÙ db est le nom de la base de données).
--hxx-suffixe suffixe
Utilisez suffixe au lieu de la valeur par défaut .hxx pour construire le nom du C++ généré
En tête de fichier.
--ixx-suffixe suffixe
Utilisez suffixe au lieu de la valeur par défaut .ixx pour construire le nom du C++ généré
fichier en ligne.
--cxx-suffixe suffixe
Utilisez suffixe au lieu de la valeur par défaut .cxx pour construire le nom du C++ généré
fichier source.
--sql-suffixe suffixe
Utilisez suffixe au lieu de la valeur par défaut .sql pour construire le nom du généré
fichier de schéma de base de données.
--changelog-suffixe suffixe
Utilisez suffixe au lieu de la valeur par défaut .xml pour construire le nom du fichier changelog.
--hxx-prologue texte
insérer texte au début du fichier d'en-tête C++ généré.
--ixx-prologue texte
insérer texte au début du fichier en ligne C++ généré.
--cxx-prologue texte
insérer texte au début du fichier source C++ généré.
--schéma-prologue texte
insérer texte au début du fichier source C++ du schéma généré.
--sql-prologue texte
insérer texte au début du fichier de schéma de base de données généré.
--migration-prologue texte
insérer texte au début du fichier de migration de base de données généré.
--sql-interlude texte
insérer texte après tout le GOUTTE et avant tout CREATE instructions dans le fichier généré
fichier de schéma de base de données.
--hxx-épilogue texte
insérer texte à la fin du fichier d'en-tête C++ généré.
--ixx-épilogue texte
insérer texte à la fin du fichier en ligne C++ généré.
--cxx-épilogue texte
insérer texte à la fin du fichier source C++ généré.
--schéma-épilogue texte
insérer texte à la fin du fichier source C++ du schéma généré.
--sql-épilogue texte
insérer texte à la fin du fichier de schéma de base de données généré.
--migration-épilogue texte
insérer texte à la fin du fichier de migration de base de données généré.
--hxx-fichier-prologue filet
Insérez le contenu de filet au début du fichier d'en-tête C++ généré.
--ixx-fichier-prologue filet
Insérez le contenu de filet au début du fichier en ligne C++ généré.
--cxx-fichier-prologue filet
Insérez le contenu de filet au début du fichier source C++ généré.
--schema-prologue-file filet
Insérez le contenu de filet au début du schéma généré source C++
fichier.
--sql-fichier-prologue filet
Insérez le contenu de filet au début du fichier de schéma de base de données généré.
--migration-prologue-fichier f
Insérer le contenu du fichier f au début de la migration de la base de données générée
fichier.
--sql-fichier-interlude filet
Insérez le contenu de filet après tout le GOUTTE et avant tout CREATE déclarations dans
le fichier de schéma de base de données généré.
--hxx-fichier-épilogue filet
Insérez le contenu de filet à la fin du fichier d'en-tête C++ généré.
--ixx-fichier-épilogue filet
Insérez le contenu de filet à la fin du fichier en ligne C++ généré.
--cxx-fichier-épilogue filet
Insérez le contenu de filet à la fin du fichier source C++ généré.
--schema-épilogue-fichier filet
Insérez le contenu de filet à la fin du fichier source C++ du schéma généré.
--sql-fichier-épilogue filet
Insérez le contenu de filet à la fin du fichier de schéma de base de données généré.
--migration-épilogue-fichier f
Insérer le contenu du fichier f à la fin du fichier de migration de base de données généré.
--odb-prologue texte
Compiler texte avant le fichier d'en-tête d'entrée. Cette option vous permet d'ajouter des
déclarations, telles que les spécialisations de traits personnalisés, à la compilation ODB
processus.
--odb-fichier-prologue filet
Compiler filet contenu avant le fichier d'en-tête d'entrée. Les fichiers de prologue sont compilés
après tous les fragments de texte du prologue (--odb-prologue option).
--odb-épilogue texte
Compiler texte après le fichier d'en-tête d'entrée. Cette option vous permet d'ajouter des
déclarations, telles que les spécialisations de traits personnalisés, à la compilation ODB
processus.
--odb-épilogue-fichier filet
Compiler filet contenu après le fichier d'en-tête d'entrée. Les fichiers épilogues sont compilés
après tous les fragments de texte de l'épilogue (--odb-épilogue option).
--table-préfixe préfixe
Ajouter préfixe aux noms de table et, pour les bases de données qui ont un index global et/ou
noms clés, à ces noms également. Le préfixe est ajouté aux deux noms qui ont été
spécifié avec le db table et db indice pragmas et ceux qui ont été automatiquement
dérivé des noms de classe et de membre de données. Si vous avez besoin d'un séparateur, tel qu'un
trait de soulignement, entre le préfixe et le nom, alors vous devez l'inclure dans le
valeur du préfixe.
--index-suffixe suffixe
Utilisez suffixe au lieu de la valeur par défaut _i pour construire des noms d'index. Le suffixe est seulement
ajoutés aux noms qui ont été automatiquement dérivés des noms de membres de données. Si tu
nécessitent un séparateur, tel qu'un trait de soulignement, entre le nom et le suffixe, puis
vous devez l'inclure dans la valeur du suffixe.
--fkey-suffixe suffixe
Utilisez suffixe au lieu de la valeur par défaut _fk pour construire des noms de clés étrangères. Si tu
nécessitent un séparateur, tel qu'un trait de soulignement, entre le nom et le suffixe, puis
vous devez l'inclure dans la valeur du suffixe.
--suffixe-séquence suffixe
Utilisez suffixe au lieu de la valeur par défaut _seq pour construire des noms de séquence. Si vous avez besoin
un séparateur, tel qu'un trait de soulignement, entre le nom et le suffixe, vous
devrait l'inclure dans la valeur du suffixe.
--sql-nom-case maisons
Convertissez tous les noms SQL dérivés automatiquement en majuscules ou en minuscules. Valeurs valides
pour cette option sont supérieur et baisser.
--table-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer
noms de table dérivés automatiquement. Voir la section TRANSFORMATIONS DE NOM SQL ci-dessous
pour en savoir plus.
--colonne-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer
noms de colonnes dérivés automatiquement. Voir la section TRANSFORMATIONS DE NOM SQL ci-dessous
pour en savoir plus.
--index-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer
noms d'index automatiquement dérivés. Voir la section TRANSFORMATIONS DE NOM SQL ci-dessous
pour en savoir plus.
--fkey-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer
les noms de clé étrangère automatiquement dérivés. Voir la section TRANSFORMATIONS DE NOM SQL
ci-dessous pour plus de détails.
--séquence-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer
noms de séquence automatiquement dérivés. Voir la section TRANSFORMATIONS DE NOM SQL
ci-dessous pour plus de détails.
--instruction-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer
noms d'instructions préparés automatiquement dérivés. Voir les TRANSFORMATIONS DE NOM SQL
section ci-dessous pour plus de détails.
--nom-sql-regex regex
Ajouter regex à la liste des expressions régulières qui est utilisée pour transformer tous
noms SQL automatiquement dérivés. Voir la section SQL NAME TRANSFORMATIONS ci-dessous pour
détails.
--sql-nom-regex-trace
Trace le processus d'application des expressions régulières spécifiées avec le nom SQL
--*-expression régulière option. Utilisez cette option pour découvrir pourquoi vos expressions régulières ne
faites ce que vous attendiez d'eux.
--accesseur-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer les noms des membres de données en
noms de fonction lors de la recherche d'une fonction d'accesseur appropriée. L'argument de
cette option est une expression régulière de type Perl sous la forme /modèle/remplacement/.
N'importe quel caractère peut être utilisé comme délimiteur au lieu de / et le délimiteur peut être
échappé à l'intérieur modèle et remplacement avec une barre oblique inverse (\). Vous pouvez spécifier
plusieurs expressions régulières en répétant cette option.
Toutes les expressions régulières sont essayées dans l'ordre spécifié et la première
expression qui produit une fonction accesseur appropriée est utilisée. Chaque expression est
essayé deux fois : d'abord avec le nom réel du membre, puis avec le nom du membre public
prénom qui est obtenu en supprimant les décorations de nom de membre commun, telles que
traits de soulignement de début et de fin, le m_ préfixe, etc. Le compilateur ODB a également
inclut un certain nombre d'expressions intégrées pour les noms d'accesseurs couramment utilisés, tels que
get_foo, obtenirFoo, obtenirfoo, et juste foo. Les expressions intégrées sont essayées en dernier.
À titre d'exemple, l'expression suivante transforme les données membres avec des noms publics
sous la forme foo aux noms d'accesseurs sous la forme ObtenirFoo:
/(.+)/Obtenez\u$1/
Voir également la section CITATION REGEX ET SHELL ci-dessous.
--accessor-regex-trace
Tracez le processus d'application des expressions régulières spécifiées avec le --accesseur-
regex option. Utilisez cette option pour découvrir pourquoi vos expressions régulières ne fonctionnent pas
ce que vous attendiez d'eux.
--modifier-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer les noms des membres de données en
noms de fonction lors de la recherche d'une fonction de modification appropriée. L'argument de
cette option est une expression régulière de type Perl sous la forme /modèle/remplacement/.
N'importe quel caractère peut être utilisé comme délimiteur au lieu de / et le délimiteur peut être
échappé à l'intérieur modèle et remplacement avec une barre oblique inverse (\). Vous pouvez spécifier
plusieurs expressions régulières en répétant cette option.
Toutes les expressions régulières sont essayées dans l'ordre spécifié et la première
expression qui produit une fonction de modification appropriée est utilisée. Chaque expression est
essayé deux fois : d'abord avec le nom réel du membre, puis avec le nom du membre public
prénom qui est obtenu en supprimant les décorations de nom de membre commun, telles que
traits de soulignement de début et de fin, le m_ préfixe, etc. Le compilateur ODB a également
inclut un certain nombre d'expressions intégrées pour les noms de modificateurs couramment utilisés, tels que
set_foo, setFoo, se mettre, et juste foo. Les expressions intégrées sont essayées en dernier.
À titre d'exemple, l'expression suivante transforme les données membres avec des noms publics
sous la forme foo pour modifier les noms sous la forme EnsembleFoo:
/(.+)/Définir\u$1/
Voir également la section CITATION REGEX ET SHELL ci-dessous.
--modifier-regex-trace
Tracez le processus d'application des expressions régulières spécifiées avec le --modificateur-
regex option. Utilisez cette option pour découvrir pourquoi vos expressions régulières ne fonctionnent pas
ce que vous attendiez d'eux.
--include-with-parenthèses
Utilisez des chevrons (<>) au lieu de guillemets ("") dans le #comprendre
directives.
--include-préfixe préfixe
Ajouter préfixe au généré #comprendre chemins directifs.
--include-regex regex
Ajouter regex à la liste des expressions régulières utilisées pour transformer généré #comprendre
chemins directifs. L'argument de cette option est une expression régulière de type Perl dans
la forme /modèle/remplacement/. N'importe quel caractère peut être utilisé comme délimiteur au lieu de
/ et le délimiteur peut être échappé à l'intérieur modèle et remplacement avec une barre oblique inverse
(\). Vous pouvez spécifier plusieurs expressions régulières en répétant cette option. Tous les
les expressions régulières sont essayées dans l'ordre spécifié et la première expression qui
allumettes est utilisé.
À titre d'exemple, les transformations d'expression suivantes incluent des chemins sous la forme
foo/bar-odb.h aux chemins sous la forme foo/généré/bar-odb.h:
%foo/(.+)-odb.h%foo/généré/$1-odb.h%
Voir également la section CITATION REGEX ET SHELL ci-dessous.
--include-regex-trace
Tracez le processus d'application des expressions régulières spécifiées avec le --comprendre-
regex option. Utilisez cette option pour découvrir pourquoi vos expressions régulières ne fonctionnent pas
ce que vous attendiez d'eux.
--guard-préfixe préfixe
Ajouter préfixe aux gardes d'inclusion d'en-tête générés. Le préfixe est transformé en
les majuscules et les caractères non autorisés dans un nom de macro de préprocesseur sont
remplacé par des traits de soulignement.
--show-sloc
Imprimer le nombre de lignes de code source physique générées (SLOC).
--sloc-limite num
Vérifiez que le nombre de lignes de code source physique générées (SLOC) ne
dépassent num.
--fichier-options filet
Lire les options supplémentaires de filet avec chaque option apparaissant sur une ligne distincte
éventuellement suivi d'un espace et d'une valeur d'option. Lignes vides et lignes commençant
avec # sont ignorés. Les valeurs des options peuvent être entourées de doubles (") ou individuel (')
guillemets pour préserver les espaces blancs de début et de fin ainsi que pour spécifier des espaces vides
valeurs. Si la valeur elle-même contient des guillemets de fin ou de début, entourez-la d'un
paire de guillemets supplémentaire, par exemple '"X"'. Les cotations non-avances et non-suivantes sont
interprété comme faisant partie de la valeur de l'option.
La sémantique de fournir des options dans un fichier équivaut à fournir le même
ensemble d'options dans le même ordre sur la ligne de commande au point où le
--fichier-options L'option est spécifiée, sauf que l'échappement et les guillemets du shell sont
non requis. Vous pouvez répéter cette option pour spécifier plusieurs fichiers d'options.
-x option
Passé option au compilateur C++ sous-jacent (g ++). La option valeur qui ne
commencer avec - est considéré comme le g ++ nom de l'exécutable.
-v Imprimer les commandes exécutées pour exécuter les étapes de compilation.
--tracer
Tracez le processus de compilation.
--mysql-moteur moteur
Utilisez moteur au lieu de la valeur par défaut InnoDB dans le fichier de schéma de base de données généré. Pour
pour plus d'informations sur les options du moteur de stockage, consultez la documentation MySQL. Si tu
voudrais utiliser le moteur de base de données par défaut, passez défaut comme valeur pour ce
option.
--sqlite-override-null
Permettre à toutes les colonnes du schéma de base de données généré NULL valeurs. C'est
principalement utile dans la migration de schéma car SQLite ne prend pas en charge la suppression de
Colonnes. En faisant toutes les colonnes NULL nous pouvons plus tard les "supprimer" en définissant leur
valeurs à NULL. Notez que cette option remplace même le not_null pragmatique.
--sqlite-lax-auto-id
Ne forcez pas l'augmentation monotone des identifiants d'objet attribués automatiquement. Dans ce
mode le schéma de base de données généré omet le INCRÉMENTATION AUTOMATIQUE mot-clé qui se traduit par
persistance des objets plus rapide mais peut conduire à ce que les identifiants attribués automatiquement ne soient pas dans un
ordre strictement croissant. Reportez-vous à la documentation SQLite pour plus de détails.
--pgsql-version-serveur voir
Spécifiez la version minimale du serveur PostgreSQL avec laquelle le code C++ généré et
schéma sera utilisé. Ces informations sont utilisées pour activer des
optimisations et solutions de contournement dans le code et le schéma C++ générés. La version
doit être dans le majeur.mineur forme, par exemple, 9.1. Si cette option n'est pas spécifiée,
puis 7.4 ou plus tard est supposé.
--oracle-version-client voir
Spécifiez la version minimale de la bibliothèque client Oracle (OCI) avec laquelle le
Le code C++ sera lié. Ces informations sont utilisées pour activer des
optimisations et solutions de contournement dans le code C++ généré. La version doit être en
le majeur.mineur forme, par exemple, 11.2. Si cette option n'est pas spécifiée, alors 10.1
ou plus tard est supposé.
--oracle-warn-troncation
Avertir des noms SQL qui font plus de 30 caractères et sont donc
tronqué. Notez que lors de la génération du schéma de base de données (--generate-schéma) ODB
détecte quand de telles troncatures conduisent à des conflits de noms et émet des diagnostics même
sans cette option spécifiée.
--mssql-version-serveur voir
Spécifiez la version minimale du serveur SQL Server avec laquelle le code C++ généré et
schéma sera utilisé. Ces informations sont utilisées pour activer des
optimisations et solutions de contournement dans le code et le schéma C++ générés. La version
doit être dans le majeur.mineur forme, par exemple, 9.0 (SQL Serveur 2005), 10.5 (2008R2),
or 11.0 (2012). Si cette option n'est pas spécifiée, alors 10.0 (SQL Server 2008) ou
plus tard est supposé.
--mssql-court-limite Taille
Spécifiez la limite de taille de données courte. Si un caractère, caractère national ou binaire
type de données a une longueur maximale (en octets) inférieure ou égale à cette limite, alors il
est traité comme court données, sinon c'est Long données. Pour les données courtes ODB pré-
alloue un tampon intermédiaire de la taille maximale et le lie directement à un
paramètre ou colonne de résultat. De cette façon, l'API sous-jacente (ODBC) peut lire/écrire
directement de/vers ce tampon. Dans le cas de données longues, les données sont lues/écrites
en morceaux en utilisant le SQLLitDonnées()/SQLPutDonnées() Fonctions ODBC. Alors que les données longues
approche réduit la quantité de mémoire utilisée par l'application, elle peut nécessiter
des ressources CPU plus importantes. La limite de données courtes par défaut est de 1024 octets. Lors du réglage d'un
limite de données courte personnalisée, assurez-vous qu'elle est suffisamment grande pour qu'aucun objet
id dans l'application est traité comme de longues données.
SQL Nom TRANSFORMATION
Le compilateur ODB fournit un certain nombre de mécanismes pour transformer automatiquement
Les noms SQL, tels que les tables, les colonnes, etc., pour correspondre à une convention de nommage spécifique. Au
niveau supérieur, on peut ajouter un préfixe aux noms globaux (tables et, pour certaines bases, index
et/ou clés étrangères) avec le --table-préfixe option. De même, nous pouvons spécifier personnalisé
suffixes pour l'index dérivé automatiquement (--index-suffixe; la valeur par défaut est _i), clé étrangère
(--fkey-suffixe; la valeur par défaut est _fk) et séquence (--suffixe-séquence; la valeur par défaut est _seq) noms.
Enfin, nous pouvons également convertir tous les noms en majuscules ou minuscules avec le --sql-nom-case
option (les valeurs valides sont supérieur et baisser).
Au niveau inférieur, nous pouvons spécifier un ensemble d'expressions régulières pour implémenter arbitrairement
transformations des noms SQL automatiquement dérivés. Si nous voulons un régulier particulier
expression uniquement à appliquer à un nom spécifique, par exemple, une table ou une colonne, alors nous en utilisons un
des --mots-expression régulière options, où mots peuvent être table, colonne, indice, fkey, séquence, ou
déclaration. D'un autre côté, si nous voulons que nos expressions régulières s'appliquent à tous les SQL
noms, alors nous utilisons le --nom-sql-regex option.
L'interaction entre les transformations de niveau supérieur et inférieur est la suivante. Préfixes
et les suffixes sont ajoutés en premier. Ensuite, les transformations d'expression régulière sont appliquées.
Enfin, si demandé, le nom est converti en majuscule ou en minuscule. Notez également que tous
ces transformations à l'exception de --table-préfixe ne s'appliquent qu'aux noms dérivés automatiquement.
En d'autres termes, si une table, une colonne, etc., le nom a été explicitement spécifié avec un pragma,
il est ensuite utilisé tel quel, sans appliquer de transformations (à l'exception du préfixe de table).
La valeur pour le --*-expression régulière options est une expression régulière de type Perl sous la forme
/modèle/remplacement/. N'importe quel caractère peut être utilisé comme délimiteur au lieu de / et la
le délimiteur peut être échappé à l'intérieur modèle et remplacement avec une barre oblique inverse (\). Vous pouvez
spécifiez également plusieurs expressions régulières en répétant ces options.
Toutes les expressions régulières sont essayées dans l'ordre spécifié avec le nom spécifique
expressions (par exemple, --table-regex) essayé en premier suivi des expressions génériques
(--nom-sql-regex). La première expression qui correspond est utilisée.
À titre d'exemple, considérons une expression régulière qui transforme un nom de classe sous la forme CFOO
à un nom de table sous la forme FOO:
--table-regex '/C(.+)/\U$1/'
Comme exemple plus intéressant, considérons la transformation des noms de classe qui suivent le
convention de cas de chameau supérieur (par exemple, FooBar) aux noms de table qui suivent le
séparés par des traits de soulignement, tous en majuscules (par exemple, FOO_BAR). Pour ce cas nous
doivent utiliser des expressions séparées pour gérer les noms à un mot, à deux mots, etc. :
--table-regex '/([Az][az]+)/\U$1/'
--table-regex '/([Az][az]+)([Az][az]+)/\U$1_$2/'
Voir également la section CITATION REGEX ET SHELL ci-dessous.
REGEX ET SHELL CITATION
Lors de la saisie d'un argument d'expression régulière dans la ligne de commande du shell, il est souvent
nécessaire d'utiliser des guillemets (en insérant l'argument entre " " ou ' ') afin d'éviter le
shell d'interpréter certains caractères, par exemple, les espaces comme séparateurs d'arguments et
$ en tant qu'extensions variables.
Malheureusement, il est difficile d'y parvenir d'une manière portable sur les shells POSIX,
tels que ceux trouvés sur GNU/Linux et UNIX, et le shell Windows. Par exemple, si vous utilisez " "
pour les guillemets, vous obtiendrez un mauvais résultat avec les shells POSIX si votre expression contient $.
La manière standard de gérer cela sur les systèmes POSIX est d'utiliser ' ' à la place.
Malheureusement, le shell Windows ne supprime pas ' ' des arguments lorsqu'ils sont transmis à
applications. Par conséquent, vous devrez peut-être utiliser ' ' pour POSIX et " " pour Windows ($ n'est pas
traité comme un caractère spécial sous Windows).
Alternativement, vous pouvez enregistrer les options d'expression régulière dans un fichier, une option par ligne,
et utilisez ce fichier avec le --fichier-options option. Avec cette approche, vous n'avez pas besoin de
s'inquiéter de la citation de shell.
DIAGNOSTIC
Si le fichier d'entrée n'est pas valide en C++, ODB enverra des messages de diagnostic à STDERR et quittera
avec un code de sortie différent de zéro.
Utiliser odb en ligne en utilisant les services onworks.net