Bonjour à tous,
J'ai un problème avec ocilib, lorsque je souhaite faire une requête INSERT ou DELETE, l'action n'est pas effectuée. L'application ne renvoi aucune erreur.
Voici mon code :
A savoir que tous les messages OK s'affichent dont la connexion est bonne.
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 //REQUETE DELETE //TEST SI OCI CORRECTEMENT INITIALISE if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT)) MessageBox::Show("Problème Oracle"); else { MessageBox::Show("Oracle OK"); OCI_Connection *cn; OCI_Statement *st; OCI_Resultset *rs; char * adresse = "127.0.0.1:1521/XE"; char * login = "XXX"; char * pwd = "XXX"; cn = OCI_ConnectionCreate(adresse, login, pwd, OCI_SESSION_DEFAULT); //TEST CONNEXION ETABLIE if (cn != NULL) { MessageBox::Show("Connection OK"); st = OCI_StatementCreate(cn); OCI_ExecuteStmt(st, "DELETE FROM client"); OCI_Commit(cn); OCI_StatementFree(st); } OCI_ConnectionFree(cn); } OCI_Cleanup();
Seule les requêtes de type Select fonctionnent.
La requête DELETE FROM client marche parfaitement sous SqlDeveloper.
J'ai suivi ce super tuto de Vincent Rogier : http://vicenzo.developpez.com/tutoriels/c/ocilib/
Et j'ai utilisé la librairie A (ansi).
Par contre je n'ai pas pu trouver où mettre le OCI_API : __sdtcall donc je ne sais pas si ca joue.
Merci à ceux qui se pencheront sur le problème d'un étudiant un peu perdu.
Partager