Newsgroup: it.comp.lang.visual-basic
Titolo: Modificare la struttura di un DB

CIao a tutti.
E possibile modificare la struttura di un database Access (aggiungere campi
etc...) senza passare per un'istanza dell'oggetto Access??
Grazie a tutti per l'eventuale risposta
Ciao

 campi etc...) senza passare per un'istanza dell'oggetto Access??
Non ho ben capito la domanda, ma hai provato con sql?
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
www.nicolaottomano.it

Provo a spiegarmi meglio:
io ho un'applicazione che gira da un po di clienti e, ogni volta che faccio
un'aggiunta di campi al db per nuove implementazioni devo avere l'accortezza
di aggiungere i nuovi campi sul db di ogni singolo cliente a cui porto
l'aggiornamento (pazzesco!!!)
Ora mi sono stancato e volevo fare un qualcosa di automatizzato.
Ho usato, come avrai capito, l'oggetto Access e, tramite il tabledefs sono
riuscito a fare tutto quello di cui ho bisogno. Il problema e' che funziona
solo se sulla macchina del cliente e' installato Access e io vorrei slegarmi
da questa cosa.
Spero di essermi spiegato.
Grazie per l'aiuto


allora fai un exe con all'interno una query SQL e una bella ALTER TABLE.
cosě ti togli tutti gli impicci.


 Spero di essermi spiegato.
Ti eri spiegato fin dall'inizio.
E ti avevano anche risposto.
Se guardi un qualunque elenco di istruzioni Sql, vedrai che ce ne sono tante
per modificare le strutture.
Alberto

 Grazie per l'aiuto
Prego.
Ciao!
-- 
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org

 Spero di essermi spiegato.
anche in caso di utilizzo di ADO, personalmente ti consiglierei di passare
per ADOX o meglio ancora per DAO invece di usare ed instanziare Access...
DAO espone un modello ad oggetti completo che ti permette di fare
effettivamente di tutto con una base dati JET, tra gli altri
aggiungere/rimuovere colonne, modificare le proprieta' delle colonne,
indici, relazioni, querydefs...
ADOX sarebbe l'ideale in ambiente ADO, ma purtroppo soffre di alcune
problematiche specialmente riguardo le proprieta' delle colonne, per cui il
mio consiglio resta verso l'utilizzo di DAO..
saluti
-- 
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtm
 
http://italy.mvps.org
DbaMgr2k ver 0.6.0  -  DbaMgr ver 0.52.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
--------- remove DMO to reply

 colonne, indici, relazioni, querydefs...
Io ho dovuto fare una cosa simile a quella del poster originale e ho dovuto
includere sia ADOX che DAO.
Alcune cose riescono decisamente meglio con uno, altre con l'altro.
Esempio:
impostare la possibilità di inserire stringhe di lunghezza zero su nua campo
esistente --> uso ADOX
impostare il seme di un contatore (solo da Access 2000 in su) --> uso ADOX
impostare la proprietà "ammetti null" ad un campo esistente --> uso DAO
Non sempre è una questione di preferenza: le cose che ho segnalato non sono
riuscito a farle con l'altra tecnologia
termoPilucco

Grazie mille a tutti per i preziosi consigli
vi saluto
Marco

 uso DAO
A parte la seconda (il seme, di cui non ho idea), ESP0DAMA sul SC, tutto con
DAO

 tutto con DAO
Per "impostare la possibilità di inserire stringhe di lunghezza zero su un
campo esistente" ho visto che usi
campo.AllowZeroLength = true durante la creazione di una campo, ma funziona
anche su campi già esistenti?
Adesso non ho la possibilità di provarlo, ma mi pare di aver fatto un
tentativo in passato.
termoPilucco, forse mi sbaglio

 funziona anche su campi già esistenti?
Forse hai ragione, mi era sfuggito quel (fondamentale) "esistenti"...
Non so dire se si possa o meno, certo è che al momento ESP0DAMA non consente
di variare campi esistenti. Perdono.

 consente di variare campi esistenti. Perdono.
Provato: con DAO 3.6 e Access XP funziona sia impostare a true che false.
Magari ricordavo male (ho usato il metodo ADOX tempo fa e non ho lasciato
alcun commento).. ma mi pareva che con il 97 la cosa funzionasse solo in un
senso (passare da true a false ma non viceversa)
termoPilucco senza certezze