Italian B4J - Piccolo problemino con caratteri accentati

marco.canta

Active Member
Licensed User
Longtime User
Buongiorno ragazzi, ho fatto un programma in B4J che mi archivia dati in un Db SQLite, e fin qui tutto ok, funziona senza problemi in scrittura, e modifica ... il problema che che se la parola da registrare contiene un accento va in errre es "ò" , "à" , "ù" ... come posso risolvere ?

Questa è l SQL di scrittura :

B4X:
Try
    dbSQL.ExecNonQuery("UPDATE Clienti SET Nome = '" & txtNuovoCliente.Text.trim & "', CodFisc = '" & txtNuovoCodFisc.Text.Trim & "', Indirizzo = '" & txtNuovoClienteIndirizzo.Text.Trim & "', Comune = '" & txtNuovoClienteComune.Text.Trim & "', Provincia = '" & txtNuovoClienteProv.Text.Trim & "', CAP = '" & txtNuovoClienteCAP.Text.Trim & "' WHERE CodFisc = '" & CFCliente & "'")
Catch
    Log(LastException)
End Try
 

LordZenzo

Well-Known Member
Licensed User
Longtime User
prima di passare la stringa come query devi codificarla in utf8, anche il database deve essere codificato in tal modo
oppure puoi evitarlo sostituendo le lettere accentate con lettere normali seguite dal " ` " che non è " ' " questo secondo infatti è usato in sql per delimitare le stringhe
 

marco.canta

Active Member
Licensed User
Longtime User
Grazie del suggerimento LordZenzo, ... ho qualche difficolta' nel codificare la quary in "utf8" e relativo DB
mi puoi dare qualche aiuto o suggerimento ?

Ciao Marco
 

LucaMs

Expert
Licensed User
Longtime User
Il db SQLite dovrebbe già usare utf-8, di default.

Ti consiglierei di usare sempre le versioni 2 dei comandi sql; nel tuo caso ExecNonQuery2.

Inoltre, per vari motivi, tra i quali il debugging (ma non è il principale, il principale sarebbe quello di separare le interfacce grafiche dal resto) usa delle variabili, anziché il contenuto delle view (cioè anziché txtNuovoCliente.Text, usa:
Dim NuovoCliente As String
NuovoCliente = txtNuovoCliente.Text)
 
Top