ADO - Recordset - l'oggetto Field
Proprietà
Attributes
Questa Proprietà è di sola lettura e il suo valore può corrispondere alla somma di uno o più dei valori riportati nella tabella che segue:
- adFldMayDefer: Indica che il campo è differito, vale a dire che i valori di campo non sono recuperati dalla fonte dati con il record intero, ma solo quando vi si accede esplicitamente.
- adFldUpdatable: Indica che il campo è scrivibile.
- adFldUnknownUpdatable: Indica che il provider non è in grado di determinare se il campo è scrivibile.
- adFldFixed: Indica che il campo contiene dati a lunghezza fissa.
- adFldIsNullable: Indica che il campo accetta valori Null.
- adFldMayBeNull: Indica che è possibile leggere i valori Null del campo.
- adFldLong: Indica che il campo è di tipo binario lungo e che è possibile utilizzare i metodi AppendChunk e GetChunk.
- adFldRowID: Indica che il campo contiene un identificatore di riga costante che non è scrivibile e presenta un valore descrittivo solo per l'identificazione della riga, quale un numero di record, un identificatore univoco e così via.
- adFldRowVersion: Indica che il campo contiene un tipo di indicatore di data e ora per controllare gli aggiornamenti.
- adFldCacheDeferred: Indica che il provider memorizza nella cache i valori di campo e che le letture successive sono effettuate dalla cache.
Name
Indica il nome del campo.
Type
Indica il tipo operativo o il tipo di dato del campo, questa Proprietà è di sola lettura.
Il valore può essere una delle costanti seguenti (l'indicatore di tipo OLE DB corrispondente è riportato tra parentesi):
- adArray: Unito in un operatore logico OR a un altro tipo per indicare che i dati costituiscono una matrice sicura di quel tipo (DBTYPE_ARRAY).
- adBigInt: Intero con segno da 8 byte (DBTYPE_I8).
- adBinary: Valore binario (DBTYPE_BYTES).
- adBoolean: Valore booleano (DBTYPE_BOOL).
- adByRef: Unito in un operatore logico OR a un altro tipo per indicare che i dati costituiscono un puntatore a dati di altro tipo (DBTYPE_BYREF).
- adBSTR: Stringa di caratteri a terminazione Null (Unicode) (DBTYPE_BSTR).
- adChar: Valore String (DBTYPE_STR).
- adCurrency: Valore di valuta (DBTYPE_CY). Si tratta di un numero a virgola fissa con quattro cifre a destra della virgola decimale. È memorizzato in un intero con segno da 8 byte scalato per 10000.
- adDate: Valore Date (DBTYPE_DATE). Si tratta di una data memorizzata come Double, la cui parte intera rappresenta il numero di giorni a partire dal 30 dicembre 1899, mentre la parte frazionaria rappresenta la frazione di un giorno.
- adDBDate: Valore data (ggmmaaaa) (DBTYPE_DBDATE).
- adDBTime: Valore tempo (oommss) (DBTYPE_DBTIME).
- adDBTimeStamp: Indicatore data/ora (ggmmaaaaoommss più una frazione in miliardesimi) (DBTYPE_DBTIMESTAMP).
- adDecimal: Valore numerico esatto con grado di precisione e di scala fisso (DBTYPE_DECIMAL).
- adDouble: Valore con virgola mobile in precisione doppia (DBTYPE_R8).
- adEmpty: Non è stato specificato alcun valore (DBTYPE_EMPTY).
- adError: Codice di errore a 32 bit (DBTYPE_ERROR).
- adGUID: Identificatore univoco globale (GUID) (DBTYPE_GUID).
- adIDispatch: Puntatore a un'interfaccia Idispatch su un oggetto OLE (DBTYPE_IDISPATCH).
- adInteger: Intero con segno da 4 byte (DBTYPE_I4).
- adIUnknown: Puntatore a un'interfaccia Iunknown su un oggetto OLE (DBTYPE_IUNKNOWN).
- adLongVarBinary: Valore binario lungo (solo oggetto Parameter).
- adLongVarChar: Valore String lungo (solo oggetto Parameter).
- adLongVarWChar: Valore stringa a terminazione Null lungo (solo oggetto Parameter).
- adNumeric: Valore numerico esatto con grado di precisione e di scala fisso (DBTYPE_NUMERIC).
- adSingle: Valore con virgola mobile in precisione semplice (DBTYPE_R4).
- adSmallInt: Intero con segno da 2 byte (DBTYPE_I2).
- adTinyInt: Intero con segno da 1 byte (DBTYPE_I1).
- adUnsignedBigInt: Intero senza segno da 8 byte (DBTYPE_UI8).
- adUnsignedInt: Intero senza segno da 4 byte (DBTYPE_UI4).
- adUnsignedSmallInt: Intero senza segno da 2 byte (DBTYPE_UI2).
- adUnsignedTinyInt: Intero senza segno da 1 byte (DBTYPE_UI1).
- adUserDefined: Variabile definita dall'utente (DBTYPE_UDT).
- adVarBinary: Valore binario (solo oggetto Parameter).
- adVarChar: Valore String (solo oggetto Parameter).
- adVariant: Variant di automazione (DBTYPE_VARIANT).
- adVector: Unito in un operatore logico OR a un altro tipo per indicare che i dati rappresentano una struttura DBVECTOR, così come è definita da OLE DB, nella quale sono inclusi il conteggio degli elementi e un puntatore a dati di altro tipo (DBTYPE_VECTOR).
- adVarWChar: Stringa di caratteri Unicode a terminazione Null (solo oggetto Parameter).
- adWChar: Stringa di caratteri Unicode a terminazione Null (DBTYPE_WSTR).
Value
Contiene il valore del campo. Questa Proprietà e di lettura/scrittura.
ActualSize
Indica la lunghezza reale del valore di un campo.
Alcuni provider consentono di impostare questa proprietà in modo da destinare spazio per i dati BLOB. In tal caso il valore predefinito è 0.
Utilizzare ActualSize per restituire la lunghezza reale del valore del campo, la proprietà è di sola lettura per tutti i campi. Se ADO non è in grado di determinare la lunghezza del valore, la proprietà restituisce adUnknown.
Le proprietà ActualSize e DefinedSize sono diverse: per un campo con un tipo dichiarato di adVarChar e una lunghezza massima di 50 caratteri, DefinedSize restituisce 50, mentre ActualSize restituisce la lunghezza dei dati effettivamente memorizzati nel campo.
DefinedSize
Indica le dimensioni definite del campo.
Restituisce un valore che riflette le dimensioni definite del campo espresse in numero di byte.
Utilizzare DefinedSize per determinare la quantità di dati che è possibile inserire in un campo.
Le proprietà ActualSize e DefinedSize sono diverse: per un campo con un tipo dichiarato di adVarChar e una lunghezza massima di 50 caratteri, DefinedSize restituisce 50, mentre ActualSize restituisce la lunghezza dei dati effettivamente memorizzati nel campo.
NumericScale
Indica la scala dei valori numerici.
Imposta o restituisce un valore che indica il numero di cifre decimali in base a cui sono risolti i valori numerici.
Questo valore è di sola lettura.
OriginalValue
Indica il valore di un oggetto campo presente nel record prima di aver apportato eventuali modifiche.
Osservazioni
Utilizzare questa proprietà per restituire il valore originale di un campo dal record corrente. Nella modalità di aggiornamento immediato, in cui il provider scrive le modifiche sulla fonte dati del livello inferiore quando è chiamato il metodo Update, questa proprietà restituisce il valore di campo antecedente a eventuali modifiche, vale a dire quello presente l'ultima volta in cui è stato chiamato il metodo Update. Si tratta dello stesso valore utilizzato dal metodo CancelUpdate per ripristinare le condizioni prima della modifica.
Nella modalità di aggiornamento batch, in cui il provider memorizza nella cache le modifiche e le scrive sulla fonte dati del livello inferiore quando è chiamato il metodo UpdateBatch, questa Proprietà restituisce il valore di campo antecedente a eventuali modifiche, vale a dire quello presente l'ultima volta in cui è stato chiamato il metodo Update. Si tratta dello stesso valore utilizzato dal metodo CancelBatch per ripristinare il valore. Quando si utilizza questa Proprietà con la Proprietà UnderlyingValue, è possibile risolvere eventuali conflitti risultanti dall'esecuzione degli aggiornamenti in modalià batch.
Precision
Indica il grado di precisione dei valori numerici.
Il valore è di sola lettura.
UnderlyingValue
Indica un valore corrente dell'oggetto Field nel database.
Osservazioni
Questa proprietà è utilizzata per restituire il valore corrente dal database. Il valore nella proprietà corrisponde al valore visibile alla transazione e può corrispondere al risultato di un recente aggiornamento da parte di un'altra transazione. Tale valore si differenzia da quello della proprietà OriginalValue, che corrisponde al valore restituito in origine al Recordset.
Il suo utilizzo è simile al metodo Resync, ma a differenza di quello restituisce soltanto il valore per un campo specifico del record corrente. Si tratta dello stesso valore che Resync utilizza.
L'utilizzo di questa proprietà con la proprietà OriginalValue consente di risolvere eventuali conflitti originati durante gli aggiornamenti in modalià batch.
Precision
Indica il grado di precisione dei valori numerici nel campo. Questa proprietà è di sola lettura.
Metodi
AppendChunk
Accoda dati in formato testo o binario.
Sintassi
field.AppendChunk dati
- dati: elemento contenente i dati che si desidera accodare all'oggetto.
Osservazioni
Utilizzare questo metodo su un campo per inserirvi dati binari o letterali lunghi. Nel caso in cui la memoria del sistema sia limitata, è possibile utilizzare AppendChunk per gestire i valori lunghi in blocchi anziché integralmente.
Se adFldLong nella proprietà Attributes è impostato su
True è possibile utilizzare AppendChunk per il campo.
La prima chiamata ad AppendChunk consente di scrivere dati nel campo sovrascrivendo i dati esistenti. Le successive chiamate consentono invece di aggiungere dati ai dati esistenti.
Se si accodano dati in un campo, quindi si imposta o si legge il valore di un altro campo nel record corrente, si presuppone che si sia terminato di accodare dati nel primo campo. Se si chiama nuovamente AppendChunk sul primo campo, la chiamata è interpretata come una nuova operazione ed i dati esistenti sono sovrascritti. L'accesso ai campi di altri Recordset che non siano cloni del primo non interrompe le operazioni AppendChunk.
Se non vi è alcun record corrente al momento della chiamata ad AppendChunk, si verifica un errore.
GetChunk
Restituisce l'intero contenuto o una parte del contenuto di un campo di grandi dimensioni in formato testo o binario.
Sintassi
variabile = campo.GetChunk( size )
- variabile: è la variabile che riceveà i dati
- size: indica il numero di byte o caratteri da recuperare.
Osservazioni
Utilizzare GetChunk su un campo di grandi dimensioni per recuperare tutti i dati binari o letterali o una parte di essi. Nel caso in cui la memoria del sistema sia limitata, è possibile utilizzare GetChunk per gestire i valori lunghi in blocchi anziché integralmente.
I dati restituiti da una chiamata a GetChunk sono assegnati a una variabile. Se size è maggiore dei dati rimanenti, il metodo GetChunk restituisce solo i dati rimanenti senza inserire spazi vuoti di riempimento nella variabile. Se il campo è vuoto GetChunk restituisce
Null.
Qualsiasi chiamata successiva a GetChunk consente di recuperare i dati iniziando da dove si è interrotta la chiamata precedente. Se tuttavia si recuperano dati da un campo, quindi si imposta o si legge il valore di un altro campo nel record corrente, si presuppone che l'operazione di recupero di informazioni dal primo campo sia terminata. Se si richiama nuovamente GetChunk sul primo campo, la chiamata è interpretata come una nuova operazione e la lettura ha inizio dai primi dati. Accedendo ai campi di altri Recordset che non siano cloni del primo non si interrompono le operazioni GetChunk.
Se adFldLong nella Proprietà Attributes del campo è impostato su
True, è possibile utilizzare il GetChunk per quel campo.
Se non vi è alcun record corrente quando si utilizza GetChunk, si verifica un errore.
Riferimenti
La pagina principale di ADO
L'oggetto Connection
L'oggetto Command
La collection Fields
La collection Properties
Categories
ADO
Database
Non ci sono commenti. [Aggiungere un commento]