Percorra todos os campos do dataset e verifique, para cada campo, se a opção pfInKey está definida na propriedade ProviderFlags. Se estiver, é pq o campo faz parte da chave. Essa é a maneira verificando via dataset. Agora verificando via banco, vc tem que checar no SGBD que vc usa qual(is) é(são) a(s) tabela(s) do catálogo que armazena(m) essa informação pra vc consultar.
Boa sorte. Sds. ________________________________ To: delphi-br@yahoogrupos.com.br From: [EMAIL PROTECTED] Date: Thu, 10 Apr 2008 19:06:39 -0300 Subject: [delphi-br] URGENTE - Como retornar Campos Primário do DataSet Olá amigos Delphianos, Preciso enviar para minha tela de pesquisa os campos chaves e o nome da tabela de Datasource. Tentei o seguinte: procedure chamarLog(DS : Dataset); var Tabela : TTable; Campo: String; begin if (DS.State in [dsInsert, dsEdit) then begin Campo := DS.Fields[0].FieldName; //retornar o campo chave Tabela := (DS as TTable).TableName); //retornar o nome da tabela end; end; Só que dessa forma o o campo chave poderá ser mais de um e poderá estar em qq posição da tabela. Alguém poderia ajudar-me nesse problema ? Agradeço, Jorge Ericsson S. Pinheiro Analista/Projetista de Sistemas Ericsson Sistemas e Soluções http://www.jericsson.com.br 61 9227.4785 / 3967.6172 Brasília - DF [As partes desta mensagem que não continham texto foram removidas] _________________________________________________________________ Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! É GRÁTIS! http://www.msn.com.br/emoticonpack