CDaoQueryDef
Sınıf
Genellikle veritabanına kaydedilmiş bir sorgu tanımını veya "sorgu tanımını" temsil eder.
Not
Veri Erişim Nesnesi (DAO), Office 2013 aracılığıyla desteklenir. DAO 3.6 son sürümdür ve kullanımdan kaldırılmış durumdadır.
Sözdizimi
class CDaoQueryDef : public CObject
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CDaoQueryDef::CDaoQueryDef | Bir CDaoQueryDef nesne oluşturur. Gereksinimlerinize bağlı olarak sonraki arama Open veya Create . |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CDaoQueryDef::Append | Querydef değerini veritabanının QueryDefs koleksiyonuna kaydedilmiş sorgu olarak ekler. |
CDaoQueryDef::CanUpdate | Sorgu veritabanını güncelleştirebiliyorsa sıfır olmayan değerini döndürür. |
CDaoQueryDef::Close | Querydef nesnesini kapatır. bitirdiğinizde C++ nesnesini yok edin. |
CDaoQueryDef::Create | Temel alınan DAO sorgu tanımı nesnesini oluşturur. Querydef öğesini geçici bir sorgu olarak kullanın veya veritabanına kaydetmek için çağrısı Append yapın. |
CDaoQueryDef::Execute | querydef nesnesi tarafından tanımlanan sorguyu yürütür. |
CDaoQueryDef::GetConnect | Sorgu tanımıyla ilişkili bağlantı dizesi döndürür. bağlantı dizesi veri kaynağını tanımlar. (Yalnızca SQL doğrudan sorguları için; aksi takdirde boş bir dize.) |
CDaoQueryDef::GetDateCreated | Kaydedilen sorgunun oluşturulduğu tarihi döndürür. |
CDaoQueryDef::GetDateLastUpdated | Kaydedilen sorgunun son güncelleştirildiği tarihi döndürür. |
CDaoQueryDef::GetFieldCount | Sorgu tanımı tarafından tanımlanan alan sayısını döndürür. |
CDaoQueryDef::GetFieldInfo | Sorguda tanımlanan belirtilen alan hakkındaki bilgileri döndürür. |
CDaoQueryDef::GetName | Sorgu tanımı adını döndürür. |
CDaoQueryDef::GetODBCTimeout | Sorgu tanımı yürütülürken ODBC tarafından kullanılan zaman aşımı değerini döndürür ve sorgu eyleminin tamamlanmasına ne kadar süre izin verileceğini belirler. |
CDaoQueryDef::GetParameterCount | Sorgu için tanımlanan parametre sayısını döndürür. |
CDaoQueryDef::GetParameterInfo | Sorguya belirtilen parametre hakkında bilgi döndürür. |
CDaoQueryDef::GetParamValue | Belirtilen parametrenin değerini sorguya döndürür. |
CDaoQueryDef::GetRecordsAffected | Eylem sorgusundan etkilenen kayıt sayısını döndürür. |
CDaoQueryDef::GetReturnsRecords | Sorgu tanımı tarafından tanımlanan sorgu kayıtları döndürüyorsa sıfır olmayan değerini döndürür. |
CDaoQueryDef::GetSQL | Sorgu tanımı tarafından tanımlanan sorguyu belirten SQL dizesini döndürür. |
CDaoQueryDef::GetType | Sorgu türünü döndürür: silme, güncelleştirme, ekleme, tablo yapma vb. |
CDaoQueryDef::IsOpen | Sorgu tanımı açıksa ve yürütülebiliyorsa sıfır olmayan değerini döndürür. |
CDaoQueryDef::Open | Veritabanının QueryDefs koleksiyonunda depolanan mevcut bir sorgu tanımı açar. |
CDaoQueryDef::SetConnect | ODBC veri kaynağındaki sql geçiş sorgusu için bağlantı dizesi ayarlar. |
CDaoQueryDef::SetName | Kaydedilen sorgunun adını ayarlar ve sorgu tanımı oluşturulduğunda kullanılan adın yerini alır. |
CDaoQueryDef::SetODBCTimeout | Sorgu tanımı yürütülürken ODBC tarafından kullanılan zaman aşımı değerini (ODBC sorgusu için) ayarlar. |
CDaoQueryDef::SetParamValue | Belirtilen parametrenin değerini sorguya ayarlar. |
CDaoQueryDef::SetReturnsRecords | Sorgu tanımında kayıtların döndürülip döndürülmeyeceğini belirtir. Bu özniteliği TRUE olarak ayarlamak yalnızca SQL doğrudan sorgular için geçerlidir. |
CDaoQueryDef::SetSQL | Sorgu tanımı tarafından tanımlanan sorguyu belirten SQL dizesini ayarlar. |
Ortak Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CDaoQueryDef::m_pDAOQueryDef | Temel alınan DAO sorgu tanımı nesnesi için OLE arabirimine yönelik bir işaretçi. |
CDaoQueryDef::m_pDatabase | Sorgu tanımıyla ilişkilendirilen nesnenin işaretçisi CDaoDatabase . Sorgu tanımı veritabanına kaydedilebilir veya kaydedilmeyebilir. |
Açıklamalar
Sorgu tanımı, sorguyu açıklayan SQL deyimini ve "Oluşturulma Tarihi" ve "ODBC Zaman Aşımı" gibi özelliklerini içeren bir veri erişim nesnesidir. Ayrıca, kaydetmeden geçici sorgu tanımı nesneleri oluşturabilirsiniz, ancak veritabanında yaygın olarak yeniden kullanılan sorguları kaydetmek kullanışlı ve çok daha verimlidir. CDaoDatabase nesnesi, kaydedilen sorgu tanımlarını içeren QueryDefs koleksiyonu adlı bir koleksiyon tutar.
Not
DAO veritabanı sınıfları, Açık Veritabanı Bağlantısı (ODBC) temelinde Microsoft Foundation Sınıfı (MFC) veritabanı sınıflarından farklıdır. Tüm DAO veritabanı sınıf adları "CDao" ön ekini alır. DAO sınıflarıyla ODBC veri kaynaklarına erişmeye devam edebilirsiniz. Genel olarak, DAO tabanlı MFC sınıfları ODBC tabanlı MFC sınıflarından daha yeteneklidir; DAO tabanlı sınıflar, ODBC sürücüleri de dahil olmak üzere verilere kendi veritabanı altyapısı üzerinden erişebilir. DAO tabanlı sınıflar, DAO'yu doğrudan çağırmak zorunda kalmadan sınıflar aracılığıyla tablo ekleme gibi Veri Tanım Dili (DDL) işlemlerini de destekler.
Kullanım
Mevcut kaydedilmiş sorguyla çalışmak veya yeni bir kaydedilmiş sorgu veya geçici sorgu oluşturmak için querydef nesnelerini kullanın:
Her durumda, önce sorgunun ait olduğu CDaoDatabase nesnesine bir işaretçi sağlayarak bir
CDaoQueryDef
nesne oluşturur.Ardından, ne istediğinize bağlı olarak aşağıdakileri yapın:
Var olan bir kaydedilmiş sorguyu kullanmak için querydef nesnesinin Open member işlevini çağırarak kaydedilen sorgunun adını sağlayın.
Yeni bir kaydedilmiş sorgu oluşturmak için sorgunun adını sağlayarak querydef nesnesinin Üye oluştur işlevini çağırın. Ardından, veritabanının QueryDefs koleksiyonuna ekleyerek sorguyu kaydetmek için Ekle'yi çağırın.
Create
querydef'i açık duruma getirir, bu nedenle çağrısıCreate
yaptıktan sonra öğesini çağırmazsınızOpen
.Geçici bir sorgu tanımı oluşturmak için çağrısında bulunur
Create
. Sorgu adı için boş bir dize geçirin. arama.Append
Sorgu tanımı nesnesini kullanmayı bitirdiğinizde, nesnenin Close member işlevini çağırın; ardından querydef nesnesini yok edin.
İpucu
Kaydedilmiş sorgular oluşturmanın en kolay yolu, bunları oluşturmak ve Microsoft Access kullanarak veritabanınızda depolamaktır. Ardından bunları MFC kodunuzda açabilir ve kullanabilirsiniz.
Amaçlar
Aşağıdaki amaçlardan herhangi biri için bir querydef nesnesi kullanabilirsiniz:
Nesne oluşturmak
CDaoRecordset
içinNesnenin
Execute
üye işlevini çağırarak doğrudan bir eylem sorgusu veya SQL geçiş sorgusu yürütmek için
Select, action, crosstab, delete, update, append, make-table, data definition, SQL pass-through, union ve bulk queries gibi her tür sorgu için querydef nesnesi kullanabilirsiniz. Sağladığınız SQL deyiminin içeriği sorgunun türünü belirler. Sorgu türleri hakkında bilgi için bkz Execute
. ve GetType
üye işlevleri. Kayıt kümeleri genellikle satır döndüren sorgular için kullanılır; genellikle SELECT kullanan sorgular ... FROM anahtar sözcükleri. Execute
toplu işlemler için en yaygın olarak kullanılır. Daha fazla bilgi için bkz. Execute
ve CDaoRecordset
.
Sorgu Tanımları ve Kayıt Kümeleri
Bir nesne oluşturmak CDaoRecordset
için bir querydef nesnesi kullanmak için genellikle daha önce açıklandığı gibi bir sorgu tanımı oluşturur veya açarsınız. Ardından, çağırdığınızda CDaoRecordset::Open
sorgu tanımı nesnenize bir işaretçi geçirerek bir kayıt kümesi nesnesi oluşturma. Geçirdiğiniz sorgu tanımı açık durumda olmalıdır. Daha fazla bilgi için bkz. sınıfı CDaoRecordset
.
Açık durumda olmadığı sürece bir kayıt kümesi (sorgu tanımı için en yaygın kullanım) oluşturmak için sorgu tanımı kullanamazsınız. veya Create
öğesini çağırarak Open
sorgu tanımı açık duruma yerleştirin.
Dış Veritabanları
Querydef nesneleri, dış veritabanı altyapısının yerel SQL diyalektini kullanmanın tercih edilen yoludur. Örneğin, bir Transact SQL sorgusu (Microsoft SQL Server'da kullanıldığı gibi) oluşturabilir ve bunu bir querydef nesnesinde depolayabilirsiniz. Microsoft Jet veritabanı altyapısını temel almayan bir SQL sorgusu kullanmanız gerektiğinde, dış veri kaynağına işaret eden bir bağlantı dizesi sağlamanız gerekir. Geçerli bağlantı dizesi olan sorgular veritabanı altyapısını atlar ve sorguyu doğrudan işlenmek üzere dış veritabanı sunucusuna geçirir.
İpucu
ODBC tablolarıyla çalışmanın tercih edilen yolu, bunları bir Microsoft Jet'e ( eklemektir. MDB) veritabanı.
İlgili bilgiler için DAO SDK'sında "QueryDef Nesnesi", "QueryDefs Koleksiyonu" ve "CdbDatabase Nesnesi" konularına bakın.
Devralma Hiyerarşisi
CDaoQueryDef
Gereksinimler
Üstbilgi: afxdao.h
CDaoQueryDef::Append
Yeni bir sorgu tanımı nesnesi oluşturmak için Create çağrısı yaptıktan sonra bu üye işlevini çağırabilirsiniz.
virtual void Append();
Açıklamalar
Append
nesnesini veritabanının QueryDefs koleksiyonuna ekleyerek querydef'i veritabanına kaydeder. Querydef'i eklemeden geçici bir nesne olarak kullanabilirsiniz, ancak kalıcı olmasını istiyorsanız çağrısı Append
yapmalısınız.
Geçici bir sorgu tanımı nesnesi eklemeyi denerseniz, MFC CDaoException türünde bir özel durum oluşturur.
CDaoQueryDef::CanUpdate
Sorgu tanımında değişiklik yapıp yapamayacağınızı (örneğin adını veya SQL dizesini değiştirebileceğinizi) belirlemek için bu üye işlevini çağırın.
BOOL CanUpdate();
Dönüş Değeri
Sorgu tanımında değişiklik yapabilirseniz sıfır olmayan; aksi takdirde 0.
Açıklamalar
Şu durumda querydef değerini değiştirebilirsiniz:
Salt okunur açık bir veritabanını temel almaz.
Veritabanı için güncelleştirme izinleriniz var.
Bu, güvenlik özelliklerini uygulayıp uygulamadığınıza bağlıdır. MFC güvenlik desteği sağlamaz; DAO'yu doğrudan arayarak veya Microsoft Access'i kullanarak uygulamayı kendiniz gerçekleştirmeniz gerekir. DAO Yardımı'nda "İzinler Özelliği" konusuna bakın.
CDaoQueryDef::CDaoQueryDef
Bir CDaoQueryDef
nesne oluşturur.
CDaoQueryDef(CDaoDatabase* pDatabase);
Parametreler
pDatabase
Açık bir CDaoDatabase nesnesinin işaretçisi.
Açıklamalar
nesnesi, veritabanının QueryDefs koleksiyonunda depolanan mevcut bir sorgu tanımı, koleksiyonda depolanacak yeni bir sorgu veya depolanmayacak geçici bir sorguyu temsil edebilir. Sonraki adımınız sorgu tanımı türüne bağlıdır:
Nesne mevcut bir sorgu tanımı temsil ediyorsa, başlatmak için nesnenin Üyeyi aç işlevini çağırın.
Nesne kaydedilecek yeni bir sorgu tanımı temsil ederse, nesnenin Create member işlevini çağırın. Bu, nesnesini veritabanının QueryDefs koleksiyonuna ekler. Ardından nesnenin özniteliklerini ayarlamak için üye işlevlerini çağırın
CDaoQueryDef
. Son olarak, Ekle'yi çağır.Nesne geçici bir sorgu tanımı temsil ediyorsa (veritabanına kaydedilmeyecekse), çağrısı
Create
yapın ve sorgunun adı için boş bir dize geçirin. çağrısıCreate
yaptıktan sonra, özniteliklerini doğrudan ayarlayarak querydef'i başlatın. arama.Append
Querydef özniteliklerini ayarlamak için SetName, SetSQL, SetConnect, SetODBCTimeout ve SetReturnsRecords üye işlevlerini kullanabilirsiniz.
Querydef nesnesini bitirdiğinizde, nesnenin Close member işlevini çağırın. Querydef işaretçiniz varsa, C++ nesnesini yok etmek için işlecini kullanın delete
.
CDaoQueryDef::Close
querydef nesnesini kullanmayı bitirdiğinizde bu üye işlevini çağırın.
virtual void Close();
Açıklamalar
Sorgu tanımı kapatılıyorsa, temel alınan DAO nesnesi serbest bırakılıyor, ancak kaydedilen DAO sorgu tanımı nesnesini veya C++ CDaoQueryDef
nesnesini yok etmiyor. Bu, veritabanının DAO'daki QueryDefs koleksiyonundan sorgu tanımı silen CDaoDatabase::D eleteQueryDef ile aynı değildir (geçici bir sorgu tanımı değilse).
CDaoQueryDef::Create
Yeni bir kaydedilmiş sorgu veya yeni bir geçici sorgu oluşturmak için bu üye işlevini çağır.
virtual void Create(
LPCTSTR lpszName = NULL,
LPCTSTR lpszSQL = NULL);
Parametreler
lpszName
Veritabanında kaydedilen sorgunun benzersiz adı. Dize hakkında ayrıntılı bilgi için DAO Yardımı'ndaki "CreateQueryDef Yöntemi" konusuna bakın. Varsayılan değeri kabul ederseniz boş bir dize, geçici bir sorgu tanımı oluşturulur. Böyle bir sorgu QueryDefs koleksiyonuna kaydedilmez.
lpszSQL
Sorguyu tanımlayan SQL dizesi. Varsayılan NULL değerini kabul ederseniz, dizeyi ayarlamak için daha sonra SetSQL'i çağırmanız gerekir. O zamana kadar sorgu tanımlanmamıştır. Ancak, tanımlanmamış sorguyu kullanarak bir kayıt kümesi açabilirsiniz; Ayrıntılar için bkz. Açıklamalar. QueryDefs koleksiyonuna querydef ekleyebilmeniz için önce SQL deyimi tanımlanmalıdır.
Açıklamalar
lpszName içinde bir ad geçirirseniz, veritabanının QueryDefs koleksiyonuna querydef'i kaydetmek için Ekle'yi çağırabilirsiniz. Aksi takdirde, nesne geçici bir sorgu tanımıdır ve kaydedilmez. Her iki durumda da sorgu tanımı açık durumdadır ve bunu kullanarak bir CDaoRecordset nesnesi oluşturabilir veya querydef'in Execute member işlevini çağırabilirsiniz.
lpszSQL'de bir SQL deyimi sağlamazsanız, sorguyu ile Execute
çalıştıramazsınız, ancak bunu kullanarak kayıt kümesi oluşturabilirsiniz. Bu durumda MFC, kayıt kümesinin varsayılan SQL deyimini kullanır.
CDaoQueryDef::Execute
Querydef nesnesi tarafından tanımlanan sorguyu çalıştırmak için bu üye işlevini çağırın.
virtual void Execute(int nOptions = dbFailOnError);
Parametreler
nSeçenekler
Sorgunun özelliklerini belirleyen bir tamsayı. İlgili bilgiler için DAO Yardımı'ndaki "Yöntemi Yürütme" konusuna bakın. Bu bağımsız değişken için aşağıdaki sabitleri birleştirmek için bit düzeyinde OR işlecini (|
) kullanabilirsiniz:
dbDenyWrite
Diğer kullanıcılara yazma iznini reddedin.dbInconsistent
Tutarsız güncelleştirmeler.dbConsistent
Tutarlı güncelleştirmeler.dbSQLPassThrough
SQL geçişi. SQL deyiminin işlenmek üzere bir ODBC veritabanına geçirilmesine neden olur.dbFailOnError
Varsayılan değer. Hata oluşursa güncelleştirmeleri geri alma ve hatayı kullanıcıya bildirme.dbSeeChanges
Başka bir kullanıcı düzenlediğiniz verileri değiştiriyorsa bir çalışma zamanı hatası oluşturun.
Not
"Tutarsız" ve "tutarlı" terimlerinin açıklaması için DAO Yardımı'ndaki "Yöntemi Yürütme" konusuna bakın.
Açıklamalar
Bu şekilde yürütme için kullanılan sorgu tanımı nesneleri aşağıdaki sorgu türlerinden yalnızca birini temsil edebilir:
Eylem sorguları
SQL doğrudan sorguları
Execute
seçme sorguları gibi kayıtları döndüren sorgular için çalışmaz. Execute
genellikle UPDATE, INSERT veya SELECT INTO gibi toplu işlem sorguları ya da veri tanımı dili (DDL) işlemleri için kullanılır.
İpucu
ODBC veri kaynaklarıyla çalışmanın tercih edilen yolu, tabloları bir Microsoft Jet'e ( eklemektir. MDB) veritabanı. Daha fazla bilgi için DAO Yardımı'nda "DAO ile Dış Veritabanlarına Erişme" konusuna bakın.
En son Execute
çağrıdan etkilenen kayıt sayısını belirlemek için querydef nesnesinin GetRecordsAffected member işlevini çağırın. Örneğin, GetRecordsAffected
bir eylem sorgusu yürütülürken silinen, güncelleştirilen veya eklenen kayıt sayısı hakkında bilgi döndürür. Döndürülen sayı, art arda güncelleştirmeler veya silmeler etkin olduğunda ilgili tablolardaki değişiklikleri yansıtmaz.
Hem hem dbConsistent
de dbInconsistent
dahil ederseniz veya ikisini de eklerseniz, sonuç varsayılan değerdir. dbInconsistent
Execute
kayıt kümesi döndürmez. Kayıtları Execute
seçen bir sorguda kullanılması MFC'nin CDaoException türünde bir özel durum oluşturmasına neden olur.
CDaoQueryDef::GetConnect
Querydef'in veri kaynağıyla ilişkili bağlantı dizesi almak için bu üye işlevini çağırın.
CString GetConnect();
Dönüş Değeri
CString
Sorgu tanımı için bağlantı dizesi içeren.
Açıklamalar
Bu işlev yalnızca ODBC veri kaynakları ve belirli ISAM sürücüleriyle kullanılır. Microsoft Jet (.MDB
) veritabanlarında kullanılmaz; bu durumda boş GetConnect
bir dize döndürür. Daha fazla bilgi için bkz. SetConnect
.
İpucu
ODBC tablolarıyla çalışmanın tercih edilen yolu, bunları bir öğesine eklemektir. MDB veritabanı. Daha fazla bilgi için DAO Yardımı'nda "DAO ile Dış Veritabanlarına Erişme" konusuna bakın.
bağlantı dizesi hakkında bilgi için DAO Yardımı'ndaki "Özelliği Bağlama" konusuna bakın.
CDaoQueryDef::GetDateCreated
Sorgu tanımı nesnesinin oluşturulduğu tarihi almak için bu üye işlevini çağırın.
COleDateTime GetDateCreated();
Dönüş Değeri
Sorgu tanımı oluşturulduğu tarih ve saati içeren bir COleDateTime nesnesi.
Açıklamalar
İlgili bilgiler için DAO Yardımı'ndaki "DateCreated, LastUpdated Properties" konusuna bakın.
CDaoQueryDef::GetDateLastUpdated
Querydef nesnesinin en son güncelleştirildiği tarihi (adı, SQL dizesi veya bağlantı dizesi gibi herhangi bir özelliği değiştirildiğinde) almak için bu üye işlevini çağırın.
COleDateTime GetDateLastUpdated();
Dönüş Değeri
COleDateTime
Sorgu tanımı en son güncelleştirilen tarih ve saati içeren bir nesne.
Açıklamalar
İlgili bilgiler için DAO Yardımı'ndaki "DateCreated, LastUpdated Properties" konusuna bakın.
CDaoQueryDef::GetFieldCount
Sorgudaki alan sayısını almak için bu üye işlevini çağırın.
short GetFieldCount();
Dönüş Değeri
Sorguda tanımlanan alan sayısı.
Açıklamalar
GetFieldCount
sorgu tanımındaki tüm alanlarda döngü için kullanışlıdır. Bu amaçla ile kullanın GetFieldCount
GetFieldInfo
.
CDaoQueryDef::GetFieldInfo
Sorgu tanımında tanımlanan bir alan hakkında çeşitli türde bilgiler almak için bu üye işlevini çağırın.
void GetFieldInfo(
int nIndex,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetFieldInfo(
LPCTSTR lpszName,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Parametreler
nIndex
Sorgu tanımındaki Alanlar koleksiyonunda dizine göre arama için istenen alanın sıfır tabanlı dizini.
fieldinfo
İstenen bilgileri döndüren bir CDaoFieldInfo
nesneye başvuru.
dwInfoOptions
Alanla ilgili hangi bilgilerin alınacağını belirten seçenekler. Kullanılabilir seçenekler, işlevin döndürmesine neden olduklarıyla birlikte burada listelenir:
AFX_DAO_PRIMARY_INFO (Varsayılan) Ad, Tür, Boyut, Öznitelikler
AFX_DAO_SECONDARY_INFO Birincil bilgiler artı: Sıralı Konum, Gerekli, Sıfır Uzunluğa İzin Ver, Kaynak Alan, Yabancı Ad, Kaynak Tablo, Harmanlama Sırası
AFX_DAO_ALL_INFO Birincil ve ikincil bilgiler artı: Varsayılan Değer, Doğrulama Metni, Geçerlilik Kuralı
lpszName
Ada göre arama için istenen alanın adını içeren bir dize. kullanabilirsiniz CString
.
Açıklamalar
fieldinfo'da döndürülen bilgilerin açıklaması için CDaoFieldInfo yapısına bakın. Bu yapı, yukarıdaki dwInfoOptions altındaki açıklayıcı bilgilere karşılık gelen üyelere sahiptir. Bir bilgi düzeyi isterseniz, önceki bilgi düzeylerini de alırsınız.
CDaoQueryDef::GetName
Sorgu tanımı tarafından temsil edilen sorgunun adını almak için bu üye işlevini çağırın.
CString GetName();
Dönüş Değeri
Sorgunun adı.
Açıklamalar
Sorgu tanımı adları benzersiz kullanıcı tanımlı adlardır. Sorgu tanımı adları hakkında daha fazla bilgi için DAO Yardımı'ndaki "Ad Özelliği" konusuna bakın.
CDaoQueryDef::GetODBCTimeout
ODBC veri kaynağına yapılan sorgu zaman aşımına uğramadan önce geçerli zaman sınırını almak için bu üye işlevini çağırın.
short GetODBCTimeout();
Dönüş Değeri
Sorgu zaman aşımına uğramadan önceki saniye sayısı.
Açıklamalar
Bu zaman sınırı hakkında bilgi için DAO Yardımı'ndaki "ODBCTimeout Özelliği" konusuna bakın.
İpucu
ODBC tablolarıyla çalışmanın tercih edilen yolu, bunları bir Microsoft Jet'e ( eklemektir. MDB) veritabanı. Daha fazla bilgi için DAO Yardımı'nda "DAO ile Dış Veritabanlarına Erişme" konusuna bakın.
CDaoQueryDef::GetParameterCount
Kaydedilen sorgudaki parametre sayısını almak için bu üye işlevini çağırın.
short GetParameterCount();
Dönüş Değeri
Sorguda tanımlanan parametre sayısı.
Açıklamalar
GetParameterCount
sorgu tanımındaki tüm parametreler arasında döngü için kullanışlıdır. Bu amaçla ile kullanın GetParameterCount
GetParameterInfo
.
İlgili bilgiler için DAO Yardımı'ndaki "Parametre Nesnesi", "Parametre Koleksiyonu" ve "PARAMETERS Bildirimi (SQL)" konularına bakın.
CDaoQueryDef::GetParameterInfo
Sorgu tanımında tanımlanan bir parametre hakkında bilgi almak için bu üye işlevini çağırın.
void GetParameterInfo(
int nIndex,
CDaoParameterInfo& paraminfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetParameterInfo(
LPCTSTR lpszName,
CDaoParameterInfo& paraminfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Parametreler
nIndex
Dizine göre arama için querydef'in Parameters koleksiyonunda istenen parametrenin sıfır tabanlı dizini.
paraminfo
İstenen bilgileri döndüren bir CDaoParameterInfo nesnesine başvuru.
dwInfoOptions
Parametre hakkında hangi bilgilerin alınacağını belirten seçenekler. Kullanılabilir seçenek, işlevin döndüreceği nedenlerle birlikte burada listelenmiştir:
AFX_DAO_PRIMARY_INFO
(Varsayılan) Ad, Tür
lpszName
Ada göre arama için istenen parametrenin adını içeren bir dize. kullanabilirsiniz CString
.
Açıklamalar
içinde paraminfo
döndürülen bilgilerin açıklaması için yapısına CDaoParameterInfo
bakın. Bu yapı, yukarıdaki açıklayıcı bilgilere dwInfoOptions
karşılık gelen üyelere sahiptir.
İlgili bilgiler için DAO Yardımı'ndaki "PARAMETERS Bildirimi (SQL)" konusuna bakın.
CDaoQueryDef::GetParamValue
Querydef'in Parameters koleksiyonunda depolanan belirtilen parametrenin geçerli değerini almak için bu üye işlevini çağırın.
virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);
Parametreler
lpszName
Ada göre arama için değerini istediğiniz parametrenin adı.
nIndex
Dizine göre arama için querydef'in Parameters koleksiyonundaki parametresinin sıfır tabanlı dizini. GetParameterCount ve GetParameterInfo çağrılarıyla bu değeri alabilirsiniz.
Dönüş Değeri
Parametrenin değerini içeren COleVariant sınıfının nesnesi.
Açıklamalar
Parametreye ada veya koleksiyondaki sıralı konumuna göre erişebilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "PARAMETERS Bildirimi (SQL)" konusuna bakın.
CDaoQueryDef::GetRecordsAffected
Son Execute çağrısından kaç kaydın etkilendiğini belirlemek için bu üye işlevini çağırın.
long GetRecordsAffected();
Dönüş Değeri
Etkilenen kayıt sayısı.
Açıklamalar
Döndürülen sayı, art arda güncelleştirmeler veya silmeler etkin olduğunda ilgili tablolardaki değişiklikleri yansıtmaz.
İlgili bilgiler için DAO Yardımı'ndaki "RecordsAffected Property" konusuna bakın.
CDaoQueryDef::GetReturnsRecords
Sorgu tanımında kayıtları döndüren bir sorgunun temel alınıp alınmadığını belirlemek için bu üye işlevini çağırın.
BOOL GetReturnsRecords();
Dönüş Değeri
Sorgu tanımı kayıtları döndüren bir sorguyu temel alıyorsa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bu üye işlevi yalnızca SQL doğrudan sorguları için kullanılır. SQL sorguları hakkında daha fazla bilgi için bkz . Execute member işlevi. SQL doğrudan sorgularıyla çalışma hakkında daha fazla bilgi için bkz . SetReturnsRecords üye işlevi.
İlgili bilgiler için DAO Yardımı'ndaki "ReturnsRecords Özelliği" konusuna bakın.
CDaoQueryDef::GetSQL
Sorgu tanımının temel aldığı sorguyu tanımlayan SQL deyimini almak için bu üye işlevini çağırın.
CString GetSQL();
Dönüş Değeri
Sorgu tanımının temel aldığı sorguyu tanımlayan SQL deyimi.
Açıklamalar
Dizeyi anahtar sözcükler, tablo adları vb. için ayrıştırabilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "SQL Özelliği", "Microsoft Jet Veritabanı Altyapısı SQL ve ANSI SQL Karşılaştırması" ve "Kodda SQL ile Veritabanı Sorgulama" konularına bakın.
CDaoQueryDef::GetType
Sorgu tanımı sorgu türünü belirlemek için bu üye işlevini çağırın.
short GetType();
Dönüş Değeri
Sorgu tanımı tarafından tanımlanan sorgunun türü. Değerler için bkz. Açıklamalar.
Açıklamalar
Sorgu türü, sorgu tanımı oluşturduğunuzda veya mevcut bir sorgu tanımında SetSQL üye işlevini çağırdığınızda querydef'in SQL dizesinde belirttiğiniz değere göre ayarlanır. Bu işlev tarafından döndürülen sorgu türü aşağıdaki değerlerden biri olabilir:
dbQSelect
SeçmekdbQAction
EylemdbQCrosstab
ÇaprazdbQDelete
SilmekdbQUpdate
GüncelleştirmekdbQAppend
EklemedbQMakeTable
Tablo yapmadbQDDL
Veri tanımıdbQSQLPassThrough
GeçişdbQSetOperation
SendikadbQSPTBulk
ile,dbQSQLPassThrough
kayıtları döndürmeyen bir sorgu belirtmek için kullanılır.
Not
SQL geçiş sorgusu oluşturmak için sabitini ayarlamayın dbSQLPassThrough
. Bu, bir sorgu tanımı nesnesi oluşturduğunuzda ve bağlantı dizesi ayarladığınızda Microsoft Jet veritabanı altyapısı tarafından otomatik olarak ayarlanır.
SQL dizeleri hakkında bilgi için bkz . GetSQL. Sorgu türleri hakkında bilgi için bkz . Yürütme.
CDaoQueryDef::IsOpen
Nesnenin CDaoQueryDef
şu anda açık olup olmadığını belirlemek için bu üye işlevini çağırın.
BOOL IsOpen() const;
Dönüş Değeri
Nesne şu anda açıksa CDaoQueryDef
sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bir sorgu tanımı, nesneyi çağırmak Execute
veya oluşturmak CDaoRecordset
için kullanmadan önce açık durumda olmalıdır. Bir sorgu tanımı açık duruma getirmek için (yeni bir sorgu tanımı için) veya Open
(mevcut bir sorgu tanımı için) öğesini çağırin Create
.
CDaoQueryDef::m_pDatabase
Querydef nesnesiyle ilişkilendirilmiş CDaoDatabase nesnesine bir işaretçi içerir.
Açıklamalar
Veritabanına doğrudan erişmeniz gerekiyorsa bu işaretçiyi kullanın. Örneğin, veritabanının koleksiyonlarındaki diğer sorgu tanımı veya kayıt kümesi nesnelerinin işaretçilerini almak için.
CDaoQueryDef::m_pDAOQueryDef
Temel alınan DAO sorgu tanımı nesnesi için OLE arabirimine yönelik bir işaretçi içerir.
Açıklamalar
Bu işaretçi, diğer sınıflarla tamlık ve tutarlılık için sağlanır. Ancak MFC, DAO sorgu tanımlarını tamamen kapsüllediğinden buna ihtiyacınız olma olasılığı düşüktür. Bunu kullanıyorsanız, bunu dikkatli bir şekilde yapın. Özellikle, ne yaptığınızı bilmiyorsanız işaretçinin değerini değiştirmeyin.
CDaoQueryDef::Open
Veritabanının QueryDefs koleksiyonuna daha önce kaydedilmiş bir sorgu tanımı açmak için bu üye işlevini çağırın.
virtual void Open(LPCTSTR lpszName = NULL);
Parametreler
lpszName
Açılacak kaydedilen sorgu tanımı adını içeren bir dize. kullanabilirsiniz CString
.
Açıklamalar
Sorgu tanımı açıldıktan sonra üye işlevini çağırabilir Execute
veya nesne oluşturmak CDaoRecordset
için querydef'i kullanabilirsiniz.
CDaoQueryDef::SetConnect
Sorgu tanımı nesnesinin bağlantı dizesi ayarlamak için bu üye işlevini çağırın.
void SetConnect(LPCTSTR lpszConnect);
Parametreler
lpszConnect
İlişkili CDaoDatabase nesnesi için bir bağlantı dizesi içeren dize.
Açıklamalar
bağlantı dizesi, ODBC'ye ve belirli ISAM sürücülerine gerektiğinde ek bilgi geçirmek için kullanılır. Microsoft Jet (.MDB
) veritabanları için kullanılmaz.
İpucu
ODBC tablolarıyla çalışmanın tercih edilen yolu, bunları bir öğesine eklemektir. MDB veritabanı.
ODBC veri kaynağına sql geçiş sorgusunu temsil eden bir sorgu tanımı yürütmeden önce ile bağlantı dizesi SetConnect
ayarlayın ve sorgunun kayıtları döndürip döndürmediğini belirtmek için SetReturnsRecords öğesini çağırın.
bağlantı dizesi yapısı ve bağlantı dizesi bileşenlerine örnekler hakkında daha fazla bilgi için DAO Yardımı'ndaki "Özelliği Bağlama" konusuna bakın.
CDaoQueryDef::SetName
Geçici olmayan bir sorgu tanımı adını değiştirmek istiyorsanız bu üye işlevini çağırın.
void SetName(LPCTSTR lpszName);
Parametreler
lpszName
İlişkili CDaoDatabase nesnesindeki örnek olmayan bir sorgunun yeni adını içeren dize.
Açıklamalar
Sorgu tanımı adları benzersiz, kullanıcı tanımlı adlardır. QueryDefs koleksiyonuna querydef nesnesi eklenmeden önce çağırabilirsiniz SetName
.
CDaoQueryDef::SetODBCTimeout
BIR ODBC veri kaynağına yapılan sorgu zaman aşımına uğramadan önce zaman sınırını ayarlamak için bu üye işlevini çağırın.
void SetODBCTimeout(short nODBCTimeout);
Parametreler
nODBCTimeout
Sorgu zaman aşımına uğramadan önceki saniye sayısı.
Açıklamalar
Bu üye işlevi, bağlı "zaman aşımı" veri kaynağında sonraki işlemlerden önce varsayılan saniye sayısını geçersiz kılmanızı sağlar. Ağ erişim sorunları, aşırı sorgu işleme süresi vb. nedeniyle bir işlem zaman aşımına uğradı. Sorgu zaman aşımı değerini değiştirmek istiyorsanız, sorguyu bu sorgu tanımıyla yürütmeden önce çağırın SetODBCTimeout
. (ODBC bağlantıları yeniden kullandıkça, zaman aşımı değeri aynı bağlantıdaki tüm istemciler için aynıdır.)
Sorgu zaman aşımları için varsayılan değer 60 saniyedir.
CDaoQueryDef::SetParamValue
Çalışma zamanında sorgu tanımında bir parametrenin değerini ayarlamak için bu üye işlevini çağırın.
virtual void SetParamValue(
LPCTSTR lpszName,
const COleVariant& varValue);
virtual void SetParamValue(
int nIndex,
const COleVariant& varValue);
Parametreler
lpszName
Değerini ayarlamak istediğiniz parametrenin adı.
varValue
Ayarlanacağı değer; bkz. Açıklamalar.
nIndex
Querydef'in Parameters koleksiyonundaki parametresinin sıralı konumu. GetParameterCount ve GetParameterInfo çağrılarıyla bu değeri alabilirsiniz.
Açıklamalar
parametresi, querydef'in SQL dizesinin bir parçası olarak önceden oluşturulmuş olmalıdır. Parametreye ada veya koleksiyondaki sıralı konumuna göre erişebilirsiniz.
Nesne olarak COleVariant
ayarlanacağı değeri belirtin. nesnenizde COleVariant
istenen değeri ve türü ayarlama hakkında bilgi için bkz. COleVariant sınıfı.
CDaoQueryDef::SetReturnsRecords
Dış veritabanına SQL doğrudan sorgu ayarlama işleminin bir parçası olarak bu üye işlevini çağırın.
void SetReturnsRecords(BOOL bReturnsRecords);
Parametreler
bReturnsRecords
Dış veritabanındaki sorgu kayıtları döndürüyorsa TRUE'yu geçirin; aksi takdirde YANLIŞ.
Açıklamalar
Böyle bir durumda, diğer CDaoQueryDef
üye işlevlerini kullanarak sorgu tanımı oluşturmanız ve özelliklerini ayarlamanız gerekir. Dış veritabanlarının açıklaması için bkz . SetConnect.
CDaoQueryDef::SetSQL
Sorgu tanımı tarafından yürütülen SQL deyimini ayarlamak için bu üye işlevini çağırın.
void SetSQL(LPCTSTR lpszSQL);
Parametreler
lpszSQL
Yürütmeye uygun eksiksiz bir SQL deyimi içeren bir dize. Bu dizenin söz dizimi, sorgunuzun hedeflediğini DBMS'ye bağlıdır. Microsoft Jet veritabanı altyapısında kullanılan söz dizimi hakkında bir tartışma için DAO Yardımı'ndaki "Kodda SQL Deyimleri Oluşturma" konusuna bakın.
Açıklamalar
tipik bir kullanımı SetSQL
, SQL doğrudan sorgusunda kullanmak üzere bir sorgu tanımı nesnesi ayarlamaktır. (Hedef DBMS'nizde SQL doğrudan sorgularının söz dizimi için DBMS'nizin belgelerine bakın.)
Ayrıca bkz.
CObject
Sınıf
Hiyerarşi Grafiği
CDaoRecordset
Sınıf
CDaoDatabase
Sınıf
CDaoTableDef
Sınıf
CDaoException
Sınıf