Problème de récupération des données a partir d'ODBC

Signaler
Messages postés
1
Date d'inscription
mercredi 13 mai 2015
Statut
Membre
Dernière intervention
13 mai 2015
-
Bonjour,
Je suis en train de développer une application en vb wpf ou je dois récupérer des données a partir des bases Sage 100 et les mettre dans un model Excel . mon problème quand je lance ma requête , l'application se bloque parce que il y'a beaucoup de données dans la base et la je sais pas quoi faire ????
voila mon code!!
                strSQL = "SELECT Jm_Date,sum(Ea_Montant) as ea_montant,right(f_ecriturea.Ca_Num,3) as ca_num, ec_sens,f_ecriturec.cg_num,sum(ec_montant) as ec_montant,f_ecriturea.n_analytique,f_ecriturec.jo_num,f_ecriturec.ec_no"
                'strsql = strsql & ", f_compteg.cg_intitule, f_comptea.ca_intitule"
                strSQL = strSQL & " from F_Ecriturea,F_Ecriturec"
                strSQL = strSQL & " where F_Ecriturec.ec_no=F_EcritureA.ec_no"
                ' strSQL = strSQL & " and Jm_Date BETWEEN '" & pdatedeb & "' and '" & pdatefin & "' and f_ecriturec.jo_num<> '" & pjoexclu & "'"
                'strsql = strsql & " and f_ecriturec.cg_num=f_compteg.cg_num"
                '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                If Not Tousplan Then
                    strSQL = strSQL & " and f_ecriturea.n_analytique=" & pplan
                End If
                If PubCompteIgnore <> "" Then
                    strSQL = strSQL & "and f_ecriturea.ca_num<>'" & PubCompteIgnore & "'"
                End If
                strSQL = strSQL & " group by jm_date,f_ecriturea.ca_num,f_ecriturec.cg_num,f_ecriturea.n_analytique,ec_sens,f_ecriturec.jo_num, f_ecriturec.ec_no"
                strSQL = strSQL & " order by f_ecriturea.ca_num,f_ecriturec.cg_num,f_ecriturea.n_analytique,ec_sens,jm_date"

                MsgBox("" & strSQL & "")
                Dim Mycommand As New OdbcCommand(strSQL, cn)

                cn.Open()
                MsgBox("connecter")
                Dim myReader As OdbcDataReader = Mycommand.ExecuteReader()
                Dim jp As New clsItemPLMensuel

                ' While myReader.Read
                'MsgBox("" & myReader.GetString(7) & """" & myReader.GetInt32(8) & "")

                fct.fProgress(prog)
                Do While myReader.Read
                    If myReader.GetDate(0) >= pdatedeb And myReader.GetDate(0) <= pdatefin And myReader.GetString(7) <> pjoexclu Then

                        jp.Jm_Date = myReader.GetDate(0)
                        jp.Ea_Montant = myReader.GetDouble(1)
                        jp.Ca_Num = myReader.GetString(2)
                        jp.Ec_sens = myReader.GetInt16(3)
                        jp.Cg_Num = myReader.GetString(4)
                        jp.Ec_Montant = myReader.GetDouble(5)
                        jp.N_analytique = myReader.GetInt16(6)

                        myLocColl.Add(jp)

                        ' MsgBox("  Jm_Date : " & Jm_Date & " Ea_Montant: " & Ea_Montant & " Ca_Num: " & Ca_Num & " Ec_sens :  " & Ec_sens & " Cg_Num:  " & Cg_Num & "  Ec_Montant:  " & Ec_Montant & " N_analytique:  " & N_analytique & "")
                        'MsgBox("Opération annulée par l'utilisateur!", MsgBoxStyle.Information, "Information")
                        ' listtest.Items.Add("  Jm_Date : " & Jm_Date & " Ea_Montant: " & Ea_Montant & " Ca_Num: " & Ca_Num & " Ec_sens :  " & Ec_sens & " Cg_Num:  " & Cg_Num & "  Ec_Montant:  " & Ec_Montant & " N_analytique:  " & N_analytique & "")
                    End If

                Loop
                ' End While
                Return myLocColl


EDIT: Ajout de la coloration syntaxique.