Zestaw rekordów: praca z dużymi elementami danych (ODBC)

Ten temat dotyczy zarówno klas MFC ODBC i klas MFC DAO.

[!UWAGA]

Jeśli używasz klas MFC DAO, Zarządzaj swoimi przedmiotami dużych danych z klasy CByteArray a nie klasy CLongBinary.Jeśli używasz klas MFC ODBC z pobierania wierszy bulk, użyj CLongBinary zamiast CByteArray.Aby uzyskać więcej informacji dotyczących pobierania wierszy bulk, zobacz zestaw rekordów: pobieranie rekordów luzem (ODBC).

Załóżmy, że w bazie danych można przechowywać duże kawałki danych, takich jak mapy bitowe (pracownika fotografie, mapy, obrazy produktów, obiektów OLE i tak dalej).Tego rodzaju danych jest często określane jako dużego obiektu binarnego (lub obiektu BLOB) ponieważ:

  • Wartość każdego pola jest duża.

  • W przeciwieństwie do liczb i inne proste typy danych ma rozmiar nie przewidywalne.

  • Dane są bezkształtną z punktu widzenia danego programu.

W tym temacie wyjaśniono, jakie wsparcie przewidują pracy z takich obiektów klas bazy danych.

Zarządzanie dużych obiektów

Zestawy rekordów mają dwa sposoby rozwiązania szczególnych trudności w zarządzaniu duże obiekty binarne.Można użyć klasy CByteArray lub można użyć klasy CLongBinary.Ogólnie rzecz biorąc CByteArray jest preferowanym sposobem zarządzania dużych danych binarnych.

CByteArraywymaga większe obciążenie niż z CLongBinary , ale jest zdolny, zgodnie z opisem w Klasy CByteArray.CLongBinaryopisano krótko w Klasy CLongBinary.

Aby uzyskać szczegółowe informacje dotyczące korzystania z CByteArray do pracy z elementami dużych danych, zobacz technicznej 45 Uwaga.

Klasa CByteArray

CByteArrayjest jednym z kolekcja klas MFC.A CByteArray obiekt przechowuje tablicy dynamicznej bajtów — tablicy można powiększać, w razie potrzeby.Klasa oferuje szybki dostęp przez indeks, podobnie jak w przypadku wbudowanych tablic C++.CByteArrayobiekty można szeregować i po cenach dumpingowych w celach diagnostycznych.Klasa zapewnia funkcje składowe służące do pobierania i ustawiania określonych bajtów, wstawianie i dołączanie bajtów i usunięcie jednego bajtu lub wszystkich bajtów.Urządzenia te należy rozdzielić dane binarne łatwiejsze.Na przykład jeśli obiekt binarny jest obiekt OLE, trzeba będzie pracować przez kilka bajtów nagłówka do osiągnięcia rzeczywistego obiekt.

Za pomocą CByteArray w zestawy rekordów

Przekazując element członkowski danych pola zestawu rekordów typu CByteArray, zapewnienia stałej bazy, z którego RFX można zarządzać transfer taki obiekt między swój zestaw rekordów i źródło danych i za pomocą którego można manipulować danymi wewnątrz obiektu.RFX wymaga określonej witryny dla pobierane dane, a potrzebny jest sposób dostępu do danych podstawowych.

Aby uzyskać szczegółowe informacje dotyczące korzystania z CByteArray do pracy z elementami dużych danych, zobacz technicznej 45 Uwaga.

Klasa CLongBinary

A CLongBinary obiekt jest proste powłoki wokół HGLOBAL dojście do bloku pamięć zaalokowana na stosie.Gdy wiąże kolumnie tabeli zawierającej dużego obiektu binarnego, przydziela RFX HGLOBAL obsługi, gdy musi przesyłanie danych do zestawu rekordów i przechowuje dojście w CLongBinary pola zestawu rekordów.

Z kolei użyć HGLOBAL obsługi, m_hData, aby pracować z danymi, działających na to, jak można na dowolnym zajęłaby danych.To jest, gdy CByteArray zwiększa możliwości.

Informacje dotyczące przestrogiPrzestroga

Obiekty CLongBinary nie mogą być używane jako parametry w wywołaniach funkcji.Ponadto, ich realizacji, który z kolei wywołuje :: SQLGetData, niekoniecznie zmniejsza wydajność przewijania dla przewijalne migawki.Może to być również spełnione korzystając z :: SQLGetData nazywać się pobrać kolumny schematu dynamiczne.

Zobacz też

Koncepcje

Zestaw rekordów (ODBC)

Zestaw rekordów: uzyskiwanie sum i innych wyników agregacji (ODBC)

Wymiana pól rekordów (RFX)