39 messaggi dal 12 febbraio 2001
Salve a tutto il forum.

Volevo sapere quali sono i parametri che possono essere passati all'apertura di una connessione ad un database tramite SQL. Esempio:
rs.Open sqltext, conn, 3, 3
rs.Open sqltext, conn, 3, 1, 3

ecc.

Grazie

Alfredo Silvano

Alfredo Silvano
28 messaggi dal 13 marzo 2001
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote>quote:<hr height=1 noshade id=quote>
Salve a tutto il forum.

Volevo sapere quali sono i parametri che possono essere passati all'apertura di una connessione ad un database tramite SQL. Esempio:
rs.Open sqltext, conn, 3, 3
rs.Open sqltext, conn, 3, 1, 3

ecc.

Grazie

Alfredo Silvano
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>
DIMMI SE QUESTO TI BASTA... :-)

Metodo Open (Recordset ADO)

Apre un cursore.

Sintassi

recordset.Open Fonte, ConnessioneAttiva, TipoCursore, TipoBlocco, Opzioni

Parametri

Fonte Elemento Variant che restituisce un nome di variabile oggetto Command valido, un'istruzione SQL, un nome di tabella, una chiamata di una stored procedure oppure il nome del file di un recordset protetto (opzionale).

ConnessioneAttiva Elemento Variant che restituisce un nome di variabile oggetto Connection valido o un elemento String contenente i parametri ConnectionString (opzionale).

TipoCursore Valore CursorTypeEnum che determina il tipo di cursore che il provider deve utilizzare quando apre il Recordset (opzionale). Tale valore può essere una delle costanti che seguono. Per ulteriori informazioni, vedere la proprietà CursorType.

Costante Descrizione
adOpenForwardOnly Apre un cursore a scorrimento in avanti (impostazione predefinita).
adOpenKeyset Apre un cursore direzionabile.
adOpenDynamic Apre un cursore dinamico.
adOpenStatic Apre un cursore statico.


TipoBlocco Valore LockTypeEnum che determina il tipo di blocco o concorrenza che il provider deve utilizzare quando apre il recordset (opzionale). Tale valore può essere una delle costanti che seguono. Per ulteriori informazioni, vedere la proprietà LockType.

Costante Descrizione
adLockReadOnly Sola lettura ? Impossibile modificare i dati (impostazione predefinita).
adLockPessimistic Blocco pessimistico record per record - Il provider esegue le operazioni necessarie per assicurare la corretta modifica dei record, in genere vincolando i record nella fonte dati in fase di modifica.
adLockOptimistic Blocco ottimistico record per record - Il provider utilizza il blocco ottimistico, vincolando i record solo quando viene chiamato il metodo Update.
adLockBatchOptimistic Aggiornamento batch ottimistico - Richiesto per la modalità di aggiornamento batch in contrapposizione con la modalità di aggiornamento immediato.


Opzioni Valore Long che indica come il provider deve valutare l'argomento Fonte se questo non rappresenta un oggetto Command o che il recordset deve essere ripristinato da un file in cui era stato precedentemente salvato (opzionale). Tale valore può essere una delle varianti che seguono. Per ulteriori informazioni sulle prime cinque costanti dell'elenco, vedere la proprietà CommandType.

Costante Descrizione
adCmdText Indica che il provider dovrà valutare Fonte come una definizione in formato testo di un comando.
adCmdTable Indica che ADO dovrà generare una query SQL per restituire tutte le righe della tabella indicata nell'argomento Fonte.
adCmdTableDirect Indica che il provider dovrà restituire tutte le righe della tabella indicata nell'argomento Fonte.
adCmdStoredProc Indica che il provider dovrà valutare Fonte come una stored procedure.
adCmdUnknown Indica che il tipo di comando nell'argomento Fonte non è conosciuto.
adCommandFile Indica che il Recordset fissato o salvato dovrà essere ripristinato dal file indicato nell'argomento Fonte.
adExecuteAsync Indica che Fonte dovrà essere eseguito in modalità asincrona.
adFetchAsync Indica che dopo il fetch della quantità iniziale specificata nella proprietà CacheSize deve essere eseguito il fetch asincrono sulle righe rimanenti.


Osservazioni

Utilizzando il metodo Open su un oggetto Recordset si apre un cursore che rappresenta record di una tabella di base, i risultati di una query o un recordset salvato in precedenza.

Utilizzare l'argomento Fonte opzionale per specificare una fonte dati con una variabile oggetto Command, un'istruzione SQL, una stored procedure, un nome di tabella o il percorso completo di un file.

L'argomento ConnessioneAttiva corrisponde alla proprietà ActiveConnection e specifica durante quale connessione aprire l'oggetto Recordset. Se si passa una definizione di connessione per questo argomento, verrà aperta una nuova connessione utilizzando i parametri specificati. È possibile modificare il valore di questa proprietà dopo avere aperto il recordset per inviare aggiornamenti a un altro provider. In Microsoft Visual Basic è anche possibile impostare questa proprietà su Nothing per disconnettere il recordset da qualsiasi provider.

Per gli altri argomenti che corrispondono direttamente alle proprietà di un oggetto Recordset, ovvero Fonte, TipoCursore e TipoBlocco, la relazione tra gli argomenti e le proprietà è la seguente:

La proprietà è di lettura/scrittura prima che l'oggetto Recordset venga aperto.


Le impostazioni delle proprietà vengono utilizzate a meno che non si passino gli argomenti corrispondenti durante l'esecuzione del metodo Open. Se si passa un argomento, questo avrà la priorità sull'impostazione della proprietà corrispondente e l'impostazione verrà aggiornata con il valore dell'argomento.


Dopo l'apertura dell'oggetto Recordset queste proprietà diventano di sola lettura.
Nota Nel caso di oggetti Recordset la cui proprietà Source è impostata su un oggetto Command valido la proprietà ActiveConnection è di sola lettura anche se l'oggetto Recordset non è stato aperto.

Se si passa un oggetto Command nell'argomento Fonte insieme a un argomento ConnessioneAttiva, si verificherà un errore. La proprietà ActiveConnection dell'oggetto Command deve essere già impostata su un oggetto Connection o su una stringa di connessione.

Se non si passa un oggetto Command nell'argomento Fonte, sarà possibile utilizzare l'argomento Opzioni per ottimizzare la valutazione dell'argomento Fonte. Se l'argomento Opzioni non è definito, le prestazioni potranno risultare ridotte dal momento che è necessario effettuare chiamate al provider per determinare se l'argomento è un'istruzione SQL, una stored procedure o un nome di tabella. Se si conosce il tipo di Fonte in uso, impostando l'argomento Opzioni si indicherà ad ADO di andare direttamente al codice che interessa. Se l'argomento Opzioni non corrisponde al tipo Fonte, si verificherà un errore.

Il valore predefinito per l'argomento Opzioni sarà adCommandFile se non vi è alcuna connessione associata al recordset. Questo è il caso tipico per gli oggetti Recordset salvati.

Se la fonte dati non restituisce alcun record, il provider imposterà le proprietà BOF e EOF su True e la posizione del record corrente non verrà definita. È ancora possibile aggiungere nuovi dati a questo oggetto Recordset vuoto se il tipo di cursore lo consente.

Una volta concluse le operazioni su un oggetto Recordset aperto, utilizzare il metodo Close per rendere disponibili le risorse di sistema associate. Se si chiude un oggetto, questo non verrà rimosso dalla memoria. Sarà infatti possibile modificarne le impostazioni delle proprietà e utilizzare il metodo Open per riaprirlo in un secondo momento. Per eliminare completamente un oggetto dalla memoria impostare la variabile oggetto su Nothing.

Chiamare Open senza operandi e prima che la proprietà ActiveConnection venga impostata per creare un'istanza di un recordset creato accodando campi all'insieme Recordset Fields.


3 messaggi dal 31 maggio 2001
Ottima espilcazione del metodo!
Ho da porti una domanda a cui nessuno
ha saputo ancora rispondermi... :)

Ho creato un motore di ricerca che
invece di creare dinamicemente la query sql
da codice asp, richiama una soted procedure:

-------
SQL = "Exec sp_ricerca_categorie @id=" & categoria

Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.PageSize = 1
Rs.Open SQL, SQL_CONNECTION, adOpenKeyset, , adCmdStoredProc
Rs.AbsolutePage = pg

Totale = Rs.RecordCount
-------

La domanda mia domanda e' questa: perche'
non funziona la paginazione e, cosa piu'
importante, Totale (@@rowcount) restituisce
-1 anche se ho utilizzato il cursore
adOpenKeyset?

Ti ringrazio anticipatamente.

Francesco Donnarumma

31 messaggi dal 06 settembre 2002
Beh vedi il RecordCount restituisce -1 quando
utilizzi il cursore forward-only


prova con
Rs.CursorLocation = 3'adUseClient
Rs.CursorType = 3'adOpenStatic
Rs.ActiveConnection = Con
'Apri il record set.
Rs.Open Sql

fammi sapere
saluti GdM

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.