Bonjour,
Je travaille sur un composant qui est amené à manipulé des tables
qui ne sont pas déclarés dans l'analyse du composant.
Ce composant possède sa propre analyse et effectue des requêtes SQL
sur les tables inscrites dynamiquement.
Nous utilisons une base DB2/400 (AS400).
Dans ce composant, je dois inscrire dynamiquement la table à traiter.
Je bute sur un soucis : > Mon code fonctionne lorsque je teste le
projet du composant.
> Dés lors que je l'intègre dans un projet hôte, les requêtes SQL se
plantent ( message "Source de données MaSourceDonnées non initialisée" )
Dans l'exemple de code ci dessous, je manipule une table et son schéma
reçu en paramètre respectivement dans les variables "P_CHR_SCHEMA" et
"P_CHR_TABLE" .
Le traitement de description des rubriques et de descrption de la table
se passe bien. J'utilise la table système "Qadbifld" de qsys pour
extraire les informations de la table à decrire dans l'analyse :
L_DescTbl_Table est une Description de Fichier
L_DescRub_Rubrique est une Description de Rubrique
SLANGUP est une Source de Données
L_DescTbl_Table..Nom = "SLANGUP"
L_DescTbl_Table..Type = hFichierAS400
L_DescTbl_Table..CryptageFic = hCryptageStandard
TOUT Qadbifld AVEC "dbilib = '"+P_CHR_SCHEMA+"' et dbifil =
'"+P_CHR_TABLE+"'"
L_DescRub_Rubrique..Nom = Qadbifld.DBILFL
SELON Qadbifld.DBITYP
CAS "CHAR"
L_DescRub_Rubrique..Type = hRubCaractère
CAS "DATE"
L_DescRub_Rubrique..Type = hRubDate8
CAS "TIME"
L_DescRub_Rubrique..Type = hRubHeure
CAS "TIMESTMP"
L_DescRub_Rubrique..Type = hRubDateHeure
CAS "DECIMAL"
L_DescRub_Rubrique..Type = hRubNumérique
CAS "SMALLINT","INTEGER"
L_DescRub_Rubrique..Type = hRubEntier1
AUTRE CAS
L_DescRub_Rubrique..Type = hRubCaractère
FIN
L_DescRub_Rubrique..Taille = Qadbifld.DBIILN
L_DescRub_Rubrique..TypeClé = hCléDoublon
HDécritRubrique (L_DescTbl_Table, L_DescRub_Rubrique)
FIN
soit L_Bool_WrtAna = HDécritFichier(L_DescTbl_Table)
Dans une autre méthode du composant, j'effectue des requêtes SQL sur la
table décrite dans l'analyse.
Lorsque je teste le projet du composant, le code fonctionne bien.
Dés que j'intègre le composant ( qui a sa propre analyse ) dans un
projet hôte, le code se plante : la méthode du composant chargée
d'effectuer la requête SQL ne trouve pas la table décrite plus haut et
provoque une erreur du type "Source de données MaSourceDonnées non
initialisée"
Si quelqu'un a une idée, ou une piste ?
JC