Sie können überprüfen, welche Tabelleneinträge auf eine externe Multimediadatei verweisen. Im folgenden Beispiel werden die Verweise auf die Datei FREDPIC.BMP von den Benutzertabellen mit dem Schemanamen ANITAS aus aufgelistet.
Verwendung der API: dem folgenden Beispielgibt zurück, wie oft und wo auf die 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("anitas", "/usr/lpp/snapshot/fredpic.bmp", &count, &filelist); if (rc < 0) { printf("%s: %s FAILED!\n", argv[0], step); printMsg(rc); DBiGetError(&sqlcode, errorMsgText); printf("sqlcode=%i, errorMsgText=%s\n", sqlcode, errorMsgText); fail = TRUE;} else if (rc > 0) { printf("%s: %s, warning detected.\n", argv[0], step); printMsg(rc); DBiGetError(&sqlcode, errorMsgText); printf("sqlcode=%i, errorMsgText=%s\n", sqlcode, errorMsg Text); } else { if (count == 0) printf("%s: \"%s\" file is not referenced\n", argv[0], filename); else { printf("%s: \"%s\" file is referenced %d times\n", argv[0], filename); for (i=0; i < count; i++) { printf ("filename = %s\n", filelist[i].filename); printf (" qualifier = %s\n", filelist[i].tqualifier); printf (" table = %s\n", filelist[i].tname); printf (" handle = %s\n", filelist[i].handle); printf (" column = %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); } |
Wenn Sie keine DBA-Berechtigung, aber Auswahlberechtigung haben, können Sie die API DBxIsFileReferenced verwenden, um zu überprüfen, welche Tabelleneinträge in einer bestimmten Tabelle auf eine externe Multimediadatei verweisen.