Fórum Label com Informação do Banco de Dados. #465130

27/12/2013

0

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.

Lammer Ltda

Lammer Ltda

Responder

Posts

27/12/2013

Lammer Ltda

Estou usando o seguinte código:

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...
Responder

Gostei + 0

28/12/2013

Eduardo Mendonça

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
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;
Responder

Gostei + 0

28/12/2013

Lammer Ltda

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
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;

Ler Mais...



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.
Responder

Gostei + 0

28/12/2013

Marcos Saffran

Estou usando o seguinte código:

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...

Ler Mais...




Edite os campos da qryCadCli, exclua todos e inclua novamente.

Outra coisa, o procedimento abre o dmCadOS.qryCadCli e busca do dmCadOS.qryLancOS
Responder

Gostei + 0

28/12/2013

Lammer Ltda

Estou usando o seguinte código:

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...

Ler Mais...




Edite os campos da qryCadCli, exclua todos e inclua novamente.

Outra coisa, o procedimento abre o dmCadOS.qryCadCli e busca do dmCadOS.qryLancOS

Ler Mais...




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.
Responder

Gostei + 0

17/01/2014

Paulo Nunes

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
Responder

Gostei + 0

17/01/2014

Jaime Santos

Boa tarde,

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;
não deveria ser
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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar