Fórum Erro Field Name is Missing #55317
22/02/2006
0
Tenho a seguinte rotina para verificar e evitar cadastrar dois clientes com o mesmo nome:
if HouveDuplicacaoChave(´CLIENTES´, ´NOME´, AnsiUpperCase(DBEdit2.text))then
ShowMessage(´Esse nome já existe´);
Function HouveDuplicacaoChave(VTabela, VCampo, VValor: String) : boolean;
begin
SQLDataSet1.Close;
SQLDataSet1.Close;
SQLDataSet1.CommandText := ´SELECT UPPER(´+VCampo+´) FROM ´+VTabela+´ WHERE UPPER(´+VCampo+´)=:VDado´;
SQLDataSet1.Params[0].AsString := VValor;
SQLDataSet1.Open;
Result := not SQLDataSet1.IsEmpty;
end;
Vários usuários utilizam o sistema, mas, em alguns deles (pequeno percentual), ocorre o seguinte ao se executar a rotina:
´SQLDataSet1 field name is missing´
O sistema utiliza Firebird 1.5.
Não é em todo computador que ocorre. A única relação que consegui estabelecer entre as máquinas onde o erro ocorre, é que todas tem o Interbase instalado.
Será que é algum conflito com o Interbase? Ou será que minha função tem algum erro?
Obrigado.
if HouveDuplicacaoChave(´CLIENTES´, ´NOME´, AnsiUpperCase(DBEdit2.text))then
ShowMessage(´Esse nome já existe´);
Function HouveDuplicacaoChave(VTabela, VCampo, VValor: String) : boolean;
begin
SQLDataSet1.Close;
SQLDataSet1.Close;
SQLDataSet1.CommandText := ´SELECT UPPER(´+VCampo+´) FROM ´+VTabela+´ WHERE UPPER(´+VCampo+´)=:VDado´;
SQLDataSet1.Params[0].AsString := VValor;
SQLDataSet1.Open;
Result := not SQLDataSet1.IsEmpty;
end;
Vários usuários utilizam o sistema, mas, em alguns deles (pequeno percentual), ocorre o seguinte ao se executar a rotina:
´SQLDataSet1 field name is missing´
O sistema utiliza Firebird 1.5.
Não é em todo computador que ocorre. A única relação que consegui estabelecer entre as máquinas onde o erro ocorre, é que todas tem o Interbase instalado.
Será que é algum conflito com o Interbase? Ou será que minha função tem algum erro?
Obrigado.
Valdirdill
Curtir tópico
+ 0
Responder
Posts
23/02/2006
Vinicius2k
O sistema utiliza Firebird 1.5.
Não é em todo computador que ocorre. A única relação que consegui estabelecer entre as máquinas onde o erro ocorre, é que todas tem o Interbase instalado.
Será que é algum conflito com o Interbase? Ou será que minha função tem algum erro?
Você deve estar com problemas de conflito de cliente. A GDS32.DLL do IB não é a mesma que a GDS32.DLL gerada pelo FB para compatibilidade.
Como você usa dbExpress, configure o [b:03177620ef]SQLConnection -> VendorLib[/b:03177620ef] para [b:03177620ef]fbclient.dll[/b:03177620ef], caso ainda não esteja. Porque se não estiver, o que está acontencendo é que a sua aplicação está tentando executar a instrução usando a DLL cliente do IB.
Responder
Gostei + 0
23/02/2006
Valdirdill
[quote:0e6d3759e9=´valdirdill´]O sistema utiliza Firebird 1.5.
Não é em todo computador que ocorre. A única relação que consegui estabelecer entre as máquinas onde o erro ocorre, é que todas tem o Interbase instalado.
Será que é algum conflito com o Interbase? Ou será que minha função tem algum erro?
Você deve estar com problemas de conflito de cliente. A GDS32.DLL do IB não é a mesma que a GDS32.DLL gerada pelo FB para compatibilidade.
Como você usa dbExpress, configure o [b:0e6d3759e9]SQLConnection -> VendorLib[/b:0e6d3759e9] para [b:0e6d3759e9]fbclient.dll[/b:0e6d3759e9], caso ainda não esteja. Porque se não estiver, o que está acontencendo é que a sua aplicação está tentando executar a instrução usando a DLL cliente do IB.[/quote:0e6d3759e9]
É estava mesemo como GDS32.dll.
Obrigado, vou mudar e acompanhar para ver se o erro não ocorre mais.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)