Newsgroup: it.comp.appl.access
Titolo: errore mysql con union tabelle collegate

eseguendo questa sql direttamente in mysql non ho problemi
SELECT  identificativo_ruolo
FROM flusso_n0_nuovo
union
(SELECT identificativo_ruolo
FROM flusso_n1_nuovo)
UNION (SELECT identificativo_ruolo
FROM flusso_nr_nuovo);
se la faccio girare in access (le tabelle mysql sono collegate)
mysql mi restituisce errore di sintassi alla prima union
se invece tolgo la terza union non ho nessun errore
qualcuno sa indirizzarmi per trovare una soluzione
ciao a tutti e buona giornata
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ciao a tutti e buona giornata
UNION o UNION ALL?
Le parentesi vanno eliminate
Sono coerenti i vari indetificativo_ruolo (come definizione dati?)
Ciao 

OneEDP ha scritto:


anzitutto grazie per la risposta
ho usato union e poi union all, ho tolto le parentesi, i campi sono
identici come formato ma mi restituisce lo stesso errore
nulla da fare


 nulla da fare
Mi incolli l'errore?


right syntax to use near UNION ALL
(SELECT identificativo_ruolo
FROM flusso_n1_nuovo.....
at line 1 #1064
è una sintesi ma credio sia sufficiente
grazie

 grazie
Visto che si tratta di union e non modificabili createle in pass-through 
ODBC.
E' probabile che attraver il jet di access mysql interpreti qualche 
carattere come errori di sintassi
Forse hai battuso shift+invio?

OneEDP ha scritto:


nessun carattere strano
il problema � che devo passare un parametro where ad ogni union e quindi
le pass-through non posso usarle con facilit�
nessuna altra idea?



Allora fai una cosa.
Dopo che hai passato il parametro vai in struttura e incollami da "SQL 
Visualizzazione" tutto quanto. E' qui l'inghippo.
Lo statement sql � comunque modificabile da vba con
CurrentDb.querydefs("qryMySQL.SQL (read/write) con cautela.
Da qui senza impazzire con i parametri e altro puoi divertirti

OneEDP ha scritto:

penso non sia l� il problema visto che l'errore me lo restituisce con
l'sql che ti ho inviato



Senza tutto lo statement non posso aiutarti 

OneEDP ha scritto:

l'errore me lo d� lo statement che ti ho inviato, figuriamoci quello
completo dei vari where
per questo non ti ho postato quello intero


 OneEDP ha scritto:



nessuno che ha un'altra soluzione?



Hai detto che erano collegate le tabelle?
Hai usato CurrentDb.querydefs("MyQeyUnionInMySQL").SQL ? 

OneEDP ha scritto:

no
sinceramente non conosco questo "MyQueryUnionInMySQL" comando enon ho
trovato nulla nemmeno nella documentazione in linea di vbs for application



Non conosci proprio vba a questo punto.
Nella istruzione CurrentDb.querydefs("MyQueryUnionInMySQL").SQL   la stringa 
"MyQueryUnionInMySQL" � un nome di fantasia: � il nome che attribusci tu 
alle query.
Da vba puoi crearti lo statement che ritieni opportuno.
Attenzione ad utilizzarlo con cautela altrimenti rischi di danneggiare 
irreparabilmente lo statement e devi ricreartelo a manina.
Ti consiglierei se vuoi utilizzare questa tecnica di memorizzarli in qualche 
memo.
E poi non mi hai ancora  incollato lo statement con i parametri come ti 
avevo detto.
Se non lo fai non posso davvero aiutarti. "SQL Visualizzazione"
Daniele 

OneEDP ha scritto:


scusa ma non avevo capito, le querydefs le conosco benissimo
non ti ho incollatto lo statment perch� gi� quello epurato dai parametri
where non funziona
ovviamente � stata la prima prova che ho fatto quella di togliere i
parametri onde evitare problemi vari
ciao


 ciao
Fraintendimenti di percorso...
L'errore di sintassi potrebbe essere dato da quello che ci metti nelle 
flusso_n1_nuovo.
Mi hai detto che sono tabelle collegate. Non � che per caso una di questi 
flussi � una query con qualche errore di sintassi?
Ciao 

OneEDP ha scritto:

no, purtroppo sono tutte tabelle collegate via odbc



Il jet di Access � estremanene inefficiente.
Immagina una join.
Tutto viene riversato in locale � poi vengono eseguire le join
Ti consiglio di non utilizzare le query pass-through e dovrai solo parlare 
in mysql e trovare l� i problemi
Ciao 


Mi correggo Ti consiglio di UTILIZZARE le query pass-through.
E poi c'� il databindig a partire da access 2002 di recordset modificabili
Ti cito un articolo 
http://support.microsoft.com/kb/281998
Daniele