Selecao DevMedia QUERO SER PRIME

Fórum Ajuda #327883

22/08/2006

0

Olá, estou meu enferujado em programação Delphi e preciso que alguém me dê uma mãozinha.

Estou desenvolvendo uma aplicação que irá gravar em um campo VARCHAR de uma tabela uma letra, C para as pessoas contribuintes e N para as pessoas não contribuintes.

Eu preciso que seja mostrado em relatórios ou em outros componentes as palavras CONTRIBUINTE e NÃO CONTRIBUINTE.

Não tenho noção de como poderei fazer isso.

Obrigado


Lschmitk

Lschmitk

Responder

Posts

22/08/2006

Rjun

Você pode criar um campo calculado no seu dataset que recebe o texto que você quer exibir ou, o que acho melhor, retornar isso direto do seu SELECT. Não sei que banco de dados você está usando, mas no SQL Server um CASE resolveria o problema.


Responder

Gostei + 0

22/08/2006

Lschmitk

Estou usando Firebird como banco de dados


Responder

Gostei + 0

22/08/2006

Rjun

Acho que o Firebird tem case. No SQL Server ficaria da seguinte forma:

SELECT 
  CAMPO1,
  CAMPO2,
  CASE CAMPO
    WHEN ´C´ THEN ´CONTRIBUINTE´
    WHEN ´N´ THEN ´NAO CONTRIBUINTE´
  END AS SITUACAO
FROM
  TABELA


No Firebird deve ficar algo parecido com isso.


Responder

Gostei + 0

22/08/2006

Marco Salles

Acho que o Firebird tem case


tem sim , veja em :

http://www.sqlmagazine.com.br/colunistas.asp?artigo=Colunistas/LucianoPimenta/02_casefirebird.asp

Estou usando Firebird como banco de dados


e voce esta usando quais os componentes de acesso: ADO , dbExpress ???

[b:863d2a2941]Exemplo com clientDataset Usando DbExpress[/b:863d2a2941]

procedure TForm1.Button1Click(Sender: TObject);
begin
cdsCIDADES.close;
cdsCIDADES.CommandText:=´SELECT ID_Cidades,ESTADOS,DATA,CASE ESTADOS ´+
´when 1 then ´+QuotedStr(´minas´)+
´when 2 then ´+QuotedStr(´Rio´)+
´else ´+QuotedStr(´Erro no Cadastro´)+
´end as Estado ´+
´from CIDADES´;
cdsCIDADES.Open;
edit1.Text:=cdsCIDADES.FieldByName(´Estado´).AsString;
end;



Responder

Gostei + 0

23/08/2006

Lschmitk

Estou usando os componente da paleta InterBase para acessar a base de dados, mas precisamente o componente IBDataSet.

As dicas anteriores funcionaram muito bem para a exibição dos dados, agora como eu deverei proceder para salvar os dados no banco de dados...

Valeu, pela ajuda...


Responder

Gostei + 0

24/08/2006

Tnaires

Olá
Se vc puder, é melhor não usar a paleta Interbase para conexão com banco de dados Firebird. Já tive problemas com máquinas rodando ao mesmo tempo o ibserver e o fbserver. Tive que fechar o ibserver pro sistema rodar normalmente.
Uma ótima alternativa é o MDO - Mercury Database Objects. http://www.mdolib.com/
Abraços


Responder

Gostei + 0

24/08/2006

Rjun

Não sei como você está fazendo para salvar, mas no momento em que você for passar o parâmetro você verifica o valor e passa ´C´ ou ´N´. Não tem mistério nenhum.


Responder

Gostei + 0

24/08/2006

Marco Salles

As dicas anteriores funcionaram muito bem para a exibição dos dados, agora como eu deverei proceder para salvar os dados no banco de dados...


Não sei como você está fazendo para salvar, mas no momento em que você for passar o parâmetro você verifica o valor e passa ´C´ ou ´N´. Não tem mistério nenhum.


Acredito que o amigo esta se ebarrando em um detalhe , e talves os colegas não tenham entendido a dificuldade do lschmitk.

Ao usar as dicas anteriores , um campo aparece na Grid com as caracteristicas CONTRIBUINTE e NÃO CONTRIBUINTE. So que este campo que aparece na grid acho que ele é por natureza ReadOnly=True e não tem jeito ,[b:16a7de8939]Acho eu[/b:16a7de8939], de mudar isso...

Mesmo que voce defina este campo em tempo de projeto , usando a Sql
a nivel de projeto e usando o [b:16a7de8939]Add all Fields[/b:16a7de8939] no seu dataset , este campo sera , [b:16a7de8939]acredito eu[/b:16a7de8939] , sera ReadOnly=true

Posso estar enganado ....Mas acho que não estou não :lol: :lol:

A saida tradicional para isto é usar o [b:16a7de8939]OngetText e OnsetText[/b:16a7de8939]... Uma outra linha de raciocineo que faz exatamente isto que voce precisa

Pesquise aqui no site , se voce tiver alguma dúvida volte a postar.


Responder

Gostei + 0

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

Aceitar