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 :

[VB] Envoyer une liste de données du serveur au client


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Par défaut [VB] Envoyer une liste de données du serveur au client
    bonjour,

    Alors je suis entrain de développer dans une architecture client-réseau. Je dois obligatoirement utiliser une base de données. J'utilise aussi les winsock pour créer une connexion entre deux pc, puis pour envoyer des données.

    Je dois donc créer une liste de données ayant les données de la bdd, puis l'envoyer sur le client, mais je n'arrive pas à faire cela, pusique je ne sais pas comment faire en sorte que le serveur chaque données de la bdd au client ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Set nomfich = New Recordset
        req = "select Nom_fichier from fichier order by Nom_fichier desc"
        nomfich.Open req, conn, adOpenDynamic, adLockOptimistic
     
        Do Until nomfich.EOF
            nom = nomfich!Nom_fichier
            Winsock1.SendData nom
        Loop
    nomfich.Close
    Je sais que ce code ne renvoie pas tout, mais seulement la première donnée

    Auriez une idée ?

    merci

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Par défaut
    bon en fait ça me renvoie bien toutes les données, mais tout en ligne ... alors que je voudrais un nom par ligne dans ma liste

  3. #3
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Dans ta boucle, tu dois passer à la ligne suivante de ton RecordSet, je crois.
    Si tu ajoutes
    juste avant le Loop, ça change quoi?

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Par défaut
    j'ai rajouté cela, mais bon c'est tout sur la même ligne.

    j'ai pensé passer par un tableau, mais bon ça ne fonctionne pas, voila ce que j'avais mis :

    du côté du serveur :

    l'envoi des noms :

    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
     
    Sub envoi_nom()
    i = 0
    Set nomfich = New Recordset
            req = "select Nom_fichier from fichier order by Nom_fichier desc"
            nomfich.Open req, conn, adOpenDynamic, adLockOptimistic
     
            Do Until nomfich.EOF
                n(i) = nomfich!Nom_fichier
                Winsock1.SendData n(i) & vbCrLf
                i = i + 1
                nomfich.MoveNext
            Loop
     
    nomfich.Close
    End Sub

    Et du côté du client , j'ai essayé de travailler avec un tableau :

    réception des noms :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Winsock1.GetData nbr
     
    For i = (0) To (nbr)
     
    Winsock1.GetData n(i)
     
    List1.AddItem n(i)
    Next
    End Sub
    il y a une erreur "indice en dehors de la plage"

  5. #5
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Je suis d'accord avec toi, c'est au niveau de la réception que winsock doit concaténer les lignes que tu envoies.
    Je te propose d'ajouter un séparateur à chaque morceau envoyé, et côté utilisateur, tu fais un Split( ) sur ton résultat.
    Non?

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Par défaut
    je vais essayer de voir ça, mais seulement cette après-midi, puisque je suis à l'école

  7. #7
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Quelle école?
    Celle de la vie?

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Par défaut
    bon j'ai mis une virgule à chaque fin d'envoi, puis lors de la réception j'ai mis cela :

    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
     
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Winsock1.GetData nbr
     
    For i = (0) To (nbr)
     
    Winsock1.GetData n(i)
     
    montab = Split(n(i), , ",")
     
    For o = (0) To (nbr)
    List1.AddItem montab(o)
    Next
     
    Next
    End Sub
    Je ne sais pas si faire deux "for" est judicieux ... Sinon "montab" est un tableau (cela vient d'un exemple) mais lorsque je lance mon application, on me dit que c'est impossible d'affecter au tableau "montab" ... Je ne sais pas remédier à ce problème. Si il faut d'autres bouts de code, dites le moi

Discussions similaires

  1. [Architecture] envoyer un objet ou une liste de données
    Par anthyme dans le forum Windows Communication Foundation
    Réponses: 7
    Dernier message: 02/06/2008, 19h54
  2. envoyer une chaine de caractere au serveur
    Par jibsr dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/05/2007, 15h09
  3. Réponses: 3
    Dernier message: 10/10/2006, 20h45
  4. [VB.NET] Connexion à une base de données sur serveur distant
    Par boulete dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/04/2006, 14h11
  5. Accès à une base de données SQL serveur
    Par TALNA dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/11/2005, 09h09

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