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 15-05-2007 08:25:08

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Problème exécution requête longue

Salut à tous !

J'ai une requête d'une cinquantaine de lignes à exécuter.

Je l'ai testée dans un programme java et j'obtiens le bon résultat.

Par contre, sous powerbuilder, elle ne passe pas.

Comme elle est composée de plusieurs imbrications de SELECT, je l'ai découpée et si j'enlève le SELECT qui englobe tout le reste, elle passe.

Est-ce que le nombre de SELECT imbriqués est limité sous Powerbuilder ?

Help !!

Hors ligne

 

#2 15-05-2007 08:30:38

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: Problème exécution requête longue

Bonjour,

Quand tu dis qu'elle ne passe pas, qu'est ce que ça veut dire exactement ?
Quelle est la valeur de ton SQLCode ?


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#3 15-05-2007 08:37:40

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

En fait, juste après mon OPEN curseur, le SQLCA.sqlcode vaut -1.

Il ne veut pas ouvrir mon curseur !!

Hors ligne

 

#4 15-05-2007 08:41:53

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: Problème exécution requête longue

C'est qu'il y a une erreur dans ta requête.
Tu as pensé à regarder du côté du SQLErrText ?


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#5 15-05-2007 08:48:15

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

Ya pas d'erreur dans ma requête !

Je l'exécute tel quel dans un programme java et le résultat est bon.

Et SQLErrText est vide...

Dernière modification par cradleofpain (15-05-2007 08:49:02)

Hors ligne

 

#6 15-05-2007 08:49:44

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: Problème exécution requête longue

Peux-tu nous fournir ta requête ?

N'y aurait-il pas un problème de syntaxe dans ton curseur ?


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#7 15-05-2007 08:53:53

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 610
Pépites: 2,097
Banque: 3,536,631,712,504

Re: Problème exécution requête longue

Bonjour,

Et si tu fais open curseur, fais tu bien les close curseur à la fin, et en cas d'erreur.

Car si tu fais plusieurs fois la manipulation, ça peut être une explication.

Hors ligne

 

#8 15-05-2007 08:58:40

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

Je ne pense pas que celà soit nécessaire.

Je vais t'expliquer à quel point c'est bizarre.

Voici en gros à quoi ressemble ma requête :

Code: sql

SELECT 1 FROM (
        SELECT 2 FROM(...)
                   )



En gros, SELECT 2 FROM (...) est une imbrication de plusieurs SELECT et fonctionne parfaitement.

Donc le curseur fonctionne également.

Mais quand j'ajoute juste un SELECT 1 FROM sur le SELECT 2 comme indiqué dans l'extrait de code, le curseur ne veut plus s'ouvrir.

Ce n'est donc pas un problème de curseur.

Hors ligne

 

#9 15-05-2007 09:00:42

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

Oui wazou1812, je fais bien un close dans tous les cas.

Hors ligne

 

#10 15-05-2007 09:03:02

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: Problème exécution requête longue

Par curiosité, combien as-tu d'ordre SELECT ?

Peux-tu publier ta requête, voir ton curseur ?

As-tu essayé d'exécuter ton SELECT 2 tout seul sous PB ?


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#11 15-05-2007 09:04:33

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Problème exécution requête longue

tu n'as pas un autre curseur appelé identiquement? que tu ouvre avant?

Hors ligne

 

#12 15-05-2007 09:16:47

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

J'ai 4 SELECT imbriqués.

Que veux-tu dire par :"Peux-tu publier ta requête, voir ton curseur ?"


Et oui j'ai essayé SELECT 2  tout seul et ça fonctionne !

Hors ligne

 

#13 15-05-2007 09:18:09

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

Pour répondre à thezerg, je ferme tous mes curseurs correctement.

Hors ligne

 

#14 15-05-2007 09:21:07

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: Problème exécution requête longue

cradleofpain a écrit:

J'ai 4 SELECT imbriqués.

Que veux-tu dire par :"Peux-tu publier ta requête, voir ton curseur ?"


Et oui j'ai essayé SELECT 2  tout seul et ça fonctionne !

Simplement copie le contenu de ton curseur voir de ta requête ici dans le forum,
de manière à ce que l'on puisse l'analyser !


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#15 15-05-2007 09:30:53

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

Comment faire pour récupérer le contenu de mon curseur ?

Hors ligne

 

#16 15-05-2007 09:32:44

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Problème exécution requête longue

cradleofpain a écrit:

Ya pas d'erreur dans ma requête !

Je l'exécute tel quel dans un programme java et le résultat est bon.

Et SQLErrText est vide...

Juste une question: As-tu quelquechose dans le SQLDBCode?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#17 15-05-2007 09:37:31

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

Le SQLDBcode vaut 999 juste après mon OPEN curseur

En gros il ne trouve pas de résultat

Dernière modification par cradleofpain (15-05-2007 09:40:06)

Hors ligne

 

#18 15-05-2007 09:43:21

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Problème exécution requête longue

Il faut que tu regardes la liste des codes retours de ton SGBD pour savoir ce que ça signifie.
Tu es en Oracle ou Sybase?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#19 15-05-2007 09:44:04

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Problème exécution requête longue

cradleofpain a écrit:

Comment faire pour récupérer le contenu de mon curseur ?

En gros on voudrait bien que tu fasses un ctrl + c de ton prog pb et un ctrl + v sur pbadonf voila

Hors ligne

 

#20 15-05-2007 09:44:42

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

Je suis sous Oracle.

Désolé thezerg, je ne peux pas vous fournir mon programme.

De toute façon, ça servirai à rien d'analyser la requête.

Je vous l'ai déjà dit, la requête fonctionne mais pas sous powerbuilder !!

Dernière modification par cradleofpain (15-05-2007 09:46:31)

Hors ligne

 

#21 15-05-2007 09:54:23

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Problème exécution requête longue

Tu as essayé de mettre ta requête principale sur une seule ligne, genre:

Code: pb

SELECT 1 FROM ( SELECT 2 FROM(...) )


au lieu de:

Code: pb

SELECT 1 FROM (
        SELECT 2 FROM(...)
                   )


Il y a ça dans l'aide PB sur les déclarations de curseurs dynamiques:

SQLStatement:   

A string containing a valid SQL SELECT statement The string can be a string constant or a PowerBuilder variable preceded by a colon (such as :mysql). The string must be contained on one line and cannot contain expressions.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#22 15-05-2007 10:15:24

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

J'ai essayé de créer une vue regroupant SELECT 2 et ça fonctionne.

Par contre, ce serait mieux si j'en utilisait pas.

D'autre part, j'ai essayé en créant une vue sur 2 SELECT imbriqués à l'intérieur de SELECT 2 et ça ne passe pas !!!


C'est du délire !!!

Hors ligne

 

#23 15-05-2007 10:22:01

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Problème exécution requête longue

Est-ce que le nombre de lignes retournées par ta requête est supérieur à ton paramètre Block DBParm?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#24 15-05-2007 12:19:10

cradleofpain  
Membre Geek
Date d'inscription: 09-05-2007
Messages: 99
Pépites: 9
Banque: 9,860,255,032,773

Re: Problème exécution requête longue

Comment on fait pour savoir la valeur de Block DBParm ?


Ma requête retourne 60 lignes. ça me parait pas énorme.

Dernière modification par cradleofpain (15-05-2007 12:22:55)

Hors ligne

 

#25 15-05-2007 13:02:53

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Problème exécution requête longue

C'est au niveau de la fenêtre database profile:

http://img513.imageshack.us/img513/4829/blockingfactorpl6.jpg

S'il n'y a rien de saisi, ce sont les paramètres par défaut qui s'appliquent (Je crois que pour ORACLE c'est 300 lignes)

Normalement, 60 lignes ça devrait effectivement passer...


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22