Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2008, 10h15   #1
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
Par défaut FRM_40505 unable to perform query

J'ai une erreur sur le Query F8.
"unable to perform query FRM-40505".
Sur le trigger POST-QUERY j'appele une fonction qui fait :
Code :
1
2
3
4
5
6
7
8
9
 
CURSOR curseurToto IS
SELECT toto FROM TABLE
WHERE TABLE.idToto:=:BLOK.item_id_toto; -- item_id_toto est un item basé non visible
REC_CUR_TOTO curseurTOTO;
OPEN curseurTOTO;
  FETCH  curseurTOTO INTO REC_CUR_TOTO;
  :BLOK.item_nom_toto:=REC_CUR_TOTO.toto;-- item_nb_toto non basé et visible
  CLOSE curseurTOTO;
Merci.
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 10h19   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
et pourquoi pas simplement :

Code :
1
2
3
4
SELECT toto 
INTO :BLOCK.item_nb_toto
FROM TABLE
WHERE TABLE.toto:=:BLOCK.item_toto;
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 10h39   #3
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
Merci pour ta reponse.
Mais en faite je reprends un projet.il faut garder la norme de developpement.
Tout les blocs doivent utiliser un curseur.
l'item à visualiser est une table qui affiche tout les enregistrements de la colonne.
J'essaye donc de comprendre la philosophie du projet.
En fait on fait un bloc composé d'un item non basé correspondant à l'item à visualiser (table) et un item basé (id de la table) non visible.
Et les 2 items sont liés grace au curseur.
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 10h52   #4
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
Sinon j'ai essayé ta methode pour voir si elle remplissait toute la table
mais j'ai une erreur de compilation au niveau du WHERE
je pense que c'est c'est le :=:BLOK mais je n'arrive pas à la corriger.
Au cas ou tu ne l'aurais pas remarquer je debute dans FORMS.
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 10h59   #5
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Citation:
WHERE TABLE.idToto:=:BL
déjà, il n'y a pas besoin de := dans une clause SQL (:= est un signe d'affectation en PL/SQL)
Afin d'éviter de passer trop de temp en debug du code, vous devriez d'abord "jouer" votre ordre Select sous Sql*Plus, Sql Developer ou Toad pour vérifier qu'il est conforme.
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h09   #6
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
oui ok.
Mais je ne vois pas comment faire mon ordre select dans TOAD.
je sais qu'il ya des données dans ma table (il ya juste une ligne :
id=1.
nomtoto='10')
et puis je ne vois pas quoi remplacer par exemple un :BLOK.item.
Peut-etre pourriez vous m'aiguiller?
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h10   #7
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
il suffit de mettre des valeurs en dur le but étant de tester la syntaxe et non le résultat
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h18   #8
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
MA syntaxe avec le curseur est bonne
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h19   #9
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Alors c'est ce que vous copiez ici qui ne reflête pas la réalité parce que:

Code :
1
2
SELECT ...
WHERE  xx := ss
ne passera jamais nulle part.
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h24   #10
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par decksroy Voir le message
MA syntaxe avec le curseur est bonne
non
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h29   #11
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
Voici la deuxieme solution compilé avec succés sans les curseurs.
Code :
1
2
3
4
5
 
SELECT COD 
	INTO :BLOK.ITM_COD (itm_code est basé)
	FROM TABLE
	WHERE TABLE.ID_ITEM=:BLOK.ID_ITEM;
mais j'ai toujours dans le query la meme erreur.
De plus comme le champ cod est une table, je pense qu'il faut utiliser les curseurs pour remonter tout les resultats.
c'est bien le post_query qui est appelé lors du F8?
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h32   #12
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
utilise le curseur si tu veux mais corrige l'erreur de syntaxe au moins

en POST-QUERY les champs sont déjà renseignés ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h34   #13
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par decksroy Voir le message
De plus comme le champ cod est une table, je pense qu'il faut utiliser les curseurs pour remonter tout les resultats.
quand c'est une table faut surtout traiter les données lignes à ligne... je crains que tu ne puisses pas donner un ITEM multi-ligne comme ça dans la requête. Mais forms c'est un peu loin pour moi
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h38   #14
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
En faite je pense que le probleme ne vient pas de cette fonction car j'ai l'erreur
FRM-40505 avant l'appel du POST-QUERY (j'ai mis un point d'arret dans le trigger
et l'erreur est survenue avant).De plus il sort l'erreur mais ne s'arrete pas dans le trigger.Es ce normal, ne doit-il pas appeler le post-query apres l'erreur?
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h46   #15
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
bah non, s'il y a une erreur Forms sort du process d'exécution de la query.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h50   #16
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Que se pass t-il si vous désactivez le POST-QUERY (en le renommant POST_QUERY) par exemple ?
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h55   #17
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
Citation:
Que se pass t-il si vous désactivez le POST-QUERY (en le renommant POST_QUERY) par exemple ?
c'est toujours pareil !
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 13h08   #18
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Ok, ça n'a donc rien à voir avec ce trigger. Il s'agit peut-etre d'une correspondance ITEM <-> colonne de table qui ne peut être faite.
Vérifiez, par exemple, que vous n'avez pas un item non basé dont la propriété nom de colonne contiendrait quelque chose.
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 13h48   #19
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Je vous conseille :
1. d'afficher l'erreur en faisant un display_error;
2. d'exécuter la dernière requête (:system.last_query) sous SQL*Plus

Vous devriez mieux comprendre d'où vient le problème.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 18h25   #20
Membre habitué
 
Inscription : avril 2004
Messages : 320
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 320
Points : 102
Points : 102
Citation:
Vérifiez, par exemple, que vous n'avez pas un item non basé dont la propriété nom de colonne contiendrait quelque chose.
j'ai un item non basés mais il n'ya rien dans le column name.

Citation:
d'afficher l'erreur en faisant un display_error;
je vais essayer de voir comment je peux faire ça
Citation:
d'exécuter la dernière requête (:system.last_query) sous SQL*Plus
quelle dernier requete ? je ne comprends pas bien comment faire.
je vais me renseigner.
Merci pour toutes vos reponses, c'est encourageant surtout que je n'arrive pas à m'en dépétrer.ça doit etre devant mes yeux mais je ne vois rien.
__________________
Va vers ton risque, à te regarder ils s'habitueront.
decksroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h42.


 
 
 
 
Partenaires

Hébergement Web