Supprimer des pièces jointes (Gestion des données)
Récapitulatif
Supprime des pièces jointes de classe d'entités de géodatabase ou d'enregistrements de table. Puisque les pièces jointes ne sont pas véritablement stockées dans le jeu de données en entrée, aucun changement ne sera apporté à cette classe d'entités ou table, mais à la table de géodatabase associée qui stocke les pièces jointes et gère le lien avec le jeu de données en entrée. Une table de correspondances permet d'identifier quels enregistrements en entrée (ou groupes attributaires d'enregistrements) auront des pièces jointes supprimées.
Illustration
Utilisation
-
Une autre possibilité d'utilisation de cet outil consiste à supprimer des enregistrements sélectionnés de la table InputDataset__ATTACH dans la même géodatabase que le Jeu de données en entrée, qui stocke les pièces jointes et gère les liens avec le Jeu de données en entrée.
Syntaxe
Paramètre | Explication | Type de données |
in_dataset |
Table de géodatabase ou classe d'entités de laquelle supprimer des pièces jointes. Les pièces jointes ne sont pas supprimées directement de cette table, mais plutôt de la table de pièces jointes associée qui stocke les pièces jointes. Le Jeu de données en entrée doit être stocké dans une géodatabase version 10 ou ultérieure, et la table doit avoir des pièces jointes activées. | Table View |
in_join_field |
Champ provenant du jeu de données en entrée qui contient des valeurs correspondant aux valeurs du champ Apparier le champ de jointure. Des pièces jointes sont supprimées des enregistrements qui ont des valeurs de champs de jointure correspondant entre le Jeu de données en entrée et la Table de correspondances. Ce champ peut être un champ d'identifiant d'objet ou tout autre attribut d'identification. | Field |
in_match_table |
Table qui identifie quels enregistrements en entrée auront des pièces jointes supprimées. | Table View |
in_match_join_field |
Champ provenant de la table de correspondances qui indique de quels enregistrements du Jeu de données en entrée les pièces jointes spécifiées seront supprimées. Ce champ peut avoir des valeurs qui correspondent aux identifiants d'objet du Jeu de données en entrée ou à un autre attribut d'identification. | Field |
in_match_name_field (Facultatif) |
Champ de la table de correspondances contenant les noms des pièces jointes à supprimer d'enregistrements du Jeu de données en entrée. Si aucun champ de nom n'est spécifié, toutes les pièces jointes seront supprimées de chaque enregistrement spécifié dans Apparier le champ de jointure. Si un champ de nom est spécifié, mais qu'un enregistrement a une valeur nulle ou vide dans le champ de nom, toutes les pièces jointes seront supprimées de cet enregistrement. Les valeurs de ce champ doivent être des noms courts de la pièce jointe à supprimer, pas les chemins complets aux fichiers utilisés pour attacher les pièces jointes. | Field |
Exemple de code
L'extrait de code suivant illustre l'utilisation de l'outil Supprimer des pièces jointes dans la fenêtre Python.
import arcpy
arcpy.RemoveAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", "ParcelID","Picture")
Le script suivant illustre l'utilisation de l'outil Supprimer des pièces jointes dans un script autonome.
## Some of the attachments we added to a feature class are unnecessary, let's remove them.
import csv, arcpy, os, sys
input = r"C:\Data\City.gdb\Parcels"
inputField = "ParcelID"
matchTable = r"C:\Data\matchtable.csv"
matchField = "ParcelID"
nameField = "Picture"
# create a new Match Table csv file that will tell the RemoveAttachments tool which attachments to delete
writer = csv.writer(open(matchTable, "wb"), delimiter=",")
# write a header row (the table will have two columns: ParcelID and Picture)
writer.writerow([matchField, nameField])
# create a list of the attachments to delete
# removes attachments pic1a.jpg and pic1b.jpg from feature 1, pic3.jpg from feature 3, and pic4.jpg from feature 4.
deleteList = [[1, "pic1a.jpg"], [1, "pic1b.jpg"], [3, "pic3.jpg"], [4, "pic4.jpg"]]
# iterate through the delete list and write it to the Match Table csv
for row in deleteList:
writer.writerow(row)
del writer
# use the match table with the Remove Attachments tool
arcpy.RemoveAttachments_management(input, inputField, matchTable, matchField, nameField)