Fórum Identificar campo que nao existe na tabela #370533

17/05/2009

0

O que eu quero ja existe no Delphi so que nao sei como utilizar-lo.

Quando habilitamos uma tabela e um determinado campo nao existe ou foi alterado o nome, o delphi apresenta o erro dizendo que o campo nao existe e informa o nome do campo errado como no exemplo abaxo:

Tenho uma tabela com o campo [b:61babd824d]cliente[/b:61babd824d], mas no componente ´DBText1´ o campo da tabela esta escrito errado (cli por exemplo) o delphi acusa que o componente DBText1: campo cli nao existe.

Gostaria de saber como fazer isso via programação, pois estou refazendo um programa que possui diversos erros nos campos e estou renomeando alguns, so que após compilado, se tem um campo com nome errado ele nao mostra o erro so não conecta no banco.


Vagner.oliveira

Vagner.oliveira

Responder

Posts

18/05/2009

Discorpio

Bom dia Vagner.Oliveira.

Simples, não sei qual componente que voce está utilizando, porém a maioria deles possui um método para localizar o campo na tabela. Vamos tomar por base o componente TIBQuery da palheta Interbase.

    IBQuery1.FindField(´Cliente´);


A opção acima no entanto retornará o campo Cliente, como voce quer testar se o campo existe, então voce ainda tem esta opção:

[code]
var I: Integer;
begin
for I := 0 to Pred(IBQuery1.FieldCount) do
if IBQuery1.Fields[I].Name = ´Cliente´ then
....
end;
[code]


Responder

Gostei + 0

20/05/2009

Vagner.oliveira

tentei usar a funcao que passou, mas nao entendi como ele ira funcionar. Estou usando o Ztable (Zeos componente)


Responder

Gostei + 0

23/05/2009

Discorpio

Bom dia Vagner.Oliveira.

Explicando passo a passo:

code]

var I: Integer; // Definindo um contador para o loop For
begin
{ Para cada valor de I que começa com 0 até o Predecessor
do número de campos faça }
for I := 0 to Pred(ZTable.FieldCount) do

{ Se o Nome do Campo na ordem do índice I for igual a
´Cliente´ então execute o código abaixo }
if ZTable.Fields[I].Name = ´Cliente´ then
....
end;

[/code]

O código acima pode ser colocado em qualquer evento OnClick ou qualquer procedure ou function definida por você.

Além disso, eu não conheço muito bem os métodos dos componentes Zeos, mas acredito que tanto o ZTable, ZQuery e ZDataSets devem ter como classe ancestral a classe TDataSet, se assim for, os métodos Fields[] e FieldCount estão presentes no mesmo.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar