IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problème avec recordset, il peux pas lire les type binaire


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème avec recordset, il peux pas lire les type binaire
    Salut,

    J'ai un programme pour extraire des données SQL server dans un fichier .csv
    Il m'affichent bien tout les champs sauf les champs de types binaires, (les Id's de chaque lignes. Il me les remplace avec des '?' .
    En mode debug je vois qu'il montre des carré et des point d'intérogation.
    Est ce que c'est un problème de recordset? ou dois je convertir les binaires en autres formats avant de les exporter? ( ceci ne marchera pas comme le recordset lui même est érroné.


    Voici le code de la connexion avec la base et la conversion en .csv

    Si vous avez une solution ?

    Merci d'avance !!
    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
     
     
     Set fs = CreateObject("Scripting.FileSystemObject")
            Set sqlFile = fs.OpenTextFile(App.Path + "\Script_sql\test.sql")
            sqlLine1 = sqlFile.ReadLine
            Set connec = New ADODB.Connection
            Set rst = New ADODB.Recordset
            connec.Open "Driver={SQL Server};Server=" + serveurSql + ";Uid=" + utilisateurSql + ";Pwd=" + pwdSql + ";Database=" + BDDSql
            connec.CommandTimeout = 0 'Annul la vérification du TimeOut de 30 sec
            'Set rst = connec.Execute(sqlLine1)
     
    rst.Open sqlLine1, connec, adOpenKeyset, adLockOptimistic
    Set mstream = New ADODB.Stream
    mstream.Type = adTypeBinary
    mstream.Open
     
    dossierFileEcriture = fichierSourceIn & "\Ext" & "xxxxxxxxx" & annee & mois & jour
            bool = DirExists(dossierFileEcriture)
            If bool = True Then
            DeleteDirectory (dossierFileEcriture)
            MkDir (fichierSourceIn & "\Ext" & "xxxxxxxxx" & annee & mois & jour)
            Else
            MkDir (fichierSourceIn & "\Ext" & "xxxxxxxxx" & annee & mois & jour)
            End If
            DossierFinal = fichierSourceIn & "\Ext" & "xxxxxxxxx" & annee & mois & jour
    'File_name = Dir(fichierSourceIn & "\Ext" & "xxxxxxxxx" & annee & mois & jour & "\Ext" & "xxxxxxxxx" & annee & mois & jour & ".csv")
     
           file_name = DossierFinal & "\test.csv"
           'file_name = "C:\test.csv"
           Open file_name For Output As #3
     
         'Close before reopening in another mode.
      rst.MoveFirst
      Do Until rst.EOF
      line = ""
        For i = 0 To rst.Fields.Count - 1
            If IsNull(rst(i).Value) Then
            Astring = Null
            Else
            Astring = CStr(rst(i).Value)
            End If
     
        line = line & sep & quote & Astring & quote
        Next i
        Print #3, line
        'Mid(line, Len(sep) + 1)
        rst.MoveNext
    Loop
    rst.Close
        Close #3
        sqlFile.Close
        connec.Close
     
        Set connec = Nothing
        Set sqlFile = Nothing
        Set fs = Nothing
     
     ExportCsv = True
     Exit Function

  2. #2
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Bonjour,

    Si tu pouvais utiliser les balises [code] et [/code] ca serait nettement plus visible et lisible...

    Merci d'avance
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  3. #3
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Il me semble normal qu'une donnée binaire ne puisse donner quelquechose de correct dans un string ! Essaye de dectecter le type de champs avec quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Select case Rst(iPnt).Type
    case <10, 11
    'un numerique
     AString=cstr(rst(Ipnt))
    Case DbString
    'string
     AString= rst(ipnt)
    case DbMemo
     'la c'est un memo, si la longeur du meme <32000 et des broueetes, on peut le traite comme un string, sinon il faudrait gerer avec le getchunck
     AString= rst(ipnt)
    Case  else
     'type non traité
     AString="?????"
    end select
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

Discussions similaires

  1. [2.x] problème avec swiftmailer : je reçois pas les email
    Par dada2010ma dans le forum Symfony
    Réponses: 0
    Dernier message: 23/06/2015, 15h58
  2. Problème avec recordset
    Par Skieur38 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 30/03/2006, 16h20
  3. problème avec média player par défaut pour les vidéos ?
    Par tomguiss dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/10/2005, 14h08
  4. XSL ne parvient pas à lire les noeuds XML ??
    Par yahn dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/06/2004, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo