J'ai Visual studio C++ 2008 et Oracle 11g, je lance le serveur sql oracle
je lance le code suivant à partir de visual :
Il passe nickel et m'affiche les versions, j'en conclue donc qu'il se connecte à 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 #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"); }
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"); }
Partager