PRB: Specifying View KeyField Sets Other Fields Updateable

ID: Q195408


The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, versions 3.0, 3.0b, 5.0, 5.0a, 6.0
  • Microsoft Visual FoxPro for Macintosh, version 3.0b


SYMPTOMS

Specifying the keyfield of a View sets the rest of the fields to be updateable, although the fields are not being set to be updateable explicitly.


RESOLUTION

Use a DBSETPROP() command similar to the following to clear the fields in the view that you do not want to be updateable:


   DBSETPROP("TstVw.Fld1","Field","Updatable",.F.) 
Also, you can open the view in the View Designer and clear the fields that you do not want to be updateable, from the Update Criteria tab.


STATUS

Microsoft is researching this behavior and will post new information here in the Microsoft Knowledge Base as it becomes available.


MORE INFORMATION

Steps to Reproduce Behavior

Create and run a program with the following code:

   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") 
If the table for which the view is being created has a primary key, then that field is set as the keyfield automatically when the view is created. The following code reproduces this behavior:

   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 that both of the DBGETPROP() commands return .T., meaning that both of the fields are updateable.

Additional query words:

Keywords : kbDatabase kbVFp kbVFp300 kbVFp300b kbVFp500 kbVFp500a kbVFp600 KbDBFDBC
Version : MACINTOSH:3.0b; WINDOWS:3.0,3.0b,5.0,5.0a,6.0
Platform : MACINTOSH WINDOWS
Issue type : kbprb


Last Reviewed: December 9, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.