|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
MANIPULER UNE BASE DE DONNÉE ACCESS EN C (DEV-C++)
Information sur la source
Description
Bonjour, Après avoir parcouru quelques sites je viens de trouver une solution simple mais efficace d'ouvrir et d'exécuter des requêtes sur une base de donnée Microsoft Access en C !!! Le code a été compiler avec Dev-C++ ;-) IMPORTANT : il faut le compiler avec la librairie "libodbc32.a" (Dans Dev-C++ allez dans le menu : Projet->Options du projet->Paramètre->Editeur de liens, et mettre le chemin de la librairie "C:/Dev-Cpp/lib/libodbc32.a ") Bon courage a tous ++
Source
- // Connexion et execution de requete sur un base de donnees Microsoft Access
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- #include <sql.h>
- #include <sqlext.h>
-
- #pragma comment(lib, "odbc32.lib")
-
- int main(int argc, char *argv[])
- {
- HENV hEnv;
- HDBC hDbc;
- RETCODE rc;
-
- int iOut;
- char strOut[256];
- char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[test.mdb];";
- char szSql[256] = "SELECT * FROM One";
-
- int ret1;
- int ret2;
- int ret3;
- int ID;
- char Name[128];
- char Login[128];
-
- // 1 - Connexion a la BDD Access
- rc = SQLAllocEnv(&hEnv);
- rc = SQLAllocConnect(hEnv, &hDbc);
- rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, SQL_NTS, (unsigned char*)strOut, 255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT);
-
- // 2 - Preparation de la requete
- HSTMT hStmt;
- rc = SQLAllocStmt(hDbc,&hStmt);
- rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);
-
- // 3 - Execution de la requete (Apres avoir binder les champs de resultats)
- //rc = SQLBindCol(hStmt, tab_column, tr_type, tr_value, tr_len, len_or_ind);
- rc = SQLBindCol(hStmt, 1, SQL_C_ULONG, &ID, 4, (SQLINTEGER*)&ret1);
- rc = SQLBindCol(hStmt, 2, SQL_C_CHAR, Name, 128, (SQLINTEGER*)&ret2);
- rc = SQLBindCol(hStmt, 3, SQL_C_CHAR, Login, 128, (SQLINTEGER*)&ret3);
- rc = SQLExecute(hStmt);
-
- // IMPORTANT : Pour les requetes du style DROP/CREATE/UPDATE...
- // Vous pouvez utiliser : rc = SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS);
-
- // 4 - Boucle pour afficher les resultats
- while(!(SQLFetch(hStmt) & 0xFFFE))
- {
- printf("{%i}{%s}{%s}\n", ID, Name, Login);
- }
-
- // 5 - Liberations et fermeture de la connection a la BDD
- rc = SQLFreeStmt(hStmt, SQL_DROP);
- rc = SQLDisconnect(hDbc);
- rc = SQLFreeEnv(hEnv);
-
- getch();
-
- return 0;
- }
// Connexion et execution de requete sur un base de donnees Microsoft Access
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#pragma comment(lib, "odbc32.lib")
int main(int argc, char *argv[])
{
HENV hEnv;
HDBC hDbc;
RETCODE rc;
int iOut;
char strOut[256];
char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[test.mdb];";
char szSql[256] = "SELECT * FROM One";
int ret1;
int ret2;
int ret3;
int ID;
char Name[128];
char Login[128];
// 1 - Connexion a la BDD Access
rc = SQLAllocEnv(&hEnv);
rc = SQLAllocConnect(hEnv, &hDbc);
rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, SQL_NTS, (unsigned char*)strOut, 255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT);
// 2 - Preparation de la requete
HSTMT hStmt;
rc = SQLAllocStmt(hDbc,&hStmt);
rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);
// 3 - Execution de la requete (Apres avoir binder les champs de resultats)
//rc = SQLBindCol(hStmt, tab_column, tr_type, tr_value, tr_len, len_or_ind);
rc = SQLBindCol(hStmt, 1, SQL_C_ULONG, &ID, 4, (SQLINTEGER*)&ret1);
rc = SQLBindCol(hStmt, 2, SQL_C_CHAR, Name, 128, (SQLINTEGER*)&ret2);
rc = SQLBindCol(hStmt, 3, SQL_C_CHAR, Login, 128, (SQLINTEGER*)&ret3);
rc = SQLExecute(hStmt);
// IMPORTANT : Pour les requetes du style DROP/CREATE/UPDATE...
// Vous pouvez utiliser : rc = SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS);
// 4 - Boucle pour afficher les resultats
while(!(SQLFetch(hStmt) & 0xFFFE))
{
printf("{%i}{%s}{%s}\n", ID, Name, Login);
}
// 5 - Liberations et fermeture de la connection a la BDD
rc = SQLFreeStmt(hStmt, SQL_DROP);
rc = SQLDisconnect(hDbc);
rc = SQLFreeEnv(hEnv);
getch();
return 0;
}
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 14 avril 2007 19:22:12 :
- Merci encore BruNews pour l'optimisation de la boucle ;-)
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
builder+ bdd ACCESS [ par makandja ]
Salut à tous,Je dois réaliser un programme qui lit les données d'un fichier texte pour les enregistrer dans une bdd ACCESS. Le programme doit lire les
Accéder à une BDD access en VC++.NET [ par baptistemazet ]
Comment faire ? Ce serait la base de développement d'un programme pour moi ! Merci de me dire les ressources éventuelles à prendre en c
bdd Access depuis C++ Builder6 [ par kich ]
je suis étudiante et je réalise mon PFE pour un problème d'ordonnancement. je dois accéder à une base de donnée Access depuis c++ Builder 6 et je vien
nombre de colonne bdd access [ par ouamtax ]
Bonjour,existe t'il un moyen de connaitre le nombre de colonnes d'une table soit par requete SQL soit par une instruction C.En C, pour l'exécution d'u
bdd access [ par myann ]
slut a tous!au fait, je viens creer une application sur c++ builder contenant une DBGrid et je voudrais connecter celle ci a une base de donnees sur a
parcourir une bdd access [ par azamharir ]
salutcomment je peut en parcourant les dossiers avec mfc parcourir aussi une bdd access pour voir ses tables et leurs champs?si quelqu'un peut m'orien
Appli C++ console et bdd Access [ par boninou ]
Bonjour,Je travaille sur une application en mode console et je souhaiterais me connecter le plus simplement possible à une base de données access afin
C++ : connection base de données access [ par raimais7 ]
Bonjour tout le monde, Je suis actuellement en stage et j'aurai besoin de votre aide. Je dois faire un code qui se connecte à une base de donnée acc
Access aux donnes [ par collysamin1983 ]
Bon voila, je suis membre d'une association et je vaudrais bien crée un base de donnes afin de
mot de passe pour une base access [ par micou26 ]
bonjour,je suis débutant dans le domaine informatique et surtout le domaine access.je suis en stage dans une entreprise pour laquelle je crée une base
|
Téléchargements
Logiciels à télécharger sur le même thème :
|