Bonjour,
je cherche un tutoriel permettant de réaliser des requêtes SQL sous oracle dans un programme en c
Merci
Version imprimable
Bonjour,
je cherche un tutoriel permettant de réaliser des requêtes SQL sous oracle dans un programme en c
Merci
Personne pour me répondre?
Mes recherches indiquent que le langage pro c permettent dexécuter des requêtes...
Quelque connait un tuto sur le pro c?
peut-être sur le forum oracle ??
http://www.developpez.net/forums/forumdisplay.php?f=42
Tout dépend de la manière dont tu veux attaquer ta base oracle.
Tu peux par exemple utiliser la bibliothèque OCI (fournie avec Oracle), qui permet de piloter complètement Oracle mais n'est pas très simple d'utilisation.
En C, il y a au moins deux techniques très utilisées pour communiquer avec une base de données:
1. Le SQL embarqué ou Embedded SQL : Il s'agit d'incorporer du code SQL dans ton programme C. Les commandes SQL sont précédées par EXEC SQL. Exemple:
Avant de compiler, ton code C doit passer par le préprocesseur SQL, spécifique de chaque constructeur. Sous Oracle, l'environnement fourni pour faire du SQL embarqué s'applelle Pro*SQL.Code:EXEC SQL SELECT * FROM Table1;
2. ODBC (OLE DataBase Connectivity)
C'est une API qui permet de communiquer avec la quasi-totalité des serveurs de bases de données présentes sur le marché. Son utilisation requiert une certaine maîtrise du langage C, notamment la notion de pointeur, d'allocation dynamique , et de handle. Mais t'inquiète, il y a de bons tuos pour apprendre ODBC sur le Web.
Sur le site de ENST
Sur le site de EasySoft (En anglais)
Et Sur lebdenat.africa-web.org. Tout en français, avec de superbes cours sur ODBC, COM, ...
Je déterre le sujet pour vous demander à peu près la même chose.
Simplement, je suis obligée d'attaquer ma base en Pro*C, j'ai pas le choix !
Donc... y a-t-il des sites qui l'expliquent ?
J'ai écrit un p'tit programme déjà, mais ça ne marche pas :( Et en plus, je suppose que l'appel de cette fonction ne marche pas dans mon programme en C, je n'arrive pas à m'en sortir. Le tout est appelé par de l'ADA...
Un peu d'aide serait la bienvenue ;)
Voici le programme *.pc
Et le programme C qui l'utilise :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 /* * External files included */ #include <stdio.h> #include <errno.h> #include <string.h> #include <malloc.h> EXEC SQL INCLUDE SQLCA.H; extern int small_tables() { EXEC SQL BEGIN DECLARE SECTION; EXEC SQL END DECLARE SECTION; EXEC SQL CREATE TABLE B111_TEST AS SELECT * FROM B111_TABLE WHERE DB_TYPE='DIS' OR DB_TYPE='AIS'; return 0; }
Ce qui à mon avis ne va pas, c'est que je n'ai pas d'include particulier pour appeler le fichier .pcCode:
1
2
3
4
5
6
7
8
9
10 void CREATE ( user_log, user_status ) T_CLIENT_EXIT_STATUS *user_status; //T_ENUM user_log; { printf("#### TEST DE CREATION DES TABLES ###\n"); DNB_small_tables(); }
Enfin comme j'y connais rien, tout ne peut que m'aider !!! :D
Merci par avance !
Bah, commence par apprendre le langage SQL. Mauvais forum.Citation:
Envoyé par Lucinda
http://www.developpez.net/forums/forumdisplay.php?f=42
Je n'ai pas demandé de m'apprendre le langage SQL ;) Même si je ne suis pas la meilleure loin de là, je pense pouvoir me débrouiller seule pour ce côté-ci.
D'ailleurs je ne vois pas d'erreurs dans ma requête SQL...:? donc s'il y en a une, je veux bien qu'on me le dise !
Pour finir, j'ai trouvé un bouquin sur le Pro*C. Et l'exemple que tu m'as donné est pas mal, mais malgré tout, il est tout seul. Je dois appeler ma fonction dans un programme en C... alors ben :?
Enfin si ce n'est vraiment pas le bon sujet, je vais poster de l'autre côté.
Merci.
EDIT : J'ai trouvé la raison ! C'est pas tant mon programme qui marchait pas, c'était en fait que j'avais appelé mon fichier .c de la même manière que le fichier .pc
Comme le compilateur passe au final par le compilateur en C... ben ça marchait pas :mouarf:
Bref, il faut savoir qu'il ne faut pas les appeler pareil !!!