Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Jet OLEDB:Compressed UNICODE Strings

Vorrei impostare la proprietà "Jet OLEDB:Compressed UNICODE Strings" a true
in un campo testuale ( ma anche memo) prima di appenderlo (ma anche dopo) ad
una tabella di un DB in formato Access 2000/2002.
Fin'ora sono riuscito ad ottenere solo una marea di errori :)
In DAO non saprei come fare: "Compressed UNICODE Strings" non appare
nell'elenco delle properties di un DAO.field.
In ADOX si dovrebbe fare così:
Set col = New ADOX.Column
col.Name = strNomeCampo
col.Type = adLongVarWChar
Set col.ParentCatalog = cat ' cat è il mio adox.catalog connesso alla mia
adodb.connection
col.Properties("Jet OLEDB:Compressed UNICODE Strings").Value = True '
errore: proprietà non trovata
[...]
Il problema è che, nonostante abbia collegato la colonna al mio "catalogo"
(Set col.ParentCatalog = cat), le proprietà rimangono un insieme vuoto e non
trovo alcun metodo per aggiungere elementi all'insieme stesso.
Se invece appendo il campo alla tabella ottengo tutte le properties
desiderate, ma alcune (fra cui indovinate quale) sono di sola lettura.
Qualcuno ha qualche consiglio?
termoPilucco

"termoPilucco"  ha scritto
[...]
visto che sono in vena di richieste strane,  qualcuno sa come impostare da
codice (ADO o DAO) i commenti dei campi che appaiono in visualizzazione
struttura della tabelle?
Sempre per Access 2000/2002
termoPilucco

[termoPilucco = 
circa_ter...@hotmail.com
 in
c60mae$6al6d$
1...@ID-188026.news.uni-berlin.de
] ha scritto:

Mi faresti un enorme favore, ma temo che sia una caratteristica di Access,
l'applicativo, ovvero che non stiano nei dati/struttura del database puro.

 l'applicativo, ovvero che non stiano nei dati/struttura del database puro.
ho quest'impressione anch'io.
facendo (dao) dim f a s field, e facendogli listare i membri, mancano
comment o simili.
non ho provato con adodb.field, ma essendo ado piu' device-independent...
ciao, j.

 [...]
Uh... adesso funziona....
il codice completo č questo (relativo ad un campo memo):
Dim tbl As New ADOX.Table
Dim cat As ADOX.Catalog
Dim col As ADOX.Column
Set cat = New ADOX.Catalog
Set cat.ActiveConnection = cnnAdo
Set tbl = cat.Tables(strNomeTabella)
Set col = New ADOX.Column
col.Name = strNomeCampo
col.Type = adLongVarWChar
Set col.ParentCatalog = cat
col.Properties("Jet OLEDB:Compressed UNICODE Strings").Value = True
tbl.Columns.Append col
Set col = Nothing
Set tbl = Nothing
Set cat = Nothing
Mi pare uguale a prima :-/
Forse avevo sbagliato qualcosa nella connection...
termoPilucco

 device-independent...
Vi quoto tutti e due :P
La soluzione è identica al codice che ho scritto per impostare la proprietà
"Jet OLEDB:Compressed UNICODE Strings", ma modificando la riga relativa
all'assegnamento della proprietà così:
col.Properties("Description") = "questo è il mio commento"
Non so se si può fare anche su un campo esistente (compito a casa).
termoPilucco

 Non so se si puň fare anche su un campo esistente (compito a casa).
Si puň:
    Dim tbl As New ADOX.Table
    Dim cat As ADOX.Catalog
    Set cat = New ADOX.Catalog
    Set cat.ActiveConnection = cnnAdo
    Set tbl = cat.Tables(strNomeTabella)
    tbl.Columns(strNomeCampo).Properties("Description")=strCommento
    set tbl= nothing
    set cat=nothing
Lupo, c'hai da usare ADO anzi, peggio, ADOX :)
termoPilucco

 termoPilucco
ciaociao

 Lupo, c'hai da usare ADO anzi, peggio, ADOX :)
Non avrei problemi (insomma...), ma dove va a finire 'sta roba? Nel MDB? E,
a quel punto, DAO (o anche ADO, non ADOX) come la vede? Perchè se non la
vede io non me ne faccio nulla. Insomma, volevo usare i commenti per poterli
esporre all'utente nell'uso dell'applicativo, ... e io gli MDB li gestisco
solo con DAO...

 solo con DAO...
Uh.. forse mi ero spiegato male: per commenti intendevo quelli che appaiono
nell'IDE di Access in struttura tabella a destra del tipo dei campi.
Ovviamente come si leggono, si scrivono (e secondo me si può fare anche in
DAO).
A me serviva per avere un MDB abbastanza leggibile da parte del
programmatore visto che ho 10 DB, 400 tabelle e <overflow/> campi.
termoPilucco

[termoPilucco = 
circa_ter...@hotmail.com
 in
c60tl5$6mle5$
1...@ID-188026.news.uni-berlin.de
] ha scritto:

E' lo stesso uso che ne vorrei fare io.
Ho provato il tuo codice e funziona.
La proprietà Description c'è anche in DAO e ci trovo dentro quanto c'ho
scritto con ADOX.
Ora lo implemento anche in DAO (scrittura). Grazie 10^10 ;-)
Però, porcaloca, non l'avevo mai vista!
Ho guardato ora e il mio DAO351.HLP non la riporta.
Dev'essere una roba introdotta da DAO 3.6/Jet 4 anche se (ho verificato) è
disponibile anche per database in formato 97...

 verificato) è disponibile anche per database in formato 97...
Non l'avevo vista perchè ... non esiste. ;-)
E' una proprietà aggiuntiva (con DAO va aggiunta con Append all'insieme
Properties) che viene però intesa (dandole il nome "Description") come
Descrizione (la colonna che si vede quando si apre la struttura di una
tabella) da MsAccess.

 apre la struttura di una tabella) da MsAccess.
PS faceto:
In ESP0DAMA per Access ho imbrogliato (non è la prima volta): l'ho
implementata (creazione campo e variazione) usando DAO (anche se il db viene
gestito con ADO). :-P
PS serio:
Chissà come si gestisce con SQL Server? I campi hanno delle proprietà ...
proprietarie? Ancora Properties?