Newsgroup: it.comp.appl.access
Titolo: Access e MySql

In azienda abbiamo installato un server mySql, vorrei utilizzare come front
end Access.
il collegamento fra Access e MySql avviene tramite ODBC.
Ora mi sono venuti dei dubbi .
-Dove creo gli utenti e gli accessi al DB, (all'interno di mySql o in
Access )
-Per avere accesso alle tabelle del DB č meglio creare delle tabelle
collegate o costruire delle query
  "pass-through"
Se qualcuno ha gia affrontato questo problema mi puo' aiutare ?
grazie
Alessandro

  "pass-through"
La seconda che hai detto, ovviamente. Altrimenti la query viene eseguita
client side dal Jet e diventa inutile usare MySQL!
Saluti.
Luciano

 client side dal Jet e diventa inutile usare MySQL!
Non è detto: se la sintassi della query è compatibile con l'SQL del Server,
il driver ODBC la fa eseguire al Server medesimo.
Ciao, Simone

 il driver ODBC la fa eseguire al Server medesimo.
E' la prima volta che lo sento. Dove l'hai letto?
A me, cosi' a occhio non sembra che si comporti cosi'....
Saluti.
Luciano

 Saluti.
Cosa mi combini Lucià: è tutta roba ampiamente documentata ;-)
Esiste anche la possibilità di generare un file in cui mappare il
comportamento delle query.
Per la verità sto lavorando con SQL-Server, ma il funzionamento di ODBC
dovrebbe essere lo stesso per tutti i motori.
Comunque questo volume mi ha aiutato moltissimo: "JET database engine guida
del programmatore" di Microsoft Press.
Autori: D. Haught e J. Ferguson
Ciao.

 del programmatore" di Microsoft Press.
Appunto! Un libro sull'uso del Jet, un prodotto Micorsoft. Mi dici la pagina
dove afferma che con MySQL si puo' fare quello che dici tu? Non sto dicendo
che non si puo', ma controlla bene che citi espressamente MySQL!:-)
Saluti.
Luciano

 wrote in message
news:Gc0l8.30519$1S3.9...@twister1.libero.it...

Fammi capire, tu hai due tabelle (clienti e ordini) su sql server,
le alleghi come local_clienti e local_ordini, ci fai in access
una query tipo: 
select 
   local_clienti.idcliente, local_ordini.idordine
from 
   local_clienti, local_ordini
where 
   local_ordini.idcliente = local_clienti.idcliente
e tramite il profiler di sql-server (o il trace odbc) hai verificato
che odbc ti trasforma la query in:
select 
   dbo.clienti.idcliente, dbo.ordini.idordine
from 
   dbo.clienti INNER JOIN 
   dbo.ordini ON dbo.ordini.idcliente = dbo.clienti.idcliente
Sicuro sicuro? 
Fino ad un paio di annetti fa non funzionava così, utilizzando 
le tabelle allegate i join venivano sempre risolti dalla jet in 
locale (che poi a volte sia meglio è un altro discorso...).
Non sarà che in realtà stai utilizzando un progetto che accede
a sql (o msde) via ADO?
Bye, Ste
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 che non si puo', ma controlla bene che citi espressamente MySQL!:-)
Assolutamente non lo dice: ma dato che i drivers ODBC rispettano certe
specifiche è probabile che anche con MyODBC funzioni così..
Ciao, Simone

 a sql (o msde) via ADO?
Se fosse così l'avrei precisato!
Ciao: Simone

 
L'argomento è interessante e così mi sono preso i 2 minuti per provare
la cosa, ho creato una dsn che punta al mio sqlserver locale, ed ho
allegato via odbc le tabelle order e customers del northwind di sql2000
in un db access (sempre 2000).
Quindi ho eseguito la semplicissima query sulel due tabelle che ritorna
customers.customerid e orders.orderid, e cioè:
SELECT dbo_Customers.CustomerID, dbo_Orders.OrderID
FROM dbo_Customers INNER JOIN dbo_Orders ON dbo_Customers.CustomerID =
dbo_Orders.CustomerID;
A questo punto prima di eseguirla ho attivato una trace sul server che
mi monitorasse che statement venissero inviati a sql2000, ed ecco qua
cosa ho ottenuto:
(1)
declare @P1 int
set @P1=6
exec sp_prepexec @P1 output, N'@P1 nchar(5),@P2 nchar(5),@P3
nchar(5),@P4 nchar(5),@P5 nchar(5),@P6 nchar(5),@P7 nchar(5),@P8
nchar(5),@P9 nchar(5),@P10 nchar(5)', N'SELECT "CustomerID"  FROM
"dbo"."Customers"  WHERE "CustomerID" = @P1 OR "CustomerID" = @P2 OR
"CustomerID" = @P3 OR "CustomerID" = @P4 OR "CustomerID" = @P5 OR
"CustomerID" = @P6 OR "CustomerID" = @P7 OR "CustomerID" = @P8 OR
"CustomerID" = @P9 OR "CustomerID" = @P10', N'ALFKI', N'ALFKI',
N'ALFKI', N'ALFKI', N'ALFKI', N'ALFKI', N'ANATR', N'ANATR', N'ANATR',
N'ANATR'
select @P1
(2)
declare @P1 int
set @P1=7
exec sp_prepexec @P1 output, N'@P1 int,@P2 int,@P3 int,@P4 int,@P5
int,@P6 int,@P7 int,@P8 int,@P9 int,@P10 int', N'SELECT
"OrderID","CustomerID"  FROM "dbo"."Orders"  WHERE "OrderID" = @P1 OR
"OrderID" = @P2 OR "OrderID" = @P3 OR "OrderID" = @P4 OR "OrderID" = @P5
OR "OrderID" = @P6 OR "OrderID" = @P7 OR "OrderID" = @P8 OR "OrderID" =
@P9 OR "OrderID" = @P10', 10643, 10692, 10702, 10835, 10952, 11011,
10308, 10625, 10759, 10926
select @P1
(3)
exec sp_execute 6, N'GODOS', N'GODOS', N'GODOS', N'GODOS', N'GODOS',
N'GODOS', N'GODOS', N'GODOS', N'GODOS', N'GODOS'
(4)
exec sp_execute 7, 10303, 10550, 10629, 10872, 10874, 10888, 10911,
10948, 11009, 11037
E' abbastanza evidente dalle prepare 1 e 2 che la jet "gira" al server 
due select distinte sulle due tabelle per eseguire poi il join in 
locale, cosa del tutto in linea con quanto si sapeva della jet engine 
fin dal suo esordio.
Se non altro negli ultimi tempi il mondo non è cambiato fino a questo
punto!
