J'ai Visual studio C++ 2008 et Oracle 11g, je lance le serveur sql oracle
je lance le code suivant à partir de visual :
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
31
32
 
#include "stdafx.h"
#include "ocilib.h"
#pragma comment(lib, "ociliba.lib")
 
int main(void)
{
  OCI_Connection *cn;
 
 
 
  if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
    return EXIT_FAILURE;
 
  cn = OCI_ConnectionCreate("XE", "system", "pass", OCI_SESSION_DEFAULT);
 
  if (cn != NULL)
  {
    printf(OCI_GetVersionServer(cn));
 
    printf("Server major    version : %i\n", OCI_GetServerMajorVersion(cn));
    printf("Server minor    version : %i\n", OCI_GetServerMinorVersion(cn));
    printf("Server revision version : %i\n", OCI_GetServerRevisionVersion(cn));
 
    printf("Connection      version : %i\n", OCI_GetVersionConnection(cn));
 
  }
 
  OCI_Cleanup();
 
  return system("PAUSE");
}
Il passe nickel et m'affiche les versions, j'en conclue donc qu'il se connecte à la base de donnée
Dans ma base de donnée j'ai crée 2 tables: Station et Distance et lorsque que j'appelle une requête sql (insert, delete ou select) le programme se lance mais rien ne se passe dans la base de donnée


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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
#include "stdafx.h"
#include "ocilib.h"
#pragma comment(lib, "ociliba.lib")
 
int main(void)
{
  OCI_Connection *cn;
  OCI_Statement  *st;
  OCI_Resultset  *rs;
 
 
 
  if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
    return EXIT_FAILURE;
 
  cn = OCI_ConnectionCreate("XE", "system", "azerty", OCI_SESSION_DEFAULT);
 
  if (cn != NULL)
  {
    printf(OCI_GetVersionServer(cn));
 
    printf("Server major    version : %i\n", OCI_GetServerMajorVersion(cn));
    printf("Server minor    version : %i\n", OCI_GetServerMinorVersion(cn));
    printf("Server revision version : %i\n", OCI_GetServerRevisionVersion(cn));
 
    printf("Connection      version : %i\n", OCI_GetVersionConnection(cn));
/*
	st  = OCI_StatementCreate(cn);
 
       OCI_ExecuteStmt(st, "SELECT * FROM DISTANCE");
 
       rs = OCI_GetResultset(st);
      while (OCI_FetchNext(rs))
		printf("id1: %i, id2: %i,dist: %i \n ", OCI_GetInt2(rs, "IDSTATION1")  , OCI_GetInt2(rs, "IDSTATION2"), OCI_GetInt2(rs, "distance"));
 
    printf("\n%d row(s) fetched\n", OCI_GetRowCount(rs));
*/
 
 st = OCI_StatementCreate(cn);
 
    OCI_ExecuteStmt(st, "delete from station where idStation=1;");
 
    printf("%d row deleted", OCI_GetAffectedRows(st));
 
    OCI_Commit(cn);
 
    OCI_StatementFree(st);
 
 
  }
 
  OCI_Cleanup();
 
  return system("PAUSE");
}