ユーザー表のどの項目が外部メディア・ファイルを参照しているのかを調べることができます。 DBxAdminIsFileReferenced API を使用して、現行のデータベース内にあるユーザー表全体またはサブセットのどの項目が外部メディア・ファイルを参照しているかを調べることができます。 DBxIsFileReferenced API を使用して、特定のユーザー表のどの項目が外部メディア・ファイルを参照しているかを調べることができます。
API の使用: 次の例のサンプル・コードは、そのファイルが参照されている回数、どこで参照されているかを戻します。 この例には、エラー検査コードが組み込まれています。 このサンプル・プログラム全体は、SAMPLES サブディレクトリーの API.C ファイルにあります。
図 14. ファイルがユーザー表によって参照されているかどうかを調べるサンプル・コード
/*---- 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, errorMsg Text); } 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); } |