Klasa CDaoQueryDef

Reprezentuje definicję zapytania lub "querydef", zwykle jedną zapisaną w bazie danych.

Składnia

class CDaoQueryDef : public CObject

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
CDaoQueryDef::CDaoQueryDef CDaoQueryDef Tworzy obiekt. Następne połączenie Open lub Create, w zależności od potrzeb.

Metody publiczne

Nazwa/nazwisko opis
CDaoQueryDef::Append Dołącza definicję zapytania do kolekcji QueryDefs bazy danych jako zapisane zapytanie.
CDaoQueryDef::CanUpdate Zwraca wartość inną niżzerowa, jeśli zapytanie może zaktualizować bazę danych.
CDaoQueryDef::Close Zamyka obiekt querydef. Po zakończeniu likwiduj obiekt C++.
CDaoQueryDef::Create Tworzy bazowy obiekt querydef dao. Użyj definicji zapytania jako zapytania tymczasowego lub wywołaj metodę Append , aby zapisać ją w bazie danych.
CDaoQueryDef::Execute Wykonuje zapytanie zdefiniowane przez obiekt querydef.
CDaoQueryDef::Get Połączenie Zwraca parametry połączenia skojarzone z definicją zapytania. Parametry połączenia identyfikuje źródło danych. (Tylko w przypadku zapytań przekazywanych SQL; w przeciwnym razie pusty ciąg).
CDaoQueryDef::GetDateCreated Zwraca datę utworzenia zapisanego zapytania.
CDaoQueryDef::GetDateLastUpdated Zwraca datę ostatniej aktualizacji zapisanego zapytania.
CDaoQueryDef::GetFieldCount Zwraca liczbę pól zdefiniowanych przez definicję zapytania.
CDaoQueryDef::GetFieldInfo Zwraca informacje o określonym polu zdefiniowanym w zapytaniu.
CDaoQueryDef::GetName Zwraca nazwę elementu querydef.
CDaoQueryDef::GetODBCTimeout Zwraca wartość limitu czasu używaną przez odBC (dla zapytania ODBC) podczas wykonywania definicji zapytania. Określa to, jak długo można zezwolić na ukończenie akcji zapytania.
CDaoQueryDef::GetParameterCount Zwraca liczbę parametrów zdefiniowanych dla zapytania.
CDaoQueryDef::GetParameterInfo Zwraca informacje o określonym parametrze do zapytania.
CDaoQueryDef::GetParamValue Zwraca wartość określonego parametru do zapytania.
CDaoQueryDef::GetRecordsAffected Zwraca liczbę rekordów, których dotyczy zapytanie akcji.
CDaoQueryDef::GetReturnsRecords Zwraca wartość niezerowa, jeśli zapytanie zdefiniowane przez definicję kwerendy zwraca rekordy.
CDaoQueryDef::GetSQL Zwraca ciąg SQL określający zapytanie zdefiniowane przez definicję zapytania.
CDaoQueryDef::GetType Zwraca typ zapytania: delete, update, append, make-table itd.
CDaoQueryDef::IsOpen Zwraca wartość inną niżzerowa, jeśli element querydef jest otwarty i można go wykonać.
CDaoQueryDef::Open Otwiera istniejącą definicję zapytań przechowywaną w kolekcji QueryDefs bazy danych.
CDaoQueryDef::Set Połączenie Ustawia parametry połączenia dla zapytania przekazywanego SQL w źródle danych ODBC.
CDaoQueryDef::SetName Ustawia nazwę zapisanego zapytania, zastępując nazwę używaną podczas tworzenia definicji zapytania.
CDaoQueryDef::SetODBCTimeout Ustawia wartość limitu czasu używaną przez odBC (dla zapytania ODBC) podczas wykonywania definicji zapytania.
CDaoQueryDef::SetParamValue Ustawia wartość określonego parametru na zapytanie.
CDaoQueryDef::SetReturnsRecords Określa, czy funkcja querydef zwraca rekordy. Ustawienie tego atrybutu na true jest prawidłowe tylko dla zapytań przekazywania SQL.
CDaoQueryDef::SetSQL Ustawia ciąg SQL określający zapytanie zdefiniowane przez definicję zapytania.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CDaoQueryDef::m_pDAOQueryDef Wskaźnik do interfejsu OLE dla bazowego obiektu querydef daO.
CDaoQueryDef::m_pDatabase Wskaźnik do CDaoDatabase obiektu, z którym jest skojarzona kwerendadef. Definicję zapytań można zapisać w bazie danych.

Uwagi

Zapytaniedef to obiekt dostępu do danych, który zawiera instrukcję SQL, która opisuje zapytanie i jego właściwości, takie jak "Data utworzona" i "Limit czasu ODBC". Można również tworzyć tymczasowe obiekty querydef bez ich zapisywania, ale jest to wygodne — i znacznie bardziej wydajne — aby zapisywać często ponownie używane zapytania w bazie danych. Obiekt CDaoDatabase obsługuje kolekcję o nazwie kolekcja QueryDefs zawierająca zapisane definicje zapytań.

Uwaga

Klasy baz danych DAO różnią się od klas baz danych MFC opartych na interfejsie Open Database Połączenie ivity (ODBC). Wszystkie nazwy klas bazy danych DAO mają prefiks "CDao". Nadal można uzyskiwać dostęp do źródeł danych ODBC za pomocą klas DAO. Ogólnie rzecz biorąc, klasy MFC oparte na DAO są bardziej zdolne niż klasy MFC oparte na ODBC; Klasy oparte na dao mogą uzyskiwać dostęp do danych, w tym za pośrednictwem sterowników ODBC, za pośrednictwem własnego aparatu bazy danych. Klasy oparte na dao obsługują również operacje języka Data Definition Language (DDL), takie jak dodawanie tabel za pośrednictwem klas bez konieczności bezpośredniego wywoływania obiektu DAO.

Użycie

Użyj obiektów querydef, aby pracować z istniejącym zapisanym zapytaniem lub utworzyć nowe zapisane zapytanie lub zapytanie tymczasowe:

  1. We wszystkich przypadkach najpierw skonstruuj CDaoQueryDef obiekt, podając wskaźnik do obiektu CDaoDatabase , do którego należy zapytanie.

  2. Następnie wykonaj następujące czynności w zależności od tego, co chcesz:

    • Aby użyć istniejącego zapisanego zapytania, wywołaj funkcję Open member obiektu querydef, podając nazwę zapisanego zapytania.

    • Aby utworzyć nowe zapisane zapytanie, wywołaj funkcję Create member obiektu querydef, podając nazwę zapytania. Następnie wywołaj metodę Append , aby zapisać zapytanie, dołączając je do kolekcji QueryDefs bazy danych. Create Umieszcza kwerendę w stanie otwartym, więc po wywołaniu Create polecenia nie wywołujesz metody Open.

    • Aby utworzyć tymczasową definicję zapytania, wywołaj metodę Create. Przekaż pusty ciąg dla nazwy zapytania. Nie należy wywoływać metody Append.

Po zakończeniu korzystania z obiektu querydef wywołaj funkcję zamknij składową, a następnie zniszcz obiekt querydef.

Napiwek

Najprostszym sposobem tworzenia zapisanych zapytań jest utworzenie ich i zapisanie ich w bazie danych przy użyciu programu Microsoft Access. Następnie możesz je otworzyć i użyć w kodzie MFC.

Cele

Do dowolnego z następujących celów można użyć obiektu querydef:

  • Aby utworzyć CDaoRecordset obiekt

  • Aby wywołać funkcję składową obiektu Execute w celu bezpośredniego wykonania zapytania akcji lub zapytania przekazywanego SQL

Można użyć obiektu querydef dla dowolnego typu zapytania, w tym select, action, crosstab, delete, update, append, make-table, data definition, SQL pass-through, union i bulk query. Typ zapytania jest określany przez zawartość dostarczanej instrukcji SQL. Aby uzyskać informacje o typach zapytań, zobacz Execute funkcje składowe GetType i . Zestawy rekordów są często używane w przypadku zapytań zwracanych przez wiersze, zwykle przy użyciu polecenia SELECT ... OD słów kluczowych. Execute jest najczęściej używany w przypadku operacji zbiorczych. Aby uzyskać więcej informacji, zobacz Execute and CDaoRecordset (Wykonywanie i CDaoRecordset).

Definicje zapytań i zestawy rekordów

Aby użyć obiektu querydef do utworzenia CDaoRecordset obiektu, zazwyczaj można utworzyć lub otworzyć definicję zapytania zgodnie z powyższym opisem. Następnie skonstruuj obiekt zestawu rekordów, przekazując wskaźnik do obiektu querydef podczas wywoływania obiektu CDaoRecordset::Open. Przekazana kwerenda musi być w stanie otwartym. Aby uzyskać więcej informacji, zobacz klasa CDaoRecordset.

Nie można użyć definicji kwerendy do utworzenia zestawu rekordów (najczęściej używanego dla definicji kwerendy), chyba że jest w stanie otwartym. Umieść definicję zapytania w stanie otwartym przez wywołanie metody Open lub Create.

Zewnętrzne bazy danych

Obiekty querydef są preferowanym sposobem używania natywnego dialektu SQL zewnętrznego aparatu bazy danych. Można na przykład utworzyć zapytanie Języka Transact SQL (używane w programie Microsoft SQL Server) i zapisać je w obiekcie querydef. Jeśli musisz użyć zapytania SQL nie opartego na aucie bazy danych Microsoft Jet, musisz podać parametry połączenia wskazującą zewnętrzne źródło danych. Zapytania z prawidłowymi parametry połączenia pomijają aparat bazy danych i przekazują zapytanie bezpośrednio do zewnętrznego serwera bazy danych na potrzeby przetwarzania.

Napiwek

Preferowanym sposobem pracy z tabelami ODBC jest dołączenie ich do usługi Microsoft Jet (. Baza danych MDB.

Aby uzyskać powiązane informacje, zobacz tematy "QueryDef Object", "QueryDefs Collection" i "CdbDatabase Object" w zestawie DAO SDK.

Hierarchia dziedziczenia

Cobject

CDaoQueryDef

Wymagania

Nagłówek: afxdao.h

CDaoQueryDef::Append

Wywołaj tę funkcję składową po wywołaniu polecenia Utwórz , aby utworzyć nowy obiekt querydef.

virtual void Append();

Uwagi

Append Zapisuje definicję zapytań w bazie danych, dołączając obiekt do kolekcji QueryDefs bazy danych. Definicję zapytania można użyć jako obiektu tymczasowego bez dołączania go, ale jeśli chcesz, aby go utrwał, musisz wywołać metodę Append.

Jeśli próbujesz dołączyć tymczasowy obiekt querydef, MFC zgłasza wyjątek typu CDaoException.

CDaoQueryDef::CanUpdate

Wywołaj tę funkcję składową, aby określić, czy można zmodyfikować definicję zapytania — na przykład zmienić jego nazwę lub ciąg SQL.

BOOL CanUpdate();

Wartość zwracana

Niezerowe, jeśli masz zezwolenie na modyfikowanie definicji kwerendy; w przeciwnym razie 0.

Uwagi

Definicję zapytania można zmodyfikować, jeśli:

  • Nie jest ona oparta na bazie danych, która jest otwarta tylko do odczytu.

  • Masz uprawnienia do aktualizacji bazy danych.

    Zależy to od tego, czy zaimplementowano funkcje zabezpieczeń. MFC nie zapewnia obsługi zabezpieczeń; Musisz zaimplementować go samodzielnie, wywołując dao bezpośrednio lub przy użyciu programu Microsoft Access. Zobacz temat "Permissions Property" (Właściwość uprawnień) w pomocy dotyczącej języka DAO.

CDaoQueryDef::CDaoQueryDef

CDaoQueryDef Tworzy obiekt.

CDaoQueryDef(CDaoDatabase* pDatabase);

Parametry

pDatabase
Wskaźnik do otwartego obiektu CDaoDatabase .

Uwagi

Obiekt może reprezentować istniejącą definicję zapytań przechowywaną w kolekcji QueryDefs bazy danych, nowe zapytanie, które ma być przechowywane w kolekcji, lub zapytanie tymczasowe, które nie ma być przechowywane. Następny krok zależy od typu definicji zapytania:

  • Jeśli obiekt reprezentuje istniejącą definicję kwerendy, wywołaj funkcję Open member obiektu, aby go zainicjować.

  • Jeśli obiekt reprezentuje nową definicję kwerendy do zapisania, wywołaj funkcję składową Create obiektu. Spowoduje to dodanie obiektu do kolekcji QueryDefs bazy danych. Następnie wywołaj CDaoQueryDef funkcje członkowskie, aby ustawić atrybuty obiektu. Na koniec wywołaj metodę Append.

  • Jeśli obiekt reprezentuje tymczasową definicję zapytania (nie można jej zapisać w bazie danych), wywołaj metodę Create, przekazując pusty ciąg dla nazwy zapytania. Po wywołaniu Createmetody zainicjuj definicję zapytania, ustawiając bezpośrednio jego atrybuty. Nie należy wywoływać metody Append.

Aby ustawić atrybuty elementu querydef, można użyć funkcji składowych SetName, SetSQL, Set Połączenie, SetODBCTimeout i SetReturnsRecords.

Po zakończeniu pracy z obiektem querydef wywołaj jego funkcję zamknij składową. Jeśli masz wskaźnik do definicji zapytania, użyj delete operatora , aby zniszczyć obiekt C++.

CDaoQueryDef::Close

Wywołaj tę funkcję składową po zakończeniu korzystania z obiektu querydef.

virtual void Close();

Uwagi

Zamknięcie rozszerzenia querydef zwalnia źródłowy obiekt DAO, ale nie niszczy zapisanego obiektu daO querydef lub obiektu C++ CDaoQueryDef . Nie jest to takie samo jak CDaoDatabase::D eleteQueryDef, który usuwa definicję zapytań z kolekcji QueryDefs bazy danych w dao (jeśli nie jest to tymczasowa definicja zapytań).

CDaoQueryDef::Create

Wywołaj tę funkcję składową, aby utworzyć nowe zapisane zapytanie lub nowe zapytanie tymczasowe.

virtual void Create(
    LPCTSTR lpszName = NULL,
    LPCTSTR lpszSQL = NULL);

Parametry

Lpszname
Unikatowa nazwa zapytania zapisanego w bazie danych. Aby uzyskać szczegółowe informacje na temat ciągu, zobacz temat "CreateQueryDef Method" (Metoda CreateQueryDef) w pomocy dao. Jeśli zaakceptujesz wartość domyślną, zostanie utworzony pusty ciąg zapytania. Takie zapytanie nie jest zapisywane w kolekcji QueryDefs.

Lpszsql
Ciąg SQL, który definiuje zapytanie. Jeśli zaakceptujesz wartość domyślną null, musisz później wywołać metodę SetSQL , aby ustawić ciąg. Do tego czasu zapytanie jest niezdefiniowane. Możesz jednak użyć niezdefiniowanego zapytania, aby otworzyć zestaw rekordów; zobacz Uwagi, aby uzyskać szczegółowe informacje. Przed dołączeniem definicji zapytania do kolekcji QueryDefs należy zdefiniować instrukcję SQL.

Uwagi

Jeśli przekażesz nazwę w lpszName, możesz wywołać metodę Append , aby zapisać definicję zapytań w kolekcji QueryDefs bazy danych. W przeciwnym razie obiekt jest tymczasowym definicją zapytania i nie jest zapisywany. W obu przypadkach element querydef jest w stanie otwartym i można go użyć do utworzenia obiektu CDaoRecordset lub wywołania funkcji Execute elementu członkowskiego querydef.

Jeśli nie podasz instrukcji SQL w narzędziu lpszSQL, nie można uruchomić zapytania za Execute pomocą polecenia , ale można go użyć do utworzenia zestawu rekordów. W takim przypadku MFC używa domyślnej instrukcji SQL zestawu rekordów.

CDaoQueryDef::Execute

Wywołaj tę funkcję składową, aby uruchomić zapytanie zdefiniowane przez obiekt querydef.

virtual void Execute(int nOptions = dbFailOnError);

Parametry

nOpcje
Liczba całkowita określająca cechy zapytania. Aby uzyskać powiązane informacje, zobacz temat "Execute Method" (Wykonywanie metody) w pomocy dao. Możesz użyć operatora bitowego OR (|), aby połączyć następujące stałe dla tego argumentu:

  • dbDenyWrite Odmów uprawnień do zapisu innym użytkownikom.

  • dbInconsistent Niespójne aktualizacje.

  • dbConsistent Spójne aktualizacje.

  • dbSQLPassThrough Przekazywanie sql. Powoduje przekazanie instrukcji SQL do bazy danych ODBC na potrzeby przetwarzania.

  • dbFailOnError Wartość domyślna. Wycofywanie aktualizacji w przypadku wystąpienia błędu i zgłaszanie błędu użytkownikowi.

  • dbSeeChanges Wygeneruj błąd czasu wykonywania, jeśli inny użytkownik zmienia edytowane dane.

Uwaga

Aby uzyskać wyjaśnienie terminów "niespójne" i "spójne", zobacz temat "Execute Method" (Wykonywanie metody) w pomocy dao.

Uwagi

Obiekty querydef używane do wykonywania w ten sposób mogą reprezentować tylko jeden z następujących typów zapytań:

  • Zapytania dotyczące akcji

  • Zapytania przekazywane SQL

Execute nie działa w przypadku zapytań, które zwracają rekordy, takie jak wybieranie zapytań. Execute jest często używany w przypadku zapytań operacji zbiorczych, takich jak UPDATE, INSERT lub SELECT INTO, lub w przypadku operacji języka definicji danych (DDL).

Napiwek

Preferowanym sposobem pracy ze źródłami danych ODBC jest dołączanie tabel do rozwiązania Microsoft Jet (. Baza danych MDB. Aby uzyskać więcej informacji, zobacz temat "Uzyskiwanie dostępu do zewnętrznych baz danych za pomocą dao" w pomocy dao.

Wywołaj funkcję składową GetRecordsAffected obiektu querydef, aby określić liczbę rekordów, na które ma wpływ ostatnie Execute wywołanie. Na przykład GetRecordsAffected zwraca informacje o liczbie rekordów usuniętych, zaktualizowanych lub wstawionych podczas wykonywania zapytania akcji. Zwrócona liczba nie będzie odzwierciedlać zmian w powiązanych tabelach, gdy obowiązują kaskadowe aktualizacje lub usunięcia.

Jeśli dołączysz obie dbInconsistent wartości i dbConsistent lub jeśli nie dołączysz żadnego z nich, wynik jest wartością domyślną . dbInconsistent

Execute nie zwraca zestawu rekordów. Użycie Execute w zapytaniu, które wybiera rekordy powoduje, że MFC zgłasza wyjątek typu CDaoException.

CDaoQueryDef::Get Połączenie

Wywołaj tę funkcję składową, aby uzyskać parametry połączenia skojarzone ze źródłem danych querydef.

CString GetConnect();

Wartość zwracana

CString zawierający parametry połączenia dla definicji zapytania.

Uwagi

Ta funkcja jest używana tylko w przypadku źródeł danych ODBC i niektórych sterowników ISAM. Nie jest używany z rozwiązaniem Microsoft Jet (. Bazy danych MDB; w tym przypadku GetConnect zwraca pusty ciąg. Aby uzyskać więcej informacji, zobacz Set Połączenie (Ustaw Połączenie.

Napiwek

Preferowanym sposobem pracy z tabelami ODBC jest dołączenie ich do elementu . Baza danych MDB. Aby uzyskać więcej informacji, zobacz temat "Uzyskiwanie dostępu do zewnętrznych baz danych za pomocą dao" w pomocy dao.

Aby uzyskać informacje na temat parametry połączenia, zobacz temat "Połączenie Property" (Właściwość Połączenie) w pomocy dotyczącej języka DAO.

CDaoQueryDef::GetDateCreated

Wywołaj tę funkcję składową, aby uzyskać datę utworzenia obiektu querydef.

COleDateTime GetDateCreated();

Wartość zwracana

Obiekt COleDateTime zawierający datę i godzinę utworzenia definicji zapytania.

Uwagi

Aby uzyskać powiązane informacje, zobacz temat "DateCreated, LastUpdated Properties" w Pomocy dao.

CDaoQueryDef::GetDateLastUpdated

Wywołaj tę funkcję składową, aby uzyskać datę ostatniej aktualizacji obiektu querydef — po zmianie dowolnej właściwości, takiej jak jego nazwa, ciąg SQL lub jego parametry połączenia.

COleDateTime GetDateLastUpdated();

Wartość zwracana

Obiekt COleDateTime zawierający datę i godzinę ostatniej aktualizacji definicji zapytania.

Uwagi

Aby uzyskać powiązane informacje, zobacz temat "DateCreated, LastUpdated Properties" w Pomocy dao.

CDaoQueryDef::GetFieldCount

Wywołaj tę funkcję składową, aby pobrać liczbę pól w zapytaniu.

short GetFieldCount();

Wartość zwracana

Liczba pól zdefiniowanych w zapytaniu.

Uwagi

GetFieldCount jest przydatna do pętli we wszystkich polach w definicji zapytania. W tym celu należy używać GetFieldCount w połączeniu z GetFieldInfo.

CDaoQueryDef::GetFieldInfo

Wywołaj tę funkcję składową, aby uzyskać różne rodzaje informacji o polu zdefiniowanym w definicji zapytania.

void GetFieldInfo(
    int nIndex,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetFieldInfo(
    LPCTSTR lpszName,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parametry

Nindex
Indeks na podstawie zera żądanego pola w kolekcji Pola definicji kwerendy dla wyszukiwania według indeksu.

Fieldinfo
Odwołanie do obiektu zwracającego CDaoFieldInfo żądane informacje.

dwInfoOptions
Opcje określające, które informacje o polu mają być pobierane. Dostępne opcje są wymienione tutaj wraz z tym, co powodują zwrócenie funkcji:

  • AFX_DAO_PRIMARY_INFO (domyślna) nazwa, typ, rozmiar, atrybuty

  • AFX_DAO_SECONDARY_INFO podstawowe informacje oraz: Położenie porządkowe, Wymagane, Zezwalaj na zero długości, Pole źródłowe, Nazwa zagraniczna, Tabela źródłowa, Sortowanie kolejności

  • AFX_DAO_ALL_INFO podstawowe i pomocnicze informacje oraz: Wartość domyślna, Tekst walidacji, Reguła walidacji

Lpszname
Ciąg zawierający nazwę żądanego pola dla wyszukiwania według nazwy. Możesz użyć CString.

Uwagi

Aby uzyskać opis informacji zwróconych w poluinfo, zobacz strukturę CDaoFieldInfo . Ta struktura zawiera elementy członkowskie, które odpowiadają opisowym informacjom w sekcji dwInfoOptions powyżej. Jeśli zażądasz jednego poziomu informacji, uzyskasz również wszelkie wcześniejsze poziomy informacji.

CDaoQueryDef::GetName

Wywołaj tę funkcję składową, aby pobrać nazwę zapytania reprezentowanego przez definicję kwerendy.

CString GetName();

Wartość zwracana

Nazwa zapytania.

Uwagi

Nazwy definicji zapytań to unikatowe nazwy zdefiniowane przez użytkownika. Aby uzyskać więcej informacji na temat nazw zapytań, zobacz temat "Name Property" (Nazwa właściwości) w pomocy dao.

CDaoQueryDef::GetODBCTimeout

Wywołaj tę funkcję składową, aby pobrać bieżący limit czasu przed przekroczeniem limitu czasu zapytania do źródła danych ODBC.

short GetODBCTimeout();

Wartość zwracana

Liczba sekund przed upływem limitu czasu zapytania.

Uwagi

Aby uzyskać informacje o tym limicie czasu, zobacz temat "ODBCTimeout Property" (Właściwość ODBCTimeout) w Pomocy dotyczącej języka DAO.

Napiwek

Preferowanym sposobem pracy z tabelami ODBC jest dołączenie ich do usługi Microsoft Jet (. Baza danych MDB. Aby uzyskać więcej informacji, zobacz temat "Uzyskiwanie dostępu do zewnętrznych baz danych za pomocą dao" w pomocy dao.

CDaoQueryDef::GetParameterCount

Wywołaj tę funkcję składową, aby pobrać liczbę parametrów w zapisanym zapytaniu.

short GetParameterCount();

Wartość zwracana

Liczba parametrów zdefiniowanych w zapytaniu.

Uwagi

GetParameterCount jest przydatna do pętli we wszystkich parametrach w definicji zapytania. W tym celu należy użyć GetParameterCount w połączeniu z GetParameterInfo.

Aby uzyskać powiązane informacje, zobacz tematy "Obiekt parametrów", "Kolekcja parametrów" i "Deklaracja PARAMETRów (SQL)" w Pomocy dao.

CDaoQueryDef::GetParameterInfo

Wywołaj tę funkcję składową, aby uzyskać informacje o parametrze zdefiniowanym w definicji zapytania.

void GetParameterInfo(
    int nIndex,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetParameterInfo(
    LPCTSTR lpszName,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parametry

Nindex
Indeks zerowy żądanego parametru w kolekcji Parameters definicji zapytania dla wyszukiwania według indeksu.

paraminfo
Odwołanie do obiektu CDaoParameterInfo zwracającego żądane informacje.

dwInfoOptions
Opcje określające, które informacje o parametrze mają być pobierane. Dostępna opcja jest wymieniona tutaj wraz z tym, co powoduje zwrócenie funkcji:

  • AFX_DAO_PRIMARY_INFO (domyślna) nazwa, typ

Lpszname
Ciąg zawierający nazwę żądanego parametru dla wyszukiwania według nazwy. Możesz użyć CString.

Uwagi

Aby uzyskać opis informacji zwracanych w parametrach paraminfo, zobacz strukturę CDaoParameterInfo . Ta struktura zawiera elementy członkowskie, które odpowiadają opisowym informacjom w sekcji dwInfoOptions powyżej.

Aby uzyskać powiązane informacje, zobacz temat "DEKLARACJA PARAMETRÓW (SQL)" w Pomocy dao.

CDaoQueryDef::GetParamValue

Wywołaj tę funkcję składową, aby pobrać bieżącą wartość określonego parametru przechowywanego w kolekcji Parameters elementu querydef.

virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);

Parametry

Lpszname
Nazwa parametru, którego wartość ma być wyszukiwana według nazwy.

Nindex
Indeks zerowy parametru w kolekcji Parameters definicji zapytania dla wyszukiwania według indeksu. Tę wartość można uzyskać za pomocą wywołań getParameterCounti GetParameterInfo.

Wartość zwracana

Obiekt klasy COleVariant zawierający wartość parametru.

Uwagi

Dostęp do parametru można uzyskać według nazwy lub pozycji porządkowej w kolekcji.

Aby uzyskać powiązane informacje, zobacz temat "DEKLARACJA PARAMETRÓW (SQL)" w Pomocy dao.

CDaoQueryDef::GetRecordsAffected

Wywołaj tę funkcję składową, aby określić liczbę rekordów , których dotyczyło ostatnie wywołanie funkcji Execute.

long GetRecordsAffected();

Wartość zwracana

Liczba rekordów, których dotyczy problem.

Uwagi

Zwrócona liczba nie będzie odzwierciedlać zmian w powiązanych tabelach, gdy obowiązują kaskadowe aktualizacje lub usunięcia.

Aby uzyskać powiązane informacje, zobacz temat "RecordsAffected Property" (Rekordy, których dotyczy problem) w pomocy dao.

CDaoQueryDef::GetReturnsRecords

Wywołaj tę funkcję składową, aby określić, czy element querydef jest oparty na zapytaniu, które zwraca rekordy.

BOOL GetReturnsRecords();

Wartość zwracana

Nonzero, jeśli kwerendadef jest oparta na zapytaniu, które zwraca rekordy; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa jest używana tylko w przypadku zapytań przekazywanych SQL. Aby uzyskać więcej informacji na temat zapytań SQL, zobacz funkcję Execute member (Wykonywanie elementu członkowskiego). Aby uzyskać więcej informacji na temat pracy z zapytaniami przekazywania SQL, zobacz funkcję składową SetReturnsRecords .

Aby uzyskać powiązane informacje, zobacz temat "ReturnsRecords Property" (Właściwość ReturnsRecords) w pomocy dao.

CDaoQueryDef::GetSQL

Wywołaj tę funkcję składową, aby pobrać instrukcję SQL definiującą zapytanie, na którym opiera się definicja zapytania.

CString GetSQL();

Wartość zwracana

Instrukcja SQL, która definiuje zapytanie, na którym jest oparta definicja zapytania.

Uwagi

Następnie prawdopodobnie przeanalizujesz ciąg słów kluczowych, nazw tabel itd.

Aby uzyskać powiązane informacje, zobacz tematy "Właściwość SQL", "Porównanie bazy danych Microsoft Jet Database Engine SQL i ANSI SQL" oraz "Wykonywanie zapytań dotyczących bazy danych za pomocą języka SQL w kodzie" w pomocy dao.

CDaoQueryDef::GetType

Wywołaj tę funkcję składową, aby określić typ zapytania definicji zapytania.

short GetType();

Wartość zwracana

Typ zapytania zdefiniowanego przez definicję kwerendy. Aby uzyskać informacje o wartościach, zobacz Uwagi.

Uwagi

Typ zapytania jest ustawiany przez to, co określisz w ciągu SQL elementu querydef podczas tworzenia definicji zapytania lub wywoływania istniejącej funkcji składowej SetSQL dla definicji zapytań. Typ zapytania zwrócony przez tę funkcję może być jedną z następujących wartości:

  • dbQSelect Wybierz

  • dbQAction Działania

  • dbQCrosstab Krzyżowej

  • dbQDelete Usunąć

  • dbQUpdate Aktualizacji

  • dbQAppend Dołączyć

  • dbQMakeTable Make-table

  • dbQDDL Definicja danych

  • dbQSQLPassThrough Przekazujące

  • dbQSetOperation Unii

  • dbQSPTBulkdbQSQLPassThrough Służy do określania zapytania, które nie zwraca rekordów.

Uwaga

Aby utworzyć zapytanie przekazywane SQL, nie ustawiaj stałej dbSQLPassThrough . Jest on ustawiany automatycznie przez aparat bazy danych Microsoft Jet podczas tworzenia obiektu querydef i ustawiania parametry połączenia.

Aby uzyskać informacje o ciągach SQL, zobacz GetSQL. Aby uzyskać informacje o typach zapytań, zobacz Wykonywanie.

CDaoQueryDef::IsOpen

Wywołaj tę funkcję składową, aby określić, czy CDaoQueryDef obiekt jest obecnie otwarty.

BOOL IsOpen() const;

Wartość zwracana

Niezero, jeśli CDaoQueryDef obiekt jest obecnie otwarty; w przeciwnym razie 0.

Uwagi

Przed użyciem elementu Execute lub utworzenia obiektu CDaoRecordset musi być w stanie otwartym. Aby umieścić definicję zapytania w otwartym wywołaniu stanu Utwórz (dla nowej definicji zapytania) lub Otwórz (dla istniejącej definicji kwerendy).

CDaoQueryDef::m_pDatabase

Zawiera wskaźnik do obiektu CDaoDatabase skojarzonego z obiektem querydef.

Uwagi

Użyj tego wskaźnika, jeśli chcesz uzyskać bezpośredni dostęp do bazy danych — na przykład w celu uzyskania wskaźników do innych obiektów definicji zapytań lub zestawów rekordów w kolekcjach bazy danych.

CDaoQueryDef::m_pDAOQueryDef

Zawiera wskaźnik do interfejsu OLE dla bazowego obiektu querydef języka DAO.

Uwagi

Ten wskaźnik zapewnia kompletność i spójność z innymi klasami. Jednak ponieważ MFC raczej w pełni hermetyzuje definicje zapytań DAO, jest mało prawdopodobne, aby go potrzebować. Jeśli go używasz, zrób to ostrożnie — w szczególności nie zmieniaj wartości wskaźnika, chyba że wiesz, co robisz.

CDaoQueryDef::Open

Wywołaj tę funkcję składową, aby otworzyć definicję zapytań wcześniej zapisaną w kolekcji QueryDefs bazy danych.

virtual void Open(LPCTSTR lpszName = NULL);

Parametry

Lpszname
Ciąg zawierający nazwę zapisanej definicji kwerendy do otwarcia. Możesz użyć CString.

Uwagi

Po otwarciu definicji zapytania można wywołać funkcję Execute elementu członkowskiego lub użyć definicji zapytania, aby utworzyć obiekt CDaoRecordset .

CDaoQueryDef::Set Połączenie

Wywołaj tę funkcję składową, aby ustawić parametry połączenia obiektu querydef.

void SetConnect(LPCTSTR lpszConnect);

Parametry

lpsz Połączenie
Ciąg zawierający parametry połączenia skojarzonego obiektu CDaoDatabase.

Uwagi

Parametry połączenia służy do przekazywania dodatkowych informacji do ODBC i niektórych sterowników ISAM zgodnie z potrzebami. Nie jest on używany dla usługi Microsoft Jet (. Bazy danych MDB.

Napiwek

Preferowanym sposobem pracy z tabelami ODBC jest dołączenie ich do elementu . Baza danych MDB.

Przed wykonaniem definicji zapytania reprezentującego zapytanie przekazywane SQL do źródła danych ODBC ustaw parametry połączenia za pomocą SetConnect polecenia i wywołaj polecenie SetReturnsRecords, aby określić, czy zapytanie zwraca rekordy.

Aby uzyskać więcej informacji na temat struktury parametry połączenia i przykładów składników parametry połączenia, zobacz temat "Połączenie Właściwość" w pomocy dao.

CDaoQueryDef::SetName

Wywołaj tę funkcję składową, jeśli chcesz zmienić nazwę definicji kwerendy, która nie jest tymczasowa.

void SetName(LPCTSTR lpszName);

Parametry

Lpszname
Ciąg, który zawiera nową nazwę kwerendy nietemporarnej w skojarzonym obiekcie CDaoDatabase .

Uwagi

Nazwy definicji zapytań są unikatowe, zdefiniowane przez użytkownika. Wywołanie obiektu querydef można wywołać SetName przed dołączeniem obiektu QueryDefs do kolekcji QueryDefs.

CDaoQueryDef::SetODBCTimeout

Wywołaj tę funkcję składową, aby ustawić limit czasu przed przekroczeniem limitu czasu zapytania do źródła danych ODBC.

void SetODBCTimeout(short nODBCTimeout);

Parametry

nODBCTimeout
Liczba sekund przed upływem limitu czasu zapytania.

Uwagi

Ta funkcja składowa umożliwia zastąpienie domyślnej liczby sekund przed kolejnymi operacjami w połączonym źródle danych "przekroczenie limitu czasu". Operacja może upłynął limit czasu z powodu problemów z dostępem do sieci, nadmiernego czasu przetwarzania zapytań itd. Wywołaj SetODBCTimeout przed wykonaniem zapytania za pomocą tej definicji zapytania, jeśli chcesz zmienić wartość limitu czasu zapytania. (Ponieważ funkcja ODBC ponownie używa połączeń, wartość limitu czasu jest taka sama dla wszystkich klientów w tym samym połączeniu).

Wartość domyślna limitów czasu zapytania to 60 sekund.

CDaoQueryDef::SetParamValue

Wywołaj tę funkcję składową, aby ustawić wartość parametru w definicji zapytania w czasie wykonywania.

virtual void SetParamValue(
    LPCTSTR lpszName,
    const COleVariant& varValue);

virtual void SetParamValue(
    int nIndex,
    const COleVariant& varValue);

Parametry

Lpszname
Nazwa parametru, którego wartość ma zostać ustawiona.

varValue
Wartość do ustawienia; zobacz uwagi.

Nindex
Pozycja porządkowa parametru w kolekcji Parameters elementu querydef. Tę wartość można uzyskać za pomocą wywołań getParameterCounti GetParameterInfo.

Uwagi

Parametr musi już zostać ustanowiony jako część ciągu SQL elementu querydef. Dostęp do parametru można uzyskać według nazwy lub pozycji porządkowej w kolekcji.

Określ wartość, która ma być ustawiona COleVariant jako obiekt. Aby uzyskać informacje na temat ustawiania żądanej wartości i typu w COleVariant obiekcie, zobacz klasa COleVariant.

CDaoQueryDef::SetReturnsRecords

Wywołaj tę funkcję składową w ramach procesu konfigurowania zapytania przekazywanego SQL do zewnętrznej bazy danych.

void SetReturnsRecords(BOOL bReturnsRecords);

Parametry

bReturnsRecords
Przekaż wartość TRUE, jeśli zapytanie w zewnętrznej bazie danych zwraca rekordy; w przeciwnym razie, FAŁSZ.

Uwagi

W takim przypadku należy utworzyć definicję zapytania i ustawić jej właściwości przy użyciu innych CDaoQueryDef funkcji składowych. Aby zapoznać się z opisem zewnętrznych baz danych, zobacz Set Połączenie (Ustaw Połączenie.

CDaoQueryDef::SetSQL

Wywołaj tę funkcję składową, aby ustawić instrukcję SQL wykonywaną przez definicję zapytań.

void SetSQL(LPCTSTR lpszSQL);

Parametry

Lpszsql
Ciąg zawierający kompletną instrukcję SQL odpowiednią do wykonania. Składnia tego ciągu zależy od systemu DBMS, którego dotyczy zapytanie. Aby zapoznać się z omówieniem składni używanej w a aparatu bazy danych Microsoft Jet, zobacz temat "Tworzenie instrukcji SQL w kodzie" w pomocy dao.

Uwagi

Typowym zastosowaniem SetSQL funkcji jest skonfigurowanie obiektu querydef do użycia w zapytaniu przekazywanym SQL. (Aby uzyskać składnię zapytań przekazywania SQL w docelowym systemie DBMS, zobacz dokumentację dla usługi DBMS).

Zobacz też

Klasa CObject
Wykres hierarchii
Klasa CDaoRecordset
Klasa CDaoDatabase
Klasa CDaoTableDef
Klasa CDaoException