It is currently 9 June 2025, 6:07 Advanced search

Limit e offset su select

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Limit e offset su select

Postby gerald » 4 July 2024, 8:10

Salve,

ho un progetto in cui devo recuperare dei dati tramite una select into collection. Ho la necessità di utilizzare per questa query le funzionalità LIMIT e OFFSET, è possibile replicare su IndeFoundation questi due comportamenti?

Grazie.
gerald
 
Posts: 3
Joined: 4 July 2024, 7:16

Re: Limit e offset su select

Postby Tony » 4 July 2024, 14:50

Abbiamo fatto un'assistenza tempo fa, dall'IDE purtroppo non è possibile, ma puoi scrivere "a manina" la query, ripeto questa era una situazione di un po di tempo fa, magari è cambiata qualcosa, sarebbe utile anche a me!
Tony
 
Posts: 494
Joined: 13 November 2013, 11:37
Location: Messina

Re: Limit e offset su select

Postby ljwilson » 4 July 2024, 15:12

ljwilson
 
Posts: 787
Joined: 26 November 2013, 14:15

Re: Limit e offset su select

Postby f.faleschini » 4 July 2024, 15:50

la SELECT TOP 50 * FROM TABLE si ottiene come dice ljwilson

database.maxros = 50
e poi fai la tua select

il maxrows è un settaggio temporaneo che viene usato per la prossima query, se fai 2 query dopo aver settato max rows solo la prima userà il limite.

è un po' bizzarro ma quando ci prendi la mano diventa normale.

ciao!
f.faleschini
 
Posts: 1075
Joined: 12 April 2017, 9:09

Re: Limit e offset su select

Postby Tony » 4 July 2024, 16:26

Si va benissimo per il TOP ma nel post si parlava di OFFSET
Tony
 
Posts: 494
Joined: 13 November 2013, 11:37
Location: Messina

Re: Limit e offset su select

Postby d.termini » 5 July 2024, 6:52

Dovresti fare una cosa simile a quella che si fa per la sync parziale, però è un po' complicata da fare e devi avere un modo per ordinare i dati per capire l'ultimo documento restituito dalla query precedente.
d.termini
 
Posts: 1656
Joined: 13 November 2017, 8:41

Re: Limit e offset su select

Postby f.faleschini » 5 July 2024, 7:00

Ah chiedo scusa,

per OFFSET credo sarebbe da chiedere una nuova implementazione del tipo

miodb.maxRows = 5
miodb.offsetRows= 1000 // nuovo parametro che funziona come maxRows ma per offset

che quindi genera una query con OFFSET 1000 che torna 5 record.

TIpo:
[T-SQL]
SELECT * FROM ORDINI
ORDER BY DATA DESC
OFFSET 1000 ROWS
FETCH NEXT 5 ROWS ONLY

Se lo scopo di OFFSET è usare la potenza del RDBMS devi al momento farti la query a mano e usare SQLQuery che torna un RecordSet.

Oppure ovviamente fai un foreach e salti le prime N righe, ma facendo così devi tirar su tutti i dati.

Io personalmente non ho mai usato OFFSET, però mi rendo conto che è potente, e per come è fatto Instant Developer, che se non erro agli inizi si chiamava Instant Database (o è vera o me la sono inventata), ci starebbe che supportasse OFFSET.

CIao!
f.faleschini
 
Posts: 1075
Joined: 12 April 2017, 9:09


Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: Felix263 and 23 guests