PDA

View Full Version : Delphi utilizzo variabili in memoria e dastabase


Gianni73na
15-12-2015, 10:43
Ciao,
vorrei dei chiarimenti in merito all'utilizzo di variabili correlate ad un database nella programmazione Delphi e/o in programmazione generale.

Ho un DB nel quale memorizzo i dati da un form e quindi un form con vari oggetti di tipo TRadioButton.
Qual'è il metodo adeguato per memorizzare le scelte selezionate dei TRadioButton.

Mi spiego meglio, il TRadioButton prevede un ischecked o Notischecked (selezionato o meno) quindi una sorta di funzione booleana, ma dato che ne sono vari, ad esempio 5 scelte (o anche di puù) quindi 5 TRadioButton, ho creato un campo nel DB di tipo "char" dove vado ad inserire il carattere "1" se è stato selezionato il primo TRadioButton, 2 per il secondo e così via.
Oppure mi conviene creare un campo di tipo boolean per ogni TRadioButton in modo da avere anche una corrispondenza apparentemente più logica?
E per l'utilizzo della memoria come conviene gestire il tutto?

Grazie per l'attenzione, attendo risposta

Gianni73na
02-01-2016, 19:19
Nessun consiglio in merito alla mia richiesta? :(

cdimauro
03-01-2016, 08:52
Scusami, m'era sfuggito questo tuo commento.
Ciao,
vorrei dei chiarimenti in merito all'utilizzo di variabili correlate ad un database nella programmazione Delphi e/o in programmazione generale.

Ho un DB nel quale memorizzo i dati da un form e quindi un form con vari oggetti di tipo TRadioButton.
Qual'è il metodo adeguato per memorizzare le scelte selezionate dei TRadioButton.

Mi spiego meglio, il TRadioButton prevede un ischecked o Notischecked (selezionato o meno) quindi una sorta di funzione booleana, ma dato che ne sono vari, ad esempio 5 scelte (o anche di puù) quindi 5 TRadioButton, ho creato un campo nel DB di tipo "char" dove vado ad inserire il carattere "1" se è stato selezionato il primo TRadioButton, 2 per il secondo e così via.
Oppure mi conviene creare un campo di tipo boolean per ogni TRadioButton in modo da avere anche una corrispondenza apparentemente più logica?
Se fai delle query su questi campi, è meglio averli separati e, dunque, un boolean per ogni TRadioButton sarebbe la soluzione migliore (e che preferisco).
E per l'utilizzo della memoria come conviene gestire il tutto?
Se vuoi risparmiare memoria puoi usare un intero adeguatamente dimensionato, e gestire tutti i TRadioButton come campi di bit (dove ogni bit rappresenta lo stato di un TRadioButton).

A meno che tu non abbia un'enormità di stati da memorizzare, o esigenze "mission critical", francamente è una strada che mi sento di sconsigliarti, perché un campo booleano non occupa molto, e la struttura del db è molto più semplice e gestibile (oltre che leggibile) rispetto all'uso di campi di bit.

Daniels118
04-01-2016, 14:26
Non conosco delphi, ma in genere i radiobutton lavorano in gruppo, in ciascun gruppo può esserci un solo radiobutton attivo (in alcuni casi nessuno).
Detto questo la soluzione di un singolo campo è buona, bisogna solo scegliere il tipo adeguato, se devi scriverci solo un numero è meglio un tipo numerico, se le scelte sono obbligate un enum potrebbe essere più elegante, mentre il tipo char è quello più versatile.
La soluzione dei campi multipli ha senso per controlli a selezione multipla come i checkbox.

Giusto per informazione, alcuni motori di database (per esempio MyISAM di MySQL) compattano i campi di tipo booleano in modo da occupare meno spazio.