Newsgroup: it.comp.lang.visual-basic
Titolo: ADO, perche'???

Non riesco a capire perche' questo codice da errore:
<codice>
Dim db As New ADOX.Catalog
Dim table1 As New ADOX.Table
db.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & TextField.Text
 table1.Name = "Persone"
table1.Columns.Append "ID", adInteger
table1.Columns.Append "Nome", adVarWChar, 20
table1.Columns.Append "Cognome", adVarWChar, 30
table1.Keys.Append "pk", adKeyPrimary, table1.Columns("ID")
db.Tables.Append table1
db.Tables("Persone").Columns("ID").Properties("Autoincrement").Value = True
</codice>
l'errore e' segnalato all'ultima riga: *si sono verificati errori  in
un'operazione OLE DB composta da piu' passaggi...*
Io il vb non riesco proprio a capirlo :(
ciao,
tragick

 Io il vb non riesco proprio a capirlo :(
Giusto per scrupolo, hai provato ad impostare la property della colonna
*prima* di aggiungere la tabella alla collection Tables?
(come da esempio MSDN, in particolare la pagina relativa a "Esempio di
proprietą ParentCatalog" che e' praticamente uguale a quello che vuoi fare)
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown


Prima di aggiungere la tabella al database purtroppo non risulta alcuna
proprieta': ho testato
*table1.Columns("ID").Properties.Count* e risulta uguale a 0.

 ha scritto nel messaggio
news:7iMd8.11455$fa5.3...@twister2.libero.it...

Devi impostare il ParentCatalog alla tabella come nell'esempio che ti
citavo, per poter accedere alle proprieta' di default, fornite dal provider
(per inciso ecco perche' l'esempio di AutoIncrement e' nella stessa pagina
di guida di ParentCatalog)
Il tuo codice dovrebbe diventare quindi:
table1.Name = "Persone"
Set table1.ParentCatalog = db
table1.Columns.Append "ID", adInteger
table1.Columns("ID").Properties("Autoincrement").Value = True
[...]
db.Tables.Append table1



Scusami, ma non avevo colto il tuo suggerimento. Purtroppo questo succede
quando non si ha una sufficiente conoscenza di quello che si sta facendo. Io
ho inziato da poco con vb e sto portando avanti di pari passo
l'apprendimento del linguaggio e lo sviluppo di un'applicazione fortemente
basata sui database... devo dire che ancora ci capisco veramente poco e
molte cose funzionano dopo svariati tentativi, ma il perche' del loro
funzionamento mi rimane oscuro!
grazie ancora, mi hai facilitato non poco il lavoro
tragick

 quando non si ha una sufficiente conoscenza di quello che si sta facendo.
[SNIP]
Non ti devi scusare, in realta' potevo essere piu' esplicito subito ma ti
volevo proprio spingere a spulciare in giro per la guida in linea,
esattamente come ho fatto io, dato che.... inizialmente non conoscevo la
risposta alla tua domanda!
infatti non ho mai avuto bisogno di usare codice simile al tuo, per cui l'ho
guardato, ho dato un occhiata alla pagina di help corrispondente e ho tratto
le conclusioni dalle spiegazioni e dagli esempi... nel rispondere a te ho
imparato una cosa nuova anch'io ;-)


 ho inziato da poco con vb e sto portando avanti di pari passo
Il problema qui non è VB, ma ADO :)
E poi tu inizi proprio con le cose semplici eh?
Personalmente preferisco creare una tabella sganciandomi dagli oggetti di
programmazione, usando semplicemente le istruzioni SQL (che sono pressochè
standard) come CREATE TABLE/ALTER TABLE
Ciao

 standard) come CREATE TABLE/ALTER TABLE
Sì, anch'io.
Molto meglio.
ciao
ugo