Fórum Label com Informação do Banco de Dados. #465130
27/12/2013
0
Exemplo: tenho um campo de CNPJ. Quando o cliente digitar um cnpj o label logo abaixo deve trazer a razao social para a propriedade caption desse label.

Lammer Ltda
Curtir tópico
+ 0Posts
27/12/2013
Lammer Ltda
1 2 3 4 5 6 7 8 9 10 11 | procedure TfrmGeraOS.dbCNPJExit(Sender: TObject); var VarCNPJ,VarNM: string; begin ShowMessage(dbCNPJ.Text); VarCNPJ:= '02831426000112'; varNm:= 'select nome from cadcli where cnpj = ' + QuotedStr(VarCNPJ) + ';'; dmCadOS.qryCadCli.SQL.Text:= varNm; dmCadOS.qryCadCli.Open; label2.Caption:= dmCadOS.qryLancOS.FieldByName('nome').AsString; end; |
mas ele retorna o erro: qryCadCli: Field 'id' not found.
o fato é que ´id´ é minha chave primaria porem em nenhum momento busco por ela...
Gostei + 0
28/12/2013
Eduardo Mendonça
Não sei o que é esse "QuotedStr(VarCNPJ)" mais você já tentou retirar o QuotedStr(VarCNPJ) e colocar só o "VarCNPJ" já que ela é uma String
tenta assim
1 2 3 4 5 6 7 8 9 10 11 | procedure TfrmGeraOS.dbCNPJExit(Sender: TObject); var VarCNPJ,VarNM: string; begin ShowMessage(dbCNPJ.Text); VarCNPJ:= '02831426000112'; varNm:= 'select nome from cadcli where cnpj = ' + VarCNPJ; dmCadOS.qryCadCli.SQL.Text:= varNm; dmCadOS.qryCadCli.Open; label2.Caption:= dmCadOS.qryLancOS.FieldByName('nome').AsString; end; |
Gostei + 0
28/12/2013
Lammer Ltda
Não sei o que é esse "QuotedStr(VarCNPJ)" mais você já tentou retirar o QuotedStr(VarCNPJ) e colocar só o "VarCNPJ" já que ela é uma String
tenta assim
1 2 3 4 5 6 7 8 9 10 11 | procedure TfrmGeraOS.dbCNPJExit(Sender: TObject); var VarCNPJ,VarNM: string; begin ShowMessage(dbCNPJ.Text); VarCNPJ:= '02831426000112'; varNm:= 'select nome from cadcli where cnpj = ' + VarCNPJ; dmCadOS.qryCadCli.SQL.Text:= varNm; dmCadOS.qryCadCli.Open; label2.Caption:= dmCadOS.qryLancOS.FieldByName('nome').AsString; end; |
QuoteStr é para colocar as aspas entre a variavel.
a sequencia sql esta correta. O problema acontece quando abro a query.
Ainda fazendo isso continua o erro.
Obrigado assim mesmo e fico no aguardo de alguma informação que me ajude.
Gostei + 0
28/12/2013
Marcos Saffran
1 2 3 4 5 6 7 8 9 10 11 | procedure TfrmGeraOS.dbCNPJExit(Sender: TObject); var VarCNPJ,VarNM: string; begin ShowMessage(dbCNPJ.Text); VarCNPJ:= '02831426000112'; varNm:= 'select nome from cadcli where cnpj = ' + QuotedStr(VarCNPJ) + ';'; dmCadOS.qryCadCli.SQL.Text:= varNm; dmCadOS.qryCadCli.Open; label2.Caption:= dmCadOS.qryLancOS.FieldByName('nome').AsString; end; |
mas ele retorna o erro: qryCadCli: Field 'id' not found.
o fato é que ´id´ é minha chave primaria porem em nenhum momento busco por ela...
Edite os campos da qryCadCli, exclua todos e inclua novamente.
Outra coisa, o procedimento abre o dmCadOS.qryCadCli e busca do dmCadOS.qryLancOS
Gostei + 0
28/12/2013
Lammer Ltda
1 2 3 4 5 6 7 8 9 10 11 | procedure TfrmGeraOS.dbCNPJExit(Sender: TObject); var VarCNPJ,VarNM: string; begin ShowMessage(dbCNPJ.Text); VarCNPJ:= '02831426000112'; varNm:= 'select nome from cadcli where cnpj = ' + QuotedStr(VarCNPJ) + ';'; dmCadOS.qryCadCli.SQL.Text:= varNm; dmCadOS.qryCadCli.Open; label2.Caption:= dmCadOS.qryLancOS.FieldByName('nome').AsString; end; |
mas ele retorna o erro: qryCadCli: Field 'id' not found.
o fato é que ´id´ é minha chave primaria porem em nenhum momento busco por ela...
Edite os campos da qryCadCli, exclua todos e inclua novamente.
Outra coisa, o procedimento abre o dmCadOS.qryCadCli e busca do dmCadOS.qryLancOS
Obrigado a todos pela ajuda mas resolvi da seguinte forma:
1 2 3 4 5 6 7 | begin VarCNPJ:= dbCNPJ.Text; varNm:= 'select * from cadcli where cnpj = ' + QuotedStr(VarCNPJ) + ';'; dmCadOS.qryCadCli.SQL.Text:= varNm; dmCadOS.qryCadCli.Open; lblRS.Caption:= dmCadOS.qryCadCli.FieldByName('nome').AsString; end; |
O erro acontece quando tento selecionar um campo especifico da tabela. quando uso o '*' o erro nao aparece. Meu problema foi resolvido porem gostaria de uma explicacao do motivo desse erro.
Obrigado a todos.
Gostei + 0
17/01/2014
Paulo Nunes
e no seu select você buscava somente o campo nome, com isto ele retorna a mensagem
com o primeiro campo não encontrado no caso o id chave primaria da sua tabela
para pegar somente o campo nome utilize a instrução sql anterior
'select nome from cadcli where cnpj = ' + QuotedStr(VarCNPJ) + ';';
e no componente qryCadCli deixe somente o campo nome
Gostei + 0
17/01/2014
Jaime Santos
Então se você verificar o primeiro código que postou:
1 2 3 4 5 6 7 8 9 10 11 | procedure TfrmGeraOS.dbCNPJExit(Sender: TObject); var VarCNPJ,VarNM: string; begin ShowMessage(dbCNPJ.Text); VarCNPJ:= '02831426000112'; varNm:= 'select nome from cadcli where cnpj = ' + QuotedStr(VarCNPJ) + ';'; dmCadOS.qryCadCli.SQL.Text:= varNm; dmCadOS.qryCadCli.Open; label2.Caption:= dmCadOS.qryLancOS.FieldByName('nome').AsString; end; |
a linha
1 | label2.Caption:= dmCadOS.qryLancOS.FieldByName('nome').AsString; |
1 | label2.Caption:= dmCadOS.qryCadCli.FieldByName('nome').AsString; |
Após postar como resolvido ela está correta, agora tente trocar o * pelo campo nome novamente, não sei também se criou em tempo de execução ou como objeto no seu dmCadOS, caso lá esteja o objeto (componente) dê dois cliques nela e verifique se tem campos carregados na mesma, caso o tenha bastará tirar os que lá estão que não sejam o campo NOME, porém vale lembrar que se a utilizar em outras operações que utilizem estes campos ou até mesmo para aparecer em tabela vale à pena deixar e manter seu 'SELECT *'.
Att.
Rômulo Mayworm
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)