Newsgroup: it.comp.lang.visual-basic
Titolo: Probleba con query ed ADO

salve, ho un problemino molto strano.
In pratica apro un recordest di questo tipo:
rs.open "select * from Tabella where key = " & IdDaCanc, _
conn, adOpenKeyset, adLockOptimistic, adCmdText
N.B. Key è un contatore, ed Id è il valore del campo
adesso cancello questo record: e chiudo rs
rs.delete
rs.close
Il record viene effettivamente cancellato, però, se riapro IMMEDIATAMENTE il 
recordset con una query del tipo:
rs.open "select * from Tabella where campo like '%" & ValCampo & "%' Order 
By [Key], _
conn, adOpenKeyset, adLockOptimistic, adCmdText
il record risulta ancora nel db.
SE INVECE ATTENDO qualche secondo, alla riapertura tutto è regolare.
E' possibile che si debba attendere qualche secondo  tra la chiusura e la 
riapertura di un rs ?
Mi dareste una dritta ?
Grazie al vs., buon cuore
Cesare

 ha scritto nel messaggio
news:462f2142$0$37198$4faf...@reader3.news.tin.it...

La mia è solo un'intuizione... ma siccome mi è capitata una cosa simile...!
Quello che ti dico potrebbe sembrarti strano ma ti invito prima a provare,
poi ad insultarmi...!
Apri la tua Connessione Cnn, quindi apri un Recordset Fittizio su una
tabella INUTILE
SELECT * FROM T1 WHERE 1=0, giusto per tenere in piedi sempre la
connection...!
Ora con il RecordsetFittizio APERTO esegui la procedira di cui sopra....
completa
Vedi se l'aggiornamento del tuo Recordset(Ufficiale) è avvenuto in
RealTime...!
Poi se è vero ti aggiungo un'altra considerazione, altrimenti SKIPPO...!
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

Caro Cesare,
dal manuale in Internet
http://www.soft-land.org/cgi-bin/doc.pl?doc=../documenti/adomod_res&tpl=doc#delete
...
Osservazioni
Utilizzando Delete si contrassegna per l'eliminazione il record corrente o 
un gruppo di record. Se il Recordset non consente l'eliminazione dei record, 
si verifichera' un errore. Nella modalita' di aggiornamento immediato le 
eliminazioni verranno eseguite immediatamente nel database. In caso 
contrario, i record verranno contrassegnati per l'eliminazione dalla cache e 
l'effettiva eliminazione verra' eseguita quando si chiamera' UpdateBatch.
... 

 ha scritto nel messaggio 
news:462f2142$0$37198$4faf...@reader3.news.tin.it...


 salve, ho un problemino molto strano.
Siccome sono uno "storico" mi sembra che fosse una vecchia faq!
Comunque
siccome il wodkino nazionale "back" ...è tornato...più sagio e buono 
(ma'ndove!)
T'ho buttato giù un pò di codice che spiega più di mille parole (anche 
perchè il 90% dei lettori di un forum o di un ng simile a questo....non 
vuole chiacchere ma codice da schiaffare! :P ...il 9'% manco le elgge 
lòe spiegazioni)
http://www.martek.it/test/vbesempi/testdbgrid.zip
Ho usato ADO 2.7 ...ritengo che sia una versione comune no?
Cmq...per chi volesse la spiegazione tecnica (vecchia faq comunque)
Utilizzare questi "cosi" ...DBgrid ad esempio.....presuppone che tu sia 
ADUSECLIENT....ossia lavori in locale....per questo immette in una sorta 
di cache della griglia quello che mostra!
Come fare a "ripulire" questa griglia e mostrare subito quello che ha fatto?
Premesso che se tu lanci roba veloce ...e che quindi sul server tu abbia 
una esecuzione istantanea....
Basta staccare e riattaccare connessione e recordset....gli fai una 
sorta di elettroshock alla griglia....e ricomicia a funzionare come vuoi tu!
Come diceva Aiazzone: provare per credere!