CRecordset::Open

wirtualneBOOLOtwarte (UINTnOpenType=AFX_DB_USE_DEFAULT_TYPE,LPCTSTRlpszSQL=,NULL,DWORDdwOptions=Brak);
rzut ( CDBException, CMemoryException );

Wartość zwracany

Niezerowa, jeśli obiekt CRecordset został pomyślnie otwarty; inny sposób 0, jeśli CDatabase::Open (Jeśli wywołana) zwraca 0.

Parametry

nOpenType

Zaakceptuj wartość domyślną, AFX_DB_USE_DEFAULT_TYPE, lub za pomocą jednej z następujących wartości z wyliczenia OpenType:

lpszSQL

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

dwOptions

Maski bitów, które można określić kombinacji wartości wymienionych poniżej. Niektóre z nich są wzajemnie wykluczające. Wartością domyślną jest Brak.

Uwagi

Należy wywołać tej funkcji Państwa, aby uruchomić kwerendę zdefiniowany przez zestaw rekordów. Przed wywołaniem otwarte, należy tworzyć obiektu recordset.

Ten zestaw rekordów połączenie ze źródłem danych zależy od sposobu konstruowania zestawu rekordów przed wywołaniem metody Open. Jeśli obiekt CDatabase można przekazać do konstruktora zestaw rekordów, który nie był podłączony do źródła danych, ta funkcja Członkowskie używa GetDefaultConnect próbuje otworzyć obiekt bazy danych. Jeśli do konstruktora rekordów można przekazać wartości NULL , konstruktora tworzy obiekt CDatabase dla Ciebie, a otwarty próbuje się połączyć obiekt bazy danych. Szczegółowe informacje na temat zamykania zestawu rekordów i połączenia tych różnych okolicznościach zobacz Zamknij.

Uwaga   Dostęp do źródła danych za pośrednictwem obiektu CRecordset zawsze jest udostępniony. W przeciwieństwie do klasy CDaoRecordset nie można użyć obiektu CRecordset , aby otworzyć źródło danych w trybie dostępu wyłącznego.

Po wywołaniu otwarte, kwerenda, zazwyczaj instrukcję SQL Zaznacz , wybiera rekordy 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.
Nazwa tabeli SQL Wszystkie kolumny listy tabeli w DoFieldExchange lub DoBulkFieldExchange.
 "Klient"
Nazwy predefiniowanego zapytania (procedury przechowywane) Kolumny, których kwerenda jest zdefiniowana do zwrotu.
"{call OverDueAccts}"
Zaznacz listę kolumn z tabeli Lista Określonej kolumny z określonych tabel.
"Wybierz IDklienta, CustName Z klienta"

! Ostrzeżenienbsp;  &Należy uważać, że nie należy wstawiać dodatkowych odstępów w ciągu SQL. Na przykład jeśli można wstawić odstęp między nawiasem sześciennym i słowo kluczowe, CALL , MFC interpretację postrzeganego ciąg SQL jako nazwę tabeli i włączenie go do instrukcji SELECT , co spowoduje wygenerowanie wyjątku jest generowane. Podobnie, jeśli wstępnie kwerendy używa parametru wyjściowego, nie należy wstawiać spacji między nawiasem sześciennym oraz '?' symbolu. Wreszcie nie należy umieszczać spacji przed nawiasem sześciennym w instrukcji CALL lub przed Wybierz słowo kluczowe w instrukcji Wybierz.

Typowa procedura jest przekazać NULL do otwartych; w tym przypadku otwartych wywołuje GetDefaultSQL. Jeśli używasz pochodną klasy CRecordset , GetDefualtSQL podaje nazwy tabeli, który określono w ClassWizard. Zamiast tego można określić inne informacje w parametrze lpszSQL.

Niezależnie od należy przekazać, otwarte konstrukcje końcowego ciąg SQL dla kwerendy (ciąg może mieć klauzul SQL gdzie oraz ORDER BY dołączany do ciągu lpszSQL , który został przekazany), a następnie wykonuje kwerendę. Skonstruowane ciąg znaków można sprawdzić, przez wywołanie GetSQL po wywołaniu otwarte. O dodatkowe informacje, jak zestaw rekordów tworzy instrukcję SQL i wybiera rekordów, zobacz artykuł rekordów: jak zestawy rekordów wybierz rekordy (ODBC) w Visual C++ Programmer's Guide.

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ć, należy określić te po konstruowania obiektu recordset, ale przed wywołaniem otwarte. Jeśli chcesz odświeżyć rekordów w zestawie rekordów po zestawie rekordów jest już otwarty, wywołanie PonówKwerendę.

Aby uzyskać więcej informacji, w tym dodatkowe przykłady, zobacz artykuły Rekordów (ODBC), rekordów: jak zestawy rekordów wybierz rekordy (ODBC), i rekordów: tworzenie i zamknięcia zestawy rekordów (ODBC) w Visual C++ Programmer's Guide.

Przykład

Następujące przykłady kodu przedstawiają różne formy otwartego zaproszenia.

/ / r jest CRecordset lub
/ / Pochodnych CRecordset obiektu

/ / UW otwarte przy użyciu instrukcji SQL domyślnego
/ / wdrożenia zakładki i wyłączyć
/ / automatycznego dirty pole Sprawdzanie
r.Otwórz (CRecordset::snapshot, &NULL,
 nbsp;       CRecordset::useBookmarks |
         CRecordset::noDirtyFieldCheck);

/ / Pass Pełna instrukcja SELECT
/ / i otwarty jako dynamiczny
r.Otwórz (CRecordset::dynaset,
         _T ("Wybierz L_Name od nabywcy"));

/ / Zaakceptuj wszystkie ustawienia domyślne
r.(Otwórz)

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

Zobacz też CRecordset::CRecordset, CRecordset::Close, CRecordset::GetDefaultSQL, CRecordset::GetSQL, CRecordset::m_strFilter, CRecordset::m_strSort, CRecordset::Requery

Index