ciao
mi sto facendo una classe per accedere al db.
volevo chiedere se in un metodo, genero un command e successivamente un data reader...
se chiudo il command il data reader continua ad esistere??
![]()
ciao
mi sto facendo una classe per accedere al db.
volevo chiedere se in un metodo, genero un command e successivamente un data reader...
se chiudo il command il data reader continua ad esistere??
![]()
Cosa intendi per "chiudere il command"? :master:
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
si scusa, volevo dire chiudere la connessione...
in pratica avevo fatto una funzione che restituiva un data reader. quindi pre creare il data reader aprivo una connessione, poi facevo il necessario per caricae un data reader e poi chiudevo la connessione e successivamente ritornavo il data reader.
bene, se chiudevo la connessione non mi funzionava, mentre se la lascio aperta il data reader ritornato dalla funzione funziona.
Sarebbe più corretto agire in altro modo, creando la connessione esternamente al metodo che restituisce il DataReader, passando appunto la connessione come parametro affinché il metodo possa utilizzarne il riferimento per poter creare ed aprire il DataReader da restituire, che dovrebbe comunque essere chiuso il prima possibile.Originariamente inviato da impennata
bene, se chiudevo la connessione non mi funzionava, mentre se la lascio aperta il data reader ritornato dalla funzione funziona.
Se non c'è una gestione oculata di DataReader e connessioni, rischi di lasciarla sospesa o aperta troppo a lungo; un DataReader aperto sulla connessione impedisce qualsiasi altra interrogazione dati, quindi va sempre chiuso il prima possibile, sfruttando i costrutti "try...finally" a garanzia di ciò, oppure il costrutto "using".
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
infatti non volevo occupare troppo la risorsa.
il tutto volevo incapsularlo in un metodo, ma ho visto che non è possibile, devo aprire, usare il datareader e poi chiuderlo.
Ma non potendolo fare in un unica funzione devo invocare un metodo di chiusura della connessione.
giusto???
E' anche possibile sfruttare il parametro CommandBehavior del metodo ExecuteReader relativo all'oggetto Command utilizzato: c'è un flag CloseConnection che consente di chiudere la connessione quando viene chiuso il DataReader.Originariamente inviato da impennata
Ma non potendolo fare in un unica funzione devo invocare un metodo di chiusura della connessione.
Per maggiori informazioni, leggere MSDN.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
cosa fa in particolare?
hai unnlink chiaro dove mi posso informare?
grazie
Te l'ho postato sopra... controlla attentamente.Originariamente inviato da impennata
cosa fa in particolare?
hai unnlink chiaro dove mi posso informare?
Avere sottomano anche la Microsoft .NET SDK Documentation, installata con l'SDK del Framework, è indispensabile.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...