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

Bases de données Delphi Discussion :

Passer une liste d'entiers en Params ?


Sujet :

Bases de données Delphi

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut Passer une liste d'entiers en Params ?
    Bonjour,

    J'ai une TStringList "sl" contenant un certain nombre de valeurs - sous forme de texte forcément - mais représentant des entiers, ex.:
    - sl[0] contient '5',
    - sl[1] contient '6',
    - sl[2] contient '12'

    Pour l'instant je passe sans problème cette liste à ma requête en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    qryGeneral.SQL.Text := Format('SELECT * FROM MaTable WHERE Valeur IN (%s)', [sl.CommaText]) ;
    Open;
    ...
    Ce qui donnerait avec l'ex. ci-dessus la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MaTable WHERE Valeur IN (5, 6, 12)
    Maintenant je voudrais passer cette liste sous forme paramétrée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    qryGeneral.SQL.Text := 'SELECT * FROM MaTable WHERE Valeur IN (:p0)';
    Params[0].AsString := sl.CommaText;
    Open;
    ...
    J'ai l'impression sans pouvoir le vérifier que la requête est transformée en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MaTable WHERE Valeur IN ('5, 6, 12')
    (notez les '')
    Du coup ça ne passe pas !

    Savez-vous comment faire pour obtenir la même requête que précédemment en passant par les Params ?

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    voici ce que je fais pour parser une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function TForm1.ListeParse(Liste : TStrings) : string;
    var i : Word;
    begin
    Result:='';
    if Liste.Count=0 then exit;
    for i:=0 to Liste.Count-1 do
      begin
        Result:=Result+'"'+Liste[i]+'"'; // ou QuotedStr(liste[i]) 
        if i<>Liste.Count-1 then Result:=Result+',';
      end;
    end;
    ce qui donne ensuite , par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      SQL.Add('AND L.MODELE IN ('+Listeparse(Modeles.lines)+')');
    cependant , je n'ai jamais tester ce passage en paramètres et il ne s'agissait jamais d'entier mais de chaines , je vais tenter ça rapidement

    (une autre solution Firebird 2.0 et + est de passer par un EXECUTE STATEMENT )

    PS: J'aime bien ce
    Format('SELECT * FROM MaTable WHERE Valeur IN (%s)', [sl.CommaText])
    très élégant
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    PS: J'aime bien ce

    très élégant
    Merci :-)

    J'utilise les composants aducom pour jouer avec une base de données SQLite.

    D'après ce que je comprends de ton code, tu fais exactement l'équivalent d'un TStrings.CommaText ? D'après l'aide de Delphi:
    CommaText is the same as the DelimitedText property with a delimiter of ',' and a quote character of ‘"’
    Maintenant ma solution avec Format est sympa quand il n'y a qu'un ou deux paramètres à passer mais quand la requête devient plus longue, c'est très facile de faire des erreurs, c'est pourquoi je voudrais utiliser les Params. De plus, je n'aime pas trop mélanger les techniques or je me suis décidé pour les Params partout ailleurs dans le projet, ça m'embête de faire une exception !

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    J'applaudis à l'utilisation des params , crois moi (un petit coucou a BuzzLeclair en passant)

    D'après ce que je comprends de ton code, tu fais exactement l'équivalent d'un TStrings.CommaText ? D'après l'aide de Delphi
    je n'en suis pas sur a 100% et , à l'époque où j'ai fait ce petit machin (D3) je ne connaissais pas CommaText ou ce dernier ne me satisfaisait pas pour d'autres raisons

    [edit] finalement non , cela ne fait pas la même chose
    un test a suffi a me le prouver
    soit une liste contenant : Un,Deux
    commatext donne 'Un,Deux'
    ListeParse donne '"Un","Deux"' (par quotedStr ''Un','Deux'')
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    J'applaudis à l'utilisation des params , crois moi (un petit coucou a BuzzLeclair en passant)
    Mais pas de solution ?
    Tant pis, je ferai une exception, pour confirmer la règle donc...

    [edit] finalement non , cela ne fait pas la même chose
    un test a suffi a me le prouver
    soit une liste contenant : Un,Deux
    commatext donne 'Un,Deux'
    ListeParse donne '"Un","Deux"' (par quotedStr ''Un','Deux'')
    Anéfé, CommaText protège uniquement les lignes avec des "" quand elles-mêmes contiennent des séparateurs
    - mot1,mot2
    - mot3
    - mot4

    CommaText -> "mot1,mot2", mot3, mot4

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Et ceci irait-il ?

    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
    procedure PrepareParams(SL: TStringList; out PNames: string;
      out PValues: array of Integer);
    var
      I: Integer;
    begin
      Assert(SL.Count > 0);
      PNames := '';
      for I := 0 to SL.Count - 1 do
      begin
        PNames := PNames + '?,';
        PValues[I] := StrToInt(SL[I]);
      end;
      SetLength(PNames, Length(PNames) - 1);
    end;
     
    var
      ParamNames: string;
      ParamValues: array of Integer;
      I: Integer;
    begin
      SetLength(ParamValues, SL.Count);
      PrepareParams(SL, ParamNames, ParamValues);
     
      with Qry do
        SQL.Text := Format('SELECT * FROM MaTable WHERE Valeur IN (%s);', [ParamNames]);
        for I := 0 to High(ParamValues) do
          Params[I].AsInteger := ParamValues[I];
        Open;
        // ...
      end;
      SetLength(ParamValues, 0); 
    end;
    @+ Claudius

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Oulà !

    J'ai déjà du mal à comprendre le fonctionnement
    Et je ne gagne rien, il faut toujours passer par un Format ? Je trouve ça bien tarabiscoté par rapport à mon simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format('SELECT * FROM MaTable WHERE Valeur IN (%s)', [sl.CommaText])
    Edit: juste pour l'exemple, que devient la variable ParamNames après un PrepareParams ?

  8. #8
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par GoustiFruit Voir le message
    Oulà !


    Citation Envoyé par GoustiFruit Voir le message
    Et je ne gagne rien, il faut toujours passer par un Format ?
    Certes, mais tu là utilises bien des paramètres, c'est le but recherché.
    Citation Envoyé par GoustiFruit Voir le message
    Je trouve ça bien tarabiscoté par rapport à mon simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format('SELECT * FROM MaTable WHERE Valeur IN (%s)', [sl.CommaText])
    Oui, bien sûr. A toi de voir si tu veux vraiment passer par des paramètres.

    @+ Claudius

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Oui je veux utiliser les paramètres... en remplacement du Format !

    Edit: si tu as raté mon edit précédent: que devient ParamNames après un passage par PrepareParams ?

  10. #10
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par GoustiFruit Voir le message
    Edit: juste pour l'exemple, que devient la variable ParamNames après un PrepareParams ?
    Si comme dans ton exemple tu as 3 paramètres dans la StringList, alors ParamNames sera égal à '?,?,?'.

    Le choix de nommer cette variable ParamNames n'est pas très adapté en vérité, puisque les paramètres ne sont pas nommés.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Est-ce que c'est bien interprété par la commande Format comme un ensemble de x variables dans [...] ???

    EDIT: OUBLIE !

  12. #12
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Pas sûr de bien comprendre ta question.

    Ok: vu ton Edit.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Bon ça ne m'arrange pas sur ce coup, mais je garde l'idée dans un coin, ça pourrait servir un jour...

    Merci.

  14. #14
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par GoustiFruit Voir le message
    Bon ça ne m'arrange pas sur ce coup, ...
    Qu'est-ce qui ne t'arrange pas ?

  15. #15
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    cependant , je n'ai jamais tester ce passage en paramètres et il ne s'agissait jamais d'entier mais de chaines , je vais tenter ça rapidement
    j'ai testé , et hélas pas de succès j'obtiens un joli message style string truncation par contre avec une RxQuery (bon d'accord c'est du BDE) en passant la chaine non comme un param mais comme une macro
    c'est tout bon
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  16. #16
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut,

    Alors j'utilise déjà un parse sur des données numériques et c'est vrai qu'avec la ParamByName cela me donnais la même chose que toi.

    D'ailleur dans mon programme c'est le seule cas que je gérer sans ParambyName... (@Sergio )

    Dans mon traitement contrairement à toi je n'utilise pas de TStringList, j'utilise une simple variable de type String

    Voilà le traitement que je fais :
    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
    // On créer notre liste Sl          
    Procedure xxxxxxxxxxxxx;
    Var
      Sl : String;
    Begin
      With FData.QryTravail2 do
      begin
        SlCheck := '';
        SQL.Clear;
        SQL.Add('Select Code, Nom, Prenom From MaTableInitiale ');
        try
          try
            Open;
    // on alimente le string avec les valeurs numériques du champ code
    // séparer par une virgule
            while not eof do
            begin
              SlCheck := SlCheck + FieldByName('Code').AsString + ',';
              next;
            end;
          except
            SlCheck := '';
          end;
        finally
          Close;
        end;
      end;
    // on retire la dernière virgule du string
      if Pos(',',slCheck) > 0 then
        SlCheck := Copy(SlCheck,1,length(SlCheck)-1);
     
    // Maintenant on utilise SlCheck pour la futur requete
      With FData.QryExterne do
      begin
        SQL.Clear;
        SQL.Add('Select Code, Nom FROM MonAutretable ');
        if SlCheck <> '' then SQL.Add('Where Nom Not in ('+SlCheck+') ');
    // en fait ParamByName n'ai pas nécessaire
    // dans ce cas précis
        try
         try
          Open;
            // traitement
     
         except
     
         end;
       finally
         Close;
       end;
     end;



    [EDIT] : Le truc que j'ai pas essayé serait donc d'utiliser le parambyname
    et de modifier juste avant le open la requete obtenu :

    Sql.txt := StringReplace(Sql.txt,''',' ');


  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    [EDIT] : Le truc que j'ai pas essayé serait donc d'utiliser le parambyname
    et de modifier juste avant le open la requete obtenu :

    Sql.txt := StringReplace(Sql.txt,''',' ');

    Je n'ai pas essayé non plus mais hélas, il se pourrait que j'aie besoin d'insérer d'autres paramètres dans la requête qui eux auraient besoin d'êtres encadrés par des ''...

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Qu'est-ce qui ne t'arrange pas ?
    Ta méthode, puisqu'elle me fait quand même passer par un "Format"; et aussi le fait que je vais devoir continuer avec "Format". Mais bon, c'est exceptionnel, je n'ai pas 36 requêtes ayant besoin d'une liste en paramètre...

  19. #19
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Pourquoi pas comme 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
    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
    Procedure xxxxx
    Var
      sl : TStringlist;
      i : integer;
    Begin
    sl := TStringList.Create;
    try
      sl[0] = '2';
      sl[1] = '12';
      sl[2] = '9';
      With AdoQry do
      begin
       Sql.clear;
       Sql.add('Select * From Matable ');
       if sl.Count > 0 then
       begin
         Sql.add('Where Code= ');
         for i := 0 to sl.count-1 do
         begin
          if (i = 0) then // Si on est sur le premier
          begin
            if (i = sl.count-1) // et quand plus c'est le dernier lol
            then Sql.add(' :p'+IntToStr(i))
            else Sql.add(' :p'+IntToStr(i)+' or Code= ');
          end
          else
            if i <> sl.count-1 // Si on est pas sur le dernier
            then Sql.add(' :p'+IntToStr(i)+' or Code= ')
            else Sql.add(' :p'+InttoStr(i))
         end;
    // ...
    // ajouter ici d'autre condition du Where
    // ...
     
    // Les parameters doivent être placé à la fin des SQL.Add
    // d'où l'obligation de refaire un boucle
         for i:= 0 to sl.count-1 do
           Parameters.ParamByName('p'+IntToStr(i)).AsValue := StrToInt(sl[i]);
     
       Open;
     
    // Traitement
    finally
      sl.free
    end;

    Je l'ai pas du tout tester je viens de le saisir à la volé. Mais cela devrai le faire.



    @Sergio : i love the parameters...

  20. #20
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par GoustiFruit Voir le message
    Ta méthode, puisqu'elle me fait quand même passer par un "Format"; et aussi le fait que je vais devoir continuer avec "Format". Mais bon, c'est exceptionnel, je n'ai pas 36 requêtes ayant besoin d'une liste en paramètre...
    Je comprends mal cette réticence à utiliser la fonction Format:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.Text := 'SELECT * FROM MaTable WHERE Valeur IN (' + ParamNames + ');';
    Tiens n'a plus.

Discussions similaires

  1. RANDOM sur une liste d'entiers ?
    Par simodsio dans le forum C
    Réponses: 2
    Dernier message: 18/09/2008, 13h15
  2. Passer une liste de string dans un preparedstatement
    Par thierryler dans le forum JDBC
    Réponses: 6
    Dernier message: 13/03/2008, 15h30
  3. Faire passer une liste horizontale à la ligne
    Par Gizmil dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 19/11/2007, 17h40
  4. Réponses: 2
    Dernier message: 08/09/2006, 10h00
  5. [TRANSACT] passer une table d'entier dans un SELECT
    Par tiboleo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/04/2005, 11h22

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