|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2000
Città: provincia di TV
Messaggi: 1017
|
[ADO] recordset in locale SENZA accedere ad un database
Avrei bisogno di generare al volo un recorset locale, sulla macchina dove viene eseguito un VBScript, per riempirlo con alcuni dati e farci una query, e poi cancellarlo.
Questo codice credevo facesse al caso: _____________________ Set rs = CreateObject("ADODB.Recordset") rs.AddNew "NomeCampo" rs.Fields("NomeCampo") = "contenutoCampo" rs.Update _____________________ e invece mi dà "L'operazione non è consentita se l'oggetto è chiuso". Ho giocato un po' con rs.Open, ma non sono riuscito a far funzionare nulla. Come si fa? ![]()
__________________
. |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Re: [ADO] recordset in locale SENZA accedere ad un database
Quote:
![]()
__________________
Careful With That Axe Ultima modifica di Brigante : 14-12-2004 alle 18:06. |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Dec 2000
Città: provincia di TV
Messaggi: 1017
|
Re: Re: [ADO] recordset in locale SENZA accedere ad un database
Quote:
![]() Ho modificato il codice presente in tale webpage in modo che funzioni come semplice VBScript, senza necessità di avere Visual Basic. Allego il risultato: per farlo funzionare basta un doppio-click sul file VBS, e per modificarlo basta un editor di testo. GRAAAAAAAAZIEEEEEEE!!
__________________
. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2000
Città: provincia di TV
Messaggi: 1017
|
e adesso?
Ho continuato il lavoro, ed ora sono al punto in cui il mio Recordset disconnesso è pieno di dati.
Davo per scontato di poter agevolmente lanciare una query SQL su questo Recordset disconnesso, così da ottenere un altro recordset contenente solamente il risultato della query stessa, ma... non ce l'ho fatta! ![]() Mi viene il dubbio... si può fare, o invece ho lavorato mezza giornata per niente? ![]() Stavo pensando di fare così altrimenti:[list=1][*]scrivo il recordset in un file MDB esterno inizialmente vuoto (appositamente creato in precedenza)[*]faccio la query su tale MDB (questa so che si può fare)[/list=1] ... che palle però... tutti 'sti passaggi sono davvero necessari?
__________________
. |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Sep 2001
Città: Lecco
Messaggi: 404
|
Re: e adesso?
Quote:
__________________
Dell XPS 17 Sandy Bridge (L702x) • Kingston 128GB SSDNow V100 • Zalman ZM-NC3000U Cooler • tastiera retroilluminata |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Dec 2000
Città: provincia di TV
Messaggi: 1017
|
Re: Re: e adesso?
Quote:
![]() Spiego l'obiettivo specifico che devo raggiungere, che magari vien fuori un'idea alternativa: io ho il mio recordset in memoria, pieno di record, e ho interesse ad estrarre gli ID in modo "distinct"... faccio l'esempio: CONTENUTO DEL RECORDSET: ____________ ID NOME ____________ 1 Pippo 2 Pluto 5 Paperino 1 Pippo 2 Pluto 2 Pluto ____________ VOGLIO APPLICARCI QUESTA QUERY: "select distinct ID from [riferimento_al_recordset]" E QUINDI VORREI OTTENERE QUESTO RISULTATO: ____________ ID ____________ 1 2 5 ____________ Spero di aver chiarito un po' meglio quello che devo ottenere, eventualmente chiedetemi, ci mancherebbe... DEVO risolvere questa cosa, in un modo o nell'altro.
__________________
. |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
Beh, potesti ordinare il recordset e considerare solo i record distinti manualmente.
Come metodo fà schifo, ma forse fà al caso tuo: Codice:
' *** Ordino i dati in base al nome a all'ID ' rs.Sort = "NOME,ID" ' *** Scorro quindi il recordset e considero solo i record distinti ' Do While Not rs.EOF ' *** Creo una chiave che identifica in maniera univoca ogni riga ' [I dati sono ordinati in precedenza con il metodo SORT] ' sRowKey = rs!ID & "#" & rs!Nome ' *** Scarto le righe duplicate ' If sRowKey <> sPreviousRowKey Or (sRowKey = "") Then Debug.Print "ID = " & rs!ID & "; NOME = " & rs!Nome sPreviousRowKey = sRowKey End If rs.MoveNext Loop
__________________
E' quasi tutto relativo! |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2000
Città: provincia di TV
Messaggi: 1017
|
Ottima soluzione anche questa! Non sapevo ci fosse anche il metodo "sort" a disposizione. Grazie!
Avrei seguito questa strada se l'urgenza di risolvere non mi avesse spinto verso un'altra soluzione, e cioè: [list=1][*]creo un file MDB[*]creo una tabella al suo interno[*]popolo la tabella con il contenuto del RecordSet[*]faccio la query tramite la classica connessione ADO[/list=1] E' un po' macchinoso, e mi obbliga a scrivere su file... ma d'altra parte mi consente di fare le query SQL più disparate sul mio insieme di dati (oltre alla "SELECT DISTINCT ..."), per cui è anche più flessible. Grazie ancora!
__________________
. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:20.