Label com Informação do Banco de Dados.
Amigos, como faço para o que o caption de um label assuma um nome do banco de dados?
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.
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
Curtidas 0
Respostas

Lammer Ltda
27/12/2013
Estou usando o seguinte código:
mas ele retorna o erro: qryCadCli: Field 'id' not found.
o fato é que ´id´ é minha chave primaria porem em nenhum momento busco por ela...
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

Eduardo Mendonça
27/12/2013
Oi Bom dia!
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
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
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

Lammer Ltda
27/12/2013
Oi Bom dia!
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
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
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

Marcos Saffran
27/12/2013
Estou usando o seguinte código:
mas ele retorna o erro: qryCadCli: Field 'id' not found.
o fato é que ´id´ é minha chave primaria porem em nenhum momento busco por ela...
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

Lammer Ltda
27/12/2013
Estou usando o seguinte código:
mas ele retorna o erro: qryCadCli: Field 'id' not found.
o fato é que ´id´ é minha chave primaria porem em nenhum momento busco por ela...
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:
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

Paulo Nunes
27/12/2013
Este erro aconteceu porque provavelmente você adicionou vários campos a qryCadCli
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
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

Jaime Santos
27/12/2013
Boa tarde,
Então se você verificar o primeiro código que postou:
a linha não deveria ser
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
Então se você verificar o primeiro código que postou:
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
label2.Caption:= dmCadOS.qryLancOS.FieldByName('nome').AsString;
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