Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Stored Procedure Oracle
lunedì 18 settembre 2006 - 17.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
fedecheller
Profilo
| Junior Member
129
messaggi | Data Invio:
lun 18 set 2006 - 17:15
Ho demandato la paginazione all'interno di una stored procedure.
Qualcuno conosce un istruzione per andare a puntare direttamente al numero di record selezionato come parametro, senza dovere ciclare su tutti i record attraverso ad un cursore?
Grazie.
MUSIC IS FREE, DRINK ARE TO PAY, STAY TILL LATE BUT SLEEP AWAY
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 18 set 2006 - 23:52
>Ho demandato la paginazione all'interno di una stored procedure.
>Qualcuno conosce un istruzione per andare a puntare direttamente
>al numero di record selezionato come parametro, senza dovere
>ciclare su tutti i record attraverso ad un cursore?
Il cursore credo sia l'ultima opzione.
Io utilizzo vari metodi per paginare, dipende dal contesto.
A volte uso la paginazione Server Side, se uso SQL 2005, c'è già supporto:
http://www.dotnethell.it/tips/Numerare-Record-SQL2005.aspx
Oppure su SQL 2000 con tabelle temporanee:
http://www.dotnethell.it/tips/Numerare-Record-SQL2000.aspx
Oppure tramite SQL con il NOT IN
Oppure via .NET ciclando sul DataSet e creare delle DataView che rappresentano le varie pagine.
Oppure ancora farlo fare automaticamente assegnando il DataSet ad un controllo Gridview.
Oppure su Oracle con il Rownum metodo simile al primo indicato di SQL 2005.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
fedecheller
Profilo
| Junior Member
129
messaggi | Data Invio:
mar 19 set 2006 - 08:54
Il rownum non è male, ma funziona solo con il minore e costringe a fare due query: togliendo prima una parte di record, invertendoli e togliendone un'altra.
Purtroppo non sembra essere il massimo
MUSIC IS FREE, DRINK ARE TO PAY, STAY TILL LATE BUT SLEEP AWAY
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 19 set 2006 - 11:19
>Il rownum non è male, ma funziona solo con il minore e costringe
>a fare due query: togliendo prima una parte di record, invertendoli
>e togliendone un'altra.
>Purtroppo non sembra essere il massimo
Sei sicuro che funziona solo con il minore, a me risulta che tu puoi fare una SELECT e mettere nel WHERE ronum minore e maggior di per creare la pagina.
In ogni caso ti ho presentato altre soluzioni tipo il NOT IN. Se la tabella non è grossa può essere conveniente.
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
fedecheller
Profilo
| Junior Member
129
messaggi | Data Invio:
mar 19 set 2006 - 12:23
Come visto in altri post bisogna usare sottoquery e trattandosi di query complesse su una mole notevole di dati diventerebbero difficilmente gestibili.
La paginazione con stored procedure non è in discussione: il cursore funziona senza probemi, sabbere solo un'ottimizzazione nella speranza di andare a posizionarsi direttamente sul record n di partenza.
A quanto pare in Oracle non sembra esserci soluzione.
MUSIC IS FREE, DRINK ARE TO PAY, STAY TILL LATE BUT SLEEP AWAY
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 19 set 2006 - 17:06
>Come visto in altri post bisogna usare sottoquery e trattandosi
>di query complesse su una mole notevole di dati diventerebbero
>difficilmente gestibili.
"Notevole" cosa significa.
La cosa da fare è (secondo me) riuscire a filtrare quanto più possibile il subset dei dati e poi ordinarli in questo modo il carico è notevolmente minore rispetto a fare operazioni su tabelle da decine di migliaia di records. Io ho utilizzato le Subquery e ho avuto risultati insperati sulla carta.
>La paginazione con stored procedure non è in discussione: il
>cursore funziona senza probemi, sabbere solo un'ottimizzazione
Esatto ma l'uso del cursore lo sconsigliano tutti
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !