Sqlite problema com mais dois tipos de campo

Estou com problema mais dois tipos de campo tipo valor e tipo blob

1- Tipo valor no textfield lostfocus coloco:
If Me.Text <> “” Then
Me.Format = “\R\$###,##0.00”
End If

Na hora de gravar na tabela achei que teria de tranformar em numrico.

Dim valor As Double

valor = cdbl(meutextfield)
Dim linha As New DatabaseRecord
linha.Column(“salario”) = vvalor // Aqui ele retorna erro.
Se eu mando como String ele no d erro mais tambm no grava nada.
Obs: depurei o programa e notei que ele esta passando a String assim: 23,55 sera que tem que passar 23.55? um palpite.

2- Campo blob. Estava passando uma string para o campo blob no d erro mais no grava nada.

Fiz um teste e o problema que tenho que passar 23.55 e no 23,55 tem alguma funo ou metodo no Xojo que eu consiga trocar a virgula pelo ponto ?

Bom, vamos por partes:

  1. Campo valor: Voc no precisa, ou melhor, no deve converter. Fica assim:
    rec.Column("valor") = self.txtValor.Text

Minha coluna na base de dados est definida como Decimal(12,2). Ele grava com pontos mesmo, assim: 23.55, 100.50 ou 127.00

  1. Campo blob: Este campo espera um dado binrio, no uma string. Se voc quiser guardar apenas o caminho de algum arquivo de imagem ou de som, deve usar um campo varchar normal no banco de dados. Se for usar um campo blob mesmo, eu uso a tcnica de fazer um “encoding” na imagem, transformando ela de binrio para uma string de base64. Para ler a figura do banco, precisa converter de volta.

Voc encontra a definio do mtodo aqui: http://documentation.xojo.com/index.php/EncodeBase64 (Codificar)
E aqui: http://documentation.xojo.com/index.php/DecodeBase64 (Decodificar)

Tem como gravar a imagem diretamente, mas confesso que no uso esta tcnica, pois acompanhei vrias discusses no frum, e sempre apontavam problemas, geralmente relacionados ao banco ficar muito pesado.

Se voc tiver dificuldades tentando desta forma, informe aqui, que posso te passar um exemplo mais completo. Mas se for este o caso, diga na mensagem o que voc est tentando gravar.

T +

Blz, mais existe esta funo de troca de carcter dentro de uma String ?

No Visual Fox pro eu usaria o StrTran

x = “30/04/1990”
StrTran(x,"/","-")

// Conteudo de X = “30-04-1990”

Teria alguma funo parecida ?

Sim, existe. Chama-se Replace.

http://documentation.xojo.com/index.php/Replace

Tudo ficou blz, acho que me equivoquei no campo do tipo blob , o que eu quero campo que armazena texto do tamanho indeterminado, no Visual fox seria um campo memo no Sqlite qual seria este tipo de campo ?

Cauby, pelo que sei do SQLite, ele teoricamente não limita e não trunca os dados de um campo texto. Você pode definir o campo como apenas Text, sem limites entre parênteses, ou definir como Text(10), e gravar uma frase com 200 caracteres. Pelo que diz a documentação, ele vai gravar os seus 200 caracteres do mesmo modo. Faça o teste, e se puder, poste o resultado. Pode ser útil para outros usuários…

campo do tipo Text mesmo nao coloquei tamanho.
Deu tudo certo.

Mais uma vez obrigado.

Ok Cauby. Precisando, estou a disposio.

Abrao