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 22/10/2004, 10h45   #1
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
Par défaut [FORMS6] : mise à jour d'une vue

Bonjour à tous,

Voila j'ai un problème sur une vue , voici le script de ma vue :
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
 
DROP VIEW cdt_pointage;
 
CREATE VIEW cdt_pointage AS SELECT
 num
,cde
,liv
,lieuc
,bapt
,id_contenant
,qte
,etitrac
,env_transp_int
,recu_transp_int
,date_recep
,num_trajet
,lib_trajet
,code_chauf
,lib_chauf
,ctr_exp
,ed_etiquette
FROM cdt
WHERE nvl(ed_etiquette,'N') = 'O';
 
DROP public synonym cdt_pointage;
CREATE public synonym cdt_pointage FOR ops$projet.cdt_pointage;
GRANT ALL ON cdt_pointage TO minier;
Comme vous pouvez le voir dans le script, il y a pas de jointure dans cette vue, c'est une vue simple.

Si je fais un update en ligne de code à la main sur cette vue, pas de souci.
Par contre si je veux faire une mise à jour à travers de forms 6i (Version 6.0.8.19.2), il ne donne l'erreur suivante :
Citation:
FRM-40602 : Cannot insert or update data in a view
J'ai recompilé la table CDT qui est utilisée dans la vue.

Si je change de vue tout va bien.

Quelque a t il une idée ?
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 10h56   #2
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
voici le script de la table qui est utilisé dans la vue décrite dans le message précédent :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
CREATE TABLE cdt (
 num                    int NOT NULL
,cde                    int NOT NULL
,liv                    int NOT NULL
,lieuc                  varchar2(5) NOT NULL
,bapt                   varchar2(3) NOT NULL
,id_contenant           int NOT NULL
,env_transp_int         varchar2(1)
,recu_transp_int        varchar2(1)
,ctr_exp                varchar2(1)
,selection              varchar2(1)
,date_recep             date
,code_chauf             varchar2(5)
,lib_chauf              varchar2(50)
,num_trajet             number
,lib_trajet             varchar2(50)
,qte                    number
,incomplet              varchar2(1)
,pret_tint              varchar2(1)
,etitrac                varchar2(1)
,ed_etiquette           varchar2(1)
)
tablespace tracabilite
        storage (initial 1M next 500K pctincrease 0);
 
DROP public synonym cdt;
CREATE public synonym cdt FOR ops$projet.cdt;
GRANT ALL ON cdt TO minier;
 
DROP INDEX k_cdt;
CREATE INDEX k_cdt ON cdt(num) tablespace clindex
        storage (initial 200K next 200K pctincrease 0);
 
DROP INDEX k2_cdt;
CREATE INDEX k2_cdt ON cdt(cde,liv) tablespace clindex
        storage (initial 200K next 200K pctincrease 0);
 
rem MODIF : 05-2004 : GE : AJOUT D'UNE CONTRAINTE INTEGRITE
alter table cdt drop constraint k_cdt4;
alter table cdt add constraint k_cdt4
        primary key (cde,liv,lieuc,bapt,id_contenant)
        using index tablespace clindex
        storage (initial 200K next 200K pctincrease 0);
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 11h01   #3
Membre éclairé
 
Inscription : mai 2004
Messages : 376
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 376
Points : 343
Points : 343
Salut,

De toutes facon, si tu arrive à faire un update avec SQL*Plus ou ton outil favori, c'est que ta table et ta vue sont bien montées. A mon avis tu devrais plutot regarder du coté de ta forms pour trouver le pb.
Comment c'est fait ? Un block basé sur la vue ?
__________________
"There are two major products that come out of Berkeley: LSD and UNIX.
We don't believe this to be a coincidence."
- Jeremy S. Anderson
getupa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 11h06   #4
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
Je refais le même script de la vue mais avec un autre nom : toto et là update sur FORMS se passe bien.

Je me demande si ma vue n'est pas créée deux fois sous des users différents . Je ne me souviens plus de la table système qui référence les vues et les créateurs.

MERCI
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 11h20   #5
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
Je continue mes test :
voila si je recompile ma table CDT
ensuite j'ouvre ma forms pour faire des modif sur ma vue (toto ou cdt-pointage), je peut faire autant de modif que je veux et c'est OK.
Si je referme la form et la réouvre, là j'ai erreur explique sur le 1er message.

Help ca devient incompréhensible
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 11h25   #6
CD
Membre habitué
 
Inscription : septembre 2004
Messages : 127
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 127
Points : 138
Points : 138
Citation:
Envoyé par gaultier
e me demande si ma vue n'est pas créée deux fois sous des users différents . Je ne me souviens plus de la table système qui référence les vues et les créateurs.

MERCI
Code :
SELECT owner, object_name FROM all_objects WHERE object_name = 'CDT_POINTAGE'
CD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 11h27   #7
Membre éclairé
 
Inscription : mai 2004
Messages : 376
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 376
Points : 343
Points : 343
Oula ! C'est bizarre !!!
Voici la requete qui te permet de voir si ta vue n'est pas en double :

Code :
SELECT * FROM all_objects WHERE object_type = 'VIEW' AND owner NOT IN ('SYS', 'SYSTEM') AND object_name = 'cdt_pointage'
As-tu commité les modifs avant de sortir de ta form la première fois ?
__________________
"There are two major products that come out of Berkeley: LSD and UNIX.
We don't believe this to be a coincidence."
- Jeremy S. Anderson
getupa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 11h31   #8
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
Non ma vue existe bien que sous un seul user.

gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2004, 11h39   #9
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
Si j'affiche en même temps que l'erreur forms, l'erreur base avec DBMS, il me renvoi l'erreur base ORA - 1403 : no data found en même temps.
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2004, 09h59   #10
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
Bonjour,

Est ce que quelqu'un à une idéé pour mon petit pb de vue. Je pense que je vais bientot m'arracher les cheveux.
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2004, 11h56   #11
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
J'ai trouvé des infos sur METALINK, une personne a eu exactement le même pb que moi. Une personne lui a demandé de modifier la valeur de l'option key mode du block de la vue.

J'ai testé ca marche. Je me demande si tout ceci ne serait pas lié au fait que sur la table CDT qui est utilisé dans la vue CDT_POINTAGE, existe une contrainte de clé primaire et que celui est référencé sur une autre table comme clé étrangère.

Ca marche c'est le principe.

Merci à tous
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2004, 12h11   #12
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. et quelle valeur avez-vous positionné pour obtenir le bon résultat ?
__________________
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 25/10/2004, 13h21   #13
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
J'ai mis Key mode en mode unique et la propriété update changed columns only à true
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 12h15   #14
En attente de confirmation mail
 
Inscription : décembre 2004
Messages : 20
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 20
Points : 15
Points : 15
Par défaut Mise à jour côté base non réussi

Salut à tous,
J'ai eu le même problème, j'ai posé la propriété Key-Mode à Unique et update only chaged record à Yes, ça n'a pas mrché.
J'ai positionné la première à updatable, ça a écrasé tous mes records et les a mis à jour tous à la valeur passée.
Idem pour le delete.
J'ai changé mon code dans le on-update et on-delete mais la sauvegarde malgré un affichage forms, n'a pas eu lieu côté base

On-update:
Code :
1
2
3
4
5
6
7
8
9
 
:SYSTEM.SUPPRESS_WORKING := 'TRUE';
      UPDATE gmac_item_categories
        SET whse_code = :GMACCTGY.whse_code,
             item_no = :GMACCTGY.item_no,
             int_category = :GMACCTGY.int_category 
        WHERE rowid = :GMACCTGY.rowid;
        --commit_form;
:SYSTEM.SUPPRESS_WORKING := 'FALSE';
On'delete:
Code :
1
2
3
4
 
DELETE  FROM gmac_item_categories
 WHERE rowid = :GMACCTGY.rowid ;
 --commit_form;
C'est trés urgent, pourriez vous me donner une solution, car j'ai épuisé toute possibilité me paraissait logique

Merci d'avance
dev_ora_moimeme 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 00h35.


 
 
 
 
Partenaires

Hébergement Web