Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
jfranco.delphi2 Novato

Registrado: Segunda-Feira, 2 de Julho de 2012 Mensagens: 37 Localização: São Paulo / SP
|
Enviada: Ter Ago 07, 2012 3:12 pm Assunto: Dúvida no comando select [resolvido] |
|
|
Boa tarde a todos,
Alguém poderia me ajudar a descobrir onde está o erro no comando abaixo:
dmDVD.SQLdtsGen.CommandText := 'Select GEN_SEQ from TB_GENERO where GEN_DESCRICAO = ' + cmbxGenero.Text;
Quero executar o select acima, mas obtenho um erro indicando que a coluna Biografia não faz parte da tabela. "Biografia" é o conteúdo de cmbxGenero que é um campo de um formulário. O que eu quero é trazer os registros que contenham no campo GEN_DESCRICAO a palavra Biografia. Fui claro? Obrigado.
Editado pela última vez por jfranco.delphi2 em Qua Ago 08, 2012 7:48 am, num total de 1 vez |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Ago 07, 2012 3:23 pm Assunto: |
|
|
Boa tarde,
Experimente utilizar a função QuotedStr para que o valor de cmbxGenero.Text fique entre aspas simples:
Código: | dmDVD.SQLdtsGen.CommandText := 'Select GEN_SEQ from TB_GENERO where GEN_DESCRICAO = ' + QuotedStr(cmbxGenero.Text); |
Ou utilize parâmetro na instrução SQL (prefiro desta forma):
Código: | dmDVD.SQLdtsGen.CommandText := 'Select GEN_SEQ from TB_GENERO where GEN_DESCRICAO = :GEN_DESCRICAO';
dmDVD.SQLdtsGen.ParamByName('GEN_DESCRICAO').AsString := cmbxGenero.Text; |
Espero que ajude.
_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-venda-são_paulo-residencial |
|
Voltar ao Topo |
|
 |
jfranco.delphi2 Novato

Registrado: Segunda-Feira, 2 de Julho de 2012 Mensagens: 37 Localização: São Paulo / SP
|
Enviada: Ter Ago 07, 2012 5:03 pm Assunto: |
|
|
imex escreveu: | Boa tarde,
Experimente utilizar a função QuotedStr para que o valor de cmbxGenero.Text fique entre aspas simples:
Código: | dmDVD.SQLdtsGen.CommandText := 'Select GEN_SEQ from TB_GENERO where GEN_DESCRICAO = ' + QuotedStr(cmbxGenero.Text); |
Ou utilize parâmetro na instrução SQL (prefiro desta forma):
Código: | dmDVD.SQLdtsGen.CommandText := 'Select GEN_SEQ from TB_GENERO where GEN_DESCRICAO = :GEN_DESCRICAO';
dmDVD.SQLdtsGen.ParamByName('GEN_DESCRICAO').AsString := cmbxGenero.Text; |
Espero que ajude.
Imex,
Obrigado pela ajuda, funcionou perfeitamente. Mas para a solução do problema ficar completa, eu precisaria saber como faço para formatar um campo que tem três letras e três algarismos; só que os três algarismos são gerados a partir de um cálculo. Por exemplo, tenho o código ABC001, o próximo deve ser ABC002; numa das tabelas eu já armazeno o último número gerado.
Então, se eu tiver 8 como último número, o próximo será 9, mas devo gravar 009 e não somente 9. Procurei no help do Delphi, mas não encontrei nada que me desse a resposta.
Você poderia me ajudar nessa questão, também? Muito obrigado.
_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-venda-são_paulo-residencial |
|
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Ago 07, 2012 5:29 pm Assunto: |
|
|
Não sei se entendi corretamente, mas experimente utilizar a função Format mais ou menos como segue:
Código: | var
s: string;
i: integer;
begin
s := 'ABC';
i := 9;
ShowMessage( s + Format('%3.3d', [i]) ); |
Espero que ajude. |
|
Voltar ao Topo |
|
 |
jfranco.delphi2 Novato

Registrado: Segunda-Feira, 2 de Julho de 2012 Mensagens: 37 Localização: São Paulo / SP
|
Enviada: Ter Ago 07, 2012 6:17 pm Assunto: |
|
|
imex escreveu: | Não sei se entendi corretamente, mas experimente utilizar a função Format mais ou menos como segue:
Código: | var
s: string;
i: integer;
begin
s := 'ABC';
i := 9;
ShowMessage( s + Format('%3.3d', [i]) ); |
Espero que ajude. |
Na mosca! Obrigado. |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Ago 07, 2012 8:59 pm Assunto: |
|
|
Blz, agradeço o retorno. |
|
Voltar ao Topo |
|
 |
|