Microsoft KB Archive/195408

= PRB: Specifying View KeyField Sets Other Fields Updateable =

Article ID: 195408

Article Last Modified on 5/12/2003

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition
 * Microsoft Visual FoxPro 3.0b Standard Edition
 * Microsoft Visual FoxPro 5.0 Standard Edition
 * Microsoft Visual FoxPro 5.0a
 * Microsoft Visual FoxPro 6.0 Professional Edition
 * Microsoft Visual FoxPro 3.0b for Macintosh

-



This article was previously published under Q195408



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.



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.

Keywords: kbdatabase kbprb kbpending KB195408

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.