|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
Bonjour les forumnautes !
Comment effectuer du sql dynamique via un programme cobol ? J'ai un fichier en entrée avec des noms de tables DB2 => OK Je veux acceder à toutes les tables du fichier en entrée par SQL dynamique... Comment fait-on ? Avez-vous un exemple à me donner ? faut-il mettre des zones précises en linkage ? etc... Merci pour vos réponses ! |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
Personne pour me répondre ?
Peut-être me suis-je mal fait comprendre ? Je voudrais effectuer des accès dynamiques à des tables DB2, dans un programme cobol (pour effectuer des count (*))... quelqu'un a-t-il un exemple de programme cobol, utilisant du sql dynamique... j'aimerai savoir quels sont les paramètres à rajouter... en working... en linkage etc... Merci d'avance pour vos réponses... |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
En fait, ma question est la suivante : Comment construire une requête dynamique dans un programme Cobol...
Merci pour vos réponses |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 123 ![]() |
Bonjour,
Tu trouveras des exemples dans l'Application Programming and SQL Guide Version 7 Document Number SC26-9933-04 La difficulté en cobol est de traiter ( si tu t'en sers ) la SQLDA. Il faut créer un programme qui appelle un sous pro pour allouer la SQLDA en linkage. Alex. |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 123 ![]() |
Bonjour,
Tu trouveras des exemples dans l'Application Programming and SQL Guide Version 7 Document Number SC26-9933-04 La difficulté en cobol est de traiter ( si tu t'en sers ) la SQLDA. Il faut créer un programme qui appelle un sous pro pour allouer la SQLDA en linkage. Alex. |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 097 ![]() |
Moi, je regarderais là dedans :
Dynamic SQL for fixed-list SELECT statements Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 123 ![]() |
Vous pouvez regarder les samples fournis avec le redbook :
Squeezing the Most Out of Dynamic SQL with DB2 for z/OS and OS/390. Pour les télécharger : ftp://www.redbooks.ibm.com/redbooks/SG246418 |
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Je pense qu'il faut gérer ça par curseur.
Code :
Nous tenir au courant, svp. |
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 097 ![]() |
Pour moi, l'exemple donné par Mercure me semble pas mal ...
Mais encore une fois pourquoi mettre la SQLCA en LINKAGE SECTION ? |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Luc,
Code :
... pourquoi mettre la SQLCA en LINKAGE SECTION ? Me trompè-je ? |
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 097 ![]() |
Citation:
J'ai supposé que l'environnement dont il était question ici était le z/OS et par conséquent toutes les remarques que j'ai pu faire ou que je vais faire ne s'appliquent qu'à celui-ci ... Je suis tout à fait d'accord qu'il faut inclure dans un programme COBOL DB2 la SQLCA pour pouvoir programmer de manière correcte ... Ce qui me surprend un peu c'est de positionner cette déclaration dans la LINKAGE SECTION du programme COBOL ... |
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
FYI.
En fait, sur iSeries-i5-AS/400-etc, lorsqu'on utilise le compilateur "original" (OPM), on peut inclure la SQLCA soit en Working Storage Section, soit en Linkage Section, au choix. L'inclusion de la SQLCA peut toutefois être omise si on déclare explicitement les variables SQLCODE et/ou SQLSTATE. Dans ce dernier cas, la zone de communication de SQL (SQLCA) sera généré par le compilateur et les 2 variables seront renommées. Cependant, dans les récents modèles ILE du compilateur Cobol, la SQLCA est effectivement systématiquement générée par ce compilateur si elle n'est pas explicitement déclarée en WSS ou LS. Qu'on se le dise ! |
|
|
00
|
|
|
#13 | |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 097 ![]() |
Citation:
Bon maintenant, je pense que l'auteur initial du sujet doit nous préciser dans quel environnement il travaille et nous dire aussi où il en est de ses propres essais .. Je pense qu'il a maintenant suffisamment d'éléments pour avancer par lui-même ... |
|
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 123 ![]() |
Bonjour,
Pour la question sur le SQLDA de Luc, cela ne concerne que les varying list select. Comme on ne connait pas à l'avance le nombre de colonnes, on ne peut pas définir une taille fixe de SQLDA. Cela nécessite de faire une allocation par la suite et en cobol, le seul moyen est de faire un call. Tu peux regarder dans l'Application Programming Guide APPENDIX1.4.1 Sample COBOL dynamic SQL program. APPENDIX1.4.1.2 Storage allocation COBOL does not provide a means to allocate main storage within a program. You can achieve the same end by having an initial program which allocates the storage, and then calls a second program that manipulates the pointer. (COBOL does not permit you to directly manipulate the pointer because errors and abends are likely to occur.) The initial program is extremely simple. It includes a working storage section that allocates the maximum amount of storage needed. This program then calls the second program, passing the area or areas on the CALL statement. The second program defines the area in the linkage section and can then use pointers within the area. If you need to allocate parts of storage, the best method is to use indexes or subscripts. You can use subscripts for arithmetic and comparison operations. Alex. |
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Je pense qu'il y a eu confusion entre SQLCA et SQLDA. Il faut dire qu'il y a de quoi avec des noms pareils !
Mais ce que dit Alex sur la SQLDA est exact dans la mesure où, pour gérer des zones de fichier via la SQLDA, cela demande pas mal d'efforts et de lignes de programmation, que ce soit en Cobol ou dans un autre langage d'ailleurs. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com