Newsgroup: it.comp.lang.delphi
Titolo: Controllo dati inseriti

Salve a tutti,
come posso controllare l'esatto inserimento dei dati in due DBEdit collegate 
ad un database Access?
La prima DBEdit deve memorizzare una data nel formato dd/mm/yyyy mentre la 
seconda solo una stringa quindi escludendo tassativamente numeri e caratteri 
speciali.
Se nel campo data inserisco una data non valida, all'uscita viene sollevata 
un'eccezione con il conseguente blocco del programma.
Come mi devo comportare?
Grazie a tutti

Ci sono due metodi o usi il componente Mask Edit che trovi nella palette
Additional ;
se clicchi con il pulsante destro del mouse sul componente che hai posto
sulla form trovi un help per inserire la maschera per le date.
In questo modo non hai però il collegamento automatico per il Post ossia la
registrazione che devi perciò gestire a mano ad es con FieldByName ecc...
Oppure gestisci l'evento OnExit del componente collegato al db ossia la
DBEdit con una struttura
Try ... Except
Forse questa seconda è la migliore.
Ciao
Mario (
mari...@inwind.it
)
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Francesco ha scritto:

Presumo che il tuo problema sia il messaggio di eccezione in inglese, io 
ho risolto il problema traducendolo.
Se copi la unit SysConst.pas all'interno della cartella del tuo progetto 
e cerchi SInvalidDate, troverai la resourcestring che viene utilizzata 
per sollevare l'eccezione, ti basta tradurla e aggiungere la unit al tuo 
progetto.
Spero di esserti stato utile
Massimo

 Forse questa seconda č la migliore.


 Però non saprei come gestire l'errore col il blocco Try....except
è spiegato nella guida in linea.
A.

Il try ... except funziona cosě
try
  StrData := DateToStr (dbEditMiaData.Text) ;
except
  Beep (500,600) ; // 500 č la frequenza 600 č ladurata
  on E: Exception do ShowMessage ("Errore la data inserita non č valida");
  dbEditMiaData.Text := '' ;
end;
Nel caso invece del test di soli caratteri forse č meglio che tu usi
MaskEdit .
Ciao
Mario - (
mari...@inwind.it
)


 end;
Intervengo per un chiarimento,come hai fatto ad evincere che l' errore 
generato dal compilatore sia propio quello che poi tu segnali nella 
ShowMessage.
Ciao Jack

 >
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

ad un database Access?
Un'altra soluzione potrebbe risiedere nell'utilizzo delle librerie Jedi
(
http://homepages.borland.com/jedi/jvcl/
), che contengono, all'interno
della sezione "Jv Data Controls", diversi componenti che potrebbero fare
al caso tuo. Ad esempio, JvDBMaskEdit è una mask edit data-aware, oppure i
componenti JvDBDatePickerEdit e JvDBDateEdit sono mask edit data-aware
orientati alle date, che, come consigliato da Mario Piva...
   >Alternativamente ci sono i datetine picker o il Month calendar.
permettono di inserire date semplicemente cliccando sul loro pulsante e
scegliendo la data da un calendario che compare in un menù a tendina.
  Vorrei precisare che il mio scopo non è fare pubblicità gratuita alle
Jedi, ma ritengo che se c'è qualcuno che ha già pensato a risolvere dei
problemi e decide di mettere le soluzioni a disposizione di tutti, per di
più gratuitamente e open source, perchè non usarle? :-) (Eventuali
commenti e critiche a questo mio "sfogo" sono ben accetti).
  Saluti. Sisma
--- posted by geoForum on 
http://www.delphiedintorni.it

...scegliendo la data da un calendario che compare in un menù a tendina.
In realtà non è un menù ma è un pannello. Scusate il lapsus... :-)


 ...
Non avendo ancora Delphi...,da utilizzatore VB verifico sempre 
l'eccezzione sollevata tramite il numero di errore associato Err.Number
e tramite una gestione centralizzata degli errori genero una MessageBox 
  adeguata al tipo di errore occorso,praticamente non do mi per scontato 
il tipo di errore anche se fosse l'unico possibile, esiste anche in 
delphi la possibilita' di reperire per un determinato errore, Numero di 
riga, Numero errore,descrizione dell' errore, servirebbe anche in caso 
di errore non gestito per generare un file di .log
Grazie per la risposta. Ciao Jack

riga, Numero errore,descrizione dell' errore, 
Per come sono strutturate le eccezioni, sia in Delphi che in altri
linguaggi come C/C++, Java, ecc... non ha senso parlare di "Numero
errore", a meno di non inserire proprietà specifiche nelle proprie
classi derivate da Exception (come fanno i componenti della suite IBX
con EIBInterbaseError, mappando il codice d'errore restituito dal
server). La descrizione dell'errore è normalmente il messaggio
dell'eccezione e per quanto riguarda il numero di riga, ha senso
(evidentemente) solo se si sta debuggando, visto che non è pensabile
distribuire le informazioni di debug presenti nell'eseguibile, per un
uso del programma in produzione.  Per isolare il contesto del codice
d'errore, io sono solito loggare l'ingresso e l'uscita da ogni
funzione/procedura/metodo e, in caso di errore, loggare insieme al
messaggio la classe e il relativo metodo.  Siccome tendo a ripartire
il codice per compiti *molto* specifici e quindi costruire i metodi,
le funzioni e le procedure le più corte possibili, è facile
individuare il contesto di righe dell'errore.

N O N H A I A N C O R A D E L P H I ? ? ? ? ?
Iinviami un indirizzo fisico di posta tipo
Mario Piva
via Lido 72
Casalecchio BO
a 
mari...@inwind.it
.
e ti spedisco una versione di delphi.
Quale Vuoi. ? ? ? [Delphi 2005]
Cosě potrai apprezzare a pieno anche tu Delphi.
Ciao
Mario - (
mari...@inwind.it
)


e ti spedisco una versione di delphi.
Stai scherzando vero ?

 N O N H A I A N C O R A D E L P H I ? ? ? ? ?
:-) :-)
Hai ragione,le riviste del settore stanno pubblicando gli ambienti Turbo 
Delphi Explorer quindi tra Dicembre e Gennaio avro'quello che serve.
 >ti spedisco una versione di delphi.
 >Quale Vuoi. ? ? ? [Delphi 2005]
Non dire cosi' perche' ad Andrea scoppia una extrasistola ;-)
Ciao Jack

Fare una copia di una versione trovata su una rivista non mi sembra una
grande frode.
Ma se Andrea Laforgia dice NO sarà NO.
Ciao
Mario (
mari...@inwind.it
)


 grande frode.
Caro Mario Piva, evita il sarcasmo. Tu hai parlato di una copia di Delphi
e questo è illegale e non lo dice Andrea Laforgia, lo dice la legge.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Tu hai parlato di una copia di Delphi
Certo, io oggi ho comprato a 9.90 il numero 108 di "Io Programmo" dove ho
trovato il disco che contiene Turbo C# explorer.
Da qualche parte devo avere altre versioni di delphi sempre trovate su
riviste.
Dico solo che fare copie di dischi che si trovano in riviste comprate a meno
di 10 euro non mi sembra una cosa illegale.
Ma se lo è, come non detto.
Ciao
Mario - (
mari...@inwind.it
)


di 10 euro non mi sembra una cosa illegale.
Be', sarebbe il caso che te ne accertassi prima.  Quelle edizioni di
Delphi o Turbo C# sicuramente posseggono un tipo di licenza
compatibile con quel tipo di distribuzione, ma ciò non implica che
siano "free", ovvero liberamente distribuibili.  Non nego che possano
esserlo, ma prima di distribuire il software, bisogna accertarsi che
si è nei termini di legge.

 si è nei termini di legge.
Guaderò
