Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

programmer en langage C sous VMS

19 réponses
Avatar
fleur-mal
Bonjour,
comme indiqué dans le titre je dois programmer en C sous VMS et je souhaiterais avoir de l'aide au niveau de la syntaxe (entre autres) si il y a des documents ou tutoriaux qui traitent ça je suis preneuse enfin c'est surtout pour voir si il y a une différence entre langage C sous UNIX et sous VMS et merci d'avance.

9 réponses

1 2
Avatar
JKB
Le 22-06-2010, ? propos de
Re: programmer en langage C sous VMS,
fleur-mal ?crivait dans fr.comp.lang.c :
merci pour ta réponse cependant je me demandais si c'est pas possible de me
donner un exemple d'un programme en C où l'on se connecte à une base de données
RDB ou où l'on exécute une requête sql je crois ça rendrait les choses plus
claires et merci d'avance



Non. Pour trois raisons :
1/ je ne suis pas payé pour faire le TP à ta place ;
2/ je suis susceptible de le corriger ;
3/ on n'apprend qu'en faisant soi-même.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
fleur-mal
JKB a écrit le 23/06/2010 à 14h05 :
Le 22-06-2010, ? propos de
Re: programmer en langage C sous VMS,
fleur-mal ?crivait dans fr.comp.lang.c :
merci pour ta réponse cependant je me demandais si c'est pas possible
de me
donner un exemple d'un programme en C où l'on se connecte à une
base de données
RDB ou où l'on exécute une requête sql je crois ça
rendrait les choses plus
claires et merci d'avance




Non. Pour trois raisons :
1/ je ne suis pas payé pour faire le TP à ta place ;
2/ je suis susceptible de le corriger ;
3/ on n'apprend qu'en faisant soi-même.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il
représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que
nous
consommons tous les jours.
=> http://grincheux.de-charybde-en-scylla.fr


ok je ne cherchais pas à ce que vous me faites mon TP c'est juste que je ne vois pas comment faire enfin voilà une idée m'est passé par la tête:
#include <stdio.h>

EXEC SQL INCLUDE SQLCA;
void main()

{
char employe[20];

EXEC SQL SELECT EMPLOYE_ID INTO :employe
FROM EMPLOYE
WHERE NOM = 'MACHIN'

}
mais quand je compile avec $ cc pg ça me renvoi ça :
EXEC SQL INCLUDE SQLCA;
^
%CC-E-TYPEDEFNOTDEF, In this declaration, "EXEC" appears to be used as if it named a type, but there is no declared type of that nam
e visible.

EXEC SQL SELECT CODART INTO :codart
........^
%CC-E-BADPARSEDECL, In this declaration, "EXEC" must specify a type.

c'est pour ça que je demande comment on fait pour exécuter des requêtes via un programme en langage C et comment on le compile .
et merci beaucoup pour votre aide
Avatar
JKB
Le 24-06-2010, ? propos de
Re: programmer en langage C sous VMS,
fleur-mal ?crivait dans fr.comp.lang.c :
ok je ne cherchais pas à ce que vous me faites mon TP c'est juste que je ne
vois pas comment faire enfin voilà une idée m'est passé par la tête:
#include <stdio.h>

EXEC SQL INCLUDE SQLCA;
void main()

{
char employe[20];

EXEC SQL SELECT EMPLOYE_ID INTO :employe
FROM EMPLOYE
WHERE NOM = 'MACHIN'

}
mais quand je compile avec $ cc pg ça me renvoi ça :
EXEC SQL INCLUDE SQLCA;
^
%CC-E-TYPEDEFNOTDEF, In this declaration, "EXEC" appears to be used as if it
named a type, but there is no declared type of that nam
e visible.

EXEC SQL SELECT CODART INTO :codart
.......^
%CC-E-BADPARSEDECL, In this declaration, "EXEC" must specify a type.

c'est pour ça que je demande comment on fait pour exécuter des requêtes via un
programme en langage C et comment on le compile .
et merci beaucoup pour votre aide



Commence par les bases. Le compilo C ne peut pas comprendre la
syntaxe précédente pour un certain nombre de raisons (et la
déclaration char employe[20] est pour le moins suspecte).

Ce n'est pas moi qui ait fait le cours en question (et je ne le
referai pas ici). Je ne peux que te conseiller de reprendre _les
bases_. Personne d'autre que toi ne peut le faire.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
Kojak
Le Thu, 24 Jun 2010 02:02:35 -0500,
fleur-mal a écrit :

#include <stdio.h>

EXEC SQL INCLUDE SQLCA;
void main()

{
char employe[20];

EXEC SQL SELECT EMPLOYE_ID INTO :employe
FROM EMPLOYE
WHERE NOM = 'MACHIN'

}



Grmbl !!! Connais-tu, au moins, le langage C ?

mais quand je compile avec $ cc pg ça me renvoi ça :
EXEC SQL INCLUDE SQLCA;
[...]



Oui, tu t'es fait lourder par le 'pilateur. Normal ! :-D

IMHO, tu devrais commencer par un bon bouquin sur le C. Ensuite, tu
pourras attaquer l'environnement de travail VMS. Et, lorsque tu auras
tout compris et que tu seras à ton aise, tu pourras tenter d'inclur e,
dans ton programme, une interface SQL, voire, pourquoi pas, l'écri re
toi-même.

Bon courage,

--
Jacques.
Avatar
fleur-mal
JKB a écrit le 24/06/2010 à 09h34 :
Le 24-06-2010, ? propos de
Re: programmer en langage C sous VMS,
fleur-mal ?crivait dans fr.comp.lang.c :
ok je ne cherchais pas à ce que vous me faites mon TP c'est juste que
je ne
vois pas comment faire enfin voilà une idée m'est passé
par la tête:
#include <stdio.h>

EXEC SQL INCLUDE SQLCA;
void main()

{
char employe[20];

EXEC SQL SELECT EMPLOYE_ID INTO :employe
FROM EMPLOYE
WHERE NOM = 'MACHIN'

}
mais quand je compile avec $ cc pg ça me renvoi ça :
EXEC SQL INCLUDE SQLCA;
^
%CC-E-TYPEDEFNOTDEF, In this declaration, "EXEC" appears to be used
as if it
named a type, but there is no declared type of that nam
e visible.

EXEC SQL SELECT CODART INTO :codart
.......^
%CC-E-BADPARSEDECL, In this declaration, "EXEC" must specify a type.

c'est pour ça que je demande comment on fait pour exécuter des
requêtes via un
programme en langage C et comment on le compile .
et merci beaucoup pour votre aide




Commence par les bases. Le compilo C ne peut pas comprendre la
syntaxe précédente pour un certain nombre de raisons (et la
déclaration char employe[20] est pour le moins suspecte).

Ce n'est pas moi qui ait fait le cours en question (et je ne le
referai pas ici). Je ne peux que te conseiller de reprendre _les
bases_. Personne d'autre que toi ne peut le faire.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il
représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que
nous
consommons tous les jours.
=> http://grincheux.de-charybde-en-scylla.fr


quel cours et quel TP j'ai posé une question précise et j'ai pas demandé à faire le travail à ma place je crois que quiconque n'ayant jamais travaillé sous VMS peut être confronté à ce problème et y a pas de mal à demandé de l'aide d'ailleurs c'est un peu ça l'intérêt du forum "entraide".
et merci pour toutes vos réponses
Avatar
JKB
Le 24-06-2010, ? propos de
Re: programmer en langage C sous VMS,
fleur-mal ?crivait dans fr.comp.lang.c :
quel cours et quel TP j'ai posé une question précise et j'ai pas demandé à
faire le travail à ma place je crois que quiconque n'ayant jamais travaillé sous
VMS peut être confronté à ce problème et y a pas de mal à demandé de l'aide
d'ailleurs c'est un peu ça l'intérêt du forum "entraide".
et merci pour toutes vos réponses



Je n'ai pas l'impression que ce forum soit un forum d'entraide.
C'est un forum technique. On pose des questions précises pour avoir
des réponses précises. Vu le bout de code que tu as posté plus haut,
tu n'as aucune notion de ce qu'est le C. Ton problème n'est pas
d'attaquer une base RDB sous OpenVMS, ton problème est avant tout
d'avoir les bases de la syntaxe du langage, ce que tu n'as
manifestement pas.

Lorsque tu auras une question précise (enfin plus précise que 'je
dois attaquer une base RDB sous VMS'), il y aura des gens pour te
répondre. Aujourd'hui, ton problème au risque de me répéter est la
syntaxe C. Juste après, il y a l'histoire de l'API pour attaquer RDB
(et connaissant JPP et ses sbires, je puis t'affirmer que tu as eu
l'information en cours) qui se traduit par un fichier d'en-tête et
une syntaxe particulière lors de l'édition des liens.

<EOT>

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
fleur-mal
JKB a écrit le 24/06/2010 à 10h15 :
Le 24-06-2010, ? propos de
Re: programmer en langage C sous VMS,
fleur-mal ?crivait dans fr.comp.lang.c :
quel cours et quel TP j'ai posé une question précise et j'ai pas
demandé à
faire le travail à ma place je crois que quiconque n'ayant jamais
travaillé sous
VMS peut être confronté à ce problème et y a pas de
mal à demandé de l'aide
d'ailleurs c'est un peu ça l'intérêt du forum
"entraide".
et merci pour toutes vos réponses




Je n'ai pas l'impression que ce forum soit un forum d'entraide.
C'est un forum technique. On pose des questions précises pour avoir
des réponses précises. Vu le bout de code que tu as posté
plus haut,
tu n'as aucune notion de ce qu'est le C. Ton problème n'est pas
d'attaquer une base RDB sous OpenVMS, ton problème est avant tout
d'avoir les bases de la syntaxe du langage, ce que tu n'as
manifestement pas.

Lorsque tu auras une question précise (enfin plus précise que 'je
dois attaquer une base RDB sous VMS'), il y aura des gens pour te
répondre. Aujourd'hui, ton problème au risque de me
répéter est la
syntaxe C. Juste après, il y a l'histoire de l'API pour attaquer RDB
(et connaissant JPP et ses sbires, je puis t'affirmer que tu as eu
l'information en cours) qui se traduit par un fichier d'en-tête et
une syntaxe particulière lors de l'édition des liens.

<EOT>

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il
représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que
nous
consommons tous les jours.
=> http://grincheux.de-charybde-en-scylla.fr


j'ai trouvé la solution et pour tout ceux qui en aurait besoin le mieux c'est d'isoler le code SQL du programme C. c-à-d passer par un module SQL ce qui permet une meilleure réutilisation du code.
Avatar
Antoine Leca
fleur-mal écrivit :
ok je ne cherchais pas à ce que vous me faites mon TP c'est juste que je ne
vois pas comment faire enfin voilà une idée m'est passé par la tête:
#include <stdio.h>

EXEC SQL INCLUDE SQLCA;
void main()



Apprend à écrire
int main()
et à ajouter un return 0; à la fin de ton programme, quand tout va bien:
c'est le tout début du chemin vers la gestion des erreurs, un chemin
qu'il est important d'emprunter pour programmer en C.


mais quand je compile avec $ cc pg ça me renvoi ça :
EXEC SQL INCLUDE SQLCA;
^



Oui, ces instructions SQL incorporées dans le source C doivent être
traitées par un préprocesseur spécifique, et ton "cc" ci-dessus
n'appelle pas le dit-préprocesseur.


Antoine
Avatar
Antoine Leca
fleur-mal écrivit :
quel cours et quel TP



Soit tu es un étudiant à qui on a demandé de faire un exercice sur la
programmation C sous VMS, et la réponse devrait être évidente.

Soit tu es un programmeur embauché pour faire du C+SQL sous VMS, et tu
devrais avoir appris (dans un cours, qu'il t'est proposé de consulter)
comment utiliser le préprocesseur eSQL, en même temps que l'on t'a
appris à mettre des EXEC SQL (que les programmeurs C « normaux »
n'utilisent *jamais*, ce qui provoquent des réactions d'étonnement)

Si ce n'est aucun de ces deux cas, merci d'expliquer où tu as appris à
programmer (comme tu le proposes, avec du SQL embarqué).


je crois que quiconque n'ayant jamais travaillé sous VMS peut
être confronté à ce problème



Certes. Mais ici tu es sur un forum sur le langage C, pas sur VMS.
Donc la quasi-totalité des lecteurs, soit ne savent absolument rien de
VMS, soit savent des trucs partiels mais n'ont pas une machine sous la
main avec la documentation afférente pour pouvoir te répondre. Surtout
que comme évoqué, la question que tu poses est une question basique
d'utilisation de VMS.


Antoine
1 2