Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 19-02-2007 12:09:31

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

[RESOLU] Datastore : Nombre limité de lignes?

Bonjour à toutes et à tous.



J'ai créé une Datastore avec seulement affichages de 6 colonnes issue d'une simple requête avec comme paramètre un tableau.
Donc, dans ma requete, j'ai un WHERE colonne IN tableau


Le retrieve de cette datastore fonctionne bien jusqu'à 1000 lignes renvoyées, mais au delà, le retrieve retourne -1.

C'est une limite définie  quelque part ? Est-ce modifiable ?

J'espère que cette question n'a pas été déjà posée. Je n'ai pas rouvé

Merci

Kalini

Hors ligne

 

#2 19-02-2007 12:35:10

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datastore : Nombre limité de lignes?

salut
tu as la meme chose depuis ta datawindow ?

c'est pas dans la propriété de ta datawindow object ?
car une limite à 1000 lignes, ca me parait peu...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 19-02-2007 13:07:52

jdobosz  
crazy geek
Award: jdbozc
Lieu: boulogne billancourt
Date d'inscription: 24-05-2006
Messages: 81
Pépites: 2,241
Banque: 2,700,351,746,124,543

Re: [RESOLU] Datastore : Nombre limité de lignes?

tu as regardé la valeur de sqlerrtext ?

Hors ligne

 

#4 19-02-2007 13:28:07

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

pick ouic a écrit:

salut
tu as la meme chose depuis ta datawindow ?

c'est pas dans la propriété de ta datawindow object ?
car une limite à 1000 lignes, ca me parait peu...

Je n'ai mis modifié aucune propriété dans mon dataobject.
C'est une datawindow toute simple.

Et c'est vrai qu'une de mes autres Datawindow fait planté PB lorsqu'elle a + de 1000 lignes également. Mais là, c'est un plantage radical. Tout PB s'arrête.
J'ai pas fait gaffe aux autres DW.

jdobosz a écrit:

tu as regardé la valeur de sqlerrtext ?

Non, j'ai pas regardé.
Je vais vérifié de suite..

Dernière modification par Kalini (19-02-2007 13:29:12)

Hors ligne

 

#5 19-02-2007 13:34:51

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datastore : Nombre limité de lignes?

la, un plantage au bout de 1000 enregistrements ?
un peu suspect, tout ca... il y a pas un probleme de codage dans ta datawindow ? par exemple dans l'evenement itemchanged ? ou retrieverow, ou autres ?

sinon, pour tester ton select sql, bah...utilises le avec l'outil que j'ai developpé.
http://pbadonf.fr/forum/viewtopic.php?id=410

comme ca, tu verras si cela s'arrete à 1000 lignes ou non...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#6 19-02-2007 13:37:54

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

J'ai donc vérifié le sqlerrtext (en fait, je l'avais déjà fait pour la DW) et le message est vide .. Aucune erreur au niveau SQLCA.

Lorsqu'il s'agit d'une  datastore, le retrieve ramène -1 mais ne fait pas planté PB mais lorsqu'ils'agit d'une datawindow, le retrieve finit par faire planté tout PB..
Je ne comprends pas..

Hors ligne

 

#7 19-02-2007 13:42:53

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datastore : Nombre limité de lignes?

essayes de voir avec mon outil,
tu verras si cela plante ou pas...

l'outil construit dynamiquement une datawindow, suivant ton select... et il n'y a pas de lignes codes dessus...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#8 19-02-2007 14:09:05

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

J'ai testé avec ton outil. Au passage, bravo, c'est excellent. mon SGBD: Oracle 8i
ça fonctionne bien. J'ai + de 5000 lignes en retour

Mais j'ai compris : Ce n'est pas ma datawindow qui plante ! C'est la requête oracle.
Car en fait, dans ma requête j'envoie un tableau de données comme je le disais, et mon tableau peut dépasser les 1000 valeurs. Or Oracle ne gère pas plus de 1000 valeurs dans un tableau utilisé dans le IN.
Il faudrait que je passe par une table temporaire, mais je n'ai pas de droits pour ça.

Bref, ce n'est donc pas un problème PB....
Désolé..

Pour ton outil, au lieu d'utiliser le IN tableau, j'ai fait un > valeur, ce qui explique pourquoi j'ai pas de plantage.

Merci pick ouic pour ton outil..

Hors ligne

 

#9 19-02-2007 14:12:19

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datastore : Nombre limité de lignes?

ok, tout est donc résolu.

Merci merci merci...
au moins tu pourras t'en servir, pour tester tes requetes ou procedures...

A+++


t'as pas les droits pour creer  de tables temporaires ?
et pourquoi tu utilises un tableau ? il y a pas moyen de faire autrement ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#10 19-02-2007 14:35:48

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

pick ouic a écrit:

ok, tout est donc résolu.

Merci merci merci...
au moins tu pourras t'en servir, pour tester tes requetes ou procedures...

A+++


t'as pas les droits pour creer  de tables temporaires ?
et pourquoi tu utilises un tableau ? il y a pas moyen de faire autrement ?

Bien, en fait, je n'ai pas de proc stockées. Donc, toutes les requêtes se font dans les DW direct (bouton SQL). Je ne sais donc pas comment passer par une table de travail ?

Le tableau de valeurs est alimenté en fonction des éléments sélectionnés par l'utilisateur.
L'utilisateur fait d'abord une recherche suivant divers critères. Ensuite, une DW à sélection multiple affiche une liste d'éléments en résultat et il est donc possible de sélectionner plusieurs élements avec la souris. Une fois la sélection validée, les ID de chaque élément sont mémorisés dans le tableau de valeur.
Vu qu'il la possibilité de tout sélectionner, le tableau peut donc avoir + de 1000 valeurs dans certains cas..
Et c'est ce tableau que j'envoie ensuite à la DW/Datastore.

Un DBA m'a dit qu'un IN suivi d'un SELECT dans une table passait sans problème même s'il y avait + de 1000 valeurs en retour sur SELECT. Mais + 1000 valeurs figée dans un tableau, ça ne passe pas ..

Hors ligne

 

#11 19-02-2007 14:53:21

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datastore : Nombre limité de lignes?

1000 valeurs en parametres ?  la vacheeeeeeeeeeeee


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#12 19-02-2007 15:30:29

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Datastore : Nombre limité de lignes?

Kalini a écrit:

Oracle ne gère pas plus de 1000 valeurs dans un tableau utilisé dans le IN.

tiens, je croyais que c'était 255 valeurs ??


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#13 19-02-2007 15:33:25

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

pick ouic a écrit:

1000 valeurs en parametres ?  la vacheeeeeeeeeeeee

Oui, c'est un mailing à envoyer à chacune des associations, donc environ jusqu'à 3700 maxi en fonction des paramètres!!
En fait, ça sera souvent l'édition d'une fiche pour quelques associations ou alors, une fiche pour toutes les associations.
Donc entre 1 et 10 voire 20 ou alors toutes.

Dernière modification par Kalini (20-02-2007 08:00:28)

Hors ligne

 

#14 19-02-2007 15:34:55

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

eRaSorZ a écrit:

tiens, je croyais que c'était 255 valeurs ??

Non, non, ça fonctionne très bien jusqu'à 1000 valeurs. les DBA m'ont confirmé que 1000 était bien la limite.
ça dépend peut-être après des versions d'Oracle

Dernière modification par Kalini (19-02-2007 15:36:04)

Hors ligne

 

#15 19-02-2007 15:37:27

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Datastore : Nombre limité de lignes?

Kalini a écrit:

ça dépend peut-être après des versions d'Oracle

oui ça doit être ça, je dois être resté bloqué sur des infos de la v7


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#16 20-02-2007 10:09:59

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datastore : Nombre limité de lignes?

le IN dans ta requete sql, est valable pour une colonne ?
pourquoi tu ne découperais pas en plusieurs datastores ?
au bout de 500 in, tu continues la suite avec une autre datastore...ainsi de suite ?
c'est pas possible ca ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#17 20-02-2007 10:40:43

jdobosz  
crazy geek
Award: jdbozc
Lieu: boulogne billancourt
Date d'inscription: 24-05-2006
Messages: 81
Pépites: 2,241
Banque: 2,700,351,746,124,543

Re: [RESOLU] Datastore : Nombre limité de lignes?

ta requete, il n'est pas possible de l'écrire autrement ?

tu peux la poster ?

Hors ligne

 

#18 20-02-2007 12:01:29

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Datastore : Nombre limité de lignes?

pick ouic a écrit:

le IN dans ta requete sql, est valable pour une colonne ?
pourquoi tu ne découperais pas en plusieurs datastores ?
au bout de 500 in, tu continues la suite avec une autre datastore...ainsi de suite ?

ce que tu peux faire pour contourner la limitation:

Code: pb

SELECT ...
  FROM ...
 WHERE ...
   AND ...
   AND (   colonne IN (val1, val2, ...., val1000)
        OR colonne IN (val1001, val1002, ...., val2000)
        OR colonne IN (val2001, val2002, ...., val3000)
          ...
        )

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#19 16-04-2007 09:35:29

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

pick ouic a écrit:

le IN dans ta requete sql, est valable pour une colonne ?
pourquoi tu ne découperais pas en plusieurs datastores ?
au bout de 500 in, tu continues la suite avec une autre datastore...ainsi de suite ?
c'est pas possible ca ?

Désolé pour cette absence..
J'ai fini par découper le chargement de ma DW. J'envoie les données par lot de 500 lignes..

Hors ligne

 

#20 16-04-2007 09:38:07

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

eRaSorZ a écrit:

pick ouic a écrit:

le IN dans ta requete sql, est valable pour une colonne ?
pourquoi tu ne découperais pas en plusieurs datastores ?
au bout de 500 in, tu continues la suite avec une autre datastore...ainsi de suite ?

ce que tu peux faire pour contourner la limitation:

Code: pb

SELECT ...
  FROM ...
 WHERE ...
   AND ...
   AND (   colonne IN (val1, val2, ...., val1000)
        OR colonne IN (val1001, val1002, ...., val2000)
        OR colonne IN (val2001, val2002, ...., val3000)
          ...
        )

Oui, c'était une solution, j'avais essayé ça, mais je ne pouvais pas savoir combien de IN, je pouvais avoir, car le nombre de valeurs pouvais être très variable: de 1 valeur à + de 3000 valeurs..
Donc, j'avais tenté de modifier dynamiquement la requête de la DW, mais ça ne fonctionnait pas dans certains cas, je ne me rappelle plus lesquels, malheureusement.

Hors ligne

 

#21 16-04-2007 09:45:51

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Datastore : Nombre limité de lignes?

Kalini a écrit:

Oui, c'était une solution, j'avais essayé ça, mais je ne pouvais pas savoir combien de IN, je pouvais avoir, car le nombre de valeurs pouvais être très variable: de 1 valeur à + de 3000 valeurs..

une fois que tu connais tes valeurs tu peut construire la requête en fonction de ce nombre ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#22 16-04-2007 10:07:15

Kalini  
Membre Geek
Date d'inscription: 18-01-2007
Messages: 65
Pépites: 269
Banque: 0

Re: [RESOLU] Datastore : Nombre limité de lignes?

eRaSorZ a écrit:

Kalini a écrit:

Oui, c'était une solution, j'avais essayé ça, mais je ne pouvais pas savoir combien de IN, je pouvais avoir, car le nombre de valeurs pouvais être très variable: de 1 valeur à + de 3000 valeurs..

une fois que tu connais tes valeurs tu peut construire la requête en fonction de ce nombre ?

Oui, c'est ce que je faisais, je déterminais le nombre de OR à inclure dans la requête. J'utilisais ensuite les  IF THEN ELSE dans PB pour construire ma requête dynamiquement

Ensuite, je modifiais la requête de la DW via la commande SetSQLpreview  avant de faire un retrieve dessus. Mais je ne sais plus pour quelle raison, j'ai abandonné cette solution.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22