Fonctions pour récupérer les données d'une BDD avec ODBC...

cs_Buzu Messages postés 68 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 14 septembre 2007 - 23 juin 2004 à 11:24
michou973 Messages postés 17 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 10 mai 2005 - 29 avril 2005 à 16:09
Quelqu'un sait-il quelles sont les fonctions à utiliser pour envoyer des requêtes vers oracle avec une liaison ODBC et pour récupérer et traiter les résultats SVP ?
Jsui pommé complètement là...
Merci

5 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
23 juin 2004 à 11:39
SQLExecDirect par exemple. Pars de cela dans MSDN et tu y trouveras tout ODBC en detail.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_Buzu Messages postés 68 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 14 septembre 2007
23 juin 2004 à 14:33
Je comprends pas très bien. Voila mon code pour récupérer une seule valeur, pr l'instant, celle de SEQ :


strcpy(req,"SELECT MAX(SEQ) FROM T_DTAUTO_TEMP");

retcode = SQLExecDirect(hstmt,req,SQL_NTS);
if (retcode SQL_SUCCESS || retcode SQL_SUCCESS_WITH_INFO)
{
      retcode = SQLBindCol( hstmt,1, SQL_INTEGER,&NoSeq, ??? , ??? );
}



Est-ce-que je suis bien parti pour mettre le résultat de la requête dans NoSeq ? J'ai mis des ??? à la place des paramètres pr lesquels j'ai pa compris ce qu'il fallait mettre.
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
23 juin 2004 à 19:22
int lenRet;
retcode = SQLBindCol( hstmt,1, SQL_INTEGER, &NoSeq, tailleDeNoSeq, &lenRet);

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_Buzu Messages postés 68 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 14 septembre 2007
24 juin 2004 à 08:47
OK c bon...
Ensuite je fais SQLFetch pour "valider" et je récupère bien ce que je veu dans NoSeq.
Merci bye...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michou973 Messages postés 17 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 10 mai 2005
29 avril 2005 à 16:09
Salut
j'utilise là même requête que cette exemple ça fonctionne bien.



mais mon souci c’est l’insertion sur la base, je peu rentre que des chiffres je n'arrive pas à entrer des caractères ça me donne un message d'erreur.



J’ai mis en bleu les deux sources de mon problème, quelqu’un peu m'aidé?



strcpy ( requete, "INSERT INTO ");
strcat ( requete, NameTable);
strcat ( requete, " (");
strcat ( requete, Colonne);
strcat ( requete, ")");
strcat ( requete, " VALUES ");
strcat ( requete, "(");
strcat ( requete, "7,jean,1" );
strcat ( requete, ")");

// Connexion à la base de données
retcode=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
if(retcode SQL_SUCCESS || retcode SQL_SUCCESS_WITH_INFO)
retcode=SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3,0);
if(retcode SQL_SUCCESS || retcode SQL_SUCCESS_WITH_INFO)
retcode=SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
if(retcode SQL_SUCCESS || retcode SQL_SUCCESS_WITH_INFO)
retcode=SQLConnect(hdbc, (SQLCHAR*)ServeurODBC, SQL_NTS, (SQLCHAR*)LoginAdmin, SQL_NTS, (SQLCHAR*)PwdAdmin, SQL_NTS);
else
{
MessageBox(hWndMain,"Impossible de se connecter à la base de données","Erreur",MB_OK|MB_ICONERROR);
return;
}
if(retcode SQL_SUCCESS || retcode SQL_SUCCESS_WITH_INFO)
retcode=SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);

/* REQUETE DE SELECTION DE LA LISTE DES CLIENTS */ if(retcode SQL_SUCCESS || retcode SQL_SUCCESS_WITH_INFO)
{
retcode=SQLExecDirect(hstmt, (SQLCHAR*)requete, SQL_NTS);

// Pour le debug
MessageBox(hWndMain,requete,"DEBUG",MB_OK|MB_ICONINFORMATION);
if( retcode SQL_SUCCESS || retcode SQL_SUCCESS_WITH_INFO )
{
// OK
}
else
{
sprintf( Erreur, "Impossible d'executer la requete ! code => %x", SQL_ERROR);

MessageBox(hWndMain,Erreur,"Erreur",MB_OK|MB_ICONERROR);
break;
}
0