Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

lanciare esecuzione di varie query in background senza bloccare il lavoro

570 views
Skip to first unread message

Marco_280167

unread,
Aug 19, 2012, 6:07:07 AM8/19/12
to
Salve a tutti, ho un problema per il quale proprio non so come muovermi.

Ad ogni primo accesso di ogni giorno, il mio appl. A97, lancia un MDB dal
quale vengono eseguite 4 query a cascata necessarie per l'aggiornamento
(quotidiano appunto) di uno scadenzario globale.
Essendo tabelle molto voluminose, questa procedura risulta molto lenta, ed
il primo utente che accede al sistema la mattina, si trova il pc impallato
per un paio di minuti (l'applicativo iniziale e' bloccato finche' tutte le
query non vengono eseguite).
E' possibile quindi eseguire l'mdb che genera lo scadenzario senza per
questo bloccare l'esecuzione dell'mdb principale?

Grazie infiinite a chiunque possa aiutarmi.
Marco67


Carlo Costarella

unread,
Aug 19, 2012, 10:34:37 AM8/19/12
to

"Marco_280167" <mros...@gol.grosseto.it> ha scritto nel messaggio
news:PO2Yr.200759$GZ3.1...@tornado.fastwebnet.it...
Usa il codice e quindi i recordset, sarà certamente più veloce.
Come mai ancora A97? Le tabelle sono allegate?

Ciao, Carlo


Marco_280167

unread,
Aug 19, 2012, 10:56:52 AM8/19/12
to

"Carlo Costarella" <carloco...@libero.it> ha scritto nel messaggio
news:k0qthp$o1i$1...@tdi.cu.mi.it...
> Usa il codice e quindi i recordset, sar� certamente pi� veloce.
> Come mai ancora A97? Le tabelle sono allegate?
>
> Ciao, Carlo
>
Ho provato con il codice, ma non vedo miglioramenti, anzi:
Ho varie applicazioni su A97 e l'aggiornamento a nuove versioni mi
comporterebbe, oltre all'aggiornamento delle licenze degli ut. finali, anche
diverse modifiche ad alcune routine specifiche (credo).
Mi conefrmi quindi che non e' possibile far proseguire l'eleborazione
dell'MDB iniziale mentre il 2o MDB sta lavorando?

Grazie 1000 Carlo


Fair87

unread,
Aug 20, 2012, 4:56:32 AM8/20/12
to
Non è così. Se l'aggiornamento viene fatto da un secondo mdb, il primo può lavorare. Chiaramente si deve gestire l'accesso contemporaneo ai dati.....

Carlo Costarella

unread,
Aug 21, 2012, 1:38:17 AM8/21/12
to

"Marco_280167" <mros...@gol.grosseto.it> ha scritto nel messaggio
news:x27Yr.200830$GZ3....@tornado.fastwebnet.it...
Da quello che ho capito l'mdb dello scadenzario ha le tabelle condivise
anche con l'mdb dell'applicativo principale.
Bench� sia possibile tenere aperti due mdb, in questo caso, le tabelle
risultano bloccate perch� si stanno aggiornando.
Per quanto riguarda il codice se ben scritto dovrebbe essere pi� veloce e di
molto.
Una domanda, ma non sarebbe conveniente aggiornare solo i dati modificati o
nuovi?
Ciao, Carlo


Marco67

unread,
Aug 21, 2012, 6:10:54 AM8/21/12
to

"Carlo Costarella" <carloco...@libero.it> ha scritto nel messaggio
news:k0v6s5$dmg$1...@tdi.cu.mi.it...
E' proprio cosi' Carlo, in effetti le tabelle (su database remoto MySQL) non
sono condivise, ma e' condivisa la 5a tabella che e' quella di destinazione
delle 4 query (riguardanti 4 tabelle diverse) necessarie a fare la
popolazione della 5a (contenente lo scadenzario giornaliero appunto).
La necessita' di fare l'aggiornamento la mattina e' questo:
Lo scadenzario viene visualizzato ad ogni utente (in base alla propria area
di lavoro) ad ogni accesso al sistema.
Trattandosi di 4 diverse tabelle, l'aggiornamento prevede l'eliminazione di
tutti i record di una 5 tabella (quella condivia tra i 2 MDB).
Il risultato visibile all'utente infatti, e' l'elenco dei record provenienti
appunto dalle 4 tabelle diverse.

Che mi suggeriresti di fare?
Forse, attraverso un processo pianificato, potrei far lanciare l'MDB
dell'aggiornamento durante la notte?
Grazie ancora Carlo




Paolo opg

unread,
Aug 21, 2012, 6:29:59 AM8/21/12
to
"Marco67" <mros...@gol.grosseto.it> wrote in
news:_2JYr.201175$GZ3....@tornado.fastwebnet.it:

[cut]
>
> E' proprio cosi' Carlo, in effetti le tabelle (su database remoto
> MySQL) non sono condivise, ma e' condivisa la 5a tabella che e' quella
> di destinazione delle 4 query (riguardanti 4 tabelle diverse)
> necessarie a fare la popolazione della 5a (contenente lo scadenzario
> giornaliero appunto). La necessita' di fare l'aggiornamento la mattina
> e' questo: Lo scadenzario viene visualizzato ad ogni utente (in base
> alla propria area di lavoro) ad ogni accesso al sistema.
> Trattandosi di 4 diverse tabelle, l'aggiornamento prevede
> l'eliminazione di tutti i record di una 5 tabella (quella condivia tra
> i 2 MDB). Il risultato visibile all'utente infatti, e' l'elenco dei
> record provenienti appunto dalle 4 tabelle diverse.
>
> Che mi suggeriresti di fare?
> Forse, attraverso un processo pianificato, potrei far lanciare l'MDB
> dell'aggiornamento durante la notte?
> Grazie ancora Carlo
>
>
>
>

magari la faccio troppo semplice, ma potresti fare:
- su mysql crei la quinta tabella (stessa struttura di quella condivisa)

- sposti le 4 query su mysql

- nottetempo aggiorni la quinta tabella su mysql usando le 4 query

- all'avvio, il tuo mdb non esegue piu' le 4 query ma una semplice
(rispetto alle 4 query) copia dei dati dalla quinta mysql sulla quinta
mdb

a naso, potresti dover modificare leggermente le 4 query e aggiungere un
campo alla quinta tabella su mysql.

--
Paolo opg

BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

Carlo Costarella

unread,
Aug 21, 2012, 7:08:11 AM8/21/12
to

cut
Decisamente enorme il tempo impiegato.
Si tratta di fare un delete all from ....e un successivo accodamento sempre
da codice.
Spesso l'antivirus controlla l'mdb che viene aggiornato...prova a
disattivarlo e vedi.
Se usi una vecchia scheda di rete sostituiscila.
In ultimo dai un'occhiata qui:
http://www.granite.ab.ca/access/performancefaq.htm
http://technet.microsoft.com/en-us/library/cc767939.aspx
http://support.microsoft.com/kb/112112

Ciao, Carlo


Marco67

unread,
Aug 22, 2012, 2:31:19 AM8/22/12
to

"Carlo Costarella" <carloco...@libero.it> ha scritto nel messaggio
news:k0vq6n$qf9$1...@tdi.cu.mi.it...
>
> cut
>>> Da quello che ho capito l'mdb dello scadenzario ha le tabelle condivise
>>> anche con l'mdb dell'applicativo principale.
>>> Benchč sia possibile tenere aperti due mdb, in questo caso, le tabelle
>>> risultano bloccate perchč si stanno aggiornando.
>>> Per quanto riguarda il codice se ben scritto dovrebbe essere piů veloce
Avevo gia' fatto queste verifiche Carlo: un pc piu' performante migliora ma
non di molto, cosiccome la disattivazione dell'antivirus che fa recuperare
pochi secondi.
Da quel che ho capito dai suggerimenti ai link che mi hai proposto, rimane
da ottimizzare le query ma, una cosa:
mi scrivi che e' bene eseguie le query da codice anziche' eseguirne una gia'
salvata nel db: risulta piu' veloce?



Marco67

unread,
Aug 22, 2012, 2:42:58 AM8/22/12
to

"Paolo opg" <spamc...@tiscali.it> ha scritto nel messaggio
news:XnsA0B67F280E050sp...@193.43.96.1...
Salve Paolo, in effetti, le 5 tabelle (4 + 1 generale) sono gia' in Mysql ed
i 2 MDB vi si connettono attraverso odbc.
Probabilmente hai ragione, spostare le query in MySQL... ho provato
attraverso 'stored procedure' (dove in questo modo si lascia alla parte
server il compito dell'elaborazione), sicuramente risulterebbe piu' veloce.
Purtroppo ho provato ma ricevo sempre errore di sintassi o altri errori
vari, che proprio nn capisco: evidentemente la sintassi SQL e' diversa da
VBA.
Si tratta comunque di 4 query normalissime che utilizzano un solo filtro per
accodare i dati delle 4 tabelle sulla 5a: la data di inizio e fine periodo,
tutto qua.

Questo l'esempio di una delle 4 query, dove vengono accodati i record della
tab. utenti_x allo scadenzario_auto, se gli utenti hanno data_spospensione
nell'intervallo di tempo che va da 30 giorni fa a 30 gg. successivi ad oggi.

INSERT INTO scadenzario_auto ( Avviso, scadenza, Idsettore )
SELECT [Nominativo] & " - in Scadenza" AS Espr1, utenti_x.Data_Sospensione,
7 AS Espr2
FROM utenti_x
WHERE (((utenti_x.Data_Sospensione) Between
DateSerial(Year(Now()),Month(Now()),Day(Now())-30) And
DateSerial(Year(Now()),Month(Now()),Day(Now())+30)));

Sapresti suggerirmi variazioni importanti da apportare alla versione MySQL?
Grazie 1000 Paolo
Un saluto
Marco67


Marco67

unread,
Aug 22, 2012, 2:44:53 AM8/22/12
to

"Marco67" <mros...@gol.grosseto.it> ha scritto nel messaggio
news:4X_Yr.201413$GZ3.1...@tornado.fastwebnet.it...
>
> "Carlo Costarella" <carloco...@libero.it> ha scritto nel messaggio
> news:k0vq6n$qf9$1...@tdi.cu.mi.it...
>>
>> cut
>>>> Da quello che ho capito l'mdb dello scadenzario ha le tabelle condivise
>>>> anche con l'mdb dell'applicativo principale.
>>>> Bench� sia possibile tenere aperti due mdb, in questo caso, le tabelle
>>>> risultano bloccate perch� si stanno aggiornando.
>>>> Per quanto riguarda il codice se ben scritto dovrebbe essere pi� veloce
Carlo, a titolo di esempio, ti giro una delle 4 query di accodamento che sto
utilizzando:
In questo caso, vengono accodati i record della tab. utenti_x allo
scadenzario_auto, se gli utenti hanno data_spospensione nell'intervallo di
tempo che va da 30 giorni fa a 30 gg. successivi ad oggi.

INSERT INTO scadenzario_auto ( Avviso, scadenza, Idsettore )
SELECT [Nominativo] & " - in Scadenza" AS Espr1, utenti_x.Data_Sospensione,
7 AS Espr2
FROM utenti_x
WHERE (((utenti_x.Data_Sospensione) Between
DateSerial(Year(Now()),Month(Now()),Day(Now())-30) And
DateSerial(Year(Now()),Month(Now()),Day(Now())+30)));

Grazie ancora
Marco




Paolo opg

unread,
Aug 22, 2012, 2:58:32 AM8/22/12
to
"Marco67" <mros...@gol.grosseto.it> wrote in
news:%5%Yr.201414$GZ3.1...@tornado.fastwebnet.it:

[cut]
>
> Salve Paolo, in effetti, le 5 tabelle (4 + 1 generale) sono gia' in
> Mysql ed i 2 MDB vi si connettono attraverso odbc.
> Probabilmente hai ragione, spostare le query in MySQL... ho provato
> attraverso 'stored procedure' (dove in questo modo si lascia alla
> parte server il compito dell'elaborazione), sicuramente risulterebbe
> piu' veloce. Purtroppo ho provato ma ricevo sempre errore di sintassi
> o altri errori vari, che proprio nn capisco: evidentemente la sintassi
> SQL e' diversa da VBA.
> Si tratta comunque di 4 query normalissime che utilizzano un solo
> filtro per accodare i dati delle 4 tabelle sulla 5a: la data di inizio
> e fine periodo, tutto qua.
>

premesso che sql e' una cosa, vba un'altra, 'stored procedure' e' la via
giusta: soprattutto se hai elaborazioni pesanti, meglio farle fare a
qualcuno che e' li' apposta (ovvero al server).


> Questo l'esempio di una delle 4 query, dove vengono accodati i record
> della tab. utenti_x allo scadenzario_auto, se gli utenti hanno
> data_spospensione nell'intervallo di tempo che va da 30 giorni fa a 30
> gg. successivi ad oggi.
>
> INSERT INTO scadenzario_auto ( Avviso, scadenza, Idsettore )
> SELECT [Nominativo] & " - in Scadenza" AS Espr1,
> utenti_x.Data_Sospensione, 7 AS Espr2
> FROM utenti_x
> WHERE (((utenti_x.Data_Sospensione) Between
> DateSerial(Year(Now()),Month(Now()),Day(Now())-30) And
> DateSerial(Year(Now()),Month(Now()),Day(Now())+30)));
>
> Sapresti suggerirmi variazioni importanti da apportare alla versione
> MySQL? Grazie 1000 Paolo
> Un saluto
> Marco67
>
>

la tua query non e' in sql ma nel dialetto specifico di access;
probabilmente sarebbe digerita da mssql, ma per adattarla a mysql ti
conviene prenderti la documentazione e partire da li'.

le prime cose che saltano all'occhio:
- concatenazione: & viene usato da vb ma in sql si usa il +
- dateserial: funzione vb che non esiste in sql
- now: in sqlserver non esiste e al suo posto si usa getdate(), non so in
mysql

Carlo Costarella

unread,
Aug 22, 2012, 3:03:55 AM8/22/12
to

"Marco67" <mros...@gol.grosseto.it> ha scritto nel messaggio
news:4X_Yr.201413$GZ3.1...@tornado.fastwebnet.it...
cut
> Da quel che ho capito dai suggerimenti ai link che mi hai proposto, rimane
> da ottimizzare le query ma, una cosa:
> mi scrivi che e' bene eseguie le query da codice anziche' eseguirne una
> gia' salvata nel db: risulta piu' veloce?
>

No dicevo di usare i recordset da codice e non di lanciare una query da
codice.
Ciao, Carlo


Marco67

unread,
Aug 23, 2012, 3:17:25 AM8/23/12
to

"Paolo opg" <spamc...@tiscali.it> ha scritto nel messaggio
news:XnsA0B75B4E31DEAsp...@193.43.96.1...
Okkey Paolo, provo.
Grazie ancora
Marco


Pablitomf

unread,
Aug 23, 2012, 4:45:10 AM8/23/12
to
Marco67 <mros...@gol.grosseto.it> ha scritto:

>
> "Marco67" <mros...@gol.grosseto.it> ha scritto nel messaggio
> news:4X_Yr.201413$GZ3.1...@tornado.fastwebnet.it...
> >
> > "Carlo Costarella" <carloco...@libero.it> ha scritto nel messaggio
> > news:k0vq6n$qf9$1...@tdi.cu.mi.it...
> >>
> >> cut
> >>>> Da quello che ho capito l'mdb dello scadenzario ha le tabelle condivise
> >>>> anche con l'mdb dell'applicativo principale.
> >>>> Benchè sia possibile tenere aperti due mdb, in questo caso, le tabelle
> >>>> risultano bloccate perchè si stanno aggiornando.
> >>>> Per quanto riguarda il codice se ben scritto dovrebbe essere più veloce
Dim db As Database
Dim rs As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("scadenzario_auto")

With rs
.AddNew
!Avviso = "tuo_avviso"
!scadenza = "tua_scadenza"
!Idsettore = "tuo_Idsettore"
.Update
End With
rs.Close

Set rs = Nothing
Set db = Nothing

ovviamente i dati da inserire li prendi aprendoti altro recordset della tua query:

SELECT [Nominativo] & " - in Scadenza" AS Espr1, utenti_x.Data_Sospensione, 7 AS
Espr2 FROM utenti_x WHERE (((utenti_x.Data_Sospensione) Between
DateSerial(Year(Now()),Month(Now()),Day(Now())-30) And
DateSerial(Year(Now()),Month(Now()),Day(Now())+30)));


--
------------
Pablitomf
Napoli sempre nel "Q"uore!
"mammasantissima" si nasce, non si diventa.

Marco67

unread,
Aug 24, 2012, 3:19:14 AM8/24/12
to

"Pablitomf" <pabl...@hotmail.it> ha scritto nel messaggio
news:201208230...@mynewsgate.net...
> Marco67 <mros...@gol.grosseto.it> ha scritto:
>
>>
>> "Marco67" <mros...@gol.grosseto.it> ha scritto nel messaggio
>> news:4X_Yr.201413$GZ3.1...@tornado.fastwebnet.it...
>> >
>> > "Carlo Costarella" <carloco...@libero.it> ha scritto nel messaggio
>> > news:k0vq6n$qf9$1...@tdi.cu.mi.it...
>> >>
>> >> cut
>> >>>> Da quello che ho capito l'mdb dello scadenzario ha le tabelle
>> >>>> condivise
>> >>>> anche con l'mdb dell'applicativo principale.
>> >>>> Bench� sia possibile tenere aperti due mdb, in questo caso, le
>> >>>> tabelle
>> >>>> risultano bloccate perch� si stanno aggiornando.
>> >>>> Per quanto riguarda il codice se ben scritto dovrebbe essere pi�
Ti ringrazio per l'aiuto. Una curiosita':
Ho notato che nella tua dichiarazione del recordset: Dim rs As
DAO.Recordset, mi domandavo se la dichiarazione 'DAO' risulti piu'
performante o sicura, o cos'altro: io abitualmente non lo inserisco nella
sintassi: (ho sempre utilizzato 'Set rs as recordset')
Intanto faccio le prove
Grazie ancora
Marco67




Pablitomf

unread,
Aug 24, 2012, 3:46:49 AM8/24/12
to
> Ti ringrazio per l'aiuto. Una curiosita':
> Ho notato che nella tua dichiarazione del recordset: Dim rs As
> DAO.Recordset, mi domandavo se la dichiarazione 'DAO' risulti piu'
> performante o sicura, o cos'altro: io abitualmente non lo inserisco nella
> sintassi: (ho sempre utilizzato 'Set rs as recordset')
> Intanto faccio le prove
> Grazie ancora
> Marco67

Diciamo che ho forzato DAO perche' e' un metodo di accesso ai dati decisamente
piu' specifico e performante per Access, soprattutto per quelli come te che
hanno ancora la versione vecchia A97 (ho ritenuto opportuno farlo proprio per
questo)... ADO ha un grado di astrazione decisamente piᅵ elevato del vecchio
fratello DAO (ADO libreria accesso dati generica - DAO libreria accesso dati
specifica), ma pur preferendolo, nel tuo caso, potrebbe darti lentezza (la
stessa che tu riscontri nel tuo post). Cmq, basta che fai prove e paragoni di
prestazioni mettendolo o togliendolo.

Karl Donaubauer

unread,
Aug 24, 2012, 3:54:34 AM8/24/12
to
Marco67 wrote:
> ... Una curiosita':
> Ho notato che nella tua dichiarazione del recordset: Dim rs As
> DAO.Recordset, mi domandavo se la dichiarazione 'DAO' risulti piu'
> performante o sicura, o cos'altro: io abitualmente non lo inserisco
> nella sintassi: (ho sempre utilizzato 'Set rs as recordset')
> ...

C'ᅵ anche un effetto minimale di prestazione perchᅵ
Access/VBA non deve cerchare nelle biblioteche.
Perᅵ la ragione principale ᅵ evitare problemi nelle versioni
dopo A97. Vedi: http://www.donkarl.com/it?FAQ7.11

--
Ciao
Karl
*********
Access FAQ: http://www.donkarl.com/it

Marco67

unread,
Aug 24, 2012, 12:24:17 PM8/24/12
to

"Pablitomf" <pabl...@hotmail.it> ha scritto nel messaggio
news:201208240...@mynewsgate.net...
>> Ti ringrazio per l'aiuto. Una curiosita':
>> Ho notato che nella tua dichiarazione del recordset: Dim rs As
>> DAO.Recordset, mi domandavo se la dichiarazione 'DAO' risulti piu'
>> performante o sicura, o cos'altro: io abitualmente non lo inserisco nella
>> sintassi: (ho sempre utilizzato 'Set rs as recordset')
>> Intanto faccio le prove
>> Grazie ancora
>> Marco67
>
> Diciamo che ho forzato DAO perche' e' un metodo di accesso ai dati
> decisamente
> piu' specifico e performante per Access, soprattutto per quelli come te
> che
> hanno ancora la versione vecchia A97 (ho ritenuto opportuno farlo proprio
> per
> questo)... ADO ha un grado di astrazione decisamente pi� elevato del
> vecchio
> fratello DAO (ADO libreria accesso dati generica - DAO libreria accesso
> dati
> specifica), ma pur preferendolo, nel tuo caso, potrebbe darti lentezza (la
> stessa che tu riscontri nel tuo post). Cmq, basta che fai prove e paragoni
> di
> prestazioni mettendolo o togliendolo.
>
> --
> ------------
> Pablitomf
> Napoli sempre nel "Q"uore!
> "mammasantissima" si nasce, non si diventa.
>
Ho fatto il tutto tramite codice: in effetti noto un leggero miglioramento.
Ringrazio tutti per l'aiuto, la professionalita' e... la pazienza!
Marco67


Marco67

unread,
Aug 24, 2012, 12:24:52 PM8/24/12
to

"Carlo Costarella" <carloco...@libero.it> ha scritto nel messaggio
news:k1208n$601$1...@tdi.cu.mi.it...

Pablitomf

unread,
Aug 25, 2012, 5:25:54 AM8/25/12
to
> Ho fatto il tutto tramite codice: in effetti noto un leggero miglioramento.

leggero?????... no allora non hai fatto "tutto"... mi sa che ti e' rimasta
qualche query non da cosice...

Marco_280167

unread,
Aug 26, 2012, 6:48:39 AM8/26/12
to

"Pablitomf" <pabl...@hotmail.it> ha scritto nel messaggio
news:201208250...@mynewsgate.net...
No No, le query le ho ho tutte elaborate via codice.
Ho voluto anche verificare la struttura delle tabelle di MySql interessate
ed in effetti... ho aggiunto degli indici che sono serviti a migliorare
ancora qualcosa.

Adesso per l'eliminazione completa dei record e l'accodamento dei 4
scadenzari sulla tabella completa impiega circa 35-40 secondi.
Un ottimo risultato direi (Da considerare che trattasi di DB remoto MySQL su
un server messo a disposizione senza una banda garantita, quindi soggetto al
traffico).
Inoltre, questo risultato l'ottengo collegandomi attraverso un contratto
Fastweb 'base' in connessione wireless e attraverso un pc 'niente di che'.

Mi ritengo piu' che soddisfatto, ma forse...
Se le mie 4 query di accodamento popolassero un db access in locale e solo
successivamente eseguire l'accodamento su DB remoto, pensi si ottenga una
migliore prestazione finale o no?

Cmq. grazie, grazie ancora
Marco67






Pablitomf

unread,
Aug 26, 2012, 12:31:58 PM8/26/12
to
> No No, le query le ho ho tutte elaborate via codice.
> Ho voluto anche verificare la struttura delle tabelle di MySql interessate
> ed in effetti... ho aggiunto degli indici che sono serviti a migliorare
> ancora qualcosa.

Non avevi indici? E beh hai detto niente

> Adesso per l'eliminazione completa dei record e l'accodamento dei 4
> scadenzari sulla tabella completa impiega circa 35-40 secondi.
> Un ottimo risultato direi (Da considerare che trattasi di DB remoto MySQL
su
> un server messo a disposizione senza una banda garantita, quindi soggetto
al
> traffico).
> Inoltre, questo risultato l'ottengo collegandomi attraverso un contratto
> Fastweb 'base' in connessione wireless e attraverso un pc 'niente di che'.

Server "remoto"??? E quando avevi intenzione di dirlo? :) (se l'hai detto
forse non l'ho colto)

> Mi ritengo piu' che soddisfatto, ma forse...
> Se le mie 4 query di accodamento popolassero un db access in locale e solo
> successivamente eseguire l'accodamento su DB remoto, pensi si ottenga una
> migliore prestazione finale o no?

Mmmm io le cose a sto punto le farei fare al server e non ad Access con delle
query pass-t
Cmq 35-40 sono un buon risultato? Dipende da quanti records muove

> Cmq. grazie, grazie ancora

Figurati

Marco67

unread,
Aug 27, 2012, 2:56:56 AM8/27/12
to

"Pablitomf" <pabl...@hotmail.it> ha scritto nel messaggio
news:201208261...@mynewsgate.net...
Eh eh, immaginavo che saremmo cascati sulle query pass-trough: ho provato
piu' di una volta ad usarle ma mi sono proprio 'indigeste'.
Mi sa che mi dovro' mettere sotto.
A presto
Marco67


Pablitomf

unread,
Aug 27, 2012, 4:50:50 AM8/27/12
to
> Eh eh, immaginavo che saremmo cascati sulle query pass-trough: ho provato
> piu' di una volta ad usarle ma mi sono proprio 'indigeste'.

forse perche' provi ad usare il linguaggio sql-access invece che sql e basta...
la grammatica e le funzioni sono sostanzialmente simili, ma ci sono delle cose
di uso comune (Now(), le funzioni native di access, i confronti con le stringhe,
ecc...) che non coincidono.

> Mi sa che mi dovro' mettere sotto.

Mi sa di si...

> A presto

Bruno Campanini

unread,
Aug 28, 2012, 10:09:45 AM8/28/12
to
Carlo Costarella expressed precisely :

> No dicevo di usare i recordset da codice e non di lanciare una query da
> codice.
> Ciao, Carlo

Mi sembrava che l'ordine crescente di velocità nel maneggiare recordset
fosse:
query da codice
query da finestra database
codice VBA

Ci riprovo e poi ti dico.

Bruno


Bruno Campanini

unread,
Aug 28, 2012, 10:28:42 AM8/28/12
to
Bruno Campanini laid this down on his screen :

> Mi sembrava che l'ordine crescente di velocità nel maneggiare recordset
> fosse:
> query da codice
> query da finestra database
> codice VBA
>
> Ci riprovo e poi ti dico.

Ho cancellato da una tabella di 89200 record tutti quelli riferentesi
alla mia provincia (20591).

Query eseguita da VBA: 0.61 sec
Codice VBA: 1.36 sec

Suggerisci qualche altro esperimento?

Bruno


0 new messages