142 messaggi dal 06 settembre 2002
Salve a tutti e grazie anticipatamente per il prezioso aiuto che mi darete,

il mio problema è il seguente:

effettuo una query su un DB di grandi dimensioni e per tale motivo i tempi di risposta sono molto lunghi, per diminuirli vorrei fare in modo di estrarre da DB o comunque di inserire nell'oggetto recordset soltanto il numero di Records che mi servono per la pagina da visualizzare, c'è un metodo per fare ciò? Vorrei evitare di dover tirare fuori tutti i record ogni volta che eseguo la query......

Grazie,
Isira
428 messaggi dal 06 settembre 2002
se devi fare una paginazione fai una ricerca fra gli script o nel forum "paginazione", se invece ti serve solo un pagina con un determinato numero di record (ad esempio 30 record) nella tua query metti
SELECT TOP 30 * from TABELLA

§§################################################§§
-La gente da buoni consigli se non può più dare il cattivo esempio-
§§################################################§§
142 messaggi dal 06 settembre 2002
Si devi fare una paginazione, ho fatto la ricerca come mi hai consigliato però non posso usare la proprieta AbsolutePage del recordset perchè il mio provider non lo supporta.

Non c'è nessun'altra alternativa?

Grazie,
Isira
Non sono convinto dell'idea della paginazione in quanto la query comunque avviene su tutto il recordset, quindi il risparmio di tempo e' solo quello materiale del caricamento dei record in una pagina. Comunque non credo che il tuo provider non supporti absolutepage, mi pare che un messaggio di errore di questo tipo sia collegato a un utilizzo errato dei cursori. Se posti il tuo script penso si possa sistemare

Ciao

Alberto Biancardo
142 messaggi dal 06 settembre 2002
Questo è lo script (la parte che mi genera l'errore):


oRs= CreateRecordset(Session("ORACONN"));

oRs.CursorType = 3 //Dovrebbe corrispondere con AdOpenStatic
oRs.PageSize= maxrec;
oRs.Open(SqlString);
oRs.AbsolutePage= startPage; //E' qui che va in errore, la variabile startPage e un numero intero da 1 in su.


Purtroppo utilizzo come Provider MSDAORA, l'OLE DB provider per ORACLE e mi sembra di aver capito leggendo dei documenti su msdn che il tipo di cursore che accetta è quello AdOpenStatic (correggetemi se sbaglio).


Grazie mille;
Isira
823 messaggi dal 05 agosto 2002
Devi usare il ROWNUM, tipo:

SELECT * FROM table WHERE ROWNUM <10

Perchè non hai postato la domanda nel forum dei db, visto che è specifica?

Stick to your guns.
Formazione su MySQL o Firebird? Contattami!
142 messaggi dal 06 settembre 2002
Perchè pensavo si risolvesse con l'oggetto recordset e non con la stringa sql.

Grazie adesso proverò a fare come mi hai detto.

Isira

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.