Newsgroup: it.comp.appl.access
Titolo: query pass-through

Ciao ragazzi,
devo utilizzare access per un connessione a database remoto.
Se creo la tabella collegata tabella1, ogni volta che chiudo il db e
poi lo riapro, quando clicco sulla tabella1 per aprirla mi viene
chiesta la password.
Se invece creo una query pass-through con il codice sql:
SELECT * FROM tabella1
ottengo la tabella che mi serve senza necessità di digitare ogni volta
la password (nelle proprietà è infatti memorizzato ruolo e password).
Passo alle domande
esiste un modo per collegare le tabelle, evitando di digitare la
password (o meglio, la digito una sola volta per tutti gli accessi)?
c'è un qualche motivo per il quale mi consigliereste / sconsigliereste
di lavorare con le quey pass-through ?
grazie
mdm

di lavorare con le quey pass-through ?
Se hai la necessità di modificare i dati non puoi usare una query
pass-through al posto di una tabella allegata perchè il recordset ritornato
dalla query è in sola lettura.
Una query di access con due o più query pass-through in join richiederà
tutte le righe delle tabelle in questione e solo dopo averle recuperate
effettuerà il join in locale.
Una query di access con due o più tabelle allegate in join cercherà se
possibile di sviluppare la Join direttamente nel server per poi recuperare
il risultato.
Direi che bisogna usare le query pass-through per quello che sono e non come
surrogati delle tabelle.
:-)
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

Ciao Giorgio,
ti ringrazio per la risposta. In effetti la mia esigenza è proprio
quella di jointare le tabelle collegate! ed ho ancora dei dubbi:
ma se mi consigli di lavorare con tabelle collegate per fare le mie
join, mi faresti un esempio che mi illustri qundo conviene usare query
PT?
inoltre:
siccome il mio intento è quello di interrogare un db remoto tramite
access, quindi visualizzare opportunamente dei dati, da quanto mi
consigli credo sia meglio collegare tutte le tabelle che mi servono e
poi fare le join tramite access. E se invece scrivessi direttamente il
codice SQL nelle query PT, già "comprensivo" di join per ottenere i
risultati? concettualmente  è un modo sbagliato di operare?
grazie a tutti
mdm

surrogati delle tabelle.
----
Se devi fare una query con più tabelle relazionete e/o con condizioni where
complicate o che necessitano di codice nativo del server, allora è meglio
fare una query pass-through. perchè viene valutata direttamente nel server.
Spero di aver chiarito il contesto della mia risposta precedente :-)


Grazie Giorgio,
sei stato chiarissimo!!!!!
mdm

PT?
In aggiunta a quanto scritto da Giorgio, ti consiglio di leggere
documentazione relativa a ODBC (sulla KB MS trovi un buon WhitePaper) e alle
relative API.
E naturalmente ... cerca di mettere in rete due PC e testare il
comportamento della connettività con gli strumenti di SQL Server o il banale
analizzatore di rete.
Ti convincerai che, come da manuale, la quasi totalità delle queries basate
su linked Table(s) vengono eseguite lato Server.
Quando si crea una query da inviare al Server, Jet stabilisce attraverso la
chiamata odbc SQLGetInfo quali operatori e funzioni siano supportate dal
Server SQL.
Le situazioni che richiedono elaborazione lato Client sono essenzialmente:
queries miste basate su origini date eterogenee (diversi motori di
database), queries ch e contengono funzioni VBA o personalizzate, alcuni
tipi di queries a campi incrociati (in altri casi vengono parzialmente
eseguite sul Server con buonissime prestazioni).
Statisticamente le situazioni esposte sopra affliggono molti FE sviluppati
da non professionisti: ecco come nascono le leggende sulle _presunte_ scarse
prestazioni della connettività ODBC in fase di selezione dati.
Quando usare Query PT?
Possono far molto comodo per operazioni d'elaborazione BATCH (inserimenti,
aggiornamenti, eliminazioni) di grandi quantità di records: aspetto in cui
non eccellono le performances di ODBC _discrete solo se il codice è
incapsulato in transazioni esplicite_
Ciao: Silvio

Ciao Silvio,
ti ringrazio per l'intervento. Effettivamente ho testato alcune
interrogazioni con tabelle collegate (che sul db remoto sono parecchio
grosse) ottenendo tempi di risposta ottimi, quindi immagino, come dici
tu, che vengano eseguite lato server. Quindi concluderei, riportando
una tua osservazione, che poiché sto sviluppando un front end di sola
interrogazione e non dovendo effettuare operazioni di inserimento,
aggiornamento, eliminazione, posso tranquiillamente lavorare con
tabelle collegate.
Infine ti faccio una ultima domanda:
mi hai scritto: "ti consiglio di leggere
documentazione relativa a ODBC (sulla KB MS trovi un buon WhitePaper) e
alle
relative API"
mi indicheresti il link, non sono riuscito a trovarlo
grazie a tutti
mdm


http://support.microsoft.com/kb/128385/EN-US/
E' relativo a JET 3.0, ma in sostanza non è cambiato nulla nelle ultime
release.
Ciao: Silvio