Newsgroup: it.comp.lang.visual-basic
Titolo: ADODB.Recordset disconnesso

Si può utilizzare un adodb.recordset disconnesso per inserirci dei dati 
e ordinarli/filtrarli a piacere senza dover necessariamente scrivere su 
disco?
Thx in anticipo!
-- 
Rivolterò il mondo per trovarlo, e anche se andasse in Indocina uno dei 
nostri starà nascosto in una ciotola di riso pronto a sparargli nel culo.
(Pulp Fiction)

Il recordset disconnesso indica che hai a disposizione una struttura
equivalente a quella di un db (+ semplice perchè esiste già una
base dati dalla quale recuperi la struttura) o anche creata run-time
(più complicato, ma non impossibile), dove puoi fare ne più ne
meno tutto quello che faresti con i recordset connessi.
Ovviamente la scrittura su disco c'è sempre, ma è un file temporaneo
che chiuso il recordset, fatto salvo un .save implicito, viene distrutto
con tutti i dati contenuti.
Ciao
Andrea

Quindi alla fine mi converrebbe utilizzare un file .mdb vuoto su cui di 
volta in volta creare delle tabelle temporanee? Tanto fra CREATE TABLE e 
DROP TABLE non dovrebbe essere complicato gestire la cosa.
Però se (ad esempio) all'occorrenza non dovessi trovare quel file mdb 
vuoto, non dovrei/vorrei limitarmi al semplice messaggio d'errore anche 
perchè per un file vuoto non posso bloccare il funzionamento del 
programma, ma vorrei (soluzioni alternative):
1 - Creare un file .mdb da zero
2 - Usare un recordset disconnesso
Non so fare nè l'una nè l'altra cosa.
A livello pratico, c'è un esempio per come risolvere almeno uno dei due 
problemi? Esempi di codice intendo...


problemi? Esempi di codice intendo...
Per creare un recordset disconnesso non devi necessariamente partire
da un db.
Es. :
	Dim rs As ADODB.Recordset
	Set rs = New ADODB.Recordset
	rs.Fields.Append "ID", adBigInt
	rs.Fields.Append "DESCRIZIONE", adVarChar, 50
	rs.Open
	rs.AddNew
	rs("ID") = 0
	rs("DESCRIZIONE") = "CIAO"
	rs.AddNew
	rs("ID") = 1
	rs("DESCRIZIONE") = "MONDO"
	rs.Close
	Set rs = Nothing
Ciao!

 Non so fare nè l'una nè l'altra cosa.
Dim adoRS As ADODB.Recordset
Set adoRS = New ADODB.Recordset
Call adoRS.Fields.Append("campo1", 202, 80, 106)
Call adoRS.Fields.Append("campo2", 202, 80, 106)
adoRS.Open
adoRS.AddNew
adoRS!campo1 = "ciao"
adoRS!campo2 = "mondo"
adoRS.Update
adoRS.MoveFirst
MsgBox adoRS!campo1 & " " & adoRS!campo2
adoRS.Close
Set adoRS = Nothing
Per quanto riguarda i parametri di Append, vedi la guida (ma anche il
visulaizzatore oggetti dell'ide di VB dovrebbe bastare).
Per comodità mi sono scritto una funzione che, data una tabella di un DB
reale, mi costruisce la sequenza di Append con i parametri corretti in modo
da ottenere la relativa tabella disconnessa anche in assenza del DB.
termoPilucco

 rs("DESCRIZIONE") = "MONDO"
LOL :)
termoPilucco

 Thx in anticipo!
se aspetti un attimo ti faccio un vbp didattico al volo e lo metto on
line!!!
---
Posta in uscita controllata con AVG Antivirus
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.659 / Virus Database: 423 - Release Date: 15/04/2004

 line!!!
cON CALMA EH CHE STAMANI S'č SCATENATA LA GUERRA IN UFFICIO!
:-)


 :-)
A me lo dici? Riesco a leggere le vs. risposte ogni ora invece che ogni 
10 minuti perchè la guerra mi sa che è arrivata fin qui...
Cmq grazie a tutti per le risposte esaurienti.
Attendo fiducioso altri piccoli esempi (anche se questi bastano per un 
buon inizio di lavori run-time) per fare il punto della situazione :)
A presto (sxo x me)!!!
