Newsgroup: it.comp.lang.visual-basic
Titolo: Ma chi la esegue sta query?!?!?

Ciao a tutti.
Ho un dubbio atroce, e non sono ancora riuscito a trovare una risposta: se
io ho un database Access 97 in rete contenente le mie tabelle e alcune
query, e ci accedo da un client VB su un altro PC usando DAO
(MioDBRemoto.Qurydefs("MiaQuery").Execute, la query me la esegue il motore
Jet del DB remoto (quindi ritornandomi solo i risultati) oppure quello del
PC client (con ovvi problemi di performances)?
Non riesco a trovare informazioni a riguardo, sarei molto grato a chi mi
potesse dare anche solo qualche indicazione...
Grazie
Ciccio

 ha scritto nel messaggio
news:ifi56.8393$FF1.5...@twister1.tin.it...

E' sempre il motore della macchina con installato il DB ad eseguire query
...
il tuo PC non fa nulla a parte recuperare gli eventuali risultati in qualche
recordset; pensa che con DAO anche la libreria dei cursori è residente nel
server ...
Saluti


Grazie Fox per la tempestiva risposta.
Ne approfitto ancora, se non ti disturbo: cosa succede invece se apro un
recordset con una istruzione SQL? Avevo letto da qualche parte che l'SQL
viene interpretato dal motore Jet del client, e che per fare eseguire la
query al server occorre creare il recordset con l'opzione dbSQLPassThrough.
E' vero?
Hai idea di dove si può trovare documentazioen su qesti argomenti?
Grazie ancora.
Ciao da Ciccio

 server ...
Mi permetto di dissentire :)
Nel caso di Jet il motore di db che esegue la query e' SEMPRE quello sul
client che sta richiedendo i dati, quindi anche ogni tipo di cursore
utilizzato e' sul client.
E' nei DB Relazionali come SQL Server e Oracle che esiste una parte server
che e' in attesa delle richieste degli utenti e gestisce l'accesso
concorrente ai dati. A questo punto il cursore puo' essere lato server,
cioe' gestito dal motore dell'RDBMS oppure lato client, gestito quindi dalle
varie librerie RDO, ADO, DAO/JET e quant'altro.
Infatti per una applicazione multiutente che utilizza files Mdb su un server
di rete [ :((  ] , non e' necessario installare jet o access sul server, ma
solo sui client.
Spero di aver chiarito, in caso ...
sono qui
Roberto

PC client (con ovvi problemi di performances)?
La esegue il PC dove gira l'applicazione. un database Access97 (ma anche
2000, se MDB) altro non e' se non un file, e quindi tutto quello che e' il
lavoro che su quel file viene svolto e' delegato all'applicazione chiamante.
Altro sarebbe se tu ti connettessi a un DBMS (quale SQL Server o Oracle). In
quel caso sul server gira un'applicazione ed e' a quella che ti connetti per
accedere ai dati, a quella deleghi l'esecuzione delle queries e delle stored
procedures, ecc. ecc.
Luca Menegotto
-- 
Posted from [62.110.78.40] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

...

Ciao Roberto e grazie mille.
Un chiarimento: allora non c'è proprio modo di far eseguire la query al
server con il motore Jet, in modo da limitare il traffico di rete, neanche
usando l'opzione dbSQLPassThrough quando si creano recordset o si eseguono
query?
Insomma, per lavorare realmente in modalità client/server, devo per forza
passare a SQL Server o MSDE?
Saluti
Ciccio

 solo sui client.
Per fortuna che il buon Roberto ha badato alla conversazione ... credo di
aver fatto un po' di confusione con ADO (lato server) e soprattutto non ho
usato molto DAO ...
 In effetti ... con DAO non č possibile creare cursori lato server (cioč, č
possibile ma sono completamente inutilizzabili); la libreria DAO provvede
alla gestione dei cursori e il MDAC (se non sbaglio) fornisce il motore di
elaborazione delle query.
In pratica le operazioni vengono effettuate in locale anche se poi i dati
(tutti i dati) devono essere recuperati dalla rete(operazione estremamente
pesante); per esempio un'operazione "SELECT * FROM Tabella WHERE Campo = 1"
richiede che tutti i record vengano passati  dal server al cursore per poi
essere sottoposti al filtro della condizione WHERE ...
Correggetemi se sbaglio ...
    in ADO sono piů afferrato ...
Saluti

 passare a SQL Server o MSDE?
in sostanza temo di si...
dipende da cosa intendi con "lavorare realmente", cioe' che tipo di
programma devi fare, quanti utenti avra', che quantita' di dati dovrai
trattare  e
quindi che traffico di rete genera (a proposito, lan, internet ? ) ecc...

    in ADO sono piů afferrato ...
"Af"ferrato a cosa?
Ciao