titre_site.jpg (51607 octets)

COPY STRUCTURE

 

Crée une table vide de même structure que la table en cours

Syntaxe

COPY STRUCTURE TO <fichier> | ?[[TYPE] PARADOX | DBASE] [FIELDS <liste de champs>][[WITH] PRODUCTION]

<fichier> | ?

Le nom de la table à créer. COPY STRUCTURE TO ? affiche une boîte de dialogue dans laquelle vous pouvez spécifier le nom de la table destination. Si vous spécifiez un nom de table sans inclure son chemin d'accès, Visual dBASE sauvegarde la table dans le lecteur et le répertoire en cours. Si vous spécifiez un nom de table sans inclure d'extension, sans définir un type de table par défaut avec SET DBTYPE ou utiliser l'une des options TYPE, Visual dBASE affecte l'extension .DBF.

Vous pouvez aussi copier une structure dans une table d'une base de données (définie au moyen de l'utilitaire de configuration BDE) en spécifiant la base de données comme préfixe (entourée de deux-points) du nom de la table, tel que :base de données:table. Si la base de données n'est pas déjà ouverte, Visual dBASE affiche une boîte de dialogue dans laquelle vous spécifiez des paramètres, tels que le nom de connexion et le mot de passe, nécessaires pour établir une connexion à cette base de données.

[[TYPE] PARADOX | DBASE]

Spécifie le type de table à créer, remplaçant ainsi le paramétrage en cours de DBTYPE. Le mot réservé TYPE est inclus uniquement pour améliorer la lisibilité; il n'a pas d'effet sur l'opération de la commande.
L'option PARADOX crée une table Paradox. d'extension .DB.
L'option DBASE crée une table dBASE (par défaut). Si vous n'incluez pas d'extension pour <fichier>, Visual dBASE affecte l'extension .DBF.

FIELDS <liste de champs>

Détermine les champs que Visual dBASE inclut dans la structure de la nouvelle table. Les champs apparaissent dans l'ordre spécifié par <liste de champs>.

WITH PRODUCTION

Crée un fichier .MDX d'exploitation pour la nouvelle table. Le nouveau fichier index dispose des mêmes repères d'index que le fichier index d'exploitation associé à la table initiale.

 ico_MsDos.jpg (1668 octets)  vdb5.gif (351 octets) Description


La commande COPY STRUCTURE copie la structure de la table en cours, mais ne copie pas les enregistrements. Si SET SAFETY est à OFF, Visual dBASE remplace les tables existantes de même nom sans afficher un message d'avertissement.
La commande COPY STRUCTURE copie la structure de la table entière à moins qu'une limitation ne soit spécifiée par l'option FIELDS ou la commande SET FIELDS. Lorsque vous émettez COPY STRUCTURE sans l'option FIELDS<liste de champs>, Visual dBASE copie les champs de la liste SET FIELDS TO dans la nouvelle table. Le champ _dbaselock créé avec la commande CONVERT n'est pas copié dans les nouvelles tables.

Vous pouvez utiliser COPY STRUCTURE pour créer une structure de table vide avec des champs provenant de plusieurs tables. Pour cela,

1.    Ouvrez les tables sources dans différentes zones de travail.
2.    Utilisez l'option FIELDS <liste de champs>, avec l'alias de table pour chaque champ n'appartenant pas à la table en cours.

Vous pouvez aussi établir une relation entre les tables au moyen de la commande SET RELATION, puis utiliser COPY STRUCTURE pour copier les champs des tables en relation.

vdb7.gif (353 octets) db2k.gif (280 octets) Plus2_5-Icon.jpg (1250 octets) Voir l'explication complémentaire apportée à l'article du bulletin n°12 sur les tables par J.P. Martel.

Plus2_5-Icon.jpg (1250 octets) xDML vers ooDML

Il n'y a pas d'instruction équivalente. Le plus simple est d'utiliser la méthode copyTable() de l'objet base de données et de faire deux opérations :

_app.databases[1].copyTable( "TABLESOURCE", "NOUVELLETABLE" ) // copie tout
_app.databases[1].emptyTable( "NOUVELLETABLE" )         // ôte les enregistrements

 

retour

Sources :

Aide dBase 2.6.0

Aide Visual dbase V 5.7
http://www.dbase.com/Knowledgebase/INT/xb2vdb7oodml/x2oodml.htm

Groupe de discussion dbase.programming

Retour à l'accueil

Si vous voyez des erreurs, ou souhaitez apporter des compléments,  n'hésitez pas à le signaler.

Dernière modification : vendredi 06 août 2010

©  M.A.