Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
973 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle][Pro*C] Requetes de base

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle][Pro*C] Requetes de base

n°320555
djlemon
@LemonMBA
Posté le 28-02-2003 à 20:42:05  profilanswer
 

J'ai écrit un prog en pro*c, malheureusement je n'arrive pas à faire fonctionner la moitié des trucs.
 
par exemple :  
 

Code :
  1. int supprimer_client()
  2. {
  3. int numcli;
  4. printf("Numéro du client à supprimer : " );
  5. scanf("%d",&numcli);
  6. EXEC SQL DELETE FROM Client WHERE NoClient=:numcli;
  7. EXEC SQL COMMIT;
  8. printf ("\nVous avez effacé le client numéro %d \n",numcli);
  9. }


 
ne fonctionne pas, lorsque je teste, après que j'aie rentré le n° du client à effacer, rien ne se passe (et on ne peut même pas quitter), et il n'est pas effacé de la base :(
 
 
pareil pour :

Code :
  1. int modifier_annonce()
  2. {
  3. int numann;
  4. printf("Numéro de l'annonce dont le descriptif est à modifier : " );
  5. scanf("%d",&numann);
  6. printf("\nEntrer le nouveau descriptif :\n" );
  7. asks("",descr);
  8. EXEC SQL UPDATE Annonce
  9.  SET Descriptif = :descr
  10.  WHERE NoAnnonce = :numann;
  11. }


 
J'ai cherché des exemples sur le net et dans des bouquins, et c'est apparement exactement la même chose que j'ai faite, pourtant chez moi ca ne marche pas  :sweat: , je ne vois pas ce qui cloche...
(bon, il faut dire que je suis une merde en C, je n'en ai jamais fait)
 
Merci d'avance  :hello:


Message édité par djlemon le 28-02-2003 à 20:44:28

---------------
*Neptunes laced the beat like one of the best* | Noreaga - Oh No | Méga-Bonnes-Affaires.com
mood
Publicité
Posté le 28-02-2003 à 20:42:05  profilanswer
 

n°320601
mrbebert
Posté le 28-02-2003 à 22:56:18  profilanswer
 

J'y connais rien mais ca me parait bizarre qu'il y ait la requête SQL directement dans le code c :??:

n°320602
gloop
Posté le 28-02-2003 à 23:02:20  profilanswer
 

mrBebert a écrit :

J'y connais rien mais ca me parait bizarre qu'il y ait la requête SQL directement dans le code c :??:  


ben c'est le principe du ProC  :D  
t'as un preprocesseur qui te fait un gros code C incomprehensible.

n°320607
mrbebert
Posté le 28-02-2003 à 23:15:58  profilanswer
 

gloop a écrit :


ben c'est le principe du ProC  :D  
t'as un preprocesseur qui te fait un gros code C incomprehensible.

Ca à l'ai simple, élégant et facile à maintenir ce truc :whistle:

n°320722
djlemon
@LemonMBA
Posté le 01-03-2003 à 12:26:00  profilanswer
 

mrBebert a écrit :

Ca à l'ai simple, élégant et facile à maintenir ce truc :whistle:  


 
.. c'est ca qui est génial [:dawa], surtout lorsque on a jamais rien programmé en C, et qu'on a fait un seul TP de SQL
 
 :sweat:


---------------
*Neptunes laced the beat like one of the best* | Noreaga - Oh No | Méga-Bonnes-Affaires.com
n°320906
mrbebert
Posté le 01-03-2003 à 20:33:43  profilanswer
 

djlemon a écrit :

.. c'est ca qui est génial [:dawa], surtout lorsque on a jamais rien programmé en C, et qu'on a fait un seul TP de SQL
 :sweat:

C'est sur qu'en ne sachant ni faire du C, ni du SQL, il est tentant de directement mélanger les 2 :pt1cable:

n°321260
djlemon
@LemonMBA
Posté le 02-03-2003 à 21:26:57  profilanswer
 

mrBebert a écrit :

C'est sur qu'en ne sachant ni faire du C, ni du SQL, il est tentant de directement mélanger les 2 :pt1cable:  


 
[3615 My Life]
Là où je suis, l'apprentissage du langage C a été supprimé en DEUG MIAS, mais bien sûr lorsqu'on arrive en License Info, on est sensé savoir parfaitement programmer en C, vu que là, le programme n'a pas changé.
C'est super logique quoi...  :sarcastic:  :sweat:  
[/3615 My Life]


---------------
*Neptunes laced the beat like one of the best* | Noreaga - Oh No | Méga-Bonnes-Affaires.com
n°321341
Mara's dad
Yes I can !
Posté le 02-03-2003 à 23:39:10  profilanswer
 

Si çà fait rien, et que çà sort pas, une possibilité, c'est un lock.
 
T'aurais pas un autre process en maj sur le même record.
Par exemple un update dans une fenêtre SQLPLUS sans commit.
 
Vérifie avec un outil du genre toad.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°321347
Taz
bisounours-codeur
Posté le 02-03-2003 à 23:49:48  profilanswer
 

djlemon a écrit :


 
[3615 My Life]
Là où je suis, l'apprentissage du langage C a été supprimé en DEUG MIAS, mais bien sûr lorsqu'on arrive en License Info, on est sensé savoir parfaitement programmer en C, vu que là, le programme n'a pas changé.
C'est super logique quoi...  :sarcastic:  :sweat:  
[/3615 My Life]

déjà que le deug est merdique, si tu fais pas de C,c 'est la merde.

n°321752
djlemon
@LemonMBA
Posté le 03-03-2003 à 16:55:50  profilanswer
 

Mara's dad a écrit :

Si çà fait rien, et que çà sort pas, une possibilité, c'est un lock.
 
T'aurais pas un autre process en maj sur le même record.
Par exemple un update dans une fenêtre SQLPLUS sans commit.
 
Vérifie avec un outil du genre toad.


 
Non non, je ne pense pas que cela soit locké, vu que je fais 1 seul truc en même temps.
 
De +, il y a certaines reqûetes qui fonctionnent, par exemple ajouter un client


---------------
*Neptunes laced the beat like one of the best* | Noreaga - Oh No | Méga-Bonnes-Affaires.com
mood
Publicité
Posté le 03-03-2003 à 16:55:50  profilanswer
 

n°321777
Mara's dad
Yes I can !
Posté le 03-03-2003 à 17:04:42  profilanswer
 

Ben 'Ajouter', c'est sûr que t'aurras pas de lock. Mais en modif ou en suppression, faut voir...
 
M'enfin c'que j'en dis..
 
Le PRO*C, j'ai essayé, pi j'ai laissé tomber.
Trop chiant et incompréhensible pour faire des requêtes dynamiques. Alors, j'ai fait de l'OCI, et là j'en ai bien bavé.
J'ai pas tout compris ce que j'ai écris, mais çà marche :pt1cable:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°321956
djlemon
@LemonMBA
Posté le 03-03-2003 à 17:34:18  profilanswer
 

oui mais moi c'est pour un projet, et on est obligés d'utiliser du pro*c
 
Pis là je viens d'essayer d'écrire mes reqûetes d'une nouvelle manière, et ca à l'air de marcher
 
Il faut en fait déclarer les entiers que l'on veut saisir (n° client par exple) en VARCHAR dans la section de déclaration SQL  :heink:  :heink:  
 
C'est n'importe quoi, mais ca marche  :pt1cable:


---------------
*Neptunes laced the beat like one of the best* | Noreaga - Oh No | Méga-Bonnes-Affaires.com
n°322519
Mara's dad
Yes I can !
Posté le 04-03-2003 à 13:59:14  profilanswer
 

Ouais, ben en fait c'est compréhensible, vu qu'il n'y a pas de correspondance entre les TYPES c est ceux d'Oracle.
 
Je n'ai ni le temps ( ni vraiement l'envie en fait :) ) de me replonger dans la doc pro*c, mais çà doit bien être expliqué quelque-part.
 
Genre pour être strict, écrire une requête du style
 
EXEC SQL DELETE FROM Client WHERE NoClient=to_number(:numcli);


Message édité par Mara's dad le 04-03-2003 à 13:59:32

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle][Pro*C] Requetes de base

 

Sujets relatifs
Probleme de connexion avec php sur une base de donnees[c++] comment convertir un int en base 2, 4 et 8 ?
[BASIC] Exporter une donnée de la base de registreProblème SQL sous Oracle
Extraire des infos de la base de registresrecuperer une clé ds la base de registre a l aide d un batch :/
[ORACLE] différence entre les rôles utilisateurs et sysdba/sysoper ??Construire une base de données pour fichiers EXCEL!
Session VS base de donnée[Oracle] limiter l'acces CPU à un profile
Plus de sujets relatifs à : [Oracle][Pro*C] Requetes de base


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR