Ho realizzato un programma in Visual C++ che dovrebbe inserire dei record all'interno di una tabella di un DB MySQL.
Però mi restituisce sempre questo messaggio:

"il set di record è di sola lettura"

Vi allego parte del codice:

CDBCod::CDBCod(CWnd * pParent)
{
m_pView=(CSlaveView *)pParent;

TRY
{
m_DBCod.Open("ODBC;DSN=SQLTr",FALSE,FALSE,"ODBC;", FALSE);
m_Campo=new SQLCod(&m_DBCod);
m_Campo->Open(CRecordset::snapshot);
m_bDBAperto=TRUE;
}
CATCH(CDBException, e)
{
m_pView->AggiungiAllarme(e->m_strError,0);
m_bDBAperto=FALSE;
}
END_CATCH
}


CDBCod::~CDBCod()
{
TRY
{
if (m_Campo->IsOpen())
m_Campo->Close();

m_DBCod.Close();

delete m_Campo;
}
CATCH(CDBException, e)
{
m_pView->AggiungiAllarme(e->m_strError,0);
}
END_CATCH
}


BOOL CDBCod::CreaCod(
CString cod1,
CString cod2,
CString cod3
)
{
struct Cod cod;

cod.cod1=cod1;
cod.cod2=cod2;
cod.cod3=cod3;

m_SecCritica.Lock();
BOOL Risultato = FALSE;

TRY
{

m_Campo->AddNew();

RiempiCampo(&cod);

m_Campo->Update();

Risultato = TRUE;

}
CATCH(CDBException, e)
{
m_pView->AggiungiAllarme(e->m_strError,0);
}
END_CATCH

m_SecCritica.Unlock();
return Risultato;
}


Io ho creato sul mio PC una istanza di MySQL con nome utente ("utente") e password ("pass"), mi collego al DB di MySQL utilizzando ODBC
e la proprietà CRecordset.
Al momento della connessione non ottengo alcun errore e il server di MySQL è già avviato.
Dove sbaglio? E' giusto utilizzare il comando AddNew per inserire i record, credo di si visto che è una funzione di CRecordset? Forse da
qualche parte devo settare le proprietà di lettura/scrittura del DB, ma dove? Sotto windows (XP) la cartella che contiene le tabelle del DB hanno già il
permesso in scrittura.

Aggiungo che se mi connetto a DB di Access tutto funziona correttamente. Perchè?