イメージ、オーディオ、およびビデオ・エクステンダー 管理およびプログラミングの手引き

ファイルを参照する表項目の検索

ユーザー表のどの項目が外部メディア・ファイルを参照しているのかを調べることができます。 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);
}
 


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]