Extensions Image, Audio et Vidéo Administration et programmation

Recherche d'entrées de tables faisant référence à des fichiers

Vous pouvez vérifier les entrées de table utilisateur faisant référence à un fichier de supports externes. Utilisez l'API DBxAdminIsFileReferenced API pour vérifier quelles entrées des tables ou de certaines tables de la base de données en cours font référence à un fichier de supports externes. Utilisez l'API DBxIsFileReferenced pour vérifier quelles entrées d'une table utilisateur particulière font référence à un fichier de supports externes.

Utilisation de l'interface API : Le modèle de code dans l'exemple qui suit indique le nombre de fois et l'emplacement où le fichier est référencé. Il inclut le code de vérification des erreurs. Le modèle de programme complet se trouve dans le fichier API.C du sous-répertoire SAMPLES.

Figure 14. Modèle de code permettant de vérifier si un fichier est référencé par des tables utilisateur

/*-- Interrogation de la base de données via l'API DBiAdminIsFileReferenced --*/
step="DBiAdminIsFileReferenced API";
rc = DBiAdminIsFileReferenced((char*) uid, filename, &count, &filelist);
if (rc < 0) {
   printf("%s: %s FAILED!\n", program, step);
   printMsg(rc);
     DBiGetError(&sqlcode, errorMsgText);
        printf("sqlcode=%i, errorMsgText=%s\n", sqlcode, errorMsgText);
} else if (rc > 0) {
   printf("%s: %s, warning detected.\n", program, step);
   printMsg(rc);
     DBiGetError(&sqlcode, errorMsgText);
     printf("sqlcode=%i, errorMsgText=%s\n", sqlcode, errorMsgText);
} else {
     if (count == 0)
          printf("%s: \"%s\" file is not referenced\n",
                 program, filename);
     else {          
          printf("%s: \"%s\" file is referenced %d times\n",
                 program, filename);
          for (i=0; i < count; i++)
             {
                 /* le nom de fichier est NULL pour les API IsFileReferenced */
 
   printf ("filename = %s\n", filelist[i].filename);
   printf ("\tqualifier = %s\n", filelist[i].tqualifier);
   printf ("\ttable = %s\n", filelist[i].tname);
   printf ("\thandle = %s\n", filelist[i].handle);
   printf ("\tcolumn = %s\n", filelist[i].column);
if (filelist[i].filename)
               free (filelist[i].filename);
             }
          }
   if (filelist)
       free (filelist);
        printf("%s: %s PASSED\n\n", argv[0], step);
}
 


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]