Newsgroup: it.comp.lang.visual-basic
Titolo: absolute position

L'MSDN non è chiaro, non ho capito se absolute position restituisce la
posizione del record nella tabella o nel recordset, se non restituisce la
posizione del record nella tabella, cosa devo usare, per avere questa
informazione?

 L'MSDN non č chiaro, non ho capito se absolute position restituisce la



Il mip problema allora è proprio che a me non interessa questa info, ma
bensì sapere la posizione sulla tabella, indipendentemente dal recordset, in
modo tale che avendo più recordset aperti possa relazionarli tra di loro...
è possibile? mi sembra strano che non sia possibile.
Non mi dire di usare un campo contatore perchè purtroppo le tabelle su cui
devo lavorare provengono da un vecchio programma in clipper e non le posso
modificare.
Davide

 ha scritto nel messaggio
news:WUxb8.7426$eD3.3...@twister1.libero.it...



Non vorrei sollevare ulteriori problemi, ma mi risulta che le note dicano
anche che questo tipo di informazione NON č (o puň non essere) precisa, č su
base "statistica" e quindi da utilizzarsi solo per informazioni generiche
(barre di scorrimento, percentuali di completamento, etc.), non certo per
dire "mi trovo al record 4321 su 7654". Cosě mi pare.

 č possibile?
Devi avere un campo chiave univoco per il record nella tabella, in modo da
poter identificare il record in qualunque modo.
Non ti puoi fidare della posizione fisica del record!
Ciao

 Non ti puoi fidare della posizione fisica del record!
Ripeto, ho dei dbf importati in access  e  per motivi logistici non li posso
modificare, stiamo parlando di un vecchio programma fatto in clipper.

 Se mi dai qualche indizio in più forse ne veniamo a capo.
Intendo che se apro due Recordset ad esempio
Rs1 SELECT NOME, COGNOME, INDIRVIA, IDIRLOC, INDIRPRV FROM ANAGRAFICA WHERE
DATANASC > 01/01/55 ORDER BY NOME, COGNOME
Rs1 SELECT NOME, CONGOME, CODUFF, PIANO, ANZIANITA WHERE ANZIANITA > 25
ORDER BY ANZIANITA
I dati hanno eveidentemente rs.absoluteposition diversi sui due recordset,
ammesso che siano presenti in entrambi, sia perchè l'ordinamente è diverso,
sia perchè le condizioni di selezione sono diverse.

 Rs2 (Questo è rs2, un'altro recordset)  SELECT NOME, CONGOME, CODUFF,


 sia perchè le condizioni di selezione sono diverse.
E su questo non ci piove, quello che non capisco, e te l'avevo già chiesto,
è :
cosa intendi per "rapportare"?? Quali informazioni devi ricavare, leggendo
la stessa
base dati selezionata e ordinata in modo diverso?? Puoi farmi un esempio dei
risultati che vuoi ottenere? Vuoi per esempio sapere se Mario Rossi è
presente
su entrambi i recordsets? Aiutaci ad aiutarti :-)))))))))
Ciao
 valter

modificare, stiamo parlando di un vecchio programma fatto in clipper.
Anche in Clipper, rendere necessario un riferimento al numero di record non
e` mai stata considerata una buona idea.
Non credo ci sia una soluzione, senza modificare le tabelle (i "motivi
logistici" sono davvero cosi` stringenti?).
A meno che tu non possa usare una libreria specifica per dbf, come CodeBase,
che duplica praticamente tutte le funzioni di accesso ai dati di Clipper,
compresa RecNo(). CodeBase costa un bel po' di soldini, puo` darsi pero` che
ci sia qualcosa di analogo a meno o gratis.
Ciao.


Non è per me, ma per un'amico che sta passando dalla programmazione in
clipper a quella in Vb, lui vorrebbe, per mantenere lo stesso metodo di
lavoro, poter utilizzare lo stesso sistema che ha sfruttato per anni con
clipper.
Coiè copiarsi un'immagine della tabella in cui sta lavorando in un array.
Lavorare e spolpettare in sola lettura su altri recordset, quando però
l'utente effettua una modifica registrarla nell'array, e solo al momento
della conferma delle modifiche controllare quali sono i record che sono
stati modificati, cancellati, etc.. nell'array tramite un membro aggiunto, e
copiare o aggiungere, a seconda del caso, fisicamente nella tabella solo
questi record.
Ad es.
type utAnag
Codice
Nome
Cognome
Posit(mio membro, lo carico con il valore di AbsolutePosition)
State (mio membro che utilizzerò per sapere se il record è invariato,
modificato etc..)
end type
SELECT * FROM ANAGRAFICA
riempio con i dati di questa query l'array
dim TabAnag(1 to 50000) as utAnag
metto un loop per riempire l'array
Poi faccio altre query con altri recordset e quando l'utente fa una modifica
in un record
Metto la modifica in array, e vario state in ad esempio M(modificato) o
C(cancellato) o N (nuovo)
Poi quando l'utente conferma le modifiche vorrei poter andare nell'array e
eliminare dalla tabella i C
Aggiungere gli N
Modificare (edit) gli M
Però quando l'utente esegue una modifica potrebbe avere visualizzato a
schermo un recordset diverso da quello che ho messo in array e per questo
per poter associare le modifiche dell'utente all'array ho bisogno di
conoscere quale sia l'absolute position di tabella.
Inoltre quando Viene modificato un record vorrebbe non dover riaprire
l'intero recordset, ma tramite il valore di absoluteposition Aprire solo
quel record che è stato modificato e sul quale deve lavorare.
Non è possibie vero?
Non so se mi sono spiegato, fammi sapere cosa non ti è chiaro.
Davide