Salut,
quelqu'un aurait-il un exemple de prog qui utilise une connexion ODBC et recupere les donnes d'une base?
Merci d'avance
Salut,
quelqu'un aurait-il un exemple de prog qui utilise une connexion ODBC et recupere les donnes d'une base?
Merci d'avance
Voici un programme tres basique qui recupere un entier en SQL avec
les ODBC. Il n'est pas commenté mais avec une doc, tu n'auras aucun problème à comprendre
A++
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122 # include <windows.h> # include <stdio.h> # include <sql.h> # include <sqlext.h> static void geterror( HSTMT ); #define RC_SUCCESS(rc) (((rc)==SQL_SUCCESS) || ((rc) == SQL_SUCCESS_WITH_INFO)) /* env et connection */ SQLHENV Henv ; SQLHDBC Hdbc ; char req0[] = "select A.IDENTITYCOL from X3.ZZBLOB A where A. NUM_0 = 1" ; main () { /* Declaration */ RETCODE rc ; SQLHSTMT hStmt0 ; /* variable de retours Bind */ SQLINTEGER pcb[1] ; SQLINTEGER id ; /* ************************************ */ /* Environement et connection */ rc = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &Henv); if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; rc = SQLSetEnvAttr(Henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_INTEGER); if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; rc = SQLAllocHandle(SQL_HANDLE_DBC, Henv, &Hdbc); if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; rc = SQLConnect(Hdbc, "HERCULE2000", SQL_NTS, "X3", SQL_NTS, "tiger", SQL_NTS); if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; rc = SQLSetConnectAttr(Hdbc, SQL_ATTR_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF, SQL_IS_UINTEGER); if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; rc = SQLSetConnectAttr(Hdbc, SQL_ATTR_TXN_ISOLATION, (SQLPOINTER) SQL_TXN_READ_COMMITTED, SQL_IS_UINTEGER); if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; rc = SQLEndTran( SQL_HANDLE_DBC, Hdbc, SQL_COMMIT ) ; if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; /* ************************************* */ rc = SQLAllocHandle(SQL_HANDLE_STMT, Hdbc, &hStmt0); if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; rc = SQLPrepare( hStmt0, req0, SQL_NTS ) ; if (!RC_SUCCESS( rc )) geterror( hStmt0 ) ; rc = SQLBindCol( hStmt0, 1, SQL_C_SLONG, &id, 0, pcb ); if (!RC_SUCCESS( rc )) geterror( hStmt0 ) ; rc = SQLExecute( hStmt0 ) ; if (!RC_SUCCESS( rc )) geterror( hStmt0 ) ; rc = SQLFetch( hStmt0 ) ; if (!RC_SUCCESS( rc )) geterror( hStmt0 ) ; rc = SQLFreeHandle(SQL_HANDLE_STMT, hStmt0); if (!RC_SUCCESS( rc )) geterror( hStmt0 ) ; /* ************************************* */ /* Deconnection */ rc = SQLEndTran( SQL_HANDLE_DBC, Hdbc, SQL_COMMIT ) ; if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; /* ********************************** */ /* c'est fini ! Free stmt */ rc = SQLDisconnect( Hdbc ); if (!RC_SUCCESS( rc )) geterror( SQL_NULL_HSTMT ) ; SQLFreeHandle(SQL_HANDLE_DBC, Hdbc); SQLFreeHandle(SQL_HANDLE_ENV, Henv); return( 0 ) ; } static void geterror( HSTMT hStmt ) { char msg[256] ; /* pointer to message */ RETCODE rc; /* code erreur retour */ char szSqlState[6]; /* etat de retour */ long noError; /* no de message */ short cbmsg; rc = SQLError(Henv, Hdbc, hStmt, szSqlState, &noError, msg, 256, &cbmsg); printf( msg ) ; exit( 0 ); }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager