9 messaggi dal 05 dicembre 2005
Tipo di errore:
ADODB.Recordset (0x800A0CB3)
Il set di record corrente non supporta i segnalibri. Potrebbe trattarsi di una limitazione del provider o del tipo di cursore selezionato.


-> La riga di codice a cui fa riferimento l'errore è
RS.AbsolutePage = valore

Non mi fa accede al metodo dell'oggetto recordset.

Come devo settare il mio IIS? Penso siano problemi di protezione. Fatemi sapere se avete avuto lo stesso problema e se lo avete risolto. Io ci sono dietro due giorni...

ciao ale.
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
No, alepiras79!

IIS non c'entra.

Dipende dal tipo di cursore utilizzato.

Prima imposti il cursore appropriato con:

RS.CursorType = adOpenStatic

Da inserire prima dell'apertura del recordset.

Poi apri il recordset con:

RS.Open tuastringaSQL

Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
9 messaggi dal 05 dicembre 2005
vitosulla ha scritto:
No, alepiras79!

IIS non c'entra.

Dipende dal tipo di cursore utilizzato.

Prima imposti il cursore appropriato con:

RS.CursorType = adOpenStatic

Da inserire prima dell'apertura del recordset.

Poi apri il recordset con:

RS.Open tuastringaSQL

Ciao


Ecco il codice

...
Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = conn
RS.CursorType = adOpenStatic
RS.PageSize = 5
sql = "SELECT * from db_news"
RS.Open sql
RS.AbsolutePage = pg
...
In questo modo mi da l'errore del topic.


Di seguito ho seguito ciò che mi hai detto :
...
Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = conn
RS.CursorType = adOpenStatic
RS.PageSize = 5
sql = "SELECT * from db_news"
RS.AbsolutePage = pg
RS.Open sql
...

Purtroppo mi da l'errore:
...
Tipo di errore:
ADODB.Recordset (0x800A0E78)
L'operazione non è consentita se l'oggetto è chiuso.

fa riferimento a
-> RS.AbsolutePage = pg
...
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Intanto non puoi specificare la proprietà .AbsolutePage prima di aver aperto il recordset.

Perciò, tanto per fare chiarezza, la sequenza da seguire è:

1) Definisci l'istanza dell'oggetto Recordset;
2) Imposti la proprietà CursorType;
3) Imposti la proprietà PageSize (per il numero di recods da visualizzare);
3) Apri il recordset;
4) Specifichi la pagina che vuoi visualizzare impostando la proprietà AbsolutePage.

Ora, dimmi, che database stai utilizzando? Non sarà mica Access'97?
Perchè se è così, prima di impostare il CursorType devi impostare la proprietà .CursorLocation=adUseClient.
Ripeto, però, solo se il DB è una versione di Access inferiore alla 2000.

Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
9 messaggi dal 05 dicembre 2005
vitosulla ha scritto:
Intanto non puoi specificare la proprietà .AbsolutePage prima di aver aperto il recordset.

Perciò, tanto per fare chiarezza, la sequenza da seguire è:

1) Definisci l'istanza dell'oggetto Recordset;
2) Imposti la proprietà CursorType;
3) Imposti la proprietà PageSize (per il numero di recods da visualizzare);
3) Apri il recordset;
4) Specifichi la pagina che vuoi visualizzare impostando la proprietà AbsolutePage.

Ora, dimmi, che database stai utilizzando? Non sarà mica Access'97?
Perchè se è così, prima di impostare il CursorType devi impostare la proprietà .CursorLocation=adUseClient.
Ripeto, però, solo se il DB è una versione di Access inferiore alla 2000.

Ciao


Grazie per aver risposto prontamente :).

Dunque, io sto usando un database generato e gestito con Access 2002.

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Inetpub\wwwroot\alessandro\sviluppo\news\db.mdb")

1) RS = Server.CreateObject("ADODB.Recordset")
2) RS.CursorType = adOpenStatic
3) RS.PageSize = 5
4) RS.Open sql, conn, adOpenKeyset
5) RS.AbsolutePage = pg

Dove pg un valore passato dallapagina precedente...
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
alepiras79 ha scritto:

4) RS.Open sql, conn, adOpenKeyset <----||


E la miseria.....
Togli quel parametro adOpenKeyset dall'apertura del recordset!

Ripeto: Devi utilizzare un cursore STATICO e lo imposti, come ti ho già ripetuto, prima dell'apertura del recordset.

Dopo di chè devi soltanto aprirti il recordset senza impostarti un nuovo cursore.
Quindi:
Set conn = Server.CreateObject("ADODB.Connection") 
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Inetpub\wwwroot\alessandro\sviluppo\news\db.mdb") 

1) RS = Server.CreateObject("ADODB.Recordset") 
2) RS.CursorType = adOpenStatic 
3) RS.PageSize = 5 
4) RS.Open sql, conn
5) RS.AbsolutePage = pg 

Ciao

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
9 messaggi dal 05 dicembre 2005
vitosulla ha scritto:
alepiras79 ha scritto:

4) RS.Open sql, conn, adOpenKeyset <----||


E la miseria.....
Togli quel parametro adOpenKeyset dall'apertura del recordset!

Ripeto: Devi utilizzare un cursore STATICO e lo imposti, come ti ho già ripetuto, prima dell'apertura del recordset.

Dopo di chè devi soltanto aprirti il recordset senza impostarti un nuovo cursore.
Quindi:
Set conn = Server.CreateObject("ADODB.Connection") 
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Inetpub\wwwroot\alessandro\sviluppo\news\db.mdb") 

1) RS = Server.CreateObject("ADODB.Recordset") 
2) RS.CursorType = adOpenStatic 
3) RS.PageSize = 5 
4) RS.Open sql, conn
5) RS.AbsolutePage = pg 

Ciao


Effettivamente ho incollato una riga sbagliata, mannaggia il copia ed incolla  .

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.