VB6 NAO EXIBE VALOR DEPOIS DA VIRGULA

DADOBEER 01/03/2011 19:45:04
#366930
Boa noite,

Estou usando VB6 pra acessar uma base de dados PostgreSQL 9.0. A conexão está funcionando bem, porém tenho um campo do tipo Numeric(8,2) que na base de dados possui informações com decimais, mas o textbox os mostra apenas com 00 no final. Já formatei de várias maneiras (exemplos abaixo) e continuam aparecendo dessa maneira.

txtVal.Text = Format(rst![Valor], [Ô]###,##0.00[Ô])
txtVal.Text = Format$(rst![Valor], [Ô]currency[Ô])
txtVal.Text = Format(CCur(rst![Valor]), [Ô]###,##0.00; ###,##0.00;0;
\u\l\o[Ô])

Campo (banco de dados): Valor = 500.25
Saída desejada textbox: txtVal = 500,25
Saída atual textbox: txtVal = 500,00

Alguém tem uma luz pra me fornecer? Obrigado!
JONATHANSTECKER 01/03/2011 19:56:47
#366932
Se você não formatar esse valor, simplesmente atribuir ele à caixa de texto, como fica? 500.25?

txtVal.Text = rst![Valor]
DADOBEER 01/03/2011 20:13:43
#366935
Valeu Jonathan!
Já tinha tentado dessa maneira também e fica sem nem apresentar os centavos, valor inteiro. Dessa maneira:

Saída: txtVal = 500
JONATHANSTECKER 01/03/2011 20:18:17
#366937
Na verdade fiz essa pergunta para confirmar minha tese.
Você poderá dar 500 tipos de Format, nenhum deles irá chegar no resultado esperado.
Pois o erro ocorre na busca desse valor, e não na inserção dele na caixa de texto.

Tente buscar esse valor como string.
DADOBEER 01/03/2011 20:20:29
#366939
Como assim? Estou fazendo um [Ô]Select * from Clientes[Ô] e trazendo todos os campos.
Desculpe minha ignorância, mas não entendi o que você quis dizer.

Mais uma vez obrigado!
JONATHANSTECKER 01/03/2011 20:39:20
#366940
Talvez a ignorância seja minha, é que eu trabalho com DataSet tipado,
para fazer uma busca eu faço assim: dr.GetString(0).

Isso que quis dizer, para tentar buscar esse valor como string.
Pois pelo que percebo ele está se perdendo na busca, como se estive buscando um valor Integer.
DADOBEER 01/03/2011 20:44:11
#366941
Estou usando VB6 e ADO pra acessar a base de dados. Segue minha string de conexão:

Public cnnPG As New ADODB.Connection
Dim rst As New ADODB.Recordset

cnnPG.Open [Ô]Provider=PostgreSQL OLE DB Provider;Data Source=localhost;location=Teste;User ID=postgres;password=senha;[Ô]
rst.CursorLocation = adUseClient
rst.Open [Ô]Select * from Clientes[Ô], cnnPG, adOpenKeyset, adLockOptimistic, adCmdText

Por favor, dê uma olhada e veja se existe algo errado. Obrigado!
JONATHANSTECKER 01/03/2011 20:55:38
#366943
Não vejo nada de errado não!

Só para teste, você já tentou alterar o tipo de Numeric para Double?
DADOBEER 01/03/2011 21:05:24
#366944
Bom, fiz o que você me sugeriu e tanto com o tipo de dados [Ô]double precision[Ô] quanto no [Ô]real[Ô] funcionou perfeitamente. O que acontece com o tipo [Ô]numeric[Ô]. Será problema com o PostgreSQL? O problema é que esses dois campos não tenho controle dos tamanhos, etc. Alguma sugestão?

Desde já agradeço sua atenção e ajudas!
JONATHANSTECKER 01/03/2011 21:16:19
#366945
Leia o manual do tipo Numeric.
Numeric Types

Acredito que irá funcionar usando Numeric(2), assim você informa a precisão dele!
JONATHANSTECKER 01/03/2011 21:44:12
#366950
Funcionou?
Página 1 de 5 [41 registro(s)]
Tópico encerrado , respostas não são mais permitidas