Newsgroup: it.comp.lang.visual-basic
Titolo: invertire un Recordset

Un saluto a tutto il NG.
Ho la necessita' di stampare i valori contenuti in un Recordset invertendone
l'ordine. I valori provengono da un DB access. Mi  spiego meglio :) dunque:
lo scopo del programma e' graficare gli ultimi 10 valori contenuti nel DB .
Quindi la query e' "SELECT top 10 FROM DATI order by ID desc".
A questo punto il problema e' stamparli nel corretto ordine. Quindi con il
valore piu' recente (con l'ID maggiore) a destra.
Ho pensato di creare un nuovo ADODC.Recordset temporaneo e copiarci dentro i
valori invertendoli ma non so da dove partire.
Ringrazio chi mi aiutera' !!! Saluti
Totem

ODER BY Valore_piů_recente DESC, ID Desc
Dovrebbe essere tutto quello di cui hai bisogno.
Scorrendo il recordset dal piů alto al piů basso,
avrai prima il valore piů vecchio e poi il valore piů
nuovo.
-- 
Saluti
Andrea Moro

> ODER BY Valore_più_recente DESC, ID Desc
mmmm, non credo di capire.
Ordinando i valori per ID DESC ottengo gli ultimi 10 valori e fin qui mi sta
bene.
Ma poi come faccio a riordinarli per averli nel giusto ordine ?
La query mi da gli ultimi 10 valori  MA SONO INVERTITI. A me servono gli
ultimi 10 valori dellla tabella ma nel giusto ordine.
avendo un'elenco di ID da 1 a 15 e facendo un select top 10 from dati order
by ID DESC ottengo gli ID dal 15 al 5. Ora li devo stampare dal 5 al 15 !!!
Come faccio ?

 ha scritto nel messaggio
news:bg3cl7$dvj$
1...@newsfeed.cineca.it


 7               BAC
Continuo a non capire :(
Se volessi i record 5, 6 e 7 come dovrei fare ?
E dico 5,6,7 e non 7,6,5 ...

 ha scritto nel messaggio
news:bg3a4c$9vr$1...@newsfeed.cineca.it...

la butto li:
tuo_rs.movelast
do until tuo_rs.bof
    msgbox tuo_rs!des
    tuo_rs.MovePrevious
loop
poco elegate ma dovrebbe funzionare... tanto cmq sia devi scorrere il
recordset per la stampa, quindi iniziare dall'inizio o dalla fine non
dovrebbe comportare alcun problema...
ciao
Dade

 loop
Non sapevo che si potesse fare un MovePrevius...
Solo che li devo passare ad un  MSChart e facevo con
MSChart1.DataSource = recordset
Ora provo a passargli valore per valore altrimenti devo popolare un
recordset temporaneo.
Cmq tnks per il Move Previus. Avevo guardato molti esempi ma non e' usato
spesso....
tnkz tnkz
Totem

Ma hai letto bene quello che ti ho scritto?? Allora io nel secondo
esempio ti ho riportato un ordinamento Asc (mi sono pure
sbagliato) perchè l'ho fatto a mano ... se passi l'ordinamento
desc ottieni quello che vuoi.
Se proprio non riesci, manda solo un db access con una tabella
di esempio già popolata con qualche dato all'indirizzo di posta
che vedo quello che vuoi ottenere, perchè così allora o sono io
che non capisco ...
-- 
Saluti
Andrea Moro


 Con quale DB lavori?
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

 ha
scritto:

  Francamente non ho capito!!!!
  Lui chiede :
  Data la seguente tabella
ID
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
...
...
 98
 99
100
 
 Vuole prendere i record che vanno da 91 a 100 e li vuole visualizzare così :
  90
  91
  92
  ...
  ...
  100
Ovviamente ho usato un id numerico sequenziale per semplicità !


 Con quale DB lavori?
Era roba buona, almeno? ;-)
-- 
ciao, hal

Si ma ci ha aggiunto anche che vuole gli ultimi record
di una tabella ordinati per un altro campo.
-- 
Saluti
Andrea Moro

 ciao, hal


 di una tabella ordinati per un altro campo.
Sbagli... ho detto che voglio gli utltimi 3 valori ordinati per ID.
data una tabella con ID
1 2 3 4 5
voglio la tabella
3 4 5
Se facessi un order by ID desc e prendessi i primi 3 valori otterrei
5 4 3
e non
3 4 5
Capito ora ?

   ehm...LoL
Vedo che il VB ha degli effetti strani sulle persone :)
Per fortuna che programmo java...

 Per fortuna che programmo java...
  Già, java mantiene svegli, forse perchè serviva a programmare le macchinette
del caffè in origine, impiego al quale tornerà presto con l'avvento di .NET.


 del caffè in origine, impiego al quale tornerà presto con l'avvento di
.NET.
Mha, chi vivra' vedra'. Io non mi fido...
I prodotti MS hanno solo qualche lieve difetto tra cui l'obbligo alla scelta
del SO da usare. Per il resto sono OK.
Bye

 
SELECT * FROM Dati WHERE Id IN (SELECT TOP 3 Id FROM DATI ORDER BY Id 
DESC) ORDER BY Id
-- 
Ciao, Mauro CB.

 DESC) ORDER BY Id
Sicuro che vada con access ? Adesso provo...

 Sicuro che vada con access ? Adesso provo...
Non l'ho provato (non uso Access), ma penso di sě.
-- 
Ciao, Mauro CB.


o più semplicemente   ....
 SELECT * FROM (SELECT TOP 3 FROM DATI ORDER BY Id
 DESC) AS A ORDER BY Id
...dovrebbe andare...
Saluti, Il Sora!!

 del SO da usare. Per il resto sono OK.
  Be qualche iniziativa opensource ( MONO ) per portare la CLR .NET anche su
altre piattaforme c'è bisogna vedere come verrà supportata.
CiauuZ


  DESC) AS A ORDER BY Id
Questo l'avevo provato e non andava... cmq adesso riprovo...


Tutto vero.. :-))))...quel che dici
Devi definire una query con la select interna... purtroppo Access non ce la
fa a vedere la query interna come tabella temporanea....:((
Ho provato in Access or ora definendo le due query funziona...
Query1 = "SELECT TOP 3 FROM DATI ORDER BY Id  DESC "
Query2 = "SELECT * FROM query1 ORDER BY Id"
A questo punto forse il gioco non vale la candela...
Saluti, Il Sora!!