Vous pouvez extraire les informations suivantes sur un catalogue QBIC :
Utilisez l'API QbGetCatalogInfo pour extraire le nom de la table utilisateur et de la colonne, le nombre de caractéristiques et le paramètre auto-catalog. Utilisez l'API QbListFeatures pour extraire les noms de caractéristiques. Vous pouvez également utiliser la commande GET QBIC CATALOG INFO pour extraire toutes ces informations.
Le catalogue QBIC doit être ouvert en mise à jour avant l'extraction d'informations.
Utilisation de l'interface API : Lors de l'utilisation de l'API QbGetCatalogInfo, spécifiez le descripteur du catalogue QBIC. Vous devez également pointer sur une structure dans laquelle l'extension Image renvoie les informations relatives au catalogue. La structure des informations relatives au catalogue est définie dans le fichier (en-tête) d'inclusion pour QBIC, dmbqapi.h, comme suit :
typedef struct{ char tableName[qbiMaxTableName+1] /* table utilisateur */ char columnName[qbiMaxColumnName+1] /* colonne image */ SQLINTEGER featureCount; /* nombre de caractéristiques */ SQLINTEGER autoCatalog; /* indicateur auto-catalog */ } QbCatalogInfo;
Lorsque vous lancez l'appel d'API QbListFeatures, vous devez affecter une mémoire tampon afin d'y placer les noms de caractéristiques renvoyés qui y sont séparés par un espace. Vous devez également spécifier le descripteur du catalogue et la taille de la mémoire tampon recevant les noms de caractéristiques renvoyés. Pour estimer la taille de la mémoire tampon nécessaire, multipliez le nombre de caractéristiques renvoyé par l'API QbGetCatalogInfo par le nom de caractéristique le plus long. Vous pouvez utiliser la constante qbiMaxFeatureName comme taille du nom de caractéristique le plus long.
Les appels d'API de l'exemple suivant extraient des informations relatives au catalogue QBIC. Notez l'utilisation du nombre de caractéristiques renvoyé par l'API QbGetCatalogInfo et la constante qbiMaxFeature pour le calcul de taille de la mémoire tampon pour l'API QbListFeatures :
long bufSize; long count; char *featureNames; QbCatalogHandle CatHdl; QbCatalogInfo catInfo; /* Extraction du nom de la table utilisateur, de la colonne image, du nombre */ /* et du paramètre auto_catalog */ rc=QbGetCatalogInfo( CatHdl, /* descripteur du catalogue */ &catInfo); /* structure info. catalogue */ /* Liste des noms de caractéristique */ bufSize=catInfo.featureCount*qbiMaxFeatureName; featureNames=malloc(bufSize); rc=QbListFeatures( CatHdl, /* descripteur du catalogue */ bufSize /* taille de la mémoire tampon */ count, /* nombre de caractéristiques */ featureNames); /* mémoire tampon pour les noms */ /* de caractéristiques */
Utilisation de la ligne de commande : La commande GET QBIC CATALOG INFO affecte le catalogue ouvert. Dans l'exemple suivant, elle extrait des informations relatives au catalogue QBIC ouvert :
GET QBIC CATALOG INFO