Newsgroup: it.comp.lang.visual-basic
Titolo: Ancora Enum...

Ciao a tutti,
sto scrivendo una routine che mi legge dei valori in una tabella e mi dice
il tipo.
Ho fatto una Enum con i valori possibili di questo campo (presi dalla
documentazione del DBMS)
Public Enum fbFieldType
  fbBlob = 261
  fbChar = 14
  fbCString = 40
  fbDFloat = 11
  fbDouble = 27
  fbFloat = 10
  fbInt64 = 16 'ha subtype
  fbInteger = 8
  fbQuad = 9
  fbSmallInt = 7
  fbDate = 12
  fbTime = 13
  fbTimeStamp = 35
  fbVarchar = 37
End Enum
Ora ho un RecSet aperto e dovrei fare una cosa del genere
Dim Tipo as fbFieldType
tipo=Rs("FIELD_TYPE").value
Select case True
  Case Tipo=fbInteger
  Case Tipo=fbDate
  ecc.
end Select
Posso assegnare a Tipo (che è un Enum) un valore?
Oppure dovrei fare:
Dim Tipo as fbFieldType
Select case Rs("FIELD_TYPE").value
  Case fbInteger
  Case fbDate
  ecc.
end Select
Ma in questo caso avere la variabile Tipo dichiarata non mi serve a nulla
(oltre a dover scrivere maiuscole e minuscole per bene)
La Enum è dichiarata in un modulo "globale"
Grazie
-- 
DBMS Firebird
VB6 + Ado

In VB6 le variabili dichiarate con tipi enumerativi sono in realtà dei Long 
quindi puoi assegnarci tutti i valori che vuoi, anche diversi da quelli 
definiti.
tale comportamente tra l'altro può essere utile quando magari la variabile è 
un insieme di BitFlag e in tal caso è possibile definire un nome per ogni 
bit ma poi l'effettivo valore assunto dalla variabile sarà una combinazione 
dei valori base (ad esempio fa così la funzione GetAttr che restituisce gli 
attributi di un file/directory).
Qunado usi gli enum devi sempre pensare che servono solo a rendere più 
leggibile il codice e che in realtà prima ancora della compilazione le tue 
scritte fbBlob o altro saranno state sostituite con i rispettivi valori. 
Esattamente come se tu avessi usato il comando sostituisci dal menu 
modifica. Questo lo dico per spiegarti che gli enum esistono solo per il 
programmatore e per l'editor di testo usato per programmare (e per il 
precompilatore se vogliamo).
Per quanto riguarda gli Enum usati nei case in effetti anche a me fa sempre 
fastidio che l'ambiente di sviluppo non ci dia una mano aiutandoci a 
compilare i vari case, ma questo dipende solo dall'editor, e non dalla 
struttura degli enum. Se qualcuno ha tempo e voglia potrebbe pensare ad un 
addin che fa ciò, io ci ho pensatoqualche volta ma poi non ho mai trovato il 
tempo..
PS: già che siamo finiti a parlare di addin per aiutare a programmare con VB 
vi segnalo quelli scritti da me e disponibili nel sito comune. Si tratta dei 
seguenti:
- MazzSoft Task Window AddIn (utilissimo)
- MazzSoft VB Scroller AddIn (comodissimo)
- MazzSoft Row Counter AddIn (meno utile ma simpatico)
Ciao a tutti,
    Diego
"Andrea" <nos...@invalid.invalid> ha scritto nel messaggio 
news:5bdqarbazfxy.14...@40tude.net...


 precompilatore se vogliamo).
Ti ringrazio infinitamente.
Quindi teoricamente usare Enum non "appesantisce" l'applicazione?
Tnx


 pensatoqualche volta ma poi non ho mai trovato il tempo..
MZTools lo fa col "Select Case Assistant"
http://www.mztools.com/v3/features.htm
Bye
Raf
-----------------------------------------------------
Funk: cooler than the other side of the pillow.

"Andrea" <nos...@invalid.invalid> ha scritto nel messaggio 
news:1k9cy2upk9hs3$.1soygdxw7xifu.dlg@40tude.net...

No, non appesantisce! ;-)
Diego 

 Raf
Corro a provarlio!
Ciao,
    Diego