Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB 6] Chiusura oggetto recordset

    cioa ragassuoli,
    ho un dubbio che mi attanaglia la mente e non mi fa dormire la notte... (esagerato....):
    Se ho un oggetto di tipo recordset (ottenuto facendo una query su un db), questo viene chiuso automaticamente settandolo a nothing, oppure per non lasciare il resultset aperto sul db è bene prima fare
    rs.close
    e poi fare set
    rs = nothing

    ?

    grazie per le risposte e ciao

  2. #2
    direi che è assolutamente meglio fare
    rs.close
    set rs = nothing

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    ok, che sia meglio lo credo anch'io, ma se non lo faccio il resultset sul db resta aperto?

    Spiego meglio il problema. Mi sono trovato da gestire una applicazione in visualbasic 6, in cui ci sono una marea di funzionalità che si interfacciano con un db, ed utilizzano connessioni e recordset, ma non vi è traccia (se non molto rara) di chiusure di recordset e/o di connessioni. Solo oggetto = nothing.
    Ora , lavorando in java so che è obbligatorio prima chiudere e poi eventualmente porre a null i vari oggetti, altrimwenti sul db Oracle mi restano connessioni e resultset aperti e 'appesi' lì in attesa di un timeout (e dopo un pò oracle manda tutti a cagare).

    Ed inoltre ho un altro dubbio: se io chiudo la connessione, in automatico tutti i resultset associati vengono chiusi (almeno in jdbc è così), giusto? In questa applicazione vi sono delle funzioni che restituiscono ad una pagina asp un recordset, e poi fanno connessione = nothing. Poi nella pagina asp avviene la scansione di questo recordset.
    A questo punto se l'annullamento della connessione determina in automatico la chiusura della stessa e quindi degli eventuali recordset, come cavolo fa la pagina asp a scandire un resultset chiuso? Allora devo arguire che la connessione non viene chiusa facendo conn = nothing.
    Ma se è così, come mai Oracle non mi manda mai a cagare, visto che resterebbero una marea di connessioni e resulset aperti?

  4. #4
    la questione non è così semplice cmq si è meglio chiudere con rs.close prima di distruggere l'istanza dell'oggetto infatti come dici tu il server database non ha coscenza se il nostro oggetto che prende i dati esiste ancora o meno ma si aspetta di si finchè non si chiude, il resultset sul db resta attivo appesantendo il server.

    per quanto riguarda la connessione non è del tutto giusto i recordset non devo obbligatoriamente essere connessi ad una origine dati ecco perchè consiglio sempre di chiudere tutti gli oggetti
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.