Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: moessner - Giugno 13, 2021, 01:49:24 pm

Titolo: Campo MEMO anzichè TEXT in SQLITE + LINUXMINT
Inserito da: moessner - Giugno 13, 2021, 01:49:24 pm
Ciao a tutti,
vi chiedo aiuto per questo problema.

Uso SQLITE e LINUX MINT.

Ho collegato un database in cui i campi nome e cognome sono definiti TEXT con DBBrowser.
Se li edito con DBBrowser tutto bene me li fa vedere e modificare mentre se uso Lazarus no .

Al posto del valore del campo nome (es mario) mi fa vedere la scritta MEMO per ogni campo.

Sapete dirmi se c'e una soluzione.

Ho provato con due db e uno lo ho generato di sana pianta ma nulla è cambiato.

Ciao a tutti e grazie
Moessner
Titolo: Re:Campo MEMO anzichè TEXT in SQLITE + LINUXMINT
Inserito da: moessner - Giugno 13, 2021, 01:57:55 pm
Dimenticavo,

Uso i componenti Zeos  Lib ed ho definito il protocollo sqlite-3 nella connessione.

Inoltre ho aperto i vari componenti  e li ho collegati ad una DBgrid

Grazie ancora
Moessner
Titolo: Re:Campo MEMO anzichè TEXT in SQLITE + LINUXMINT
Inserito da: SB - Giugno 14, 2021, 06:34:58 pm
Azzardo una risposta veloce in attesa che qualcuno ti risponda più dettagliatamente

Probabilmente stai usando il componente testuale sbagliato.
Il tipo text è multiriga, quindi andrebbe usato un componente di tipo memo e non di tipo edit (che non saprebbe come visualizzare un testo su più linee)

Se invece il campo deve essere visualizzato in una dbgrid, puoi gestire autonomamente la visualizzazione e l'editing della cella, però non è una cosa semplice ed immediata (si deve scendere a basso livello intercettando appositi eventi, prova a vedere OnSelectEditor).
Ti converrebbe gestire la visualizzazione intercettando l'apposito evento e producendo il testo da visualizzare ricavandolo dal campo (mi sembra che sia OnDrawColumnCell), mentre per l'editing potresti mettere dei controlli esterni alla griglia

Titolo: Re:Campo MEMO anzichè TEXT in SQLITE + LINUXMINT
Inserito da: antoniog - Giugno 14, 2021, 08:18:17 pm
TEXT è per i campi memo e lo puoi anche usare con DBEdit per stringhe meglio usare VARCHAR  anche se non lo trovi nelle opzioni lo puoi sempre digitare.
con Zeos

Se è un TEXT devi posizionarti sul campo in Edita campi e devi selezionare ftMemo nel BlobType nell'ispettore oggetti.
per visualizzare/modificare il contenuto del TEXT devi inserire nella form un DBMemo e collegarlo alla Tabella.Nomecampo
questa soluzione è utile anche con una griglia


Titolo: Re:Campo MEMO anzichè TEXT in SQLITE + LINUXMINT
Inserito da: moessner - Giugno 22, 2021, 10:03:52 am
Grazie a tutti per l'aiuto, infatti ho risolto
Moessner