Newsgroup: it.comp.appl.access
Titolo: Esplorando la tabledef...

Salve a tutti, sto progettando un programmino che allinea la struttura
dati di un database partendo dalla struttura di un database master.
Per fare questo, mi sto addentrando alla scoperta della tabledef,
riuscendo in effetti ad aggiungere i campi mancanti del database
slave, che invece si trovano nel database master.
Ora avrei l'esigenza anche di aggiornare nel database slave tutte le
proprietà dei campi in comune tra i 2 database, nel caso in cui
cambino ad esempio, etichette, lunghezza dei campi, regole di
convalida ecc.
Per l'aggiunta ho fatto così:
.....
Set fld = tdf.CreateField(rs_newfields!FieldName, tipodati)
                fld.DefaultValue = rs_newfields!Predefinito
                fld.Required = rs_newfields!Richiesto
                fld.ValidationRule = rs_newfields!Valido_se
                fld.ValidationText = rs_newfields!Messaggio_errore
                If Not IsNull(rs_newfields!length) Then
                    fld.Size = rs_newfields!length
                End If
....
                tdf.Fields.Append fld
Eccetera....
Per l'editing di un campo già esistente invece non riesco a capire
come comportarmi. Non esiste una proprietà tdf.Fields.Edit o cose del
genere, l'unica cosa che mi viene in mente è aprire un recordset con
la tabledef e andarci dentro...
Solo che non so cosa guardare! Cosa ci si trova dentro la tabledef?
Come è costruita al suo interno?
Se avete anche solo documentazione da potermi linkare, per me sarebbe
già qualcosa.
Grazie per l'attenzione

Ora avrei l'esigenza anche di aggiornare nel database slave tutte le
proprietà dei campi in comune tra i 2 database, nel caso in cui
cambino ad esempio, etichette, lunghezza dei campi, regole di
convalida ecc.
......
[CUT]
.......
Per l'editing di un campo già esistente invece non riesco a capire
come comportarmi. Non esiste una proprietà tdf.Fields.Edit o cose del
genere, l'unica cosa che mi viene in mente è aprire un recordset con
la tabledef e andarci dentro...
Solo che non so cosa guardare! Cosa ci si trova dentro la tabledef?
Come è costruita al suo interno?
Se avete anche solo documentazione da potermi linkare, per me sarebbe
già qualcosa.
Grazie per l'attenzione
________________________________
usando l'SQL potresti scrivere qualcosa di simile:
ALTER TABLE `nometabella` CHANGE `nomecampo` `nomecampo` INT( xxx ) NULL 
DEFAULT '0' ....ecc.
ciao
Riccardo 


Grazie, questa cosa già la sapevo. Il problema è che con l'ALTER TABLE
non puoi accedere alle proprietà non specifiche di Jet, quindi non
potrei andare a modificare alcune proprietà del campo. Ho la necessità
quindi di usare le tabledef.

 - Mostra testo tra virgolette -
Accidenti, in rete ho trovato questa cosa:
"Using DAO, you have to CreateField() of the new size, execute an
UPDATE
query to populate it, and then remove the old field. "
Questo significa che per aggiornare tutti i campi di una tabella,
dovrei duplicarli tutti con le nuove proprietà, per poi spostare i
dati nei nuovi campi, cancellare i campi vecchi rinominare i nuovi
come quelli vecchi...
Che atrocità.... mi chiedo come mai non sia possibile...

 ha scritto nel messaggio 
news:bef1e47d-78c9-42fe...@18g2000hsf.googlegroups.com...





_____________________
prova a vedere se puoi fare qualcosa con la proprietà Type dell'oggetto 
Field.
altrimenti ahimé!
non so come aiutarti.
:-(
ciao
Riccardo