IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WebDev Discussion :

Pbm Description dynamique d'une table dans l'analyse [WB21]


Sujet :

WebDev

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Points : 66
    Points
    66
    Par défaut Pbm Description dynamique d'une table dans l'analyse
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
     
    // <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
    // { Construction Dynamique description table dans Analyse  - D E B U T }
    // <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
    L_DescTbl_Table est une Description de Fichier
    L_DescRub_Rubrique  est une Description de Rubrique
    SLANGUP est une Source de Données 
     
    // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    // { Description de la table reçues en paramètre }
    // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    L_DescTbl_Table..Nom = "SLANGUP"
    L_DescTbl_Table..Type = hFichierAS400
    L_DescTbl_Table..CryptageFic = hCryptageStandard
     
    // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    // { Description des rubriques dans l'analyse }
    // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    //  [ Extraction des propriétées de la table depuis qsys.QADBIFLD ] 
    POUR TOUT Qadbifld  AVEC "dbilib = '"+P_CHR_SCHEMA+"'  et  dbifil = '"+P_CHR_TABLE+"'" 
     
    	// [ Nom de la rubrique ]
    	L_DescRub_Rubrique..Nom = Qadbifld.DBILFL 
     
    	// [ Type de rubrique ]
    	SELON Qadbifld.DBITYP
    		// ( Chargement du type de la zone )
    		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
     
    	// [ Taille de la rubrique ]
    	L_DescRub_Rubrique..Taille = Qadbifld.DBIILN
     
    	// [ type clé ]
    	L_DescRub_Rubrique..TypeClé = hCléDoublon
     
    	// [ Inscription ]
    	HDécritRubrique (L_DescTbl_Table, L_DescRub_Rubrique)
     
     
    FIN
     
    // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    // { Valide la description du fichier de données }
    // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    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 ?

  2. #2
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    Bon, j'ai trouvé...

    J'ai partagé entre deux projets une classe qui "pointait" sur une mauvaise analyse.

    J'ai simplifié mon code pour n'avoir qu'un seul projet avec une seul analyse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Eclatement d'une table dans l'analyse
    Par Root_JDK dans le forum WinDev
    Réponses: 1
    Dernier message: 10/07/2014, 14h03
  2. Récupérer des données d'une table dans l'analyse
    Par adnan el dans le forum WinDev
    Réponses: 1
    Dernier message: 22/05/2014, 12h31
  3. Réponses: 6
    Dernier message: 19/11/2012, 20h40
  4. Creer dynamiquement une table dans BD Access
    Par JCMANSION dans le forum ASP.NET
    Réponses: 3
    Dernier message: 26/10/2010, 15h07
  5. [DOM] Ajout dynamique d'une ligne dans un <table>
    Par Alzelus dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/05/2007, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo