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 24/03/2007, 13h17   #1
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
Par défaut [Forms 6i] pre-insert

J'ai créé une sequence et dans pre-insert j'utilise un code similaire a celui ci:

Code :
SELECT ma_sequence.NEXTVAL INTO :mon_bloc.ma_colonne_pk ;
Cependant quand j'insère un enregistrement il me met erreur, il faut remplir le champ id.
Je comprends pas du tout surtout que le pre-insert doit ajouter ma valeur avant de faire l'insertion.

Quelqu'un a une idées?

Donaldo
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 17h24   #2
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut ,

Tu as oublié le " from dual"
mais de préférence mettre le code dans KEY-CREREC comme ça tu vas le voir quand tu pèses sur le bouton + ( au moment de la création de l'enregistrement )

Code :
1
2
 
SELECT ma_sequence.NEXTVAL INTO :mon_bloc.ma_colonne_pk  FROM dual ;
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 18h07   #3
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
Il veut toujours pas remplir mon champ et me met erreur FRM-40202 sur ma clef primaire.

Donaldo
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 19h19   #4
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Tu peux m'afficher le code qui existe dans le déclencheur réel ?
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 19h47   #5
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Essaie cette exemple, crée un block basé sur la table dept du user scott/tiger
qui contient les champs suivants: deptno( incrémenter par la séquence),dname,loc

Aprés crée un déclencheur key-crerec au niveau de mon block(dept) qui contient le code suivant

Code :
1
2
3
 
create_record;
SELECT ma_sequence.NEXTVAL INTO :dept.deptno  FROM dual ;
L'exemple marche bien quand je pèse sur le bouton + je vois qu'il a incrémenté la séquence et a mis le contenu dans mon champs deptno
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 20h52   #6
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
Dans mon pre-insert réel j'ai :
select numetudiant.nextval into :etudiant.numetud from dual;
Mais je me demandais comme c'est une clef primaire si forms avant de faire pre insert vérifiait qu'il était bien rempli.
Par exemple pour certains boutons pour pas avoir de problemes avec la vérification de forms il faut que dans le Module je mette Défférer la mise en vigeur obligatoire à oui. Donc je me demandais si c'était un truc du genre.

Je vais essayer ta solution.

Donaldo
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 09h50   #7
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Le pb du when_create_record, c'est que si tu fais un clear_block, forms crée un record, si tu crées un record sans sauvegarder.. tout ça te bouffe des sequences.

Le pb de Donaldo c'est que tu as du déclarer le champ en PK dans forms.
Essayes de mettre -1 au create_record, ça passera.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 14h27   #8
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
salut,
Pour éviter ce problème
Code :
1
2
3
 
Le pb du when_create_record, c'est que si tu fais un clear_block, forms crée 
un record, si tu crées un record sans sauvegarder.. tout ça te bouffe des sequences.
Alors on met les propriétés de l'item
Enabled( Activé) :False
Required (obligatoire) :No
et on garde notre trigger pre_insert
"j'ai essayé cette solution est ca marche bien sans erreurs"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Checked FOR relevance 06-JULY-2006
 
 
 
You are receiving the following error FROM Oracle Forms: 
 
"FRM-40202 : Field must be entered." 
 
Generally, this error results because you have NOT entered a value (OR you 
have deleted a value ) IN a FIELD that requires DATA input.  
 
 
IF the FIELD should require a value, then Forms IS behaving appropriately when 
the Required property of the FIELD IS SET TO TRUE.  When SET TO TRUE, Forms 
requires that you enter a value before navigating out of the FIELD.
 
Problem Description 1: 
======================
 
You have just navigated TO a new FIELD, AND you want TO navigate TO a 
different FIELD IN ORDER TO enter a new record there. When USING the keyboard 
TO navigate TO the next FIELD you receive the FRM-40202 error. IF you USE the 
mouse TO navigate TO a new record, then the error does NOT occur.
 
 
Solution Description 1: 
======================= 
 
SET the item's Required property to "No" ("FALSE" in 4.5 Forms).
https://metalink.oracle.com/metalink...,1,1,helvetica
Vous pouvez voir l'article intégrale sur Metalink
salim11 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 00h46.


 
 
 
 
Partenaires

Hébergement Web