Newsgroup: it.comp.appl.access
Titolo: istruzioni sql pass-through da codice

Ciao a tutti,
vorrei eseguire alcune istruzioni direttamente sul rdbms a cui sono
collegato via odbc. Adesso ho creato delle qry pass-through che
eseguo ... ma è poco flessibile perchè dovrei comporre le istruzioni
dinamicamente (alcune sono funzioni e sp residendi sul database
server) da codice.
E' possibile farlo passando tutti i parametri per la connessione ? c'è
qualche sempio in rete da cui trarre spunto ?
Grazie.
Ganimede Dignan.


Scusa ma la Query_PT è modificabile via codice...!
Currentdb.QueryDefs("NomeQuery_PT").SQL="........"
Cosa intendi di preciso....?
@Alex

 Cosa intendi di preciso....?
Vorrei non avere l'oggetto query nell'elenco delle query .... vorrei
sottomettere l'istruzione direttamente da codice passando i parametri
di connessione.
Alcune sono select con delle function che esitono nel db server che mi
restituiscono dei valori... altre sono dei semplic comandi tipici del
database.
Grazie.


Creati una Query Temp.... leggi l'help e vedi che puoi farlo...
Dai un'occhiata a questo:
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=176
@Alex

 
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=176
Questa sera ci provo sicuramente.
come connectstring posso usare questa no ? i parametri ODBC che già
uso per la qry pass-though salvata.
ODBC;DRIVER={PostgreSQL
ANSI};DATABASE=CHK001;SERVER=station-1;PORT=5432;CA=d;A6=;A7=100;A8=4096;B0=254;B1=8190;BI=0;C2=dd_;CX=1b102bb;A1=7.4-2
Grazie.

 Grazie.
Si quelli usati per Linkare le Tabelle immagino....!
@Alex

ANSI};DATABASE=CHK001;SERVER=station->1;PORT=5432;CA=d;A6=;A7=100;A8=4096;B
0=254;B1=8190;BI=0;C2=dd_;CX=1b102bb;A1=7.4-2
Certo ma ti consiglio di memorizzare in una variabile globale, su avvio
applicazione, quella stringa e riproporla quando necessario nel codice (SQL
Pass Th, eventuali connessioni ODBCDirect, codice per linkare tabelle al
Server...).
In questo modo, se dovesse essere modificata per qualche ragione, lo farai
una volta sola.
Ciao.

 Server...).
Si, uso una tabella locale al front-end con i paramtrei di
connessione. Con una function compongo la stringa e la richiamo in
varie parti del codice.
Ganimede Dignan.

 quella nel recordsource ?
Il problema è chiaramente quello della stringa di connessione: se la query
PassTh è salvata, invece che creata a codice su apertura Report, memorizzerà
una stringa di connessione al Server che certamente cambierà sui PC dei
clienti.
Non è un problema su apertura del Report creare a codice (previa verifica
esistenza) la query PassTh con CreateQueryDef e assegnare alla proprietà
Connect la stringa di conn. ODBC del Server.
Ma poi: per quale ragione usare una Query di selezione PassTh?
Se fai un pizzico d'attenzione quasi tutte le stringhe SQL Select di Access
vengono eseguite lato Server, senza perder tempo con l'SQL specifico del
Server.
Le query PassTh possono essere molto utili per massimizzare le performances
dei processi d'aggiornamento Batch degli archivi (in genere non troppo
performanti quando sviluppati con Visual Basic+DAO).
Ciao.


Avevo inteso l'ipotesi di associare un Recordset in modo dinamico come
si può fare per le form.... ma forse ho capito male...!
Per il resto hai parlato come un libro stampato(almeno per me)...
@Alex

 Server.
Perche nel risultato della select che eseguo pass-through ci sono
delle function che restituiscono determinati valori.
Queste function sono scritte in altri linguaggi (due in PL/pgsql e due
in java) e vengono eseguite lato server.
Le 4 function in questione non sono semplici da relizzare ... una è
piuttosto complessa... alcune pagine di codice per cui  preferisco
usare quelle che già ci sono.

Per il resto hai parlato come un libro stampato(almeno per me)...
Eh, eh: ma lo sai che nel corso degli anni ho avuto tra le mani libri
pessimi e pieni d'errori (tipo Jackson libri se non ricordo male!)     ;-))
Ciao!

usare quelle che già ci sono.
Tutto chiaro, ciao.
Oscar


No Oscar mi sono spiegato male... tu sei stato chiarissimo, io ho
inteso che l'utente volesse popolare il Report con un Recordset
derivante da una QPT via codice, associando la proprietà Recordset(com
eper le Form) che purtroppo nei Report
non è accessibile.
A questo scopo pensavo una cosa simile a questa con la quale puoi
usare una
QPT di tipo TEMP senza doverla predefinire in nessun modo:
http://www.mvps.org/access/reports/rpt0014.htm
@Alex

[CUT]
P.S. ma hai una Mail valida...?
@Alex

 P.S. ma hai una Mail valida...?
Ti chiedo scusa Alessandro, lunedě ti posto un'e-mail che riesco a scaricare
;-)
Ciao!

 Ti chiedo scusa Alessandro, lunedì ti posto un'e-mail che riesco a
scaricare
... cioè, per inciso: ho una casella personale con 
tele2.it
 che mi da
costantemente problemi.
Da qualche giorno poi proprio non va.
Se c'è qualcun altro che ha ADSL con tele2 mi faccia sapere se pure ha
difficoltà.


Non avevo mai pensato a una cosa del genere: ha il difetto di far ricorso a
del codice globale (per una cosetta che tutto sommato non lo richiede).
Passando la proprietą .Name al recordsource del Report, il codice SQL viene
eseguito non come PassTh, ma attraverso il driver ODBC (manca una proprietą
Connection che possa discriminare).
Certo, le differenze non si noterebbero dato che comunque il driver ODBC
delegherebbe al Server l'esecuzione di una semplice Select.
Comunque in questo caso non fa al caso di Ganimede: lui ha proprio bisogno
di una query PassTh per le ragioni che ha descritto.
Ciao: Oscar