Supprimer des pièces jointes (Gestion des données)

Résumé

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

Illustration de l'outil Supprimer des pièces jointes

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

RemoveAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
ParamètreExplicationType 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

Sortie dérivée

NomExplicationType de données
out_dataset

Jeu de données en entrée mis à jour.

Vue tabulaire

Exemple de code

Exemple 1 d'utilisation de l'outil RemoveAttachments (fenêtre Python)

L'extrait de code suivant illustre l'utilisation de l'outil RemoveAttachments dans la fenêtre Python.

import arcpy
arcpy.RemoveAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", 
                                   r"C:\Data\matchtable.csv", "ParcelID", 
                                   "Picture")
Exemple 2 d’utilisation de l’outil RemoveAttachments (script autonome)

Le script Python ci-dessous illustre l'utilisation de l'outil RemoveAttachments dans un script autonome.

# Delete unnecessary attachments from a feature class
import arcpy
import csv
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)

Informations de licence

  • Basic: Non
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes