Fórum Identificar campo que nao existe na tabela #370533
17/05/2009
0
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
Curtir tópico
+ 0Posts
18/05/2009
Discorpio
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]
Gostei + 0
20/05/2009
Vagner.oliveira
Gostei + 0
23/05/2009
Discorpio
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)