Newsgroup: it.comp.software.database
Titolo: Espandere query SQL da Access per uso con ODBC

Il titolo non spiega un tubo, e me ne scuso in anticipo, spero che quanto 
scritto sotto sia più chiaro.
Normalmente uso Access e il suo ambiente di creazione query per generare 
interrogazioni di cui poi utilizzo il codice SQL generato nelle 
applicazioni web che sviluppo e che prevedono accessi ai dati tramite ODBC.
Ho una query piuttosto incasinata composta a sua volta da alcune sottoquery, 
per cui il codice SQL che viene generato da Access fa riferimento alle 
query precedentemente memorizzate, e quindi è inutilizzabile così com'è in 
una chiamata ODBC, soprattutto perchè il database su cui lavoro è un 
database Paradox.
Qualcuno mi può dire se nella sintassi delle query SQL che si fanno con ODBC 
c'è la possibilità di fare riferimento a sottoquery? (che letto in altro 
modo signitfica: non conosco SQL a sufficienza, mi date una mano? :-) )
Grazie per ogni aiuto o riferimento vorrete darmi :-)
-- 
Ciao
Nico

 ha scritto nel messaggio
news:b132s4$mff$1...@atlantis.cu.mi.it...

Hai provato a copiare il codice SQL dal QBE ed eseguire una QRY
dal metodo EXECUTE...che tra le altre cose riesce ad evitarti l'utilizzo
di JET se usi le giuste opzioni........?
@Alex.

 @Alex.
Mi sono spiegato male, evidentemente. Aggiungo che il codice SQL lo eseguo 
nel codice php che si occupa di connettermi alla base dati (paradox) le cui 
tabelle sono collegate nel db Access che uso per poter usare il QBE. A meno 
di usare un dsn collegato al db Access a sua volta collegato con le tabelle 
Paradox, non si fare riferimento alle sottoquery create in Access, ma 
dovrei in qualche modo utilizzare un unico comando SQL. Il problema è che 
non so se si può fare.
Temo di essere stato ancora più confuso nella mia spiegazione e me ne scuso. 
Comunque grazie per avermi risposto :-)
-- 
Ciao
Nico

non so se si può fare.
Beh dunque se le tue pagine PHP sono collegate via ODBC ad Access puoi
usare senza dubbio i riferimenti alle query che hai memorizzato nel
file mdb.
Infatti puoi fare una select * from query.
Ma se, come ho capito, sei connesso al DB Paradox ovviamente la tua
istruzione SQL non funziona se fa riferimento a delle query che non
esistono.
La soluzione è creare le view relative sulla base dati Paradox (non la
conosco affato...).
E poi il codice SQL dovrebbe girare.
Di fatto provare il codice SQL tramite QBE non mi sembra un buon
espediente se poi ti connetti su un altro DBMS
Ciao
-- 
reintermediare processi front-end

 
Era il più comodo. Del resto fino a che facevo query semplici (e soprattutto 
senza join esterni) il giochino funzionava a meraviglia. Visto che nemmeno 
io so nulla di Paradox (se non che è bastardo quando faccio accessi 
concorrenti e comunque lento via ODBC) cercherò di capire come si fanno le 
sottoquery sperando che pdox le capisca e che siano un po' più veloci :-)
-- 
Ciao
Nico

sottoquery sperando che pdox le capisca e che siano un po' piů veloci :-)
beh guarda... piů che di sottoquery tu hai bisogno delle viste.
Non conoscendo Paradox non posso dirti se le view sono supportate,
comunque su un DBMS che le supporti creerei tante view quante sono le
query sulle quali mi appoggio nel DB Access.
Una volta fatto questo la query che avevi testato dovrebbe girare.
Ad esempio, il seguente script mostra l'uso di una vista e di una
query basata sulla vista appena creata; che - se non ho capito male -
č quello che servirebbe a te.
Ho provato questo script su MSSQL2000.
Ciao
---Cut
create database testview
go
use testview
create table tabella1 (num int primary key, testo1 char(10), testo2
char(20))
insert into tabella1 values (1, 'ciao', 'testo2')
insert into tabella1 values (2, 'ciao2', 'testo3')
insert into tabella1 values (3, 'ciao3', 'testo4')
select * from tabella1
create view vista1 as (select num, testo1 from tabella1)
select * from vista1
select * from vista1 where num>2
---Cut
-- 
reintermediare processi front-end

 Non conoscendo Paradox non posso dirti se le view sono supportate,
Nemmeno io :-) Tanto più che il database (e l'integrità dei suoi dati) è 
sostanzialmente affidata ad una ditta esterna. Beh visto che le sue tabelle 
sono memorizzate su semplici file, mi copio la directory e ci smacchino un 
po' (prevedo macelli, ma chi se ne frega :-) )
Grazie delle dritte (anche se ho poche speranze per le viste...)
-- 
Ciao
Nico