CDaoQueryDef
Klasa
Reprezentuje definicję zapytania lub "querydef", zwykle jedną zapisaną w bazie danych.
Uwaga
Obiekt dostępu do danych (DAO) jest obsługiwany za pośrednictwem pakietu Office 2013. DaO 3.6 jest wersją ostateczną i jest przestarzała.
Składnia
class CDaoQueryDef : public CObject
Elementy członkowskie
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::GetConnect | 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), gdy jest wykonywana kwerenda, która określa, 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::SetConnect | 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 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 klasy MFC (Microsoft Foundation Class) w oparciu o open database connectivity (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:
We wszystkich przypadkach najpierw skonstruuj
CDaoQueryDef
obiekt, podając wskaźnik do obiektu CDaoDatabase , do którego należy zapytanie.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 zapytaniedef w stanie otwartym, więc po wywołaniuCreate
polecenia nie wywołujesz metodyOpen
.Aby utworzyć tymczasową definicję zapytania, wywołaj metodę
Create
. Przekaż pusty ciąg dla nazwy zapytania. Nie wywołujej metodyAppend
.
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
obiektAby 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. Zawartość dostarczanej instrukcji SQL określa typ zapytania. Aby uzyskać informacje o typach zapytań, zobacz funkcje składowe Execute
i GetType
. Zestawy rekordów są często używane w przypadku zapytań zwracanych przez wiersze, zwykle zapytania 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 tematy Execute
oraz CDaoRecordset
.
Definicje zapytań i zestawy rekordów
Aby użyć obiektu querydef do utworzenia CDaoRecordset
obiektu, zazwyczaj tworzy się lub otwiera definicję zapytania zgodnie z wcześniejszym opisem. Następnie skonstruuj obiekt zestawu rekordów, przekazując wskaźnik do obiektu querydef podczas wywoływania metody 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
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
Nonzero, jeśli można zmodyfikować definicję kwerendy; w przeciwnym razie 0.
Uwagi
Definicję zapytania można zmodyfikować, jeśli:
Nie jest 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łaniuCreate
metody zainicjuj definicję zapytania, ustawiając bezpośrednio jego atrybuty. Nie wywołujej metodyAppend
.
Aby ustawić atrybuty elementu querydef, możesz użyć funkcji składowych SetName, SetSQL, SetConnect, 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ę zapytania z kolekcji QueryDefs bazy danych w daO (jeśli nie jest to tymczasowa definicja zapytania).
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 pliku lpszSQL, nie możesz uruchomić zapytania Execute
za pomocą polecenia , ale możesz użyć jej 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 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::GetConnect
Wywołaj tę funkcję składową, aby uzyskać parametry połączenia skojarzone ze źródłem danych querydef.
CString GetConnect();
Wartość zwracana
Element CString
zawierający parametry połączenia dla definicji kwerendy.
Uwagi
Ta funkcja jest używana tylko w przypadku źródeł danych ODBC i niektórych sterowników ISAM. Nie jest używana z bazami danych Microsoft Jet (.MDB
), w tym przypadku GetConnect
zwraca pusty ciąg. Aby uzyskać więcej informacji, zobacz SetConnect
.
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 o parametry połączenia, zobacz temat "Połącz właściwość" w Pomocy 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 nazwa, ciąg SQL lub jego parametry połączenia.
COleDateTime GetDateLastUpdated();
Wartość zwracana
COleDateTime
Obiekt 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 użyj polecenia z GetFieldInfo
.GetFieldCount
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 użyj polecenia z GetParameterInfo
.GetParameterCount
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
(Ustawienie domyślne) 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 zwróconych w pliku paraminfo
, zobacz CDaoParameterInfo
strukturę. Ta struktura zawiera elementy członkowskie, które odpowiadają opisowym informacjom podanym 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ń getParameterCount i 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 , na które ma wpływ ostatnie wywołanie funkcji Execute.
long GetRecordsAffected();
Wartość zwracana
Liczba rekordów, których dotyczy problem.
Uwagi
Zwrócona liczba nie odzwierciedla zmian w powiązanych tabelach, gdy obowiązują kaskadowe aktualizacje lub usunięcia.
Aby uzyskać powiązane informacje, zobacz temat "RecordsAffected Property" (Właściwość, której 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
Możesz przeanalizować 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
WybraćdbQAction
AkcjadbQCrosstab
KrzyżowedbQDelete
UsunąćdbQUpdate
AktualizacjadbQAppend
DołączyćdbQMakeTable
Make-tabledbQDDL
Definicja danychdbQSQLPassThrough
PrzekazywaniedbQSetOperation
UniadbQSPTBulk
dbQSQLPassThrough
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 wywołaniem Execute
obiektu lub utworzeniem CDaoRecordset
obiektu element querydef musi być w stanie otwartym. Aby umieścić definicję zapytania w stanie otwartym, wywołaj metodę Create
(dla nowej definicji kwerendy) lub Open
(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. Aby na przykład uzyskać wskaźniki do innych obiektów querydef lub recordset 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ć jego Execute
funkcję składową lub użyć definicji zapytania, aby utworzyć CDaoRecordset
obiekt.
CDaoQueryDef::SetConnect
Wywołaj tę funkcję składową, aby ustawić parametry połączenia obiektu querydef.
void SetConnect(LPCTSTR lpszConnect);
Parametry
lpszConnect
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 używana w przypadku baz danych microsoft Jet (.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łącz 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 wywołanie 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ń getParameterCount i 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 uzyskać opis zewnętrznych baz danych, zobacz SetConnect.
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ż
CObject
Klasa
Wykres hierarchii
CDaoRecordset
Klasa
CDaoDatabase
Klasa
CDaoTableDef
Klasa
CDaoException
Klasa