cerhu > microsoft.* > microsoft.dotnet.adonet

Christophe Kessler (19/09/2007, 12h27)
Bonjour.

Je souhaite realiser un select a l'aide d'un dataset, dont un des
arguments correspondrait a une clause IN ( :as_Arg ).
Coutumier de Powerbuilder, je sais qu'on peut declarer des arguments de
type Array, mais je n'ai rien trouve d'equivalent dans .NET

Help !!!

Je n'ai pas envie de creer le select a la main...
Gilles TOURREAU (20/09/2007, 11h20)
Le Wed, 19 Sep 2007 12:27:33 +0200, Christophe Kessler
<christophe.kessler> a écrit:

> Bonjour.
> Je souhaite realiser un select a l'aide d'un dataset, dont un des
> arguments correspondrait a une clause IN ( :as_Arg ).
> Coutumier de Powerbuilder, je sais qu'on peut declarer des arguments de
> type Array, mais je n'ai rien trouve d'equivalent dans .NET
> Help !!!
> Je n'ai pas envie de creer le select a la main...


Il n'existe rien en .NET pour çà...
Vous devez passer les arguments "à la main" comme ceci :

IN (:p1, :p2, :p3)

Et ajouter ces 3 paramètres dans votre OracleCommand...

Cordialement
Christophe Kessler (26/09/2007, 12h20)
Gilles TOURREAU a écrit :
> Il n'existe rien en .NET pour çà...
> Vous devez passer les arguments "à la main" comme ceci :
> IN (:p1, :p2, :p3)
> Et ajouter ces 3 paramètres dans votre OracleCommand...
> Cordialement


C'est bien ce que je craignais...
L'attrait du tableau etant evidemment de passer autant de valeurs que
l'on veut sans se soucier du nombre. Je vais devoir utiliser les bons
vieux Command avec un Select passe par string...
Merci pour l'info
Jean BONBEUR (26/09/2007, 18h52)
> l'on veut sans se soucier du nombre. Je vais devoir utiliser les bons
> vieux Command avec un Select passe par string...
> Merci pour l'info


ce qui n'est pas forcément un mal. sinon, il reste le passage d'une string
contenant "p1 , p2, p3..." et ensuite la fabrication dans la proc d'une
clause executée par EXEC, ce qui revient au même excepté peut etre si vous
avez une partie importante qui peut être isolée dans la proc, laissant ainsi
le plan d'optimisation faire ce qu'il peut.
Christophe Kessler (17/10/2007, 11h22)
Jean BONBEUR a écrit :
> ce qui n'est pas forcément un mal. sinon, il reste le passage d'une string
> contenant "p1 , p2, p3..." et ensuite la fabrication dans la proc d'une
> clause executée par EXEC, ce qui revient au même excepté peut etre si vous
> avez une partie importante qui peut être isolée dans la proc, laissant ainsi
> le plan d'optimisation faire ce qu'il peut.

Ben en fait...ca craint quand meme. Ca ne permet pas de creer un
selec... where toto.ID in (...) avec un seul argument qui serait un
tableau...
Pour info : je rentre du tour de france .Net (Linq/SilverLight), et la
nouvelle version de ADO ne pourra toujours pas implementer cette
methode...navrant ;)
Ambassadeur kosh (17/10/2007, 21h30)
> Ben en fait...ca craint quand meme. Ca ne permet pas de creer un
> selec... where toto.ID in (...) avec un seul argument qui serait un
> tableau...


entre envoyer une string côté client qui contient "SELECT ... WHERE toto.ID
IN (...)".
et appeller une proc avec un parametre @list qui fait SELECT ... WHERE
toto.ID IN @list...

j'ai plus l'habitude de typer les choses côté appli, ou d'offrir un service
au lieu d'un acces à la base... encapsuler, ça permet d'interchanger avec
d'autres systemes ou plein d'autres choses.

apres, côté plan d'optimisation, eh ben, ça se regarde... et les requetes
construites côté client sont souvent pas mal...

côté sécurité, entre ceux qui disent qu'on doit planquer toutes les tables
et ne laisser que les procs, ceux qui pensent que les procs sont une
calamité, ceux qui pensent qu'il faut des grant specifiques partout, ceux
qui ne creent qu'un user et mettent un droit total sur tout parceque seul le
server applicatif est ouvert sur l'exterieur...

> Pour info : je rentre du tour de france .Net (Linq/SilverLight), et la
> nouvelle version de ADO ne pourra toujours pas implementer cette
> methode...navrant ;)


peut être parceque l'interet est minime, au regard de tout ça... non ?
Christophe Kessler (19/10/2007, 11h56)
Ambassadeur kosh a écrit :
[..]
> côté sécurité, entre ceux qui disent qu'on doit planquer toutesles tables
> et ne laisser que les procs, ceux qui pensent que les procs sont une
> calamité, ceux qui pensent qu'il faut des grant specifiques partout, ceux
> qui ne creent qu'un user et mettent un droit total sur tout parceque seul le
> server applicatif est ouvert sur l'exterieur...
> peut être parceque l'interet est minime, au regard de tout ça... non ?


Ben non, pas trop... Cette absence ne permet pas de travailler avec les
datasets en graphique, et oblige justement a recreer les requetes en
string...
Ambassadeur kosh (20/10/2007, 08h26)
> Ben non, pas trop... Cette absence ne permet pas de travailler avec les
> datasets en graphique, et oblige justement a recreer les requetes en
> string...


ok, je comprend mieux. et recreer un systeme similaire qui produit des
DataAdapter, des schemas, et des DataSets typés, c'est clair que ça prend un
max de temps...
à voir...
Discussions similaires
Comment passer le nom d'un controle comme parametre ?

Comment passer un élément de structure en paramètre?

APPLICATION VIA LIEN_HYPERTEXTE, COMMENT PASSER DES ARGUMENTS

comment passer un paramètre à une requête paramétrée


Fuseau horaire GMT +2. Il est actuellement 14h16. | Privacy Policy