PROBLEMA: Especificar ver KeyField define outros campos actualizável

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 195408
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sintomas
Especificar keyfield de uma vista define os restantes campos seja actualizável, apesar dos campos não estão a ser definidos para ser actualizável explicitamente.
Resolução
Utilizar um comando DBSETPROP() semelhante à seguinte para desmarcar os campos na vista que não pretende ser actualizável:
   DBSETPROP("TstVw.Fld1","Field","Updatable",.F.)				
também, pode abrir a vista no Estruturador da vista e desmarque os campos que pretende que não seja actualizável do separador de critérios de actualização.
Ponto Da Situação
A Microsoft está a investigar este comportamento e publicará novas informações na base de dados de conhecimento da Microsoft como fica disponível.
Mais Informação

Passos para reproduzir o comportamento

Criar e executar um programa com o seguinte código:
   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")				
se a tabela para o qual está a criar a vista tem uma chave primária, então esse campo está definido como o keyfield automaticamente quando é criada a vista. O seguinte código reproduz este comportamento:
   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 ambos o DBGETPROP() comandos de retorno. T., que significa que ambos os campos são actualizáveis.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 195408 - Última Revisão: 02/23/2014 08:00:41 - Revisão: 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 KbMtpt
Comentários