Metodo Open (Recordset - ADO)

Apre un cursore su un oggetto Recordset.

Sintassi

  
recordset.Open Source, ActiveConnection, CursorType, LockType, Options  

Parametri

Origine
facoltativo. Valore Variant che restituisce un oggetto Command valido, un'istruzione SQL, un nome di tabella, una chiamata di stored procedure, un URL o il nome di un file o di un oggetto Stream contenente un oggetto Recordset archiviato in modo permanente.

ActiveConnection
facoltativo. Valore Variant che restituisce un nome di variabile dell'oggetto Connection valido o un valore String contenente i parametri ConnectionString.

CursorType
facoltativo. Valore CursorTypeEnum che determina il tipo di cursore che il provider deve usare all'apertura dell'oggetto Recordset. Il valore predefinito è adOpenForwardOnly.

LockType
facoltativo. Valore LockTypeEnum che determina il tipo di blocco (concorrenza) che il provider deve usare all'apertura dell'oggetto Recordset. Il valore predefinito è adLockReadOnly.

Opzioni
facoltativo. Valore Long che indica come il provider deve valutare l'argomento Source se rappresenta un valore diverso da un oggetto Command o che l'oggetto Recordset deve essere ripristinato da un file in cui è stato salvato in precedenza. Può essere uno o più valori CommandTypeEnum o ExecuteOptionEnum, che possono essere combinati con un operatore OR bit per bit.

Nota

Se si apre un oggetto Recordset da un oggetto Stream contenente un oggetto Recordset salvato in modo permanente, l'utilizzo di un valore ExecuteOptionEnum di adAsyncFetchNonBlocking non avrà alcun effetto e il recupero sarà sincrono e causerà un blocco.

Nota

I valori ExecuteOpenEnum di adExecuteNoRecords o adExecuteStream non devono essere usati con Open.

Osservazioni

Il cursore predefinito per un Recordset ADO è un cursore forward-only di sola lettura che si trova nel server.

L'utilizzo del metodo Open su un oggetto Recordset apre un cursore che rappresenta i record di una tabella di base, i risultati di una query o un oggetto Recordset salvato in precedenza.

Usare l'argomento facoltativo Source per specificare un'origine dati usando una delle opzioni seguenti: una variabile oggetto Command, un'istruzione SQL, una stored procedure, un nome di tabella, un URL o un nome di percorso file completo. Se Source è un nome di percorso file, può essere un percorso completo ("c:\dir\file.rst"), un percorso relativo ("..\file.rst") o un URL (https://files/file.rst).

Non è consigliabile utilizzare l'argomento Source del metodo Open per eseguire una query di azione che non restituisce record, perché non esiste un modo semplice per determinare se la chiamata ha avuto esito positivo. L'oggetto Recordset restituito da tale query verrà chiuso. Per eseguire una query che non restituisce record, ad esempio un'istruzione SQL INSERT, chiamare invece il metodo Execute di un oggetto Command o il metodo Execute di un oggetto Connection.

L'argomento ActiveConnection corrisponde alla proprietà ActiveConnection e specifica in quale connessione aprire l'oggetto Recordset. Se si passa una definizione di connessione per questo argomento, ADO apre una nuova connessione usando i parametri specificati. Dopo aver aperto l'oggetto Recordset con un cursore sul lato client impostando la proprietà CursorLocation su adUseClient, è possibile modificare il valore di questa proprietà per inviare aggiornamenti a un altro provider. In alternativa, è possibile impostare questa proprietà su Nothing (in Microsoft Visual Basic) o NULL per disconnettere l'oggetto Recordset da qualsiasi provider. La modifica di ActiveConnection per un cursore lato server genera tuttavia un errore.

Per gli altri argomenti che corrispondono direttamente alle proprietà di un oggetto Recordset (Source, CursorType e LockType), la relazione degli argomenti con le proprietà è la seguente:

  • La proprietà è di lettura/scrittura prima dell'apertura dell'oggetto Recordset.

  • Le impostazioni delle proprietà vengono usate a meno che non si passino gli argomenti corrispondenti durante l'esecuzione del metodo Open. Se si passa un argomento, esegue l'override dell'impostazione della proprietà corrispondente e l'impostazione della proprietà viene aggiornata con il valore dell'argomento.

  • Dopo aver aperto l'oggetto Recordset, queste proprietà diventano di sola lettura.

Nota

La proprietà ActiveConnection è di sola lettura per gli oggetti Recordset la cui proprietà Source è impostata su un oggetto Command valido, anche se l'oggetto Recordset non è aperto.

Se si passa un oggetto Command nell'argomento Source e si passa anche un argomento ActiveConnection, si verifica un errore. La proprietà ActiveConnection dell'oggetto Command deve essere già impostata su un oggetto Connection o su una stringa di connessione valida.

Se si passa un oggetto diverso da un oggetto Command nell'argomento Source, è possibile usare l'argomento Options per ottimizzare la valutazione dell'argomento Source. Se l'argomento Options non è definito, è possibile che si verifichino prestazioni ridotte, perché ADO deve effettuare chiamate al provider per determinare se l'argomento è un'istruzione SQL, una stored procedure, un URL o un nome di tabella. Se si conosce il tipo di Origine in uso, l'impostazione dell'argomento Options indica ad ADO di passare direttamente al codice pertinente. Se l'argomento Options non corrisponde al tipo di Origine, si verifica un errore.

Se si passa un oggetto Stream nell'argomento Source, non è consigliabile passare informazioni negli altri argomenti. In caso contrario, verrà generato un errore. Le informazioni di ActiveConnection non vengono mantenute quando un oggetto Recordset viene aperto da un oggetto Stream.

L'impostazione predefinita per l'argomento Options è adCmdFile, se nessuna connessione è associata all'oggetto Recordset. Questo di solito si verifica per gli oggetti Recordset archiviati in modo permanente.

Se l'origine dati non restituisce alcun record, il provider imposta le proprietà BOF e EOF su True e la posizione del record corrente non è definita. È comunque possibile aggiungere nuovi dati a questo oggetto Recordset vuoto se il tipo di cursore lo consente.

Dopo aver concluso le operazioni su un oggetto Recordset aperto, usare il metodo Close per liberare tutte le risorse di sistema associate. La chiusura di un oggetto non lo rimuove dalla memoria. È possibile modificarne le impostazioni delle proprietà e aprirlo in un secondo momento tramite il metodo Open. Per eliminare completamente un oggetto dalla memoria, impostare la variabile dell'oggetto su Nothing.

Prima di impostare la proprietà ActiveConnection, chiamare Open senza operandi per creare un'istanza di un oggetto Recordset creato aggiungendo campi all'insieme RecordsetFields.

Se è stata impostata la proprietà CursorLocation su adUseClient, è possibile recuperare le righe in modo asincrono in uno dei due modi. Il metodo consigliato consiste nell'impostare Options su adAsyncFetch. In alternativa, è possibile utilizzare la proprietà dinamica "Elaborazione asincrona gruppo di righe" nell'insieme Properties, ma gli eventi recuperati correlati possono essere persi se non si imposta il parametro Options su adAsyncFetch.

Nota

Il recupero in background nel provider MS Remote è supportato solo tramite il parametro Options del metodo Open.

Nota

Gli URL che usano lo schema http richiamano automaticamente il provider Microsoft OLE DB per Internet Publishing. Per altre informazioni, vedere URL assoluti e relativi.

Alcune combinazioni di valori CommandTypeEnum e ExecuteOptionEnum non sono valide. Per informazioni sulle opzioni che non è possibile combinare, vedere gli argomenti per ExecuteOptionEnum e CommandTypeEnum.

Si applica a

Oggetto Recordset (ADO)

Vedere anche

Esempio dei metodi Open e Close (VB)
Esempio dei metodi Open e Close (VBScript)
Esempio dei metodi Open e Close (VC++)
Esempio dei metodi Save e Open (VB)
Metodo Open (Connection - ADO)
Metodo Open (Record - ADO)
Metodo Open (Stream - ADO)
Metodo OpenSchema
Metodo Save