bonjour

voila, j'ai un petit pb au niveau de la recuperation des valeurs contenues dans les champ d'une table de la base de données.

au fait, je recois un message d'erreur du type "valeur numerique hors limite" en plein milieur d'extraction en l'occurence a l'enregistrement n°8 (548) pour le champ suivant :

id_soc = 7 7 7 7 7 7 7 548 7

ou bien un autre message: "Debug Assertion Failed File: afxwin1.inl line: 22" pour un autre champ.

j'espere que qcq me proposera une solution a ce pb car je suis vraiment bloqué. merci d'avance


voici le code source :
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
 
#include <afxdb.h>
#include <iostream.h>
 
void main()
{
     CDatabase con;
 
     try
    {
        //connexion à la base de donnée
        if(con.OpenEx(_T( ""),CDatabase::openReadOnly)!=0)
        cout<<"connexion etablie"<<endl;
 
        }
        catch(CDBException *f)
        {
             AfxMessageBox("connexion dsn : "+f->m_strError);
        }
 
        CRecordset rs(&con);
 
        CString req = "select * from ma_table";
 
        try
        {
 
            rs.Open(CRecordset::dynaset,req);
 
            //On récupère le nombre de champs de la requête
            int nb_champs = rs.GetODBCFieldCount();
 
           //On alloue la memoire pour les champs
           champs = new CString [nb_champs];
 
          while(!rs.IsEOF()) 
          {
               //on récupère la valeur du champ i
               try
              {
                   rs.GetFieldValue("id_pro",champs[0]);
                   cout<<"val : "<<champs[0]<<endl;
              }
              catch(CDBException *mon)
              {
                   AfxMessageBox("getvalue :"+mon->m_strError);
                   exit(0);
              }
 
              //On passe à la ligne suivante
               rs.MoveNext();
        }
 
 
      //on ferme la session de CRecordset
      rs.Close();
   }
   catch(CDBException *e)
   {
        AfxMessageBox("connexion record :"+e->m_nRetCode);
   }
 
   //On ferme la session de CDatabase
   con.Close();
}
[ATTENTION aux Balises de code ! Merci:FARSCAPE]