Newsgroup: it.comp.programmare.win32
Titolo: Serialization, Access, MFC problemi

OK, sono un newbie del newsgroup. Mi sono scaricato
tutto l' ultimo mese di messaggi ma non ho trovato niente che 
rispondesse a quello che mi serve quindi vi chiederei di rispondere a
questa questione probabilmente banale.
Mi sto avvicinando a Visual C++ in questi mesi.
Vorrei realizzare uno stupido set di programmi fatto cosi`.
C' e` un programma che memorizza dati come in una rubrica telefonica
(OK non sono nomi e indirizzi ma sono sempre dei record molto
semplici). Un' altro programma deve essere in grado di leggere 
gli stessi dati, elaborarli, e, insieme ad altri dati, creare un altro
tipo di file in cui memorizzare il risultato dell' elaborazione. In
altre parole ci sono 2 tipi di file. Un programma ne scrive uno,
un' altro programma scrive l' altro ma deve leggere anche il primo.
Avevo provato a fare questa cosa con la serializzazione di MFC.
Finche` si tratta di memorizzare un file e` tutto molto semplice ma se
poi questo file lo devo far leggere al secondo programma non so come
fare (non basta, da quel che ho capito, reimportare grezzamente le
classi necessarie). Nei meandri di MFC c' e` un sistema per fare
questa cosa?
Pensando che non si potesse fare, ho pensato che sarebbe stato molto
piu` semplice e logico usare anziche` due file (che in definitiva sono
due tabelle) un semplice database di Access contenente due tabelle.
Usando il Project Wizard infatti e` possibile creare una applicazione
che si interfacci semplicemente con una o piu` tabelle di un file
Access. Ho seguito per imparare il semplice tutorial che c' e`
nell'Help e che si chiama "Enroll". Apparentemente e` tutto molto
semplice e lineare ma quando vado ad eseguire il programma generato,
al momento di caricare il file Access mi da` un errore che suona
cosi`:  "Parentesi non valide nel nome 'CourseID'"  .
Per la cronaca 'CourseID' e` il nome del primo campo della 
tabella. Ho provato a piazzare un breakpoint in 
void CSectionForm::OnInitialUpdate()
{
	m_pSet = &GetDocument()->m_sectionSet;
	CRecordView::OnInitialUpdate();
}
metodo creato dal wizard ma francamente non ce la faccio a 
capire cosa accade perche` sono alle prime armi con MFC. Quando
va dentro a OnInitialUpdate molto presto si genera una eccezione 
che esce fuori in qualche file astruso di MFC e mi perdo subito. 
Pensando di aver sbagliato qualcosa, ho cercato di prendere i
file di esempio forniti con MSDN (tanto il database quanto i sorgenti
del programma) ma mi danno esattamente lo stesso errore. A questo
punto penso di essere veramente un idiota: evidentemente ho qualche
esoterico settaggio nel compilatore o in Windows che non mi fa
funzionare le cose solo che non so dove mettere le mani. 
A questo punto vorrei sapere:
1)La strada della serializzazione e` percorribile o no? Se si dove mi
consigliate di documentarmi?
2)E` una cattiva idea usare Access? E soprattutto come mai non mi
funziona?
P.S. : dimenticavo ho il normale VC++ 6.0 per studenti
Per quanto riguarda il file l' ho registrato mediante il tool ODBC
di Windows come specificato nel tutorial, lasciando ove non
diversamente specificato le impostazioni di default.

 2)E` una cattiva idea usare Access?
Si tratta di una formulazione particolare di una domanda piu` generale:
quando conviene usare un database e quando invece un normale file? Ci si
potrebbe scrivere sopra un trattato. Anche qui mancano troppe informazioni,
come minimo la mole di dati che devi gestire e il modo in cui vi devi
accedere (sequenziale, indicizzato...).
---
Bye! Lorenzo Lutti
http://antani.virtualave.net/