PRB: Especificar ver KeyField establece otros campos actualizable

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

195408
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Síntomas
Especificar keyfield de una vista, establece el resto de los campos para ser actualizables, aunque los campos no se establecen explícitamente ser actualizable.
Solución
Utilizar un comando DBSETPROP() similar al siguiente para borrar los campos en la vista que no desea ser actualizable:
   DBSETPROP("TstVw.Fld1","Field","Updatable",.F.)				
también, puede abrir la vista en el Diseñador de vistas y borrar los campos que no desea ser actualizables, desde la ficha criterios de actualización.
Estado
Microsoft está investigando este comportamiento y publicará nueva información aquí, en Microsoft Knowledge Base, cuando esté disponible.
Más información

Pasos para reproducir este comportamiento

Crear y ejecutar un programa con el código siguiente:
   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 tabla para que se crea la vista tiene una clave principal, entonces ese campo se establece como el keyfield automáticamente cuando se crea la vista. El código siguiente reproduce este comportamiento:
   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")				
nota que ambos el DBGETPROP() comandos de devolución. T., lo que significa que los dos campos son actualizables.

Advertencia: este artículo se ha traducido automáticamente

Propiedades

Id. de artículo: 195408 - Última revisión: 02/23/2014 11:05:12 - Revisión: 2.1

  • 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 para Macintosh
  • kbnosurvey kbarchive kbmt kbdatabase kbpending kbprb KB195408 KbMtes
Comentarios