Udostępnij przez


Makra i funkcje globalne dla szablonów konsumentów OLE DB

Szablony konsumentów OLE DB obejmują następujące makra i funkcje globalne:

Funkcje globalne

Nazwa/nazwisko opis
AtlTraceErrorRecords Zrzuty informacje o rekordzie błędu OLE DB do urządzenia zrzutu, jeśli zostanie zwrócony błąd.

Makra mapy dostępu

Nazwa/nazwisko opis
BEGIN_ACCESSOR Oznacza początek wpisu dostępu.
BEGIN_ACCESSOR_MAP Oznacza początek wpisów mapy dostępu.
END_ACCESSOR Oznacza koniec wpisu dostępu.
END_ACCESSOR_MAP Oznacza koniec wpisów mapy dostępu.

Makra mapy kolumn

Nazwa/nazwisko opis
BEGIN_COLUMN_MAP Oznacza początek wpisów mapy kolumn w klasie rekordów użytkownika.
BLOB_ENTRY Służy do powiązania binarnego dużego obiektu (BLOB).
BLOB_ENTRY_LENGTH Raportuje długość kolumny danych obiektu BLOB.
BLOB_ENTRY_LENGTH_STATUS Raportuje długość i stan kolumny danych obiektu BLOB.
BLOB_ENTRY_STATUS Raportuje stan kolumny danych obiektu BLOB.
BLOB_NAME Służy do powiązania dużego obiektu binarnego według nazwy kolumny.
BLOB_NAME_LENGTH Raportuje długość kolumny danych obiektu BLOB.
BLOB_NAME_LENGTH_STATUS Raportuje długość i stan kolumny danych obiektu BLOB.
BLOB_NAME_STATUS Raportuje stan kolumny danych obiektu BLOB.
BOOKMARK_ENTRY Reprezentuje wpis zakładki w zestawie wierszy. Wpis zakładki jest specjalnym rodzajem wpisu kolumny.
COLUMN_ENTRY Reprezentuje powiązanie z określoną kolumną w bazie danych.
COLUMN_ENTRY_EX Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje parametry typu, długości, dokładności, skalowania i stanu.
COLUMN_ENTRY_LENGTH Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje zmienną długości .
COLUMN_ENTRY_LENGTH_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje parametry stanu i długości .
COLUMN_ENTRY_PS Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje parametry dokładności i skalowania .
COLUMN_ENTRY_PS_LENGTH Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje parametry zmiennej długości , dokładności i skali .
COLUMN_ENTRY_PS_LENGTH_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje zmienne stanu i długości , precyzję i parametry skalowania .
COLUMN_ENTRY_PS_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje zmienne stanu, precyzję i parametry skalowania.
COLUMN_ENTRY_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje zmienną stanu .
COLUMN_ENTRY_TYPE Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje parametr typu .
COLUMN_ENTRY_TYPE_SIZE Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje parametry typu i rozmiaru .
COLUMN_NAME Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy.
COLUMN_NAME_EX Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację typu danych, rozmiaru, dokładności, skali, długości kolumny i stanu kolumny.
COLUMN_NAME_LENGTH Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację długości kolumny.
COLUMN_NAME_LENGTH_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację długości i stanu kolumny.
COLUMN_NAME_PS Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację dokładności i skali.
COLUMN_NAME_PS_LENGTH Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację dokładności, skali i długości kolumny.
COLUMN_NAME_PS_LENGTH_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację dokładności, skali, długości kolumny i stanu kolumny.
COLUMN_NAME_PS_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację dokładności, skalowania i stanu kolumny.
COLUMN_NAME_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację stanu kolumny.
COLUMN_NAME_TYPE Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację typu danych.
COLUMN_NAME_TYPE_PS Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację typu danych, precyzji i skali.
COLUMN_NAME_TYPE_SIZE Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację typu i rozmiaru danych.
COLUMN_NAME_TYPE_STATUS Reprezentuje powiązanie z określoną kolumną w bazie danych według nazwy. Obsługuje specyfikację typu danych i stanu kolumny.
END_COLUMN_MAP Oznacza koniec wpisów mapy kolumny.

Makra poleceń

Nazwa/nazwisko opis
DEFINE_COMMAND Określa polecenie, które będzie używane do tworzenia zestawu wierszy podczas korzystania z klasy CCommand . Akceptuje tylko typy ciągów pasujące do określonego typu aplikacji (ANSI lub Unicode). Zaleca się użycie DEFINE_COMMAND_EX zamiast DEFINE_COMMAND.
DEFINE_COMMAND_EX Określa polecenie, które będzie używane do tworzenia zestawu wierszy podczas korzystania z klasy CCommand . Obsługuje aplikacje ANSI i Unicode.

Makra mapy parametrów

Nazwa/nazwisko opis
BEGIN_PARAM_MAP Oznacza początek wpisów mapy parametrów w klasie rekordów użytkownika.
END_PARAM_MAP Oznacza koniec wpisów mapy parametrów.
SET_PARAM_TYPE Określa COLUMN_ENTRY makra, które są zgodne z makrem SET_PARAM_TYPE jako dane wejściowe, wyjściowe lub wejściowe/wyjściowe.

AtlTraceErrorRecords

Zrzuty informacje o rekordzie błędu OLE DB do urządzenia zrzutu, jeśli zostanie zwrócony błąd.

Składnia

inline void AtlTraceErrorRecords(HRESULT hrErr = S_OK);

Parametry

Herr
[in] HrESULT zwrócony przez funkcję składową szablonu użytkownika OLE DB.

Uwagi

Jeśli hErr nie jest S_OK, AtlTraceErrorRecords zrzuty informacje o rekordzie błędu OLE DB na urządzeniu zrzutu ( karta Debugowanie okna Dane wyjściowe lub plik). Informacje o rekordzie błędu uzyskane od dostawcy obejmują numer wiersza, źródło, opis, plik pomocy, kontekst i identyfikator GUID dla każdego wpisu rekordu błędu. AtlTraceErrorRecords zrzuty tych informacji tylko w kompilacjach debugowania. W kompilacjach wydania jest to pusty wycink, który jest zoptymalizowany. Aby uzyskać więcej informacji, zobacz CdBErrorInfo Class (Klasa CDBErrorInfo).

BEGIN_ACCESSOR

Oznacza początek wpisu dostępu.

Składnia

BEGIN_ACCESSOR(num, bAuto)

Parametry

Num
[in] Numer przesunięcia zerowego dla metody dostępu na tej mapie dostępu.

bAuto
[in] Określa, czy ta akcesorium jest akcesorem automatycznym lub ręcznym akcesorem. Jeśli true, akcesor jest automatyczny; jeśli false, akcesor jest ręczny. Automatyczne akcesorium oznacza, że dane są pobierane na potrzeby operacji przenoszenia.

Uwagi

W przypadku wielu metod dostępu w zestawie wierszy należy określić BEGIN_ACCESSOR_MAP i użyć makra BEGIN_ACCESSOR dla poszczególnych metod dostępu. Makro BEGIN_ACCESSOR zostało ukończone przy użyciu makra END_ACCESSOR. Makro BEGIN_ACCESSOR_MAP zostało ukończone przy użyciu makra END_ACCESSOR_MAP.

Przykład

Zobacz BEGIN_ACCESSOR_MAP.

BEGIN_ACCESSOR_MAP

Oznacza początek wpisów mapy dostępu.

Składnia

BEGIN_ACCESSOR_MAP(x, num)

Parametry

X
[in] Nazwa klasy rekordu użytkownika.

Num
[in] Liczba metod dostępu na tej mapie akcesoriów.

Uwagi

W przypadku wielu metod dostępu w zestawie wierszy należy określić BEGIN_ACCESSOR_MAP na początku i użyć makra BEGIN_ACCESSOR dla każdego elementu dostępu. Makro BEGIN_ACCESSOR zostało ukończone przy użyciu makra END_ACCESSOR. Mapa dostępu została ukończona przy użyciu makra END_ACCESSOR_MAP.

Jeśli w rekordzie użytkownika masz tylko jedną metodę dostępu, użyj BEGIN_COLUMN_MAP makra.

Przykład

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

Oznacza koniec wpisu dostępu.

Składnia

END_ACCESSOR()

Uwagi

W przypadku wielu metod dostępu w zestawie wierszy należy określić BEGIN_ACCESSOR_MAP i użyć makra BEGIN_ACCESSOR dla poszczególnych metod dostępu. Makro BEGIN_ACCESSOR zostało ukończone przy użyciu makra END_ACCESSOR. Makro BEGIN_ACCESSOR_MAP zostało ukończone przy użyciu makra END_ACCESSOR_MAP.

Przykład

Zobacz BEGIN_ACCESSOR_MAP.

END_ACCESSOR_MAP

Oznacza koniec wpisów mapy dostępu.

Składnia

END_ACCESSOR_MAP()

Uwagi

W przypadku wielu metod dostępu w zestawie wierszy należy określić BEGIN_ACCESSOR_MAP i użyć makra BEGIN_ACCESSOR dla poszczególnych metod dostępu. Makro BEGIN_ACCESSOR zostało ukończone przy użyciu makra END_ACCESSOR. Makro BEGIN_ACCESSOR_MAP zostało ukończone przy użyciu makra END_ACCESSOR_MAP.

Przykład

Zobacz BEGIN_ACCESSOR_MAP.

BEGIN_COLUMN_MAP

Oznacza początek wpisu mapy kolumny.

Składnia

BEGIN_COLUMN_MAP(x)

Parametry

X
[in] Nazwa klasy rekordów użytkownika pochodząca z CAccessorklasy .

Uwagi

To makro jest używane w przypadku pojedynczego dostępu w zestawie wierszy. Jeśli masz wiele metod dostępu w zestawie wierszy, użyj BEGIN_ACCESSOR_MAP.

Makro BEGIN_COLUMN_MAP zostało ukończone przy użyciu makra END_COLUMN_MAP. To makro jest używane, gdy w rekordzie użytkownika jest wymagany tylko jeden element dostępu.

Kolumny odpowiadają polam w zestawie wierszy, które chcesz powiązać.

Przykład

Oto przykładowa kolumna i mapa parametrów:

BLOB_ENTRY

Używane z BEGIN_COLUMN_MAP i END_COLUMN_MAP do powiązania binarnego dużego obiektu (BLOB).

Składnia

BLOB_ENTRY(nOrdinal, IID, flags, data)

Parametry

nOrdinal
[in] Numer kolumny.

IID
[in] Identyfikator GUID interfejsu, taki jak IDD_ISequentialStream, używany do pobierania obiektu BLOB.

Flagi
[in] Flagi trybu przechowywania zdefiniowane przez model magazynu strukturalnego OLE (na przykład STGM_READ).

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Przykład

Zobacz Jak mogę pobrać obiekt BLOB?.

BLOB_ENTRY_LENGTH

Używane z BEGIN_COLUMN_MAP i END_COLUMN_MAP do powiązania binarnego dużego obiektu (BLOB). Podobnie jak BLOB_ENTRY, z tą różnicą, że to makro również pobiera długość w bajtach kolumny OBIEKTU BLOB.

Składnia

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

Parametry

nOrdinal
[in] Numer kolumny.

IID
[in] Identyfikator GUID interfejsu, taki jak IDD_ISequentialStream, używany do pobierania obiektu BLOB.

Flagi
[in] Flagi trybu przechowywania zdefiniowane przez model magazynu strukturalnego OLE (na przykład STGM_READ).

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[out] (rzeczywista) długość w bajtach kolumny BLOB.

Przykład

Zobacz Jak mogę pobrać obiekt BLOB?.

BLOB_ENTRY_LENGTH_STATUS

Używane z BEGIN_COLUMN_MAP i END_COLUMN_MAP do powiązania binarnego dużego obiektu (BLOB). Podobnie jak BLOB_ENTRY, z tą różnicą, że to makro również pobiera długość i stan kolumny BLOB.

Składnia

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

Parametry

nOrdinal
[in] Numer kolumny.

IID
[in] Identyfikator GUID interfejsu, taki jak IDD_ISequentialStream, używany do pobierania obiektu BLOB.

Flagi
[in] Flagi trybu przechowywania zdefiniowane przez model magazynu strukturalnego OLE (na przykład STGM_READ).

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[out] (rzeczywista) długość w bajtach kolumny BLOB.

status
[out] Stan kolumny danych obiektu BLOB.

Przykład

Zobacz Jak mogę pobrać obiekt BLOB?.

BLOB_ENTRY_STATUS

Używany z BEGIN_COLUMN_MAP lub BEGIN_ACCESSOR_MAP do powiązania binarnego dużego obiektu (BLOB). Podobnie jak BLOB_ENTRY, z tą różnicą, że to makro również pobiera stan kolumny BLOB.

Składnia

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

Parametry

nOrdinal
[in] Numer kolumny.

IID
[in] Identyfikator GUID interfejsu, taki jak IDD_ISequentialStream, używany do pobierania obiektu BLOB.

Flagi
[in] Flagi trybu przechowywania zdefiniowane przez model magazynu strukturalnego OLE (na przykład STGM_READ).

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

status
[out] Stan pola BLOB.

Przykład

Zobacz Jak mogę pobrać obiekt BLOB?.

BLOB_NAME

Używane z BEGIN_COLUMN_MAP i END_COLUMN_MAP do powiązania binarnego dużego obiektu (BLOB). Podobnie jak BLOB_ENTRY, z tą różnicą, że to makro przyjmuje nazwę kolumny zamiast numeru kolumny.

Składnia

BLOB_NAME(pszName, IID, flags, data )

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

IID
[in] Identyfikator GUID interfejsu, taki jak IDD_ISequentialStream, używany do pobierania obiektu BLOB.

Flagi
[in] Flagi trybu przechowywania zdefiniowane przez model magazynu strukturalnego OLE (na przykład STGM_READ).

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Przykład

Zobacz Jak mogę pobrać obiekt BLOB?.

BLOB_NAME_LENGTH

Używane z BEGIN_COLUMN_MAP i END_COLUMN_MAP do powiązania binarnego dużego obiektu (BLOB). Podobnie jak BLOB_NAME, z tą różnicą, że to makro również pobiera długość w bajtach kolumny danych obiektu BLOB.

Składnia

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

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

IID
[in] Identyfikator GUID interfejsu, taki jak IDD_ISequentialStream, używany do pobierania obiektu BLOB.

Flagi
[in] Flagi trybu przechowywania zdefiniowane przez model magazynu strukturalnego OLE (na przykład STGM_READ).

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[out] (rzeczywista) długość w bajtach kolumny BLOB.

BLOB_NAME_LENGTH_STATUS

Używane z BEGIN_COLUMN_MAP i END_COLUMN_MAP do powiązania binarnego dużego obiektu (BLOB). Podobnie jak BLOB_NAME, z tą różnicą, że to makro również pobiera długość i stan kolumny danych obiektu BLOB.

Składnia

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

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

IID
[in] Identyfikator GUID interfejsu, taki jak IDD_ISequentialStream, używany do pobierania obiektu BLOB.

Flagi
[in] Flagi trybu przechowywania zdefiniowane przez model magazynu strukturalnego OLE (na przykład STGM_READ).

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[out] (rzeczywista) długość w bajtach kolumny BLOB.

status
[out] Stan pola BLOB.

BLOB_NAME_STATUS

Używane z BEGIN_COLUMN_MAP i END_COLUMN_MAP do powiązania binarnego dużego obiektu (BLOB). Podobnie jak BLOB_NAME, z tą różnicą, że to makro również pobiera stan kolumny danych obiektu BLOB.

Składnia

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

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

IID
[in] Identyfikator GUID interfejsu, taki jak IDD_ISequentialStream, używany do pobierania obiektu BLOB.

Flagi
[in] Flagi trybu przechowywania zdefiniowane przez model magazynu strukturalnego OLE (na przykład STGM_READ).

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

status
[out] Stan pola BLOB.

BOOKMARK_ENTRY

Wiąże kolumnę zakładki.

Składnia

BOOKMARK_ENTRY(variable)

Parametry

Zmiennej
[in] Zmienna, która ma być powiązana z kolumną zakładki.

Przykład

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")
};

Aby uzyskać więcej informacji, zobacz Using Bookmarks and CBookmark Class (Używanie zakładek i klasy CBookmark).

COLUMN_ENTRY

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy.

Składnia

COLUMN_ENTRY(nOrdinal, data)

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

Makro COLUMN_ENTRY jest używane w następujących miejscach:

Przykład

Zapoznaj się z przykładami w tematach makr, BEGIN_COLUMN_MAP i BEGIN_ACCESSOR_MAP.

COLUMN_ENTRY_EX

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w bazie danych.

Składnia

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

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny.

Wtype
[in] Typ danych.

nLength
[in] Rozmiar danych w bajtach.

nPrecision
[in] Maksymalna precyzja używana podczas pobierania danych i typu to DBTYPE_NUMERIC. W przeciwnym razie ten parametr jest ignorowany.

nScale
[in] Skala do użycia podczas pobierania danych i typu to DBTYPE_NUMERIC lub DBTYPE_DECIMAL.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Makro COLUMN_ENTRY_EX jest używane w następujących miejscach:

Przykład

Zobacz BOOKMARK_ENTRY.

COLUMN_ENTRY_LENGTH

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w bazie danych.

Składnia

COLUMN_ENTRY_LENGTH(nOrdinal, data, length)

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny, zaczynając od jednego. Zakładka odpowiada zerowi kolumny.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

Uwagi

To makro obsługuje zmienną długości . Jest on używany w następujących miejscach:

COLUMN_ENTRY_LENGTH_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w bazie danych.

Składnia

COLUMN_ENTRY_LENGTH_STATUS(nOrdinal, data, length, status)

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Użyj tego makra, jeśli chcesz obsługiwać zmienne długości i stanu. Jest on używany w następujących miejscach:

COLUMN_ENTRY_PS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy.

Składnia

COLUMN_ENTRY_PS(nOrdinal, nPrecision, nScale, data)

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny.

nPrecision
[in] Maksymalna precyzja kolumny, którą chcesz powiązać.

nScale
[in] Skala kolumny, którą chcesz powiązać.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

Umożliwia określenie dokładności i skali kolumny, którą chcesz powiązać. Jest on używany w następujących miejscach:

COLUMN_ENTRY_PS_LENGTH

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w bazie danych.

Składnia

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

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny, zaczynając od jednego. Zakładka odpowiada zerowi kolumny.

nPrecision
[in] Maksymalna precyzja kolumny, którą chcesz powiązać.

nScale
[in] Skala kolumny, którą chcesz powiązać.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

Uwagi

Umożliwia określenie dokładności i skali kolumny, którą chcesz powiązać. To makro obsługuje zmienną długości . Jest on używany w następujących miejscach:

COLUMN_ENTRY_PS_LENGTH_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w bazie danych.

Składnia

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

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny.

nPrecision
[in] Maksymalna precyzja kolumny, którą chcesz powiązać.

nScale
[in] Skala kolumny, którą chcesz powiązać.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Umożliwia określenie dokładności i skali kolumny, którą chcesz powiązać. Użyj tego makra, jeśli chcesz obsługiwać zmienne długości i stanu. Jest on używany w następujących miejscach:

COLUMN_ENTRY_PS_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w bazie danych.

Składnia

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

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny.

nPrecision
[in] Maksymalna precyzja kolumny, którą chcesz powiązać.

nScale
[in] Skala kolumny, którą chcesz powiązać.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Umożliwia określenie dokładności i skali kolumny, którą chcesz powiązać. To makro obsługuje zmienną stanu . Jest on używany w następujących miejscach:

COLUMN_ENTRY_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w bazie danych.

Składnia

COLUMN_ENTRY_STATUS(nOrdinal, data, status)

Parametry

Zobacz DBBINDING w dokumentacji programisty OLE DB.

nOrdinal
[in] Numer kolumny.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

To makro obsługuje zmienną stanu . Jest on używany w następujących miejscach:

COLUMN_ENTRY_TYPE

Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje parametr typu .

Składnia

COLUMN_ENTRY_TYPE (nOrdinal, wType, data)

Parametry

nOrdinal
[in] Numer kolumny.

Wtype
[in] Typ danych wpisu kolumny.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

To makro jest wyspecjalizowanym wariantem makra COLUMN_ENTRY , który zapewnia sposób określania typu danych.

COLUMN_ENTRY_TYPE_SIZE

Reprezentuje powiązanie z określoną kolumną w bazie danych. Obsługuje parametry typu i rozmiaru .

Składnia

COLUMN_ENTRY_TYPE_SIZE(nOrdinal, wType, nLength, data)

Parametry

nOrdinal
[in] Numer kolumny.

Wtype
[in] Typ danych wpisu kolumny.

nLength
[in] Rozmiar wpisu kolumny w bajtach.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

To makro jest wyspecjalizowanym wariantem makra COLUMN_ENTRY , które zapewnia sposób określania rozmiaru i typu danych.

COLUMN_NAME

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_ENTRY, z tą różnicą, że to makro przyjmuje nazwę kolumny zamiast numeru kolumny.

Składnia

COLUMN_NAME(pszName, data)

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

Makra COLUMN_NAME_* są używane w tych samych miejscach co COLUMN_ENTRY:

COLUMN_NAME_EX

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro przyjmuje również typ danych, rozmiar, precyzję, skalę, długość kolumny i stan kolumny.

Składnia

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

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Wtype
[in] Typ danych.

nLength
[in] Rozmiar danych w bajtach.

nPrecision
[in] Maksymalna precyzja używana podczas pobierania danych i typu to DBTYPE_NUMERIC. W przeciwnym razie ten parametr jest ignorowany.

nScale
[in] Skala do użycia podczas pobierania danych i typu to DBTYPE_NUMERIC lub DBTYPE_DECIMAL.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_LENGTH

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro również ma długość kolumny.

Składnia

COLUMN_NAME_LENGTH(pszName, data, length)

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_LENGTH_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro ma również długość kolumny i stan kolumny.

Składnia

COLUMN_NAME_LENGTH_STATUS(pszName, data, length, status )

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_PS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro ma również precyzję i skalę.

Składnia

COLUMN_NAME_PS(pszName, nPrecision, nScale, data )

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

nPrecision
[in] Maksymalna precyzja kolumny, którą chcesz powiązać.

nScale
[in] Skala kolumny, którą chcesz powiązać.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_PS_LENGTH

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro ma również dokładność, skalę i długość kolumny.

Składnia

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

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

nPrecision
[in] Maksymalna precyzja kolumny, którą chcesz powiązać.

nScale
[in] Skala kolumny, którą chcesz powiązać.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_PS_LENGTH_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro ma również dokładność, skalę, długość kolumny i stan kolumny.

Składnia

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

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

nPrecision
[in] Maksymalna precyzja kolumny, którą chcesz powiązać.

nScale
[in] Skala kolumny, którą chcesz powiązać.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Długość
[in] Zmienna, która ma być powiązana z długością kolumny.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_PS_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro ma również stan dokładności, skalowania i kolumny.

Składnia

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

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

nPrecision
[in] Maksymalna precyzja kolumny, którą chcesz powiązać.

nScale
[in] Skala kolumny, którą chcesz powiązać.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro ma również stan kolumny.

Składnia

COLUMN_NAME_STATUS(pszName, data, status )

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_TYPE

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro również przyjmuje typ danych.

Składnia

COLUMN_NAME_TYPE(pszName, wType, data)

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Wtype
[in] Typ danych.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_TYPE_PS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro również przyjmuje typ danych, precyzję i skalę.

Składnia

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

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Wtype
[in] Typ danych.

nPrecision
[in] Maksymalna precyzja używana podczas pobierania danych i typu to DBTYPE_NUMERIC. W przeciwnym razie ten parametr jest ignorowany.

nScale
[in] Skala do użycia podczas pobierania danych i typu to DBTYPE_NUMERIC lub DBTYPE_DECIMAL.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_TYPE_SIZE

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro również przyjmuje typ i rozmiar danych.

Składnia

COLUMN_NAME_TYPE_SIZE(pszName, wType, nLength, data)

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Wtype
[in] Typ danych.

nLength
[in] Rozmiar danych w bajtach.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

COLUMN_NAME_TYPE_STATUS

Reprezentuje powiązanie zestawu wierszy z określoną kolumną w zestawie wierszy. Podobnie jak COLUMN_NAME, z tą różnicą, że to makro również przyjmuje stan danych i kolumny.

Składnia

COLUMN_NAME_TYPE_STATUS(pszName, wType, status, data)

Parametry

pszName
[in] Wskaźnik do nazwy kolumny. Nazwa musi być ciągiem Unicode. Można to zrobić, umieszczając "L" przed nazwą, na przykład: L"MyColumn".

Wtype
[in] Typ danych.

status
[in] Zmienna, która ma być powiązana ze stanem kolumny.

Danych
[in] Odpowiedni element członkowski danych w rekordzie użytkownika.

Uwagi

Aby uzyskać informacje o tym, gdzie są używane makra COLUMN_NAME_*, zobacz COLUMN_NAME .

END_COLUMN_MAP

Oznacza koniec wpisów mapy kolumny.

Składnia

END_COLUMN_MAP()

Uwagi

Jest on używany z jednym akcesorem w zestawie wierszy. Makro BEGIN_COLUMN_MAP zostało ukończone przy użyciu makra END_COLUMN_MAP.

Przykład

Zobacz BEGIN_COLUMN_MAP.

DEFINE_COMMAND

Określa polecenie, które będzie używane do tworzenia zestawu wierszy podczas korzystania z klasy CCommand . Akceptuje tylko typy ciągów pasujące do określonego typu aplikacji (ANSI lub Unicode).

Uwaga

Zaleca się użycie DEFINE_COMMAND_EX zamiast DEFINE_COMMAND.

Składnia

DEFINE_COMMAND(x, szCommand)

Parametry

X
[in] Nazwa klasy rekordu użytkownika (polecenia).

szCommand
[in] Ciąg polecenia, który będzie używany do tworzenia zestawu wierszy podczas korzystania z polecenia CCommand.

Uwagi

Określony ciąg polecenia będzie używany jako domyślny, jeśli nie określisz tekstu polecenia w metodzie CCommand::Open .

To makro akceptuje ciągi ANSI, jeśli tworzysz aplikację jako ANSI lub ciągi Unicode, jeśli tworzysz aplikację jako Unicode. Zaleca się używanie DEFINE_COMMAND_EX zamiast DEFINE_COMMAND, ponieważ były akceptuje ciągi Unicode, niezależnie od typu aplikacji ANSI lub Unicode.

Przykład

Zobacz BOOKMARK_ENTRY.

DEFINE_COMMAND_EX

Określa polecenie, które będzie używane do tworzenia zestawu wierszy podczas korzystania z klasy CCommand . Obsługuje aplikacje Unicode i ANSI.

Składnia

DEFINE_COMMAND_EX(x, wszCommand)

Parametry

X
[in] Nazwa klasy rekordu użytkownika (polecenia).

wszCommand
[in] Ciąg polecenia, który będzie używany do tworzenia zestawu wierszy podczas korzystania z polecenia CCommand.

Uwagi

Określony ciąg polecenia będzie używany jako domyślny, jeśli nie określisz tekstu polecenia w metodzie CCommand::Open .

To makro akceptuje ciągi Unicode niezależnie od typu aplikacji. To makro jest preferowane w przypadku DEFINE_COMMAND , ponieważ obsługuje kod Unicode, a także aplikacje ANSI.

Przykład

Zobacz BOOKMARK_ENTRY.

BEGIN_PARAM_MAP

Oznacza początek wpisów mapy parametrów.

Składnia

BEGIN_PARAM_MAP(x)

Parametry

X
[in] Nazwa klasy rekordu użytkownika.

Uwagi

Parametry są używane przez polecenia.

Przykład

Zobacz przykład makra BEGIN_COLUMN_MAP .

END_PARAM_MAP

Oznacza koniec wpisów mapy parametrów.

Składnia

END_PARAM_MAP()

Przykład

Zobacz przykład makra BEGIN_PARAM_MAP .

SET_PARAM_TYPE

Określa COLUMN_ENTRY makr, które są zgodne z SET_PARAM_TYPE dane wejściowe, wyjściowe lub wejściowe/wyjściowe.

Składnia

SET_PARAM_TYPE(type)

Parametry

type
[in] Typ, który ma być ustawiony dla parametru.

Uwagi

Dostawcy obsługują tylko typy danych wejściowych/wyjściowych parametrów obsługiwanych przez bazowe źródło danych. Typ jest kombinacją co najmniej jednej DBPARAMIO wartości (zobacz DBBINDING Structures w dokumentacji programisty OLE DB):

  • DBPARAMIO_NOTPARAM Akcesorium nie ma parametrów. Zazwyczaj ustawiono eParamIO tę wartość w elementach dostępu wiersza, aby przypomnieć użytkownikowi, że parametry są ignorowane.

  • DBPARAMIO_INPUT Parametr wejściowy.

  • DBPARAMIO_OUTPUT Parametr wyjściowy.

  • DBPARAMIO_INPUT | DBPARAMIO_OUTPUT Parametr jest zarówno parametrem wejściowym, jak i wyjściowym.

Przykład

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 < ? }")
};

Wymagania

Nagłówek: atldbcli.h

Zobacz też

Makra i funkcje globalne dla szablonów konsumentów OLE DB
Szablony konsumentów OLE DB
Szablony konsumentów OLE DB — dokumentacja