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 10/04/2006, 12h45   #1
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
Par défaut Forms 6i probleme

Salut je débute en forms 6i
J'ai réalisé un simple formulaire et je positionne les variables insertion autorisée à oui ainsi que Mise à Jour.
Pourtant lorsque je veux faire un commit, je tombe sur une erreur oracle: Insert impossible.
J'ai les droits du dba et je peux insérer à loisir via sqlplus.
Je suis sous forms 6i et oracle 9i2.
Any Help appreciated.
Thanks.
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 12h48   #2
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
Par défaut Plus de détails sur mon problème

Le problème vient des clés primaires.
En effet quand je fais un commit sur le bloc, forms essaie d'insérer les enregistrements déjà existants au lieu de faire une simple mise à jour .D'où une erreur oracle car la contrainte unique sur la clé primaire n'est pas respectée.
Comment faire pour contourner ce problème?
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 12h52   #3
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 448
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 448
Points : 4 194
Points : 4 194
Forms gère tout seul le fait de savoir si c'est un INSERT ou un UPDATE à faire.

Pour updater une ligne qui existe déjà, il faut la ramener de la base par un query. C'est bien ce que tu fais ?

Pour avoir l'erreur exacte : fais CTRL+F1 (pour avoir la liste des touches) et regarde le "Afficher erreur". Chez moi c'est SHIFT+F1.
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 12h55   #4
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
Par défaut forms 6i

Oui c'est bien ce que je fais.
Je récupère tous les enregistrements via un curseur de la base de données et je peuple mon tableau .
Mais quand je fais un commit, forms s'amuse à vouloir faire un insert au lieu de faire un update sur les champs déjà existants.
Pour info ce problème n'apparait pas sur les autres formulaires que j'ai développés.
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 13h00   #5
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
L'erreur est forms 40-508 : insertion Insert oracle impossible.
En effet Forms veut insérer les champs déjà existants au lieu de les mettre à jour d'où erreur sur les clés primaires qui doivent être uniques;
Comment débloquer ce problème?
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 13h05   #6
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
Citation:
il faut la ramener de la base par un query
JE NE SAIS PAS SI C'EST EXACTEMENT CE QUE JE FAIS.
Moi je peuple mon tableau d'enregistrements par un curseur qui récupère ses informations de la table.
Est ce que c'est pareil?
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 13h06   #7
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 448
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 448
Points : 4 194
Points : 4 194
Par défaut Re: forms 6i

Citation:
Envoyé par debutant forms 6i
Je récupère tous les enregistrements via un curseur de la base de données et je peuple mon tableau .
Ah non, c'est pas du tout comme ça que ça marche... là tu insères toi même des enregistrements dans un tableau.
Il faut baser ton bloc sur ta table et faire un query de ton bloc.
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 13h09   #8
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
Comment ça marche les query?
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 13h13   #9
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
Normalement forms récupère lui-même les champs de la table surlaquelle est basé le bloc .Là il ne veut pas.
Pourtant je passe par l'assistant.
????,
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 13h17   #10
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 448
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 448
Points : 4 194
Points : 4 194
Citation:
Envoyé par debutant forms 6i
Comment ça marche les query?
2 façons : soit automatiquement, soit manuellement.

1/ Manuellement : Tu vas sur ton bloc, tu fais F7 (Menu Edition - Interroger - Entrer), tu mets les conditions que tu veux dans les différents champs (rien si tu veux tout), puis tu fais F8 (Menu Edition - Interroger - Lire).

2/ Automatiquement (ex a l'ouverture de l'écran)
dans le trigger WHEN NEW FORM INSTANCE :
Code :
1
2
GO_BLOCK('MON_BLOCK');
EXECUTE_QUERY;
Tu as aussi un paramètre du bloc qui s'appelle 'DEFAULT_WHERE' que tu peux affecter dynamiquement (SET_BLOCK_PROPERTY) pour limiter les enreg que tu veux.
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 13h17   #11
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
Citation:
faire un query de ton bloc
Que veux tu dire par là?
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 13h19   #12
Invité de passage
 
Inscription : avril 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 23
Points : 0
Points : 0
ok Thanks a lot.
debutant forms 6i est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h59.


 
 
 
 
Partenaires

Hébergement Web