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 :

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();
A savoir que tous les messages OK s'affichent dont la connexion est bonne.
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.