Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Surrogato del Clone, in ADO

Sarò breve! Aprendo, lato server, con adOpenDynamic un Recordset su database
SQL Server si ottiene una buona velocità, ma il Recordset non sopporta i
bookmarks e quindi il metodo Clone.
La domanda (non sto a tediarvi sulle motivazioni, ... vi chiedo fiducia) è
semplice: Esiste in ADO un metodo (anche arzigogolato) che emuli il metodo
Clone avendo un Recordset (non clonabile) già regolarmente aperto?
I presupposti, però, sono questi:
-Non voglio/posso ripetere l'apertura su di un altro oggetto Recordset
-Non conosco il comando di apertura del Recordset già aperto e/o questo è
stato modificato/filtrato/sortato, tanto da risultare inutilizzabile e/o
sconosciuto
-Ma, soprattutto: Non devo modificare i contenuti, nè il record corrente del
recordset originario
Grazie a tutti.


[ cut ]
Ciao Lupo,
la fiducia è illimitata ma non sapendo cosa devi farci mi viene in
mente solo :
Set RsCopia = RsOriginale..
è chiaro che non hai gli automatismi di un rs creato col metodo Clone..
è solo la copia esatta del recordset originale, che potresti ottenere
allo stesso modo popolandolo con la medesima query che utilizzi per
il rs originale...
oppure il metodo Save dell'oggetto recordset, che però non ho mai
utilizzato..
Ciao
 Valter

 utilizzato..
Ecco, qui va gia' meglio ;-)
-- 
ciao, hal
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 utilizzato..
Se non l'hai usato tu, conoscendomi, vuoi che vada a incastrarmi in una roba
(in più) che non conosco nemmeno introducendo un'altra potenziale fonte di
pasticci? No, ADO mi terrorizza, lo sai.

 ha scritto
Grazie hal, cutto tutto (non me ne volere) perchè, rispondendo a Valter, ho
meglio spiegato il problema. Se vuoi rileggermi...

 Ecco, qui va gia' meglio ;-)
meno male... pareggio al 94° su rigore ( inesistente ) ;-)
Ciao
 valter

meno male... pareggio al 94° su rigore ( inesistente ) ;-)
L' arbitro sara' stato un amico degli organizzatori :-P
-- 
ciao, hal

pasticci? No, ADO mi terrorizza, lo sai.
Dai, non farla difficile, sperimenta l' idea di valter:
<codice>
Option Explicit
Public Sub Main()
    Dim strConn As String
    Dim rs As ADODB.Recordset
    Dim clone As ADODB.Recordset
    Dim filename As String
 
    strConn = <stringa di connessione ad un db a caso>
    filename = "C:\temp\dummy.xml"
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open "select * from orders", strConn, adOpenKeyset, adLockReadOnly
    rs.Save filename, adPersistXML
    rs.Close
    Set rs = Nothing
 
    Set clone = New ADODB.Recordset
    clone.Open filename
    Debug.Print clone.GetString(adClipString, , vbTab, vbNewLine, vbNullString)
    clone.Close
 
    Kill filename
 
End Sub
</codice>
-- 
ciao, hal
ci saranno degli altri problemi che verranno fuori, ma intanto partiamo da qui ;-)

     rs.CursorLocation = adUseClient
etc.
Hal, ti voglio bene, ma non puoi propormi un adUseClient!
E poi da salvare su disco?! Ma hai fatto 3 prove sui tempi con un cursore
lato client?
A proposito, a suo tempo (non se da te o da Java), mi è stato proposto di
pubblicare sul SC quel programma per il test della velocità DAO/ADO. L'ho
fatto, ho scritto in tutte le salse (all'inizio, durante e alla fine) che mi
interessavano i risultati. Circa 100 click dopo la pubblicazione e non ho
ricevuto una sola mail (automatica da programma!)! Volevo inserire un
commento per sollecitare ulteriormente risposte, ma, essendo l'autore, non
posso. Chi sono quei "100"? Copiatori folli che scaricano qualsiasi cosa
senza leggere/installare/avviare e, magari, fare una cortesia? Beh, fra
qualche anno i dischi da 40Gb appariranno come i padelloni da 5Mb (e da 3
Kg) di un paio di decenni fa.

lato client?
Per lento che sia, e' piu' veloce di un loop in visual basic ;-)
Se vuoi fare un "clone", questo e' il procedimento piu' veloce,
altrimenti puoi sempre aprire un nuovo recordset impostato
sulla proprieta' Source del recordset principale.
Questo secondo approccio e' destinato a fallire nel caso
tu intenda clonare recordset disconnessi o, peggio, recordset
costruiti di sana pianta in memoria.
-- 
ciao, hal

 sulla proprieta' Source del recordset principale.
Vabbè, evidentemente non riesco a spiegarmi. Grazie lo stesso.

Vabbè, evidentemente non riesco a spiegarmi. Grazie lo stesso.
Come, ci hai chiesto come clonare il recordset e adesso ci pianti in asso?
Ma io non ci penso proprio, te lo puoi scordare! ;-P
Vossi'a ha scritto:
"Come faccio a stampare tutto il recordset (dal primo all'ultimo record)
senza spostare (o potendo ripristinare) il record corrente e senza poter
usare il clone?"
Ah, ma allora non vuoi piu' il clone?
Se il recordset e' bookmarkable puoi salvare il bookmark di dove di trovi
e puoi fare quello che ti pare.
Se non lo e' o, comunque, hai un cursore forwardonly non c'e' altro modo :-(
Sai come si dice a Genova?
Sciuscia', sciurbi' e scigua nu se peu!
----> Non si puo' soffiare, aspirare e fischiettare (contemporaneamente)
-- 
ciao, hal

 Lupo ha scritto:
Hal (cutto e ti ri-chiedo scusa), tu stai leggedo il NG con IE, vero? Vedi
solo un post per volta, vero?
No? Hai letto il mio primo post (fini in fondo dove elenco le condizioni) e,
in subordine, il mio secondo, in risposta a Valter?
PS: Scusa la freddezza, certamente non rivolta a te e a nessun altro qui (ci
mancherebbe!), ma (e lo capirai da un mio nuovo topic di 1 minuto fa), sono
nero come un lupo nero, in una notte nera, senza luna piena e persino senza
... una lupa in calore.

 bookmarks e quindi il metodo Clone.
Non posso (non è che non voglio, vorrei TANTO!!!) usare il metodo Clone.


Non posso (non è che non voglio, vorrei TANTO!!!) usare il metodo Clone.
Puoi solo usare Save ed il perche' te l' ho spiegato prima.
Oppure speriamo che tra tutti emerga una soluzione diversa e, perche' no, migliore.
Buona notte, Lupone ;-)
-- 
ciao, hal

'notte

 ha scritto nel messaggio
news:adreob$1o9b8$1...@ID-56381.news.dfncis.de...

Aho' che è sta' confidenza col MIO amico Luigi? :-)))))
Dai Lupo, non ti abbattere, come dice Hal una soluzione si trova.. domani ci
rileggiamo i tuoi
post ( rigorosamente dopo la partita dell'Italia ) e vediamo se esce fuori
qualcosa, devo
farmi perdonare per la bestialità che ti ho scritto, dovuta all'eccessiva
fretta..
( pietosa bugia, in realtà ero rilassatissimo... ma il chirurgo che mi ha
lobotomizzato non
ha fatto assolutamente un buon lavoro...asportando anche parti di materia
grigia indispensabili).
Ho un'altra idea... un post-it, sai quei foglietti gialli adesivi,  sul
record corrente...
da quello che so funzionano anche su rs lato server... :-)
Ciao Lupo,
un ululato affettuoso da Valter ( lupo di adozione )

 ha scritto
Grazie Valter delle tue parole che valgono più di ogni dritta tecnica (pur
gradita). 'notte.