IBM Books

Image Extender、Audio Extender 和 Video Extender 管理和程序设计


查找引用文件的表项

您可以检查用户表中的哪些项目引用外部媒体文件。使用 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, 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);
}
 


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]