Condividi tramite


Classe CDynamicStringAccessor

Consente di accedere a un'origine dati quando non si conosce lo schema del database (la struttura sottostante del database).

Sintassi

template< typename BaseType, DBTYPEENUM OleDbType >
class CDynamicStringAccessorT : public CDynamicAccessor

Requisiti

Intestazione: atldbcli.h

Membri

Metodi

Nome Descrizione
GetString Recupera i dati specificati di colonna come stringa.
SetString Imposta i dati specificati di colonna come stringa.

Osservazioni:

Mentre CDynamicAccessor richiede dati nel formato nativo segnalato dal provider, CDynamicStringAccessor richiede che il provider recuperi tutti i dati a cui si accede dall'archivio dati come dati stringa. Ciò è particolarmente utile per attività semplici che non richiedono calcoli di valori nell'archivio dati, ad esempio la visualizzazione o la stampa del contenuto dell'archivio dati.

Il tipo nativo di dati della colonna nell'archivio dati non è importante; se il provider supporta la conversione di dati, potrà fornire i dati in formato stringa. Se il provider non supporta la conversione dal tipo di dati nativo a una stringa (che non è comune), la chiamata richiedente restituirà il valore di esito positivo DB_S_ERRORSOCCURED e lo stato per la colonna corrispondente indicherà un problema di conversione con DBSTATUS_E_CANTCONVERTVALUE.

Utilizzare CDynamicStringAccessor i metodi per ottenere informazioni sulla colonna. Queste informazioni sulla colonna vengono usate per creare una funzione di accesso in modo dinamico in fase di esecuzione.

Le informazioni sulla colonna vengono archiviate in un buffer creato e gestito da questa classe. Ottenere dati dal buffer usando GetString o archiviarlo nel buffer usando SetString.

Per una discussione ed esempi sull'uso delle classi di funzioni di accesso dinamiche, vedere Uso delle funzioni di accesso dinamiche.

CDynamicStringAccessor::GetString

Recupera i dati specificati di colonna come stringa.

Sintassi

BaseType* GetString(DBORDINAL nColumn) const throw();

BaseType* GetString(const CHAR* pColumnName) const throw();

BaseType* GetString(const WCHAR* pColumnName) const throw();

Parametri

nColumn
[in] Numero di colonna. I numeri di colonna iniziano con 1. Il valore 0 fa riferimento alla colonna del segnalibro, se presente.

pColumnName
[in] Puntatore a una stringa di caratteri contenente il nome della colonna.

Valore restituito

Puntatore al valore stringa recuperato dalla colonna specificata. Il valore è di tipo BaseType, che sarà CHAR o WCHAR a seconda che _UNICODE sia definito o meno. Restituisce NULL se la colonna specificata non viene trovata.

Osservazioni:

Il secondo modulo di override accetta il nome della colonna come stringa ANSI. Il terzo modulo di override accetta il nome della colonna come stringa Unicode.

CDynamicStringAccessor::SetString

Imposta i dati specificati di colonna come stringa.

Sintassi

HRESULT SetString(DBORDINAL nColumn,
   BaseType* data) throw();

HRESULT SetString(const CHAR* pColumnName,
   BaseType* data) throw();

HRESULT SetString(const WCHAR* pColumnName,
   BaseType* data) throw();

Parametri

nColumn
[in] Numero di colonna. I numeri di colonna iniziano con 1. Il valore speciale 0 fa riferimento alla colonna del segnalibro, se presente.

pColumnName
[in] Puntatore a una stringa di caratteri contenente il nome della colonna.

data
[in] Puntatore ai dati stringa da scrivere nella colonna specificata.

Valore restituito

Puntatore al valore stringa a cui impostare la colonna specificata. Il valore è di tipo BaseType, che sarà CHAR o WCHAR a seconda che _UNICODE sia definito o meno.

Osservazioni:

Il secondo modulo di override accetta il nome della colonna come stringa ANSI e il terzo modulo di override accetta il nome della colonna come stringa Unicode.

Se _SECURE_ATL è definito per avere un valore diverso da zero, verrà generato un errore di asserzione di runtime se la stringa di dati di input è più lunga della lunghezza massima consentita della colonna di dati a cui si fa riferimento. In caso contrario, la stringa di input verrà troncata se è più lunga della lunghezza massima consentita.

Vedi anche

Modelli di consumer OLE DB
Riferimenti ai modelli consumer OLE DB
Classe CAccessor
Classe CDynamicParameterAccessor
Classe CManualAccessor
Classe CDynamicAccessor
Classe CDynamicStringAccessorA
Classe CDynamicStringAccessorW
Classe CXMLAccessor