CDaoRecordset::Open

wirtualne nieważne Open (int nOpenType = AFX_DAO_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, int nOptions= 0 );
rzut (CDaoException, CMemoryException);

wirtualne nieważne Open (CDaoTableDef *pozycję = dbOpenTable, int programupTableDef,int nOpenType nOptions= 0 );
rzut (CDaoException, CMemoryException);

wirtualne nieważne Open (CDaoQueryDef *pozycję = dbOpenDynaset, int programupQueryDef,int nOpenType nOptions= 0 );
rzut (CDaoException, CMemoryException);

Parametry

nOpenType

Jedna z następujących wartości:

lpszSQL

Wskaźnik ciąg zawierający jeden z następujących:

nOptions

Jeden lub więcej z opcji wymienionych poniżej. Wartością domyślną jest 0. Możliwe wartości są następujące:

pTableDef

 Wskaźnik do obiektu CDaoTableDef . Ta wersja jest prawidłowa tylko dla tabeli typu zestawy rekordów. Korzystając z tej opcji, wskaźnik CDaoDatabase , wykorzystywanych do konstruowania CDaoRecordset nie jest używany; raczej używana jest baza danych, w której znajduje się zreplikowany.

pQueryDef

Wskaźnik do obiektu CDaoQueryDef . Ta wersja jest prawidłowa tylko dla dynamicznego i zestawy rekordów typu migawka. Korzystając z tej opcji, wskaźnik CDaoDatabase , wykorzystywanych do konstruowania CDaoRecordset nie jest używany; raczej używana jest baza danych, w której znajduje się obiektu querydef.

Uwagi

Należy wywołać tę funkcję Państwa do pobierania rekordów w zestawie rekordów. Przed wywołaniem otwarte, należy tworzyć obiektu recordset. Istnieje kilka sposobów, aby to zrobić:

Dla wersji otworzyć użyto parametru lpszSQL , po otwarciu zestawu rekordów moż&na pobrać rekordy w kilka sposobów. Pierwsza opcja jest funkcji DFX w Twojej DoFieldExchange. Druga opcja jest użycie dynamiczne wiązanie przez wywołanie funkcji członek GetFieldValue . Opcje te mogą być zaimplementowane, oddzielnie lub w połączeniu. Jeśli są one łączone, będą musiały przekazywać w instrukcji SQL samodzielnie na wywołanie Open. Aby uzyskać więcej informacji na temat dynamiczne wiązanie, zobacz artykuł zestawu rekordów DAO: powiązanie rekordy dynamicznie w Visual C++ Programmer's Guide.nbsp;

Podczas korzystania z drugiej wersji otwartej gdzie należy przekazać w obiekcie CDaoTableDef , wynikowy kolumny będą dostępne dla można powiązać za pośrednictwem mechanizmu DFX i DoFieldExchange , i/lub powiązać dynamicznie za pośrednictwem GetFieldValue.

Uwaga   Można wywołać tylko otwarte przy użyciu obiektu CDaoTableDef dla tabeli typu zestawy rekordów.

Kiedy używasz trzecia wersja otwartego gdzie należy przekazać w obiekcie CDaoQueryDef , że kwerenda zostanie wykonane, i wynikowy kolumny się dostępne powiązania poprzez DoFieldExchange i mechanizm DFX lub powiązać dynamicznie za pośrednictwem GetFieldValue.

Uwaga   Można wywołać tylko otwarte przy użyciu obiektu CDaoQueryDef dla dynamicznego i zestawy rekordów typu migawka.

Dla pierwszej wersji otwartej że użyto parametru lpszSQL rekordy są wybierane w oparciu o kryteria przedstawione w poniższej tabeli.

Wartość parametru lpszSQL Rekordy zaznaczone są określane przez Przykład
WARTOŚĆ NULL Ciąg zwracany przez GetDefaultSQL.
Rozdzielaną przecinkami listę jednego lub więcej tabledefs i/lub nazwy querydef. Wszystkie kolumny reprezentowany w DoFieldExchange.
"Klient"
Zaznacz listę kolumn z tabeli Lista Określonej kolumny z określonym tabledef(s) lub querydef(s).
"Wybierz IDklienta, CustName
OD klienta"

Typowa procedura jest przekazać NULL do otwartych; w takim przypadku otwartych wywołuje GetDefaultSQL, funkcję wykonać Państwa, która ClassWizard generuje podczas tworzenia CDaoRecordset-klasy. Wartość ta daje nazwa(-y) tabledef(s) i/lub querydef, który określono w ClassWizard. Zamiast tego można określić inne informacje w parametrze lpszSQL.

Niezależnie od należy przekazać, Otwórz konstrukcje końcowego ciąg SQL dla kwerendy (ciąg może być SQL gdzie i porządku według klauzule, dołączany do ciągu lpszSQL , który został przekazany) i następnie wykonuje kwerendę. Można sprawdzić konstruowanej ciąg, wywołując GetSQL po wywołaniu Open.

Członkowie danych pole klasy rekordów są powiązane z kolumny danych zaznaczone. Jeśli zwracane są wszystkie rekordy, pierwszy rekord staje się bieżącym rekordzie.

Jeśli chcesz ustawić opcje dla rekordów, takie jak filtrować lub sortować, ustaw m_strSort lub m_strFilter po konstruowania obiektu recordset, ale zanim zadzwonisz otwarte. Jeśli chcesz odświeżyć rekordów w zestawie rekordów po zestawie rekordów jest już otwarty, wywołanie PonówKwerendę.

Jeśli zadzwonisz otwarte na dynamicznego lub rekordów typu migawka lub źródła danych odnosi się do instrukcji SQL lub zreplikowany, która reprezentuje załączona tabela, dbOpenTable nie można użyć argumentu typu; Jeśli MFC zgłasza wyjątek. Aby ustalić, czy obiekt zreplikowany reprezentuje załączona tabela, tworzenie obiektu CDaoTableDef i jego funkcji członek GetConnect.

Flaga dbSeeChanges należy użyć, jeśli chcesz zalewki zmiany dokonane przez innego użytkownika lub innego programu na komputerze podczas edycji lub usuwania tego samego rekordu. Na przykład jeśli dwóch użytkowników rozpocząć edycję tego samego rekordu, powiedzie się pierwszego użytkownika do wywołania funkcji członek aktualizacji . CDaoException jest generowany, gdy Aktualizacja zostanie wywołana przez drugiego użytkownika. Podobnie jeśli drugi użytkownik spróbuje wywołać, usunąć , aby usunąć rekord, a już zostały zmienione przez pierwszego użytkownika, występuje CDaoException.

Zazwyczaj jeżeli użytkownik uzyskuje ten CDaoException podczas aktualizowania, kodu należy Odowież zawartooć pola i pobrać nowo zmodyfikowanej wartości. Jeśli wyjątek występuje w proces usuwania, kodu można wyświetlić nowych rekordów dane użytkownika i komunikat informujący ostatnio zmieniono danych. W tym momencie kodu można zażądać potwierdzenia, że użytkownik chce nadal do usuwania rekordu.

Porada Użyj tylko do przodu przewijanie opcję (dbForwardOnly), aby zwiększyć wydajność, gdy aplikacja tworzy jeden bilet rekordów otwarty ze źródła danych ODBC.

Aby uzyskać więcej informacji na temat otwarcia zestawy rekordów, zobacz artykuły zestawu rekordów DAO: tworzenie zestawów rekordów i DAO: tworzenie, otwieranie i zamykanie obiektów DAO w Visual C++ Programmer's Guide. Aby uzyskać pokrewne informacje zobacz temat „metoda OpenRecordset"w pomocy programu DAO.

Omówie&nie CDaoRecordset |nbsp; Klasa członków | Wykres hierarchii

Zobacz też CDaoRecordset::Close, CDaoRecordset::CDaoRecordset

Index