Newsgroup: it.comp.appl.access
Titolo: QRY Action con parametri

Ciao a Tutti,
qual'è il metodo più efficiente di lanciare una qry action con parametri.
Ho provato tramite codice ADO, quindi con oggetti command, parameter e
connection e funziona ma mi sembra macchinoso e non ho idea se sia veloce
ed efficiente. 
L'alternativa semplice è una QRY action che usa come parametri dei
controlli di una maschera, ma dovrei creare controlli invisibili solo per
questa query in quasi tutte le maschere.
Un 'ultima possibilità è aprire un recordset ADO sulla tabella e
aggiungere manualmente la riga nuova facendo .addnew e impostando i valori
dei campi.
C'è un altro modo? Qual'è il più efficiente dei tre?
Grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Se per query "action" intendi una query di accodamento, secondo me, l'oggetto command di ADO è indicato ed efficiente.
Se i parametri non sono strettamente necessari (componendo la stringa SQL ogni volta) puoi sftuttare direttamente il metodo .execute
dell'oggetto connection.
Mat.

 dell'oggetto connection.
Grazie, ho già preparato la funzione e volevo avere conferme che si tratta
di un modo efficiente di procedere. Con Query Action intendo proprio una
query di accodamento, per aggiungere righe ad una tabella di log.
Ho studiato su alcuni libri che comporre stringhe SQL da codice non è il
modo più efficiente di lavorare perchè Access non può ottimizzare le
prestazioni della query stessa, e che quindi è meglio preparare una query
e passare i parametri con l'oggetto parameter.
Confermi?
Ciao



Ciao,
Mat.

 ha scritto nel messaggio
news:b1ebeg$msp$1...@news.newsland.it...

Quello che dici è corretto, ma occorre sempre considerare l'affermazione
nell'insieme.
Quanti Records devi accodare....??
Se è 1 solo il tempo che impieghi a passare i parametri ad una QryAction
Compilata
sono = se non superiori ad una QRY Action eseguita con il metodo
Execute........!!!
Se invece stai parlando di Migliaia di Records allora concordo
pienamente...........!
Io di solito faccio qualche test su queste robette, mi tolgono molti dubbi,
e mi chiariscono
meglio concetti "RELATIVI".
@Alex.

 meglio concetti "RELATIVI".
Il punto è proprio questo. Io voglio accodare un solo record e volevo
sapere il modo più efficiente per farlo, creando un comando SQL da codice
o passando parametri a una QRY di accodamento preparata in QBE.
Penso a questo punto che il modo migliore sia fare un test delle
prestazioni, ma nel caso dell'accodamento di 1 record forse i tempi sono
troppo piccoli e quindi i risultati potrebbero venire falsati o non essere
significativi.
Tu cosa usi per fare questi test? esiste un tipo di data/ora con i
centesimi di secondo per avere tempi brevi da confrontare?


 centesimi di secondo per avere tempi brevi da confrontare?
Proprio perchè si tratta di centesimi di sencondo non vale, ritengo, la pena di penarsi tanto. A meno chè tu non esegua
quest'accodamento diverse centinaia di volte di seguito l'una all'altra penso che non riuscirai a trovare una differenza
apprezzabile trà l'sql eseguito direttamente ed una query con parametri salvata.
Secondo me...
Mat.


 Ciao
Lascia perdere, per 1 Record fai una Qry direttamente dal Metodo Execute
e non pensarci nemmeno, non sono questi i punti in cui risparmiare
Secondi....!
Io anche fino a qualche centinaio di Record uso questo metodo, il fatto è
che
se strutturi bene il DB difficilmente ti capiterà di lavorare con così tanti
dati tutti
in un colpo.........!!
In realtà tanto per parlare quando esegui un adeguamento IVA o Prezzi io
non sto li ad usare Qry Compilate da QBE, le Creo se servono altrimenti
EXECUTE con codice SQL ovviamente il tutto va valutato adeguatamente.
@Alex.

Grazie, farò così!
Un'ultima cosa: usi DAO o ADO per gestire le connessioni, i recordset e le
query da codice?
Ciao
--
Ing. Diego Lotti
------------------------------------



Dipende, con Access97 esclusivamente DAO, e poichč sviluppo 90% con questo
direi solo DAO, ma alcune volte uso VB, quindi ADO e OleDB Provider per
connettermi a Database di diversa Natura.
Con MySQL invece uso i Recordset solo per popolare oggetti Bound, poichč
accedo al DB
tramite le API direttamente senza appoggiarmi a DRIVER vari........!!!
@Alex.