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.NET Discussion :

Récupérer data de multiples requêtes en une fois


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut Récupérer data de multiples requêtes en une fois
    Bonjour,

    Sur SQL server 2008 on peut lancer plusieurs requêtes en une fois.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select colonne from table_1 where colonne = 'Salut';
    select colonne_2 from table_2 where colonne_2 = 'Bonjour'

    comment récupérer les résultat des 2 requêtes


    Code VB.NET : 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
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     
            Dim dt As DataTable
            Dim cn As New SqlConnection
            Dim ds As New DataSet
            Dim connectionstring As String
            Dim sql As String
     
            sql = "select colonne from table_1 where colonne = 'Salut'" & _
                " select colonne from table_2 where colonne_2 = 'Bonjour'"
     
            connectionstring = "Persist Security Info=True;User ID=xx;Initial Catalog=xxx;Data Source=xxx;Packet Size=4096;Password=xxx"
     
            cn = New SqlConnection(connectionstring)
     
            cn.Open()
     
            ds.Clear() 'efface le precedent dataset
     
            Dim da As New SqlDataAdapter(sql, cn)
     
            da.Fill(ds, "Verif_OBS")
     
            cn.Close()
     
            For i = 0 To ds.Tables(0).Rows.Count - 1
     
                dt = ds.Tables("Verif_OBS")
     
                Dim row As DataRow
     
                row = dt.Rows(i)
     
                Dim RESULT As String
                RESULT = row("colonne") 'Pour la premiere
                MsgBox(RESULT)
     
                 '??????????????????????????
                 'pour la 2e
            Next
     
     
            da = Nothing
            ds = Nothing
     
        End Sub

    Merci!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sql = "select colonne from table_1 where colonne = 'Salut' "
    sql +="union all "
    Sql+= " (select colonne from table_2 where colonne_2 = 'Bonjour')"

  3. #3
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sql = "select colonne from table_1 where colonne = 'Salut' "
    sql +="union all "
    Sql+= " (select colonne from table_2 where colonne_2 = 'Bonjour')"
    Merci d'avoir répondu.
    Je ne veux pas faire de union all
    car les requêtes qu'il me faut n'ont pas le même nombre de colonne et provienne de table différente
    et puis on ne peut pas faire de order by pour chaque requête avec union all.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sql = "select colonne,'' as colonn2 from table_1 where colonne = 'Salut' "
    sql +="union all " 
    Sql+= " (select colonne ,colonne2 from table_2 where colonne_2 = 'Bonjour' order by colonne2)"
    Où vois tu que ces deux requêtes non pas le même nombre de champs?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sql ="select frm.colonne,frm.colonne2 from "
    sql += "(select colonne,'' as colonne2,1 as ordre from table_1 where colonne = 'Salut' "
    sql +="union all " 
    Sql+= " (select colonne ,colonne2,2 as ordre from table_2 where colonne_2 = 'Bonjour' ) ) as frm "
    Sql +="order by ordre,colonne"
    Dernière modification par Invité ; 18/02/2015 à 23h38.

  5. #5
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    ces requête étaient seulement un exemple.

    Mes requêtes sont des requête récursive et sont très longue.
    J'en ai une quinzaine à lancer pour avoir tout les résultats que je recherche.
    Chacune de ces requêtes n'ont pas le même nombre de colonne, certaine en on 20 d'autre seulement 4

    sur certaine je veux un order by Col_1,Col_2,Col_3,Col_4 et sur d'autre je veux un order by Col_3,Col_1,Col_4,Col_2 ..... et j'en passe
    Je veux un order by spécifique pour chaque requête.
    Avec une colonne ordre, comme vous l'avez suggéré, cela fonctionne seulement pour séparer les multiples requêtes mais ne seront pas dans l'ordre voulu
    sauf la première.

    Je veux toute les lancer en une fois car,
    Notre entreprise est situé au Canada (maison mère),
    et nous avons 2 autres usines au État-Unis.
    Le server est situé au Canada pour les 3 usines.

    A chaque fois qu'on lance une requête à partir des État-Unis sur le server du Canada,
    ça prend environ 4 secondes aller et retour par requête.

    Alors c' est inacceptable de lancer une requête par une. C'est trop long.

    C'est pour cela que je cherche un moyen de récupérer tout les résultats de tout les requêtes lancer en une fois.

    Si on lance plusieurs requêtes (sans union all) en une seul fois sur Microsoft sql server management studio,
    on a plusieurs résultats séparer.

    Donc est-il possible de récupérer les résultats de plusieurs requêtes (sans union all) lancer en une seul fois avec vb net ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ce qui prouve c'une question bien formulée n'est pas toujours bien comprise!
    Une question bien comprise c’est 100% de la solution (rdurupt) !
    en théorie, tu peux exécuter plusieurs requête dans un même script Sql,et ton script exécutera toutes tes requêtes de sélections, sauf que que ton connecteur ODBC ne te retournera que la dernière!

    si ta Connexion ODBC te l'autorise, je te proposes de créer une table four-tout TempTable avec un nombre de colonnes suffisante pour toutes tes requête, et de convertir tes requête de sélection en requête d'insertion. il ne te restera qu'a récupérer le contenue de la table via un select en fin de script. en suite après récupération des datas, tu drop la table.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer un paramètre de requête dans une class Action
    Par cherif ahmed dans le forum Struts 1
    Réponses: 0
    Dernier message: 08/02/2014, 16h57
  2. [AC-2007] Lancer plusieurs requêtes en une fois
    Par theBinette dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/11/2009, 15h17
  3. [1.x] Récupérer le résultat de requête suite à une jointure
    Par avalon50 dans le forum Symfony
    Réponses: 3
    Dernier message: 26/10/2009, 13h11
  4. Récupérer le code SQL à partir d'une requête
    Par Edith_T dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 23/11/2004, 14h10

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