Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: sergio - Gennaio 16, 2021, 05:20:01 pm

Titolo: Caratteri Speciali con Sqlite3
Inserito da: sergio - Gennaio 16, 2021, 05:20:01 pm
Salve a tutti ! Volevo chiedere se esiste un modo per far riconoscere un carattere speciale , tipo " ' " a Sqlite3 che non sia la funzione Replace . Quando viene inserita una stringa con carattere speciale , se non uso la funzione Replace l'inserimento nel database va in errore . Se ad esempio devo inserire  una stringa " dall'alto " l'inserimento dà errore . Grazie in anticipo
Titolo: Re:Caratteri Speciali con Sqlite3
Inserito da: sergio - Gennaio 17, 2021, 05:03:44 pm
Scusate , ho commesso un errore , ho notato che Lazarus mi trasforma una stringa come ' dell'angelo ' in  'dell''angelo ' praticamente inserendo in un campo testo il carattere " ' " me lo raddoppia . Sapete mica come ovviare alla situazione , grazie
Titolo: Re:Caratteri Speciali con Sqlite3
Inserito da: bonmario - Gennaio 17, 2021, 06:16:41 pm
Non sono sicuro di aver capito quello che hai scritto, ma gli apici singoli, credo che vengano raddoppiati solo da GDB per farti vedere il contenuto della variabile.
Se vuoi essere sicuro al 100% del valore di quel campo, scrivilo in un file di testo e poi verifica.

Ciao, Mario
Titolo: Re:Caratteri Speciali con Sqlite3
Inserito da: sergio - Gennaio 17, 2021, 06:25:06 pm
Ciao , grazie per la risposta .Mi spiego , ho un TEdit dove devo inserire una intestazione . Se nell'intestazione viene messo per esempio "Dell'aquila" l'apostrofo prima di essere passato al database viene raddoppiato e il database (SQLITE3) mi da un errore . Se invece vado ad inserire l'apostrofo dopo come modifica del campo , allora lo prende ? Non capisco , forse sbaglio qualche cosa , ma non so cosa . Grazie ! 
Titolo: Re:Caratteri Speciali con Sqlite3
Inserito da: bonmario - Gennaio 17, 2021, 06:30:47 pm
Ripeto: se vuoi essere sicuro che il doppio apice non sia solo quello che fa il debugger per farti vedere il valore del campo, quando sei nel caso in cui credi che lo stia raddoppiando, scrivi il suo valore in un file di testo, e po vai a vedere se c'è un solo apice o 2.

Se ce ne sono effettivamente 2, nel tuo programma, prima di scrivere i dati, usa StringReplace per sostituire il doppio apice con quello singolo.

Ciao, Mario
Titolo: Re:Caratteri Speciali con Sqlite3
Inserito da: sergio - Gennaio 17, 2021, 06:56:15 pm
Grazie Mario, avevi ragione , sono quelli del debug .Ho risolto passando a SQLITE3  non direttamente Edit1.Text ma creando una variabile e trasferendole il valore  e usando questa per l'inserimento sul database SQLITE3 . Grazie mille !  :-[