Macro e funzioni globali per modelli consumer OLE DB

I modelli consumer OLE DB includono le macro e le funzioni globali seguenti:

Funzioni globali

Nome Descrizione
AtlTraceErrorRecords Esegue il dump delle informazioni sul record di errore OLE DB nel dispositivo di dump se viene restituito un errore.

Macro mappa delle funzioni di accesso

Nome Descrizione
BEGIN_ACCESSOR Contrassegna l'inizio di una voce della funzione di accesso.
BEGIN_ACCESSOR_MAP Contrassegna l'inizio delle voci della mappa delle funzioni di accesso.
END_ACCESSOR Contrassegna la fine di una voce della funzione di accesso.
END_ACCESSOR_MAP Contrassegna la fine delle voci della mappa della funzione di accesso.

Macro mappa colonne

Nome Descrizione
BEGIN_COLUMN_MAP Contrassegna l'inizio delle voci della mappa delle colonne nella classe di record utente.
BLOB_ENTRY Usato per associare un oggetto binario di grandi dimensioni (BLOB).
BLOB_ENTRY_LENGTH Segnala la lunghezza della colonna di dati BLOB.
BLOB_ENTRY_LENGTH_STATUS Segnala la lunghezza e lo stato della colonna di dati BLOB.
BLOB_ENTRY_STATUS Segnala lo stato della colonna di dati BLOB.
BLOB_NAME Utilizzato per associare un oggetto binario di grandi dimensioni in base al nome della colonna.
BLOB_NAME_LENGTH Segnala la lunghezza della colonna di dati BLOB.
BLOB_NAME_LENGTH_STATUS Segnala la lunghezza e lo stato della colonna di dati BLOB.
BLOB_NAME_STATUS Segnala lo stato della colonna di dati BLOB.
BOOKMARK_ENTRY Rappresenta una voce di segnalibro nel set di righe. Una voce di segnalibro è un tipo speciale di voce di colonna.
COLUMN_ENTRY Rappresenta un'associazione a una colonna specifica nel database.
COLUMN_ENTRY_EX Rappresenta un'associazione alla colonna specifica nel database. Supporta parametri di tipo, lunghezza, precisione, scala e stato .
COLUMN_ENTRY_LENGTH Rappresenta un'associazione alla colonna specifica nel database. Supporta la variabile di lunghezza .
COLUMN_ENTRY_LENGTH_STATUS Rappresenta un'associazione alla colonna specifica nel database. Supporta i parametri di stato e lunghezza .
COLUMN_ENTRY_PS Rappresenta un'associazione alla colonna specifica nel database. Supporta parametri di precisione e scala .
COLUMN_ENTRY_PS_LENGTH Rappresenta un'associazione alla colonna specifica nel database. Supporta i parametri di lunghezza variabile, precisione e scala .
COLUMN_ENTRY_PS_LENGTH_STATUS Rappresenta un'associazione alla colonna specifica nel database. Supporta variabili di stato e lunghezza , precisione e parametri di scala .
COLUMN_ENTRY_PS_STATUS Rappresenta un'associazione alla colonna specifica nel database. Supporta i parametri di variabile di stato , precisione e scala .
COLUMN_ENTRY_STATUS Rappresenta un'associazione alla colonna specifica nel database. Supporta la variabile di stato .
COLUMN_ENTRY_TYPE Rappresenta un'associazione a una colonna specifica nel database. Supporta il parametro di tipo .
COLUMN_ENTRY_TYPE_SIZE Rappresenta un'associazione alla colonna specifica nel database. Supporta parametri di tipo e dimensioni .
COLUMN_NAME Rappresenta un'associazione a una colonna specifica nel database in base al nome.
COLUMN_NAME_EX Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica del tipo di dati, delle dimensioni, della precisione, della scala, della lunghezza della colonna e dello stato della colonna.
COLUMN_NAME_LENGTH Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica della lunghezza della colonna.
COLUMN_NAME_LENGTH_STATUS Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica della lunghezza e dello stato delle colonne.
COLUMN_NAME_PS Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica di precisione e scala.
COLUMN_NAME_PS_LENGTH Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica di precisione, scala e lunghezza delle colonne.
COLUMN_NAME_PS_LENGTH_STATUS Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica di precisione, scala, lunghezza della colonna e stato della colonna.
COLUMN_NAME_PS_STATUS Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica di precisione, scala e stato della colonna.
COLUMN_NAME_STATUS Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica dello stato della colonna.
COLUMN_NAME_TYPE Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica del tipo di dati.
COLUMN_NAME_TYPE_PS Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica del tipo di dati, della precisione e della scala.
COLUMN_NAME_TYPE_SIZE Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica del tipo di dati e delle dimensioni.
COLUMN_NAME_TYPE_STATUS Rappresenta un'associazione a una colonna specifica nel database in base al nome. Supporta la specifica del tipo di dati e dello stato della colonna.
END_COLUMN_MAP Contrassegna la fine delle voci della mappa delle colonne.

Macro dei comandi

Nome Descrizione
DEFINE_COMMAND Specifica il comando che verrà usato per creare il set di righe quando si usa la classe CCommand . Accetta solo tipi stringa corrispondenti al tipo di applicazione specificato (ANSI o Unicode). È consigliabile usare DEFINE_COMMAND_EX anziché DEFINE_COMMAND.
DEFINE_COMMAND_EX Specifica il comando che verrà usato per creare il set di righe quando si usa la classe CCommand . Supporta applicazioni ANSI e Unicode.

Macro della mappa dei parametri

Nome Descrizione
BEGIN_PARAM_MAP Contrassegna l'inizio delle voci della mappa dei parametri nella classe di record utente.
END_PARAM_MAP Contrassegna la fine delle voci della mappa dei parametri.
SET_PARAM_TYPE Specifica COLUMN_ENTRY macro che seguono la macro SET_PARAM_TYPE come input, output o input/output.

AtlTraceErrorRecords

Esegue il dump delle informazioni sul record di errore OLE DB nel dispositivo di dump se viene restituito un errore.

Sintassi

inline void AtlTraceErrorRecords(HRESULT hrErr = S_OK);

Parametri

Herr
[in] HrESULT restituito da una funzione membro del modello di consumer OLE DB.

Osservazioni:

Se hErr non è S_OK, AtlTraceErrorRecords esegue il dump delle informazioni sul record di errore OLE DB nel dispositivo di dump (la scheda Debug della finestra output o di un file). Le informazioni sui record di errore, ottenute dal provider, includono il numero di riga, l'origine, la descrizione, il file della Guida, il contesto e il GUID per ogni voce del record di errore. AtlTraceErrorRecords esegue il dump di queste informazioni solo nelle compilazioni di debug. Nelle build di versione si tratta di uno stub vuoto ottimizzato. Per altre informazioni, vedere Classe CDBErrorInfo.

BEGIN_ACCESSOR

Contrassegna l'inizio di una voce della funzione di accesso.

Sintassi

BEGIN_ACCESSOR(num, bAuto)

Parametri

num
[in] Numero di offset zero per la funzione di accesso in questa mappa della funzione di accesso.

bAuto
[in] Specifica se questa funzione di accesso è una funzione di accesso automatica o una funzione di accesso manuale. Se true, la funzione di accesso è automatica; se false, la funzione di accesso è manuale. Una funzione di accesso automatica indica che i dati vengono recuperati per le operazioni di spostamento.

Osservazioni:

Nel caso di più funzioni di accesso in un set di righe, è necessario specificare BEGIN_ACCESSOR_MAP e usare la macro BEGIN_ACCESSOR per ogni singola funzione di accesso. La macro BEGIN_ACCESSOR viene completata con la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP viene completata con la macro END_ACCESSOR_MAP.

Esempio

Vedere BEGIN_ACCESSOR_MAP.

BEGIN_ACCESSOR_MAP

Contrassegna l'inizio delle voci della mappa delle funzioni di accesso.

Sintassi

BEGIN_ACCESSOR_MAP(x, num)

Parametri

x
[in] Nome della classe di record utente.

num
[in] Il numero delle funzioni di accesso in questa mappa.

Osservazioni:

Nel caso di più funzioni di accesso in un set di righe, è necessario specificare BEGIN_ACCESSOR_MAP all'inizio e usare la macro BEGIN_ACCESSOR per ogni singola funzione di accesso. La macro BEGIN_ACCESSOR viene completata con la macro END_ACCESSOR. La mappa della funzione di accesso viene completata con la macro END_ACCESSOR_MAP.

In presenza di una sola funzione di accesso nel record utente, usare la macro BEGIN_COLUMN_MAP.

Esempio

class CArtistsAccessor
{
public:
// Data Elements
   TCHAR m_szFirstName[21];
   TCHAR m_szLastName[31];
   short m_nAge;

// Output binding map
BEGIN_ACCESSOR_MAP(CArtistsAccessor, 2)
   BEGIN_ACCESSOR(0, true)
      COLUMN_ENTRY(1, m_szFirstName)
      COLUMN_ENTRY(2, m_szLastName)
   END_ACCESSOR()
   BEGIN_ACCESSOR(1, false) // Not an auto accessor
      COLUMN_ENTRY(3, m_nAge)
   END_ACCESSOR()
END_ACCESSOR_MAP()

   HRESULT OpenDataSource()
   {
      CDataSource _db;
      _db.Open();
      return m_session.Open(_db);
   }

   void CloseDataSource()
   {
      m_session.Close();
   }

   CSession m_session;

   DEFINE_COMMAND_EX(CArtistsAccessor, L" \
   SELECT \
      FirstName, \
      LastName, \
      Age \
      FROM Artists")
};

END_ACCESSOR

Contrassegna la fine di una voce della funzione di accesso.

Sintassi

END_ACCESSOR()

Osservazioni:

Per più funzioni di accesso in un set di righe, è necessario specificare BEGIN_ACCESSOR_MAP e usare la macro BEGIN_ACCESSOR per ogni singola funzione di accesso. La macro BEGIN_ACCESSOR viene completata con la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP viene completata con la macro END_ACCESSOR_MAP.

Esempio

Vedere BEGIN_ACCESSOR_MAP.

END_ACCESSOR_MAP

Contrassegna la fine delle voci della mappa della funzione di accesso.

Sintassi

END_ACCESSOR_MAP()

Osservazioni:

Per più funzioni di accesso in un set di righe, è necessario specificare BEGIN_ACCESSOR_MAP e usare la macro BEGIN_ACCESSOR per ogni singola funzione di accesso. La macro BEGIN_ACCESSOR viene completata con la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP viene completata con la macro END_ACCESSOR_MAP.

Esempio

Vedere BEGIN_ACCESSOR_MAP.

BEGIN_COLUMN_MAP

Segna l'inizio di una voce della mappa delle colonne.

Sintassi

BEGIN_COLUMN_MAP(x)

Parametri

x
[in] Il nome della classe di record utente derivata da CAccessor.

Osservazioni:

Questa macro viene usata nel caso di un'unica funzione di accesso su un set di righe. Se ci sono più funzioni di accesso su un set di righe, usare BEGIN_ACCESSOR_MAP.

La macro BEGIN_COLUMN_MAP viene completata con la macro END_COLUMN_MAP. Questa macro viene usata quando è richiesta una sola funzione di accesso nel record utente.

Le colonne corrispondono ai campi nel set di righe che si desidera associare.

Esempio

Ecco un esempio di mappa delle colonne e dei parametri:

BLOB_ENTRY

Usato con BEGIN_COLUMN_MAP e END_COLUMN_MAP per associare un oggetto BLOB (Binary Large Object).

Sintassi

BLOB_ENTRY(nOrdinal, IID, flags, data)

Parametri

nOrdinal
[in] Numero di colonna.

IID
[in] GUID dell'interfaccia, ad esempio IDD_ISequentialStream, usato per recuperare il BLOB.

flags
[in] Flag in modalità di archiviazione definiti dal modello OLE Structured Storage (ad esempio, STGM_READ).

data
[in] Membro dati corrispondente nel record utente.

Esempio

Vedere Come è possibile recuperare un BLOB?

BLOB_ENTRY_LENGTH

Usato con BEGIN_COLUMN_MAP e END_COLUMN_MAP per associare un oggetto BLOB (Binary Large Object). Analogamente a BLOB_ENTRY, ad eccezione del fatto che questa macro ottiene anche la lunghezza in byte della colonna BLOB.

Sintassi

BLOB_ENTRY_LENGTH(nOrdinal, IID, flags, data, length)

Parametri

nOrdinal
[in] Numero di colonna.

IID
[in] GUID dell'interfaccia, ad esempio IDD_ISequentialStream, usato per recuperare il BLOB.

flags
[in] Flag in modalità di archiviazione definiti dal modello OLE Structured Storage (ad esempio, STGM_READ).

data
[in] Membro dati corrispondente nel record utente.

length
[out] Lunghezza (effettiva) in byte della colonna BLOB.

Esempio

Vedere Come è possibile recuperare un BLOB?

BLOB_ENTRY_LENGTH_STATUS

Usato con BEGIN_COLUMN_MAP e END_COLUMN_MAP per associare un oggetto BLOB (Binary Large Object). Analogamente a BLOB_ENTRY, ad eccezione del fatto che questa macro ottiene anche la lunghezza e lo stato della colonna BLOB.

Sintassi

BLOB_ENTRY_LENGTH_STATUS(
    nOrdinal,
    IID,
    flags,
    data,
    length,
    status )

Parametri

nOrdinal
[in] Numero di colonna.

IID
[in] GUID dell'interfaccia, ad esempio IDD_ISequentialStream, usato per recuperare il BLOB.

flags
[in] Flag in modalità di archiviazione definiti dal modello OLE Structured Storage (ad esempio, STGM_READ).

data
[in] Membro dati corrispondente nel record utente.

length
[out] Lunghezza (effettiva) in byte della colonna BLOB.

status
[out] Stato della colonna di dati BLOB.

Esempio

Vedere Come è possibile recuperare un BLOB?

BLOB_ENTRY_STATUS

Usato con BEGIN_COLUMN_MAP o BEGIN_ACCESSOR_MAP per associare un oggetto BLOB (Binary Large Object). Analogamente a BLOB_ENTRY, ad eccezione del fatto che questa macro ottiene anche lo stato della colonna BLOB.

Sintassi

BLOB_ENTRY_STATUS(nOrdinal, IID, flags, data, status)

Parametri

nOrdinal
[in] Numero di colonna.

IID
[in] GUID dell'interfaccia, ad esempio IDD_ISequentialStream, usato per recuperare il BLOB.

flags
[in] Flag in modalità di archiviazione definiti dal modello OLE Structured Storage (ad esempio, STGM_READ).

data
[in] Membro dati corrispondente nel record utente.

status
[out] Stato del campo BLOB.

Esempio

Vedere Come è possibile recuperare un BLOB?

BLOB_NAME

Usato con BEGIN_COLUMN_MAP e END_COLUMN_MAP per associare un oggetto BLOB (Binary Large Object). Analogamente a BLOB_ENTRY, ad eccezione del fatto che questa macro accetta un nome di colonna anziché un numero di colonna.

Sintassi

BLOB_NAME(pszName, IID, flags, data )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

IID
[in] GUID dell'interfaccia, ad esempio IDD_ISequentialStream, usato per recuperare il BLOB.

flags
[in] Flag in modalità di archiviazione definiti dal modello OLE Structured Storage (ad esempio, STGM_READ).

data
[in] Membro dati corrispondente nel record utente.

Esempio

Vedere Come è possibile recuperare un BLOB?

BLOB_NAME_LENGTH

Usato con BEGIN_COLUMN_MAP e END_COLUMN_MAP per associare un oggetto BLOB (Binary Large Object). Analogamente a BLOB_NAME, ad eccezione del fatto che questa macro ottiene anche la lunghezza in byte della colonna di dati BLOB.

Sintassi

BLOB_NAME_LENGTH(pszName, IID, flags, data, length )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

IID
[in] GUID dell'interfaccia, ad esempio IDD_ISequentialStream, usato per recuperare il BLOB.

flags
[in] Flag in modalità di archiviazione definiti dal modello OLE Structured Storage (ad esempio, STGM_READ).

data
[in] Membro dati corrispondente nel record utente.

length
[out] Lunghezza (effettiva) in byte della colonna BLOB.

BLOB_NAME_LENGTH_STATUS

Usato con BEGIN_COLUMN_MAP e END_COLUMN_MAP per associare un oggetto BLOB (Binary Large Object). Analogamente a BLOB_NAME, ad eccezione del fatto che questa macro ottiene anche la lunghezza e lo stato della colonna di dati BLOB.

Sintassi

BLOB_NAME_LENGTH_STATUS(pszName, IID, flags, data, length, status )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

IID
[in] GUID dell'interfaccia, ad esempio IDD_ISequentialStream, usato per recuperare il BLOB.

flags
[in] Flag in modalità di archiviazione definiti dal modello OLE Structured Storage (ad esempio, STGM_READ).

data
[in] Membro dati corrispondente nel record utente.

length
[out] Lunghezza (effettiva) in byte della colonna BLOB.

status
[out] Stato del campo BLOB.

BLOB_NAME_STATUS

Usato con BEGIN_COLUMN_MAP e END_COLUMN_MAP per associare un oggetto BLOB (Binary Large Object). Analogamente a BLOB_NAME, ad eccezione del fatto che questa macro ottiene anche lo stato della colonna di dati BLOB.

Sintassi

BLOB_NAME_STATUS(pszName, IID, flags, data, status )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

IID
[in] GUID dell'interfaccia, ad esempio IDD_ISequentialStream, usato per recuperare il BLOB.

flags
[in] Flag in modalità di archiviazione definiti dal modello OLE Structured Storage (ad esempio, STGM_READ).

data
[in] Membro dati corrispondente nel record utente.

status
[out] Stato del campo BLOB.

BOOKMARK_ENTRY

Associa la colonna del segnalibro.

Sintassi

BOOKMARK_ENTRY(variable)

Parametri

variable
[in] Variabile da associare alla colonna del segnalibro.

Esempio

class CArtistsBookmark
{
public:
// Data Elements
   CBookmark<4> m_bookmark;
   short m_nAge;
   TCHAR m_szFirstName[21];
   TCHAR m_szLastName[31];

// Output binding map
BEGIN_COLUMN_MAP(CArtistsBookmark)
   BOOKMARK_ENTRY(m_bookmark)
   COLUMN_ENTRY(1, m_nAge)
   COLUMN_ENTRY(2, m_szFirstName)
   COLUMN_ENTRY(3, m_szLastName)
END_COLUMN_MAP()

   void GetRowsetProperties(CDBPropSet* pPropSet)
   {
      pPropSet->AddProperty(DBPROP_BOOKMARKS, true);
   }

   HRESULT OpenDataSource()
   {
      CDataSource _db;
      _db.Open();
      return m_session.Open(_db);
   }

   void CloseDataSource()
   {
      m_session.Close();
   }

   CSession m_session;

   DEFINE_COMMAND_EX(CArtistsBookmark, L" \
   SELECT \
      Age, \
      FirstName, \
      LastName \
      FROM Artists")
};

Per altre informazioni, vedere Uso di segnalibri e classe CBookmark.

COLUMN_ENTRY

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe.

Sintassi

COLUMN_ENTRY(nOrdinal, data)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

La macro COLUMN_ENTRY viene utilizzata nelle posizioni seguenti:

Esempio

Vedere gli esempi negli argomenti della macro, BEGIN_COLUMN_MAP e BEGIN_ACCESSOR_MAP.

COLUMN_ENTRY_EX

Rappresenta un'associazione sul rowset alla colonna specifica nel database.

Sintassi

COLUMN_ENTRY_EX(nOrdinal, wType, nLength, nPrecision, nScale, data, length, status)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna.

wType
[in] Tipo di dati.

nLength
[in] Dimensioni dei dati in byte.

nPrecision
[in] La precisione massima da usare quando si recuperano dati e wType è DBTYPE_NUMERIC. In caso contrario, questo parametro viene ignorato.

nScale
[in] La scala da usare quando si recuperano dati e wType è DBTYPE_NUMERIC o DBTYPE_DECIMAL.

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

La macro COLUMN_ENTRY_EX viene utilizzata nelle posizioni seguenti:

Esempio

Vedere BOOKMARK_ENTRY.

COLUMN_ENTRY_LENGTH

Rappresenta un'associazione sul rowset alla colonna specifica nel database.

Sintassi

COLUMN_ENTRY_LENGTH(nOrdinal, data, length)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna, a partire da uno. Il segnalibro corrisponde alla colonna zero.

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

Osservazioni:

Questa macro supporta la variabile di lunghezza . Viene utilizzata nelle seguenti posizioni:

COLUMN_ENTRY_LENGTH_STATUS

Rappresenta un'associazione sul rowset alla colonna specifica nel database.

Sintassi

COLUMN_ENTRY_LENGTH_STATUS(nOrdinal, data, length, status)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna.

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Utilizzare questa macro quando si desidera supportare le variabili di stato e di lunghezza. Viene utilizzata nelle seguenti posizioni:

COLUMN_ENTRY_PS

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe.

Sintassi

COLUMN_ENTRY_PS(nOrdinal, nPrecision, nScale, data)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna.

nPrecision
[in] Precisione massima della colonna che si desidera associare.

nScale
[in] Scala della colonna che si desidera associare.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Consente di specificare la precisione e la scala della colonna che si desidera associare. Viene utilizzata nelle seguenti posizioni:

COLUMN_ENTRY_PS_LENGTH

Rappresenta un'associazione sul rowset alla colonna specifica nel database.

Sintassi

COLUMN_ENTRY_PS_LENGTH(nOrdinal, nPrecision, nScale, data, length)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna, a partire da uno. Il segnalibro corrisponde alla colonna zero.

nPrecision
[in] Precisione massima della colonna che si desidera associare.

nScale
[in] Scala della colonna che si desidera associare.

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

Osservazioni:

Consente di specificare la precisione e la scala della colonna che si desidera associare. Questa macro supporta la variabile di lunghezza . Viene utilizzata nelle seguenti posizioni:

COLUMN_ENTRY_PS_LENGTH_STATUS

Rappresenta un'associazione sul rowset alla colonna specifica nel database.

Sintassi

COLUMN_ENTRY_PS_LENGTH_STATUS(nOrdinal, nPrecision, nScale, data, length, status)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna.

nPrecision
[in] Precisione massima della colonna che si desidera associare.

nScale
[in] Scala della colonna che si desidera associare.

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Consente di specificare la precisione e la scala della colonna che si desidera associare. Utilizzare questa macro quando si desidera supportare le variabili di stato e di lunghezza. Viene utilizzata nelle seguenti posizioni:

COLUMN_ENTRY_PS_STATUS

Rappresenta un'associazione sul rowset alla colonna specifica nel database.

Sintassi

COLUMN_ENTRY_PS_STATUS(nOrdinal, nPrecision, nScale, data, status)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna.

nPrecision
[in] Precisione massima della colonna che si desidera associare.

nScale
[in] Scala della colonna che si desidera associare.

data
[in] Membro dati corrispondente nel record utente.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Consente di specificare la precisione e la scala della colonna che si desidera associare. Questa macro supporta la variabile di stato . Viene utilizzata nelle seguenti posizioni:

COLUMN_ENTRY_STATUS

Rappresenta un'associazione sul rowset alla colonna specifica nel database.

Sintassi

COLUMN_ENTRY_STATUS(nOrdinal, data, status)

Parametri

Vedere DBBINDING nella guida di riferimento per programmatori OLE DB.

nOrdinal
[in] Numero di colonna.

data
[in] Membro dati corrispondente nel record utente.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Questa macro supporta la variabile di stato . Viene utilizzata nelle seguenti posizioni:

COLUMN_ENTRY_TYPE

Rappresenta un'associazione alla colonna specifica nel database. Supporta il parametro di tipo .

Sintassi

COLUMN_ENTRY_TYPE (nOrdinal, wType, data)

Parametri

nOrdinal
[in] Numero di colonna.

wType
[in] Tipo di dati della voce di colonna.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Questa macro è una variante specializzata della macro COLUMN_ENTRY che fornisce un mezzo per specificare il tipo di dati.

COLUMN_ENTRY_TYPE_SIZE

Rappresenta un'associazione alla colonna specifica nel database. Supporta parametri di tipo e dimensioni .

Sintassi

COLUMN_ENTRY_TYPE_SIZE(nOrdinal, wType, nLength, data)

Parametri

nOrdinal
[in] Numero di colonna.

wType
[in] Tipo di dati della voce di colonna.

nLength
[in] Dimensione della voce di colonna in byte.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Questa macro è una variante specializzata della macro COLUMN_ENTRY che consente di specificare le dimensioni e il tipo di dati.

COLUMN_NAME

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_ENTRY, ad eccezione del fatto che questa macro accetta il nome della colonna anziché il numero di colonna.

Sintassi

COLUMN_NAME(pszName, data)

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Le macro COLUMN_NAME_* vengono usate nelle stesse posizioni di COLUMN_ENTRY:

COLUMN_NAME_EX

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche il tipo di dati, le dimensioni, la precisione, la scala, la lunghezza della colonna e lo stato della colonna.

Sintassi

COLUMN_NAME_EX(pszName, wType, nLength, nPrecision, nScale, data, length, status )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

wType
[in] Tipo di dati.

nLength
[in] Dimensioni dei dati in byte.

nPrecision
[in] La precisione massima da usare quando si recuperano dati e wType è DBTYPE_NUMERIC. In caso contrario, questo parametro viene ignorato.

nScale
[in] La scala da usare quando si recuperano dati e wType è DBTYPE_NUMERIC o DBTYPE_DECIMAL.

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_LENGTH

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche la lunghezza della colonna.

Sintassi

COLUMN_NAME_LENGTH(pszName, data, length)

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_LENGTH_STATUS

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche la lunghezza della colonna e lo stato della colonna.

Sintassi

COLUMN_NAME_LENGTH_STATUS(pszName, data, length, status )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_PS

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche precisione e scala.

Sintassi

COLUMN_NAME_PS(pszName, nPrecision, nScale, data )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

nPrecision
[in] Precisione massima della colonna che si desidera associare.

nScale
[in] Scala della colonna che si desidera associare.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_PS_LENGTH

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche precisione, scala e lunghezza della colonna.

Sintassi

COLUMN_NAME_PS_LENGTH(pszName, nPrecision, nScale, data, length )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

nPrecision
[in] Precisione massima della colonna che si desidera associare.

nScale
[in] Scala della colonna che si desidera associare.

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_PS_LENGTH_STATUS

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche precisione, scala, lunghezza colonna e stato della colonna.

Sintassi

COLUMN_NAME_PS_LENGTH_STATUS(pszName, nPrecision, nScale, data, length, status )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

nPrecision
[in] Precisione massima della colonna che si desidera associare.

nScale
[in] Scala della colonna che si desidera associare.

data
[in] Membro dati corrispondente nel record utente.

length
[in] Variabile da associare alla lunghezza della colonna.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_PS_STATUS

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche precisione, scala e stato della colonna.

Sintassi

COLUMN_NAME_PS_STATUS(pszName, nPrecision, nScale, data, status )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

nPrecision
[in] Precisione massima della colonna che si desidera associare.

nScale
[in] Scala della colonna che si desidera associare.

data
[in] Membro dati corrispondente nel record utente.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_STATUS

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche lo stato della colonna.

Sintassi

COLUMN_NAME_STATUS(pszName, data, status )

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

data
[in] Membro dati corrispondente nel record utente.

status
[in] Variabile da associare allo stato della colonna.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_TYPE

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche il tipo di dati.

Sintassi

COLUMN_NAME_TYPE(pszName, wType, data)

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

wType
[in] Tipo di dati.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_TYPE_PS

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche il tipo di dati, la precisione e la scala.

Sintassi

COLUMN_NAME_TYPE_PS(pszName, wType, nPrecision, nScale, data)

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

wType
[in] Tipo di dati.

nPrecision
[in] La precisione massima da usare quando si recuperano dati e wType è DBTYPE_NUMERIC. In caso contrario, questo parametro viene ignorato.

nScale
[in] La scala da usare quando si recuperano dati e wType è DBTYPE_NUMERIC o DBTYPE_DECIMAL.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_TYPE_SIZE

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche il tipo di dati e le dimensioni.

Sintassi

COLUMN_NAME_TYPE_SIZE(pszName, wType, nLength, data)

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

wType
[in] Tipo di dati.

nLength
[in] Dimensioni dei dati in byte.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

COLUMN_NAME_TYPE_STATUS

Rappresenta un'associazione nel set di righe alla colonna specifica nel set di righe. Analogamente a COLUMN_NAME, ad eccezione del fatto che questa macro accetta anche il tipo di dati e lo stato della colonna.

Sintassi

COLUMN_NAME_TYPE_STATUS(pszName, wType, status, data)

Parametri

pszName
[in] Puntatore al nome della colonna. Il nome deve essere una stringa Unicode. A tale scopo, inserire un 'L' davanti al nome, ad esempio : L"MyColumn".

wType
[in] Tipo di dati.

status
[in] Variabile da associare allo stato della colonna.

data
[in] Membro dati corrispondente nel record utente.

Osservazioni:

Vedere COLUMN_NAME per informazioni sulla posizione in cui vengono usate le macro COLUMN_NAME_*.

END_COLUMN_MAP

Contrassegna la fine delle voci della mappa delle colonne.

Sintassi

END_COLUMN_MAP()

Osservazioni:

Viene usato con una singola funzione di accesso in un set di righe. La macro BEGIN_COLUMN_MAP viene completata con la macro END_COLUMN_MAP.

Esempio

Vedere BEGIN_COLUMN_MAP.

DEFINE_COMMAND

Specifica il comando che verrà usato per creare il set di righe quando si usa la classe CCommand . Accetta solo tipi stringa corrispondenti al tipo di applicazione specificato (ANSI o Unicode).

Nota

È consigliabile usare DEFINE_COMMAND_EX anziché DEFINE_COMMAND.

Sintassi

DEFINE_COMMAND(x, szCommand)

Parametri

x
[in] Nome della classe record utente (comando).

szCommand
[in] Stringa di comando che verrà usata per creare il set di righe quando si usa CCommand.

Osservazioni:

La stringa di comando specificata verrà usata come predefinita se non si specifica il testo del comando nel metodo CCommand::Open .

Questa macro accetta stringhe ANSI se si compila l'applicazione come stringhe ANSI o Unicode se si compila l'applicazione come Unicode. È consigliabile usare DEFINE_COMMAND_EX anziché DEFINE_COMMAND, perché il primo accetta stringhe Unicode, indipendentemente dal tipo di applicazione ANSI o Unicode.

Esempio

Vedere BOOKMARK_ENTRY.

DEFINE_COMMAND_EX

Specifica il comando che verrà usato per creare il set di righe quando si usa la classe CCommand . Supporta applicazioni Unicode e ANSI.

Sintassi

DEFINE_COMMAND_EX(x, wszCommand)

Parametri

x
[in] Nome della classe record utente (comando).

wszCommand
[in] Stringa di comando che verrà usata per creare il set di righe quando si usa CCommand.

Osservazioni:

La stringa di comando specificata verrà usata come predefinita se non si specifica il testo del comando nel metodo CCommand::Open .

Questa macro accetta stringhe Unicode, indipendentemente dal tipo di applicazione. Questa macro è preferibile rispetto DEFINE_COMMAND perché supporta Unicode e le applicazioni ANSI.

Esempio

Vedere BOOKMARK_ENTRY.

BEGIN_PARAM_MAP

Contrassegna l'inizio delle voci della mappa dei parametri.

Sintassi

BEGIN_PARAM_MAP(x)

Parametri

x
[in] Nome della classe di record utente.

Osservazioni:

I parametri vengono usati dai comandi.

Esempio

Vedere l'esempio per la macro BEGIN_COLUMN_MAP .

END_PARAM_MAP

Contrassegna la fine delle voci della mappa dei parametri.

Sintassi

END_PARAM_MAP()

Esempio

Vedere l'esempio per la macro BEGIN_PARAM_MAP .

SET_PARAM_TYPE

Specifica COLUMN_ENTRY macro che seguono l'input, l'output o l'input/output della macro SET_PARAM_TYPE.

Sintassi

SET_PARAM_TYPE(type)

Parametri

type
[in] Tipo da impostare per il parametro.

Osservazioni:

I provider supportano solo i tipi di parametro input/output supportati dall'origine dati sottostante. Il tipo è una combinazione di uno o più DBPARAMIO valori (vedere Strutture DBBINDING nella Guida di riferimento per programmatori OLE DB):

  • DBPARAMIO_NOTPARAM La funzione di accesso non ha parametri. In genere, questo valore viene impostato eParamIO nelle funzioni di accesso alle righe per ricordare all'utente che i parametri vengono ignorati.

  • DBPARAMIO_INPUT Parametro di input.

  • DBPARAMIO_OUTPUT Parametro di output.

  • DBPARAMIO_INPUT | DBPARAMIO_OUTPUT Il parametro è sia un input che un parametro di output.

Esempio

class CArtistsProperty
{
public:
   short m_nReturn;
   short m_nAge;
   TCHAR m_szFirstName[21];
   TCHAR m_szLastName[31];

BEGIN_PARAM_MAP(CArtistsProperty)
   SET_PARAM_TYPE(DBPARAMIO_OUTPUT)
   COLUMN_ENTRY(1, m_nReturn)
   SET_PARAM_TYPE(DBPARAMIO_INPUT)
   COLUMN_ENTRY(2, m_nAge)
END_PARAM_MAP()

BEGIN_COLUMN_MAP(CArtistsProperty)
   COLUMN_ENTRY(1, m_szFirstName)
   COLUMN_ENTRY(2, m_szLastName)
END_COLUMN_MAP()

   HRESULT OpenDataSource()
   {
      CDataSource _db;
      _db.Open();
      return m_session.Open(_db);
   }

   void CloseDataSource()
   {
      m_session.Close();
   }

   CSession m_session;

   DEFINE_COMMAND_EX(CArtistsProperty, L" \
      { ? = SELECT Age FROM Artists WHERE Age < ? }")
};

Requisiti

Intestazione: atldbcli.h

Vedi anche

Macro e funzioni globali per modelli consumer OLE DB
Modelli di consumer OLE DB
Riferimenti ai modelli consumer OLE DB