Newsgroup: it.comp.appl.access
Titolo: Stringa di connessione MySQL

Salve a tutti,
qualcuno utilizza Access, quindi VBA, come front end per gestire database
MySQL? Attraverso il driver MyODBC riesco a leggere le tabelle MySQL, ma in
nessun modo riesco a scrivere (ottengo sempre un messaggio di oggetto di
sola lettura). Qualcuno mi può dire quale è la corretta stringa di
connessione?
Grazie,
CD 

 ha scritto nel messaggio 
news:d6es9l$jm7$1...@fata.cs.interbusiness.it...

L'odbc entra con utente root?
Non riesci ad inserire i dati nelle tabelle collegate o tramite query di 
comando ,o addrecord dao ?
Prova a mettere in ogni tabella un campo timestamp (dovrebbe aiutare nel 
caso di campi autoincrement) 


La stringa di connessione viene generata dall'odbc manager di Windows quando
crei un DSN. Vedi come è impostata dall'oggetto tabledef quando hai fatto il
link alle tabelle odbc.
Per quanto riguarda la modificabilità del recordset, non ho compreso se:
1) Aprendo in visualizzazione griglia le tabelle riesci a fare modifiche di
campi esistenti
2) Ti appare la riga vuota per l'inserimento di un nuovo record
Supposto che la stringa di connect ti faccia loggare sul server con i grant
di update, insert e delete, il motivo della non modificabilità potrebbe
dipendere dal fatto che i record non siano identificabili da una chiave
univoca.
Es. le tabelle linkate hanno una pk? Le tabelle collegate _devono_ avere una
chiave non duplicabile per poter essere modificate da Access.
Altro, sulla base di come descrivi il problema, non riesco a dire.
Ciao, Sandro.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio 
news:212Z210Z230Z103...@usenet.libero.it...

L'aggiornamento delle tabelle ODBC avviene tramite del codice scritto in 
VBA,
le stringhe di connessione sono le seguenti:
.....
Set variabileW = CreateWorkspace("","","",dbUseODBC)
Set variabileC = variabileW.OpenConnection("nomedb",,FALSE," _
    ODBC;DATABASE=nomedb;UID=nomeuid;PWD=psw;DSN=nomedsn")
Set variabileT = variabileC.OpenRecordset("nometabella", _
    dbOpenDynamic,dbExecDirect,dbOptimistcValue)
mi permette solo la presentazione dei dati, quando effettuo l'istruzione:
   variabileT.AddNew
ottengo il seguente errore:
   "Impossibile aggiornare. Database o oggetto di sola lettura."
Nonostante nella stringa di connessione sia stato impostato il valore FALSE, 
che indica che
la connessione non è di sola lettura.
Grazie per l'aiuto che potrete darmi.
CD


Io uso regolarmente Access com FE a MySQL con MyODBC.
Collego le tabelle la prima volta, dopodichè ho tutto un framework dal quale
eredito workspace, connection, currentdb e compagnia bella. Del resto
nell'oggetto tabledef di ciascuna tabella collegata è espresso per benino
tutto ciò che occorre per collegarsi alla tabella sul server, cioè proprio
la stringa di connessione. Quello che segue è proprio la stringa di connect
così come espressa nella proprietà connect di una delle tabelle collegate:
ODBC;DRIVER={MySQL ODBC 3.51
Driver};DESC=;DATABASE=nome_db;SERVER=localhost;PASSWORD=******;PORT=3306;OPTION=0;STMT=;;TABLE=nome_tabella
In pratica, quando voglio accedere mediante DAO ad un recordset non faccio
altro che fare:
set rs=CurrentDb.OpenRecordset("SELECT * FROM tabella")
e se la tabella è rappresentata su Access fra la tabelle collegate con una
pk ,ho a disposizione i metodi per aggiungere, eliminare e modificare senza
alcun problema.
Gli unici casi nei quali non sono supportati i metodi di modifica sono
quelli nei quali non esiste una pk valida per la tabella collegata
HTH
