[VC++, ODBC, Access] Requêtes autres que de type SELECT

Résolu
cs_Tibabou Messages postés 129 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 7 juillet 2012 - 17 févr. 2008 à 20:14
cs_Tibabou Messages postés 129 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 7 juillet 2012 - 18 févr. 2008 à 19:32
Bonjour,

    J'utilise VC++ et ODBC pour me connecter à une base Access. J'arrive à exécuter une requête de type SELECT et récupérer tout ce que je veux.
En revanche, je ne sais pas comment exécuter un simple INSERT, UPDATE ou DELETE.
Voilà pour mes SELECT :

// ... connexion...
// préparation
rc = SQLAllocStmt(hDbc,&hStmt);
rc = SQLPrepare(hStmt,"SELECT ... ", SQL_NTS);
// bind
rc = SQLBindCol(hStmt, 1, SQL_C_ULONG, &num, 4, (SQLINTEGER*)&ret);
// exec
rc = SQLExecute(hStmt);

// Boucle pour afficher les resultats
while(!(SQLFetch(hStmt) & 0xFFFE) )
{
//...
}

Comment faire pour les autres types de requêtes ?
J'ai essayé SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS); mais sans succès

Merci de votre aide.
Tibabou

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2008 à 20:39
copier coller depuis un de mes progs:

  if(SQLPrepare(hstmt, "INSERT INTO Praticiens (Nom,Prenom) VALUES (?,?)", SQL_NTS) & 0xFFFE) goto freeStmt;
  SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,
                    SQL_CHAR, 40, 0, szbuff, 0, &lenNm);
  SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR,
                    SQL_CHAR, 40, 0, szbuff+44, 0, &lenPrnm);
  if(SQLExecute(hstmt) & 0xFFFE) goto freeStmt;
etc, etc.

ciao...
BruNews, MVP VC++
3
cs_Tibabou Messages postés 129 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 7 juillet 2012
18 févr. 2008 à 19:32
Il me manquait un exemple sur les entiers :
SQLBindParameter(hStmt, 3, SQL_PARAM_INPUT, SQL_C_SHORT,SQL_SMALLINT, 0, 0, &num, 0, NULL);

Cela fonctionne maintenant.
Merci pour ton aide BruNews.

Salutations,
Tibabou
0
Rejoignez-nous