PRB : Spécification affichage KeyField définit des autres champs actualisable

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 195408
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Si vous spécifiez keyfield d'une vue définit le reste des champs pour être modifiable, même si les champs ne sont pas définies pour être modifiable explicitement.
Résolution
Utiliser une commande DBSETPROP() semblable à celui-ci pour effacer les champs dans la vue que vous ne souhaitez pas être mis à jour :
   DBSETPROP("TstVw.Fld1","Field","Updatable",.F.)				
aussi, vous pouvez l'ouvrir la vue dans le Concepteur de vue et effacer les champs que vous ne souhaitez pas être mis à jour à partir de l'onglet critères de mise à jour.
Statut
Microsoft recherche de ce problème et publiera de nouvelles informations dans la base de connaissances Microsoft dès que possible.
Plus d'informations

Procédure pour reproduire le problème

Créer et exécuter un programme avec le code suivant :
   CLOSE DATA ALL   CREATE DATA TstDBC   CREATE TABLE Tbl1 (Fld1 c(10),Fld2 d, Fld3 n(4))   FOR i = 1 TO 4      INSERT INTO Tbl1 VALUES (STR(i),DATE(),1234)   ENDFOR   CREATE SQL VIEW TstVw AS SELECT * FROM Tbl1   USE TstVw   =DBSETPROP("TstVw.Fld1","Field","KeyField",.T.)   ? DBGETPROP("TstVw.Fld2","Field","Updatable")   ? DBGETPROP("TstVw.Fld3","Field","Updatable")				
si la table pour laquelle la vue est créée possède une clé primaire, alors ce champ est défini comme la keyfield automatiquement lorsque la vue est créée. Le code suivant reproduit ce comportement :
   CLOSE DATA ALL   CREATE DATA TstDBC   CREATE TABLE Tbl1 (fld1 c(10) PRIMARY KEY,fld2 d, fld3 n(4))   FOR i = 1 TO 4      INSERT INTO Tbl1 VALUES (STR(i),DATE(),1234)   ENDFOR   CREATE SQL VIEW TstVw AS SELECT * FROM tbl1   USE TstVw   ? DBGETPROP("TstVw.Fld2","Field","Updatable")   ? DBGETPROP("TstVw.Fld3","Field","Updatable")				
note que les deux la DBGETPROP() commandes retour. t., ce qui signifie que les deux champs sont modifiables.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 195408 - Dernière mise à jour : 02/23/2014 05:26:19 - Révision : 2.1

Microsoft Visual FoxPro 3.0 Édition Standard, Microsoft Visual FoxPro 3.0b Édition standard, Microsoft Visual FoxPro 5.0 Édition standard, Microsoft Visual FoxPro 5.0a, Microsoft Visual FoxPro 6.0 Édition Professionnelle, Microsoft Visual FoxPro 3.0b for Macintosh

  • kbnosurvey kbarchive kbmt kbdatabase kbpending kbprb KB195408 KbMtfr
Commentaires