VB6 NAO EXIBE VALOR DEPOIS DA VIRGULA

JONATHANSTECKER 02/03/2011 15:09:52
#367047
Na verdade o erro é com o Numeric, estive pesquisando, várias pessoas já se incomodaram com ele.
E não achei nenhuma explicação exata!

Não vejo problema em usar o valor do tipo Double (precisão de 15 dígitos decimais),
e no código arredondar esse valor com um Format. (Minha opnião)
QUASAR23 02/03/2011 15:32:25
#367051
E se no caso se sua varial que receber os dados for Double ou real sera q elas aceitariam os 500.25 que vem do banco de dados
como nosso amigo comentou ai... voce pode usar uma das duas para o banco mesmo, tbm nunca tive problema para fazer calculos matemáticos com essas variaveis mais tenta essa ultima ai...blz


abraço.
JONATHANSTECKER 02/03/2011 15:36:56
#367052
Citação:

Bom, fiz o que você me sugeriu e tanto com o tipo de dados [Ô]double precision[Ô] quanto no [Ô]real[Ô] funcionou perfeitamente.



[txt-color=#0000f0]QUASAR23[/txt-color], o teste com o tipo Double e Real já foi feito, e funcionou!
Por isso afirmei que o problema estava no Numeric.
QUASAR23 02/03/2011 15:41:24
#367054
Entendi mais o q ele fez foi salvar os dados com real e double, ai deu certo, quer saber se ele salvar como numeric mesmo e a varialvel q receber os dados for real ou double, so para ver se vem o 500 ou 500.25, por que as variaveis q estão recebendo so recebe o 500 e não 500.25 so queria saber se isso da certo.

DADOBEER 02/03/2011 18:14:19
#367062
Bom, descobri que o problema está na minha string de conexão com o banco ou no driver OleDb do PostgreSQL, pois fiz uns testes usando um ADODC e funcionou usando o driver ODBC, mas quando substitui, no próprio ODBC, pela string de conexão que estou usando no VB deu o mesmo problema.

Seguem abaixo algumas informações da minha conexão:

Driver OleDb: PgOleDb-1.0.0.20

String de conexão: [Ô]Provider=PostgreSQL OLE DB Provider;Data Source=localhost;location=Teste;User ID=postgres;password=senha;[Ô]

Alguém tem uma sugestão ou usa string ou o driver diferente? Gostaria de continuar usando via código e não usar controles datacontrol.

Desde já agradeço e obrigado pela força, pessoal!
Ainda na batalha!
CHARLESTON10 02/03/2011 18:40:19
#367063
Guarda o valor do banco de dados em uma variavel

Dim valor As Variant
valor = rst![Valor]

text1.text = format(valor,[Ô]currency[Ô])



Exemplo 2

Dim valor As Variant
valor = 500.02
text1.text = format(valor,[Ô]currency[Ô])


resultado = R$ 500,02 <<

Aqui funcionou
tenta ai




DADOBEER 02/03/2011 18:55:36
#367067
Valeu Charles!

Já tinha feito esse teste e o retorno é o mesmo. Na verdade o problema está na minha conexão, conforme coloquei acima. Ou a minha String precisa ser mudada ou o PgOleDb 1.0.0.20 está com problemas, pois já vem do banco de dados sem os dígitos. Funcionou quando usei um ADODC conectando via ODBC, mas não queria fazer esse tipo de conexão.

Vamos continuar até conseguir. Obrigado!
ARCADYUM 02/03/2011 19:55:54
#367070
Você pode tentar também o txtVal.Text = FormatNumber(rst![Valor],2)
DADOBEER 03/03/2011 00:08:27
#367092
Boa noite Arcadyum,

Já testei todas as maneiras de formatação. O que acontece é que os dados estão vindo do banco inteiros (verificado por debug). Descobri que o problema está na conexão com o banco. Ou a string que estou usando (descrita na mensagem acima) está errada ou o PgOleDb do PostgreSQL está com problema. Mesmo assim, valeu a ajuda!

Ainda na briga! rsrsrs
QUASAR23 03/03/2011 09:28:33
#367113
Bom cara ja foi tantas tentativas que bom achou o erro. Mais eu não manjo de PostgeSQL mais achei um tutorial com esse tipo de conexão via código segue o link ai blz

Detalhe ele tah trabalhando com vb.net 2005 nesse tutorial creio eu q na parte de string de conexão não mude muita coisa,

http://www.macoratti.net/07/11/vbn5_pg2.htm

e so para complementar achei uma solução no forum do Imaster segue o link

http://forum.imasters.com.br/topic/294850-resolvido-vb6-com-postgres-via-adodb/page__s__a5b5fcbe2dd061883f1f583cf3f3959c

espero q resolva ai blz...

até mais
Página 4 de 5 [41 registro(s)]
Tópico encerrado , respostas não são mais permitidas