Sie können überprüfen, welche Einträge in Benutzertabellen auf eine externe Multimediadatei verweisen. Verwenden Sie die API DBxAdminIsFileReferenced, um zu überprüfen, welche Einträge in allen Benutzertabellen oder einer Untergruppe von Benutzertabellen in der aktuellen Datenbank auf eine externe Multimediadatei verweisen. Verwenden Sie die API DBxIsFileReferenced, um zu überprüfen, welche Einträge in einer bestimmten Benutzertabelle auf eine externe Multimediadatei verweisen.
Verwendung der API: Der Beispielcode im folgenden Beispiel gibt zurück, wie oft und wo auf eine Datei verwiesen wird. Er enthält unter anderem Fehlerprüfcode. Das vollständige Beispielprogramm befindet sich in der Datei API.C im Unterverzeichnis SAMPLES.
Abbildung 14. Beispielcode zum Überprüfen, ob von Benutzertabellen aus auf eine Datei verwiesen wird
/*---- Query the database using DBiAdminIsFileReferenced API. ------*/ 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++) { /* filename is NULL for any IsFileReferenced APIs */ 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); } |