Erro de Query
Galera, tenho um form que adiciona dados em minha tabela, nesse Form eu tenho um campo registro que quando digitado o registro e relaciona com minha tabela de registro e pucha todas as informaçãoes da tabela dnetro de Form do Produto, bom isso era para acontecer né mas quando eu digito o numero do registro e dou em table ele me mostra o seguninte erro.
´ Project Projeto.exe raised exception class EDatabaseError with message ´ SQLQuery_TESTE : field ´NUMEROCONTROLE´ not found´. Process stopped. Use step or Run to continue. ´
OBS: Minha query não da nenhum erro na hora de compilar o programa e já verifiquei a opção Required para False tambem e mesmo assim continua o mesmo erro.
Alguem poderia me ajudar ????
Obrigado
´ Project Projeto.exe raised exception class EDatabaseError with message ´ SQLQuery_TESTE : field ´NUMEROCONTROLE´ not found´. Process stopped. Use step or Run to continue. ´
OBS: Minha query não da nenhum erro na hora de compilar o programa e já verifiquei a opção Required para False tambem e mesmo assim continua o mesmo erro.
Alguem poderia me ajudar ????
Obrigado
Cleiflavio
Curtidas 0
Respostas
Pestana_
11/09/2008
o field NUMEROCONTROLE da query não é diferente ao do banco? ou seja, você alterou este campo na tabela do banco e não atualizou o field na query?
se você ativar a query em tempo de designer ocorre o erro?
qualquer coisa posta novamente.
se você ativar a query em tempo de designer ocorre o erro?
qualquer coisa posta novamente.
GOSTEI 0
Cleiflavio
11/09/2008
o campo NUMEROCONTROLE está igual ao banco, e quando eu ativo a query ela não apresenta nenhum erro, afinal nenhum dos meus componentes de conexão apresentam erros.
Aconteceu assim eu tinha uma relação funcionando perfeitamente quando eu add mais um campo para relacionar ele começou a dar esse erro. então até ai não consegui resolver
CLei
Aconteceu assim eu tinha uma relação funcionando perfeitamente quando eu add mais um campo para relacionar ele começou a dar esse erro. então até ai não consegui resolver
CLei
GOSTEI 0
Pestana_
11/09/2008
remova o field NUMEROCONTROLE do componente e depois add de novo.
você não está utilizando este campo em algum lugar do código no qual não foi definido no Select?
por ex.: se na seleção do Select você não definiu o campo [u:d03b896604]NUMEROCONTROLE[/u:d03b896604]: [color=green:d03b896604][b:d03b896604]select codigo, descrição from nomeTabela[/b:d03b896604][/color:d03b896604]
e em algum lugar do código você está chamando este campo: [color=green:d03b896604][b:d03b896604]query.FieldByName(´NUMEROCONTROLE´).AsInteger;[/b:d03b896604][/color:d03b896604]
ocorrerá o erro quando for executado está linha acima.
de uma olhada no seu fonte!
você não está utilizando este campo em algum lugar do código no qual não foi definido no Select?
por ex.: se na seleção do Select você não definiu o campo [u:d03b896604]NUMEROCONTROLE[/u:d03b896604]: [color=green:d03b896604][b:d03b896604]select codigo, descrição from nomeTabela[/b:d03b896604][/color:d03b896604]
e em algum lugar do código você está chamando este campo: [color=green:d03b896604][b:d03b896604]query.FieldByName(´NUMEROCONTROLE´).AsInteger;[/b:d03b896604][/color:d03b896604]
ocorrerá o erro quando for executado está linha acima.
de uma olhada no seu fonte!
GOSTEI 0
Cleiflavio
11/09/2008
a remoção do Campo NUMEROCONTROLE do meu componente eu já tinha feito e tbm não seu certo.
Bom deixa eu te esclarecer meu codigo para vc entender.
Tenha uma TABELA_PRODUTO - tabela principal
e tbm uma TABELA_REGISTRO
tenho um form onde eu Insiro Produtos que no mesmo possui um relacionamento quando eu digitar o Registro .
Meu dataset está com o seguinte codigo
SELECT TABELA_PRODUTO.*, TABELA_REGISTRO.NOME_TECNICO,
TABELA_REGISTRO.NOME_COMERCIAL, TABELA_REGISTRO.VENCIMENTO_DO_REGISTRO, TABELA_REGISTRO.FABRICANTE, TABELA_REGISTRO.ENDERECO, TABELA_REGISTRO.DATA_VALIDADE, TABELA_REGISTRO.TIPO_DE_USO, TABELA_REGISTRO.ESTERIL, TABELA_REGISTRO.QTD_EMBALAGEM, TABELA_REGISTRO.REPROCESSAMENTO
FROM TABELA_PRODUTO
LEFT OUTER JOIN TABELA_REGISTRO ON TABELA_REGISTRO.N_REGISTRO = TABELA_PRODUTO.N_REGISTRO
No onexite do meu campo registro está com o seguinte codigo para puchara as infromações
DM.SQLQuery_INSERIR_PROD.Close;
DM.SQLQuery_INSERIR_PROD.SQL.Clear;
DM.SQLQuery_INSERIR_PROD.SQL.Add(´ select NOME_TECNICO, NOME_COMERCIAL, VENCIMENTO_DO_REGISTRO, FABRICANTE, ENDERECO, DATA_VALIDADE, TIPO_DE_USO, ESTERIL, QTD_EMBALAGEM, REPROCESSAMENTO from TABELA_REGISTRO where N_REGISTRO =´´´ + numeroregistro.Text + ´´´´ );
DM.SQLQuery_INSERIR_PROD.Open;
venc_registro.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´VENCIMENTO_DO_REGISTRO´).AsString;
validade.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´VALIDADE´).AsString;
tipodeuso.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´TIPO_DE_USO´).AsString;
reprocessamento.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´REPROCESSAMENTO´).AsString;
esterelidade.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´ESTERIL´).AsString;
nometecnico.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´NOME_TECNICO´).AsString;
nomecomercial.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´NOME_COMERCIAL´).AsString;
fabricante.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´FABRICANTE´).AsString;
endereco.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´ENDERECO´).AsString;
qtdembalagem.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´QTD_EMBALAGEM´).AsString;
Quando eu faço um Debug no programa ele da aquele err na seguinte linha do meu campo
DM.SQLQuery_INSERIR_PROD.Open;
Está parecendo que ele não acha a tabela principal e não reconhece o campo acredito que seje isso.
Talvez com os codigos te esclaressa mais para tentar achar o problema.
Se vc puder me ajudar te agradeço muitoo..
Valeuu
Bom deixa eu te esclarecer meu codigo para vc entender.
Tenha uma TABELA_PRODUTO - tabela principal
e tbm uma TABELA_REGISTRO
tenho um form onde eu Insiro Produtos que no mesmo possui um relacionamento quando eu digitar o Registro .
Meu dataset está com o seguinte codigo
SELECT TABELA_PRODUTO.*, TABELA_REGISTRO.NOME_TECNICO,
TABELA_REGISTRO.NOME_COMERCIAL, TABELA_REGISTRO.VENCIMENTO_DO_REGISTRO, TABELA_REGISTRO.FABRICANTE, TABELA_REGISTRO.ENDERECO, TABELA_REGISTRO.DATA_VALIDADE, TABELA_REGISTRO.TIPO_DE_USO, TABELA_REGISTRO.ESTERIL, TABELA_REGISTRO.QTD_EMBALAGEM, TABELA_REGISTRO.REPROCESSAMENTO
FROM TABELA_PRODUTO
LEFT OUTER JOIN TABELA_REGISTRO ON TABELA_REGISTRO.N_REGISTRO = TABELA_PRODUTO.N_REGISTRO
No onexite do meu campo registro está com o seguinte codigo para puchara as infromações
DM.SQLQuery_INSERIR_PROD.Close;
DM.SQLQuery_INSERIR_PROD.SQL.Clear;
DM.SQLQuery_INSERIR_PROD.SQL.Add(´ select NOME_TECNICO, NOME_COMERCIAL, VENCIMENTO_DO_REGISTRO, FABRICANTE, ENDERECO, DATA_VALIDADE, TIPO_DE_USO, ESTERIL, QTD_EMBALAGEM, REPROCESSAMENTO from TABELA_REGISTRO where N_REGISTRO =´´´ + numeroregistro.Text + ´´´´ );
DM.SQLQuery_INSERIR_PROD.Open;
venc_registro.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´VENCIMENTO_DO_REGISTRO´).AsString;
validade.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´VALIDADE´).AsString;
tipodeuso.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´TIPO_DE_USO´).AsString;
reprocessamento.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´REPROCESSAMENTO´).AsString;
esterelidade.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´ESTERIL´).AsString;
nometecnico.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´NOME_TECNICO´).AsString;
nomecomercial.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´NOME_COMERCIAL´).AsString;
fabricante.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´FABRICANTE´).AsString;
endereco.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´ENDERECO´).AsString;
qtdembalagem.Text := DM.SQLQuery_INSERIR_PROD.fieldByName(´QTD_EMBALAGEM´).AsString;
Quando eu faço um Debug no programa ele da aquele err na seguinte linha do meu campo
DM.SQLQuery_INSERIR_PROD.Open;
Está parecendo que ele não acha a tabela principal e não reconhece o campo acredito que seje isso.
Talvez com os codigos te esclaressa mais para tentar achar o problema.
Se vc puder me ajudar te agradeço muitoo..
Valeuu
GOSTEI 0
Digaopachesen
11/09/2008
Bom pelo q vc passou, este erro esta relacionado a fields sim, bom primeiramente verifique se vc tem seu select corretamenteo, exemplo se vc utilizar firebird e ibexpert faca o teste no ibexpert, assim vc tem certeza q o select esta correto, outra tentativa, tente retirar todos os fildes da query, deixe a vazia debug o sistema e veja que ele nao deve dar nenhum erro, caso ele passe pelo open sem dar erro ele ira confirmar que o erro estava relaciona a fields com o nome ou tipo de dado errado, depois disso tenten adicionar os fields novamente, mas assim se vc tiver algum fields faltanto ou a mais realmente ele ira dar este tipo de erro. Esta solucao vai depender de vc, com calma e muita atencao. Espero te ajudado...
GOSTEI 0
Cleiflavio
11/09/2008
Galera, deu certo, exclui meus campos da Query e debuguei ai passou certinho e fez todo relacionamento.
Vlaeuuu Me ajudouu muitoooooo
Vlaeuuu Me ajudouu muitoooooo
GOSTEI 0