CDaoRecordset Sınıfı
Veri kaynağından seçilen bir kayıt kümesini 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 CDaoRecordset : public CObject
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CDaoRecordset::CDaoRecordset | Bir CDaoRecordset nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CDaoRecordset::AddNew | Yeni kayıt eklemeye hazırlanır. Toplamayı tamamlamak için Update'i çağırın. |
CDaoRecordset::CanAppend | AddNew üye işlevi aracılığıyla kayıt kümesine yeni kayıtlar eklenebiliyorsa sıfır olmayan bir değer döndürür. |
CDaoRecordset::CanBookmark | Kayıt kümesi yer işaretlerini destekliyorsa sıfır olmayan değerini döndürür. |
CDaoRecordset::CancelUpdate | Düzenle veya EkleYeni işlem nedeniyle bekleyen güncelleştirmeleri iptal eder. |
CDaoRecordset::CanRestart | Kayıt kümesinin sorgusunu yeniden çalıştırmak için Requery çağrılabiliyorsa sıfır olmayan döndürür. |
CDaoRecordset::CanScroll | Kayıtlarda gezinebiliyorsanız sıfır olmayan değerini döndürür. |
CDaoRecordset::CanTransact | Veri kaynağı işlemleri destekliyorsa sıfır olmayan değerini döndürür. |
CDaoRecordset::CanUpdate | Kayıt kümesi güncelleştirilebiliyorsa sıfır olmayan bir değer döndürür (kayıtları ekleyebilir, güncelleştirebilir veya silebilirsiniz). |
CDaoRecordset::Close | Kayıt kümesini kapatır. |
CDaoRecordset::D elete | Kayıt kümesinden geçerli kaydı siler. Silme işleminden sonra açıkça başka bir kayda kaydırmanız gerekir. |
CDaoRecordset::D oFieldExchange | Kayıt kümesinin alan veri üyeleriyle veri kaynağındaki ilgili kayıt arasında veri alışverişi yapmak için (her iki yönde de) çağrılır. DAO kayıt alanı değişimini (DFX) uygular. |
CDaoRecordset::Edit | Geçerli kayıtta yapılan değişiklikler için hazırlanır. Düzenlemeyi tamamlamak için arayın Update . |
CDaoRecordset::FillCache | ODBC veri kaynağındaki verileri içeren bir kayıt kümesi nesnesi için yerel önbelleğin tamamını veya bir bölümünü doldurur. |
CDaoRecordset::Find | Belirtilen ölçütleri karşılayan ve bu kaydı geçerli kaydı yapan dynaset türündeki bir kayıt kümesinde belirli bir dizenin ilk, sonraki, önceki veya son konumunu bulur. |
CDaoRecordset::FindFirst | Belirtilen ölçütleri karşılayan ve bu kaydı geçerli kaydı yapan dynaset veya anlık görüntü türü kayıt kümesindeki ilk kaydı bulur. |
CDaoRecordset::FindLast | Belirtilen ölçütleri karşılayan ve bu kaydı geçerli kaydı yapan dynaset türü veya anlık görüntü türü kayıt kümesindeki son kaydı bulur. |
CDaoRecordset::FindNext | Belirtilen ölçütleri karşılayan ve bu kaydı geçerli kaydı yapan dynaset türünde veya anlık görüntü türü kayıt kümesinde bir sonraki kaydı bulur. |
CDaoRecordset::FindPrev | Belirtilen ölçütleri karşılayan ve bu kaydı geçerli kaydı yapan dynaset türünde veya anlık görüntü türü kayıt kümesinde önceki kaydı bulur. |
CDaoRecordset::GetAbsolutePosition | Kayıt kümesi nesnesinin geçerli kaydının kayıt numarasını döndürür. |
CDaoRecordset::GetBookmark | Bir kayıtta yer işaretini temsil eden bir değer döndürür. |
CDaoRecordset::GetCacheSize | ODBC veri kaynağından yerel olarak önbelleğe alınabilecek verileri içeren dinamik küme türündeki kayıt sayısını belirten bir değer döndürür. |
CDaoRecordset::GetCacheStart | Önbelleğe alınacak kayıt kümesindeki ilk kaydın yer işaretini belirten bir değer döndürür. |
CDaoRecordset::GetCurrentIndex | Dizinli, CString tablo türünde CDaoRecordset en son kullanılan dizinin adını içeren bir döndürür. |
CDaoRecordset::GetDateCreated | Bir CDaoRecordset nesnenin temel alındığı temel tablonun oluşturulduğu tarihi ve saati verir |
CDaoRecordset::GetDateLastUpdated | Bir nesnenin temel alınan CDaoRecordset temel tablosunun tasarımında yapılan en son değişikliğin tarih ve saatini döndürür. |
CDaoRecordset::GetDefaultDBName | Varsayılan veri kaynağının adını döndürür. |
CDaoRecordset::GetDefaultSQL | Yürütülecek varsayılan SQL dizesini almak için çağrıldı. |
CDaoRecordset::GetEditMode | Geçerli kayıt için düzenleme durumunu gösteren bir değer döndürür. |
CDaoRecordset::GetFieldCount | Bir kayıt kümesindeki alan sayısını temsil eden bir değer döndürür. |
CDaoRecordset::GetFieldInfo | Kayıt kümesindeki alanlar hakkında belirli türde bilgiler döndürür. |
CDaoRecordset::GetFieldValue | Kayıt kümesindeki bir alanın değerini döndürür. |
CDaoRecordset::GetIndexCount | Bir kayıt kümesinin temel alınan tablodaki dizin sayısını alır. |
CDaoRecordset::GetIndexInfo | Dizinle ilgili çeşitli bilgi türlerini döndürür. |
CDaoRecordset::GetLastModifiedBookmark | En son eklenen veya güncelleştirilen kaydı belirlemek için kullanılır. |
CDaoRecordset::GetLockingMode | Düzenleme sırasında geçerli olan kilitleme türünü gösteren bir değer döndürür. |
CDaoRecordset::GetName | Kayıt kümesinin adını içeren bir CString döndürür. |
CDaoRecordset::GetParamValue | Temel alınan DAOParameter nesnesinde depolanan belirtilen parametrenin geçerli değerini alır. |
CDaoRecordset::GetPercentPosition | Geçerli kaydın konumunu, toplam kayıt sayısının yüzdesi olarak döndürür. |
CDaoRecordset::GetRecordCount | Kayıt kümesi nesnesinde erişilen kayıtların sayısını döndürür. |
CDaoRecordset::GetSQL | Kayıt kümesi için kayıtları seçmek için kullanılan SQL dizesini alır. |
CDaoRecordset::GetType | Kayıt kümesinin türünü belirlemek için çağrılır: tablo türü, dynaset-type veya anlık görüntü türü. |
CDaoRecordset::GetValidationRule | CString Bir alana girilirken verileri doğrulayan değeri içeren bir döndürür. |
CDaoRecordset::GetValidationText | Doğrulama kuralı karşılanmadığında görüntülenen metni alır. |
CDaoRecordset::IsBOF | Kayıt kümesi ilk kayıt öncesinde konumlandırılmışsa sıfır olmayan değerini döndürür. Geçerli kayıt yok. |
CDaoRecordset::IsDeleted | Kayıt kümesi silinmiş bir kayda konumlandırıldıysa sıfır olmayan değerini döndürür. |
CDaoRecordset::IsEOF | Kayıt kümesi son kayıt sonrasında konumlandırıldıysa sıfır olmayan değerini döndürür. Geçerli kayıt yok. |
CDaoRecordset::IsFieldDirty | Geçerli kayıtta belirtilen alan değiştirildiyse sıfır olmayan değerini döndürür. |
CDaoRecordset::IsFieldNull | Geçerli kayıtta belirtilen alan Null ise (değeri olmayan) sıfır olmayan bir değer döndürür. |
CDaoRecordset::IsFieldNullable | Geçerli kayıtta belirtilen alan Null (değer olmadan) olarak ayarlanabiliyorsa sıfır olmayan değerini döndürür. |
CDaoRecordset::IsOpen | Daha önce Open çağrıldıysa sıfır olmayan değerini döndürür. |
CDaoRecordset::Move | Kayıt kümesini geçerli kayıttan herhangi bir yönde belirtilen sayıda kayda konumlandırın. |
CDaoRecordset::MoveFirst | Geçerli kaydı kayıt kümesindeki ilk kayda konumlandırın. |
CDaoRecordset::MoveLast | Geçerli kaydı kayıt kümesindeki son kayda konumlandırın. |
CDaoRecordset::MoveNext | Geçerli kaydı kayıt kümesindeki bir sonraki kayda konumlandırın. |
CDaoRecordset::MovePrev | Geçerli kaydı kayıt kümesindeki bir önceki kayda konumlandırın. |
CDaoRecordset::Open | Tablo, dinamik küme veya anlık görüntüden yeni bir kayıt kümesi oluşturur. |
CDaoRecordset::Requery | Seçilen kayıtları yenilemek için kayıt kümesinin sorgusunu yeniden çalıştırır. |
CDaoRecordset::Seek | Geçerli dizin için belirtilen ölçütleri karşılayan ve bu kaydı geçerli kaydı yapan, dizine alınan tablo türündeki kayıt kümesi nesnesinde kaydı bulur. |
CDaoRecordset::SetAbsolutePosition | Kayıt kümesi nesnesinin geçerli kaydının kayıt numarasını ayarlar. |
CDaoRecordset::SetBookmark | Kayıt kümesini belirtilen yer işaretini içeren bir kayda konumlandırıyor. |
CDaoRecordset::SetCacheSize | ODBC veri kaynağından yerel olarak önbelleğe alınabilecek verileri içeren dinamik küme türündeki kayıt sayısını belirten bir değer ayarlar. |
CDaoRecordset::SetCacheStart | Önbelleğe alınacak kayıt kümesindeki ilk kaydın yer işaretini belirten bir değer ayarlar. |
CDaoRecordset::SetCurrentIndex | Tablo türündeki bir kayıt kümesinde dizin ayarlamak için çağrılır. |
CDaoRecordset::SetFieldDirty | Geçerli kayıtta belirtilen alanı değiştirildi olarak işaretler. |
CDaoRecordset::SetFieldNull | Geçerli kayıtta belirtilen alanın değerini Null (değer olmadan) olarak ayarlar. |
CDaoRecordset::SetFieldValue | Kayıt kümesindeki bir alanın değerini ayarlar. |
CDaoRecordset::SetFieldValueNull | Kayıt kümesindeki bir alanın değerini Null olarak ayarlar. (değere sahip değil). |
CDaoRecordset::SetLockingMode | Düzenleme sırasında geçerli olacak kilitleme türünü gösteren bir değer ayarlar. |
CDaoRecordset::SetParamValue | Temel alınan DAOParameter nesnesinde depolanan belirtilen parametrenin geçerli değerini ayarlar |
CDaoRecordset::SetParamValueNull | Belirtilen parametrenin geçerli değerini Null (değer olmadan) olarak ayarlar. |
CDaoRecordset::SetPercentPosition | Geçerli kaydın konumunu, kayıt kümesindeki toplam kayıt sayısının yüzdesine karşılık gelen bir konuma ayarlar. |
CDaoRecordset::Update | Yeni veya Edit düzenlenmiş verileri veri kaynağına kaydederek veya AddNew işlemini tamamlar. |
Ortak Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CDaoRecordset::m_bCheckCacheForDirtyFields | Alanların otomatik olarak değiştirilmiş olarak işaretlenip işaretlenmediğini gösteren bir bayrak içerir. |
CDaoRecordset::m_nFields | Kayıt kümesi sınıfındaki alan veri üyesi sayısını ve veri kaynağından kayıt kümesi tarafından seçilen sütun sayısını içerir. |
CDaoRecordset::m_nParams | Kayıt kümesi sınıfındaki parametre veri üyesi sayısını içerir; kayıt kümesinin sorgusuyla geçirilen parametre sayısı |
CDaoRecordset::m_pDAORecordset | Kayıt kümesi nesnesini temel alan DAO arabirimine ilişkin bir işaretçi. |
CDaoRecordset::m_pDatabase | Bu sonuç kümesi için kaynak veritabanı. CDaoDatabase nesnesinin işaretçisini içerir. |
CDaoRecordset::m_strFilter | SQL WHERE deyimini oluşturmak için kullanılan bir dize içerir. |
CDaoRecordset::m_strSort | SQL ORDER BY deyimini oluşturmak için kullanılan bir dize içerir. |
Açıklamalar
"Kayıt kümeleri" CDaoRecordset
olarak bilinen nesneler aşağıdaki üç biçimde kullanılabilir:
Tablo türündeki kayıt kümeleri, tek bir veritabanı tablosundaki kayıtları incelemek, eklemek, değiştirmek veya silmek için kullanabileceğiniz bir temel tabloyu temsil eder.
Dinamik küme türündeki kayıt kümeleri, güncelleştirilebilir kayıtlara sahip olabilecek bir sorgunun sonucu olur. Bu kayıt kümeleri, temel alınan veritabanı tablosu veya tablolarındaki kayıtları incelemek, eklemek, değiştirmek veya silmek için kullanabileceğiniz bir kayıt kümesidir. Dinamik küme türündeki kayıt kümeleri, veritabanındaki bir veya daha fazla tablodan alanlar içerebilir.
Anlık görüntü türü kayıt kümeleri, verileri bulmak veya rapor oluşturmak için kullanabileceğiniz bir kayıt kümesinin statik bir kopyasıdır. Bu kayıt kümeleri bir veritabanındaki bir veya daha fazla tablodan alanlar içerebilir, ancak güncelleştirilemez.
Her kayıt kümesi biçimi, kayıt kümesi açıldığında sabit olan bir kayıt kümesini temsil eder. Tablo türündeki bir kayıt kümesinde veya dinamik küme türündeki kayıt kümesinde bir kayda kaydırdığınızda, kayıt kümesi açıldıktan sonra kayıtta yapılan değişiklikleri (diğer kullanıcılar veya uygulamanızdaki diğer kayıt kümeleri) yansıtır. (Anlık görüntü türü kayıt kümesi güncelleştirilemez.) doğrudan kullanabilir CDaoRecordset
veya uygulamasından CDaoRecordset
uygulamaya özgü bir kayıt kümesi sınıfı türetebilirsiniz. Ardından şunları yapabilirsiniz:
Kayıtlar arasında ilerleyin.
Bir dizin ayarlayın ve Seek kullanarak kayıtları hızla arayın (yalnızca tablo türündeki kayıt kümeleri).
Dize karşılaştırması temelinde kayıtları bulun: "<", "<=", "=", ">=" veya ">" (dinamik küme türü ve anlık görüntü türü kayıt kümeleri).
Kayıtları güncelleştirin ve bir kilitleme modu belirtin (anlık görüntü türü kayıt kümeleri dışında).
Veri kaynağında bulunan kayıtlardan hangi kayıtları seçtiğini kısıtlamak için kayıt kümesini filtreleyin.
Kayıt kümesini sıralayın.
Çalışma zamanına kadar bilinmeyen bilgilerle seçimini özelleştirmek için kayıt kümesini parametreleştirin.
Sınıfı CDaoRecordset
, sınıfına CRecordset
benzer bir arabirim sağlar. Temel fark, sınıfın CDaoRecordset
OLE'yi temel alan bir Veri Erişim Nesnesi (DAO) aracılığıyla verilere erişmesidir. Sınıf CRecordset
, DBMS'ye Açık Veritabanı Bağlantısı (ODBC) ve bu DBMS için bir ODBC sürücüsü aracılığıyla erişir.
Not
DAO veritabanı sınıfları, Açık Veritabanı Bağlantısı (ODBC) temelinde 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ı ile ODBC veri kaynaklarına erişmeye devam edebilirsiniz; DAO sınıfları genellikle Microsoft Jet veritabanı altyapısına özgü olduklarından üstün özellikler sunar.
doğrudan kullanabilir CDaoRecordset
veya öğesinden CDaoRecordset
bir sınıf türetebilirsiniz. Her iki durumda da bir kayıt kümesi sınıfı kullanmak için bir veritabanı açın ve oluşturucuyu nesnenize CDaoDatabase
bir işaretçi geçirerek bir kayıt kümesi nesnesi oluşturma. Ayrıca bir CDaoRecordset
nesne oluşturabilir ve MFC'nin sizin için geçici CDaoDatabase
bir nesne oluşturmasına izin vekleyebilirsiniz. Ardından nesnenin tablo türü bir kayıt kümesi mi, dinamik küme türü kayıt kümesi mi yoksa anlık görüntü türü kayıt kümesi mi olduğunu belirterek kayıt kümesinin Open member işlevini çağırın. Çağrısı Open
veritabanından verileri seçer ve ilk kaydı alır.
Kayıtlarda gezinmek ve bunlar üzerinde çalışmak için nesnenin üye işlevlerini ve veri üyelerini kullanın. Kullanılabilir işlemler, nesnenin tablo türü kayıt kümesi, dinamik küme türü kayıt kümesi veya anlık görüntü türü kayıt kümesi olmasına ve güncelleştirilebilir veya salt okunur olmasına bağlıdır; bu, veritabanının veya Açık Veritabanı Bağlantısı (ODBC) veri kaynağının özelliğine bağlıdır. Çağrıdan sonra Open
değiştirilmiş veya eklenmiş olabilecek kayıtları yenilemek için nesnenin Requery üye işlevini çağırın. Nesnenin üye işlevini çağırın Close
ve bitirdiğinizde nesneyi yok edin.
CDaoRecordset
veya CDaoRecordset
türetilmiş sınıfınızın CDaoRecordset
tür açısından güvenli C++ üyeleri aracılığıyla kayıt alanlarının okunmasını ve güncelleştirilmesini desteklemek için DAO kayıt alanı değişimini (DFX) kullanır. GetFieldValue ve SetFieldValue kullanarak DFX mekanizmasını kullanmadan veritabanındaki sütunların dinamik bağlamasını da uygulayabilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "Kayıt Kümesi Nesnesi" konusuna bakın.
Devralma Hiyerarşisi
CDaoRecordset
Gereksinimler
Üstbilgi: afxdao.h
CDaoRecordset::AddNew
Tablo türüne veya dynaset türündeki kayıt kümesine yeni bir kayıt eklemek için bu üye işlevini çağırabilirsiniz.
virtual void AddNew();
Açıklamalar
Kaydın alanları başlangıçta Null olur. (Veritabanı terminolojisinde Null değerin olmadığı anlamına gelir ve C++'da NULL ile aynı değildir.) İşlemi tamamlamak için Update member işlevini çağırmanız gerekir. Update
değişikliklerinizi veri kaynağına kaydeder.
Dikkat
Bir kaydı düzenler ve aramadan Update
başka bir kayda kaydırırsanız, değişiklikleriniz uyarı olmadan kaybolur.
AddNew çağrısı yaparak dinamik küme türündeki bir kayıt kümesine kayıt eklerseniz kayıt kayıt kümesinde görünür ve tüm yeni CDaoRecordset
nesneler için görünür hale geldiği temel tabloya eklenir.
Yeni kaydın konumu kayıt kümesinin türüne bağlıdır:
- Yeni kaydın eklendiği dynaset türündeki kayıt kümesi garanti değildir. Bu davranış, performans ve eşzamanlılık nedeniyle Microsoft Jet 3.0 ile değişti. Hedefiniz yeni eklenen kaydı geçerli kayıt yapmaksa, son değiştirilen kaydın yer işaretini alın ve bu yer işaretine geçin:
rs.SetBookmark(rs.GetLastModifiedBookmark());
- Dizininin belirtildiği tablo türündeki bir kayıt kümesinde, kayıtlar sıralama düzeninde uygun yerlerinde döndürülür. Dizin belirtilmediyse, kayıt kümesinin sonunda yeni kayıtlar döndürülür.
Kullanmadan AddNew
önce geçerli olan kayıt geçerli kalır. Yeni kaydı güncel hale getirmek istiyorsanız ve kayıt kümesi yer işaretlerini destekliyorsa, temel alınan DAO kayıt kümesi nesnesinin LastModified özellik ayarıyla tanımlanan yer işaretine SetBookmark'ı çağırın. Bunu yapmak, eklenen bir kayıttaki sayaç (otomatik artırma) alanlarının değerini belirlemek için yararlıdır. Daha fazla bilgi için bkz . GetLastModifiedBookmark.
Veritabanı işlemleri destekliyorsa, aramanızı AddNew
bir işlemin parçası yapabilirsiniz. İşlemler hakkında daha fazla bilgi için bkz. CDaoWorkspace sınıfı. çağırmadan önce CDaoWorkspace::BeginTrans'ı çağırmalısınız.AddNew
Üye işlevi çağrılmamış bir kayıt kümesini Open
çağırmak AddNew
geçersizdir. CDaoException
Eklenmeyecek bir kayıt kümesi çağırırsanız AddNew
bir oluşturulur. CanAppend'i çağırarak kayıt kümesinin güncelleştirilebilir olup olmadığını belirleyebilirsiniz.
Çerçeve, daO kayıt alanı değişimi (DFX) mekanizması tarafından veri kaynağındaki kayda yazılacağından emin olmak için değiştirilen alan veri üyelerini işaretler. Bir alanın değerinin değiştirilmesi genellikle alanı otomatik olarak kirli olarak ayarlar, bu nedenle nadiren SetFieldDirty'yi kendiniz çağırmanız gerekir, ancak bazen alan veri üyesindeki değerden bağımsız olarak sütunların açıkça güncelleştirildiğinden veya eklendiğinden emin olmak isteyebilirsiniz. DFX mekanizması, PSEUDO NULL kullanımını da kullanır. Daha fazla bilgi için bkz . CDaoFieldExchange::m_nOperation.
Çift arabelleğe alma mekanizması kullanılmıyorsa, alanın değerini değiştirmek alanı otomatik olarak kirli olarak ayarlamaz. Bu durumda, alanı açıkça kirli olarak ayarlamak gerekir. m_bCheckCacheForDirtyFields içindeki bayrak bu otomatik alan denetimini denetler.
Not
Kayıtlar çift arabelleğe alınırsa (yani, otomatik alan denetimi etkinleştirilirse), çağrılması CancelUpdate
üye değişkenlerini daha önce AddNew
sahip oldukları veya Edit
çağrıldıkları değerlere geri yükler.
İlgili bilgiler için DAO Yardımı'ndaki "AddNew Method", "CancelUpdate Yöntemi", "LastModified Özelliği" ve "EditMode Özelliği" konularına bakın.
CDaoRecordset::CanAppend
Daha önce açılmış kayıt kümesinin AddNew üye işlevini çağırarak yeni kayıtlar eklemenize izin verip vermediğini belirlemek için bu üye işlevini çağırın.
BOOL CanAppend() const;
Dönüş Değeri
Kayıt kümesi yeni kayıtlar eklemeye izin veriyorsa sıfır olmayan; aksi takdirde 0. CanAppend
kayıt kümesini salt okunur olarak açtıysanız 0 döndürür.
Açıklamalar
İlgili bilgiler için DAO Yardımı'ndaki "Ekleme Yöntemi" konusuna bakın.
CDaoRecordset::CanBookmark
Daha önce açılmış kayıt kümesinin yer işaretlerini kullanarak kayıtları ayrı ayrı işaretlemenize izin verip vermediğini belirlemek için bu üye işlevini çağırın.
BOOL CanBookmark();
Dönüş Değeri
Kayıt kümesi yer işaretlerini destekliyorsa sıfır olmayan, aksi takdirde 0.
Açıklamalar
Tamamen Microsoft Jet veritabanı altyapısı tablolarını temel alan kayıt kümeleri kullanıyorsanız, yer işaretleri yalnızca ileriye doğru kaydırma kayıt kümeleri olarak işaretlenmiş anlık görüntü türü kayıt kümeleri dışında kullanılabilir. Diğer veritabanı ürünleri (dış ODBC veri kaynakları) yer işaretlerini desteklemeyebilir.
İlgili bilgiler için DAO Yardımı'ndaki "Yer İşaretlenebilir Özellik" konusuna bakın.
CDaoRecordset::CancelUpdate
Üye CancelUpdate
işlevi, Düzenle veya EkleYeni işlem nedeniyle bekleyen güncelleştirmeleri iptal eder.
virtual void CancelUpdate();
Açıklamalar
Örneğin, bir uygulama veya AddNew
üye işlevini çağırırsa Edit
ve çağırmadıysaUpdate
, CancelUpdate
sonrasında veya çağrıldıktan sonra Edit
AddNew
yapılan tüm değişiklikleri iptal eder.
Not
Kayıtlar çift arabelleğe alınırsa (yani, otomatik alan denetimi etkinleştirilirse), çağrılması CancelUpdate
üye değişkenlerini daha önce AddNew
sahip oldukları veya Edit
çağrıldıkları değerlere geri yükler.
Bekleyen bir veya AddNew
işlemi yoksaEdit
, CancelUpdate
MFC'nin bir özel durum oluşturmasına neden olur. İptal edilebilecek bekleyen bir işlem olup olmadığını belirlemek için GetEditMode üye işlevini çağırın.
İlgili bilgiler için DAO Yardımı'ndaki "CancelUpdate Yöntemi" konusuna bakın.
CDaoRecordset::CanRestart
Kayıt kümesinin üye işlevini çağırarak sorgunun yeniden başlatılmasına (kayıtlarını yenilemek için) izin verip vermediğini belirlemek için bu üye işlevini çağırın Requery
.
BOOL CanRestart();
Dönüş Değeri
Sıfır olmayan ise Requery
, kayıt kümesinin sorgusunu yeniden çalıştırmak için çağrılabilir, aksi takdirde 0.
Açıklamalar
Tablo türündeki kayıt kümeleri desteklemez Requery
.
DesteklenmiyorsaRequery
, verileri yenilemek için Kapat'ı ve ardından Aç'ı çağırın. Parametre değerleri değiştirildikten sonra kayıt kümesi nesnesinin temel parametre sorgusunu güncelleştirmek için çağırabilirsiniz Requery
.
İlgili bilgiler için DAO Yardımı'ndaki "Yeniden Başlatılabilir Özellik" konusuna bakın.
CDaoRecordset::CanScroll
Kayıt kümesinin kaydırmaya izin verip vermediğini belirlemek için bu üye işlevini çağırın.
BOOL CanScroll() const;
Dönüş Değeri
Kayıtları kaydırabiliyorsanız sıfır olmayan, aksi takdirde 0.
Açıklamalar
ile dbForwardOnly
Aç'ı çağırırsanız kayıt kümesi yalnızca ileri doğru kaydırılabilir.
İlgili bilgiler için DAO Yardımı'ndaki "Geçerli Kayıt İşaretçisini DAO ile Konumlandırma" konusuna bakın.
CDaoRecordset::CanTransact
Kayıt kümesinin işlemlere izin verip vermediğini belirlemek için bu üye işlevini çağırın.
BOOL CanTransact();
Dönüş Değeri
Temel alınan veri kaynağı işlemleri destekliyorsa sıfır olmayan, aksi takdirde 0.
Açıklamalar
İlgili bilgiler için DAO Yardımı'ndaki "İşlemler Özelliği" konusuna bakın.
CDaoRecordset::CanUpdate
Kayıt kümesinin güncelleştirilip güncelleştirilemeyeceğini belirlemek için bu üye işlevini çağırın.
BOOL CanUpdate() const;
Dönüş Değeri
Kayıt kümesinin güncelleştirilip güncelleştirilemediğini (kayıtları ekleme, güncelleştirme ve silme) sıfır olmayan, aksi takdirde 0.
Açıklamalar
Temel alınan veri kaynağı salt okunursa veya kayıt kümesi için Aç'ı çağırdığınızda nOptions için belirttiyseniz dbReadOnly
kayıt kümesi salt okunur olabilir.
İlgili bilgiler için DAO Yardımı'ndaki "AddNew Method", "Edit Method", "Delete Method", "Update Method" ve "Updatable Property" konularına bakın.
CDaoRecordset::CDaoRecordset
Bir CDaoRecordset
nesne oluşturur.
CDaoRecordset(CDaoDatabase* pDatabase = NULL);
Parametreler
pDatabase
CDaoDatabase nesnesine veya NULL değerine ilişkin bir işaretçi içerir. NULL değilse ve nesnenin CDaoDatabase
Open
üye işlevi veri kaynağına bağlamak için çağrılmadıysa, kayıt kümesi kendi Open çağrısı sırasında sizin için açmaya çalışır. NULL geçirirseniz, kayıt kümesi sınıfınızı öğesinden CDaoRecordset
türetdiyseniz belirttiğiniz veri kaynağı bilgileri kullanılarak sizin için bir CDaoDatabase
nesne oluşturulur ve bağlanır.
Açıklamalar
Doğrudan kullanabilir CDaoRecordset
veya uygulamasından CDaoRecordset
uygulamaya özgü bir sınıf türetebilirsiniz. Kayıt kümesi sınıflarınızı türetmek için ClassWizard kullanabilirsiniz.
Not
Bir CDaoRecordset
sınıf türetirseniz, türetilmiş sınıfınızın kendi oluşturucusunu sağlaması gerekir. Türetilmiş sınıfınızın oluşturucusunda oluşturucuyu CDaoRecordset::CDaoRecordset
çağırın ve uygun parametreleri ona geçirin.
Sizin için otomatik olarak bir CDaoDatabase
nesnenin oluşturup bağlanması için null değerini kayıt kümesi oluşturucunuza geçirin. Bu, kayıt kümenizi oluşturmadan önce bir nesne oluşturmanızı ve bağlamanızı gerektirmeyen kullanışlı bir CDaoDatabase
kısayoldur. CDaoDatabase
Nesne açık değilse, sizin için varsayılan çalışma alanını kullanan bir CDaoWorkspace nesnesi de oluşturulur. Daha fazla bilgi için bkz . CDaoDatabase::CDaoDatabase.
CDaoRecordset::Close
Bir CDaoRecordset
nesneyi kapatmak, nesneyi ilişkili veritabanındaki açık kayıt kümeleri koleksiyonundan kaldırır.
virtual void Close();
Açıklamalar
Nesneyi Close
yok CDaoRecordset
etmediğinden, aynı veri kaynağında veya farklı bir veri kaynağında çağırarak Open
nesneyi yeniden kullanabilirsiniz.
Bekleyen tüm AddNew veya Edit deyimleri iptal edilir ve bekleyen tüm işlemler geri alınır. Bekleyen eklemeleri veya düzenlemeleri korumak istiyorsanız, her kayıt kümesini çağırmadan önce Update'i çağırabilirsiniz.Close
çağrısı yaptıktan sonra yeniden arayabilirsiniz Open
Close
. Bu, kayıt kümesi nesnesini yeniden kullanmanıza olanak tanır. Mümkünse Requery'yi çağırmak daha iyi bir alternatiftir.
İlgili bilgiler için DAO Yardımı'ndaki "Yöntemi Kapat" konusuna bakın.
CDaoRecordset::D elete
Açık bir dynaset türü veya tablo türü kayıt kümesi nesnesindeki geçerli kaydı silmek için bu üye işlevini çağırın.
virtual void Delete();
Açıklamalar
Başarılı bir silme işleminden sonra, kayıt kümesinin alan veri üyeleri Null değerine ayarlanır ve silinen kayıttan uzaklaşmak için kayıt kümesi gezinti üyesi işlevlerinden birini ( Move, Seek, SetBookmark vb.) açıkça çağırmanız gerekir. Kayıt kümesinden kayıtları sildiğinizde, çağırmadan Delete
önce kayıt kümesinde geçerli bir kayıt olmalıdır; aksi takdirde, MFC bir özel durum oluşturur.
Delete
geçerli kaydı kaldırır ve erişilemez hale getirir. Silinen kaydı düzenleyemez veya kullanamazsınız ancak geçerli kalır. Ancak başka bir kayda geçtikten sonra silinen kaydı yeniden geçerli yapamazsınız.
Dikkat
kayıt kümesinin güncelleştirilebilir olması ve çağırdığınızda Delete
kayıt kümesinde geçerli bir kayıt olması gerekir. Örneğin, bir kaydı silerseniz ancak yeniden aramadan Delete
önce yeni bir kayda kaydırmıyorsanız, Delete
bir CDaoException oluşturur.
İşlemleri kullanıyorsanız ve CDaoWorkspace::Rollback üye işlevini çağırırsanız kaydın geri alma işlemini kaldırabilirsiniz. Temel tablo art arda silme ilişkisindeki birincil tabloysa, geçerli kaydın silinmesi yabancı tablodaki bir veya daha fazla kaydı da silebilir. Daha fazla bilgi için DAO Yardımı'ndaki "art arda silme" tanımına bakın.
ve Edit
'den farklı AddNew
olarak Delete
çağrısının ardından Update
çağrısı gelmez.
İlgili bilgiler için DAO Yardımı'ndaki "AddNew Method", "Edit Method", "Delete Method", "Update Method" ve "Updatable Property" konularına bakın.
CDaoRecordset::D oFieldExchange
Çerçeve, kayıt kümesi nesnenizin alan veri üyeleriyle veri kaynağındaki geçerli kaydın ilgili sütunları arasında otomatik olarak veri alışverişi yapmak için bu üye işlevini çağırır.
virtual void DoFieldExchange(CDaoFieldExchange* pFX);
Parametreler
Pfx
Bir nesnenin işaretçisini CDaoFieldExchange
içerir. Çerçeve, alan değişimi işlemi için bir bağlam belirtmek üzere bu nesneyi zaten ayarlamış olacaktır.
Açıklamalar
Ayrıca, varsa parametre veri üyelerinizi kayıt kümesinin seçimi için SQL deyimi dizesindeki parametre yer tutucularına bağlar. DAO kayıt alanı değişimi (DFX) olarak adlandırılan alan verilerinin değişimi her iki yönde de çalışır: kayıt kümesi nesnesinin alan veri üyelerinden veri kaynağındaki kaydın alanlarına ve veri kaynağındaki kayıttan kayıt kümesi nesnesine. Sütunları dinamik olarak bağlarsanız uygulamanız DoFieldExchange
gerekmez.
Türetilmiş kayıt kümesi sınıfınız için uygulamak DoFieldExchange
için normalde gerçekleştirmeniz gereken tek eylem, sınıfı ClassWizard ile oluşturmak ve alan veri üyelerinin adlarını ve veri türlerini belirtmektir. Ayrıca ClassWizard'ın parametre veri üyelerini belirtmek için yazdığı koda da kod ekleyebilirsiniz. Tüm alanlar dinamik olarak bağlanacaksa, parametre veri üyelerini belirtmediğiniz sürece bu işlev etkin değildir.
ClassWizard ile türetilmiş kayıt kümesi sınıfınızı bildirdiğinizde, sihirbaz sizin için aşağıdaki örneğe benzer bir geçersiz kılma DoFieldExchange
yazar:
void CCustSet::DoFieldExchange(CDaoFieldExchange *pFX)
{
pFX->SetFieldType(CDaoFieldExchange::param);
DFX_Text(pFX, _T("Param"), m_strParam);
pFX->SetFieldType(CDaoFieldExchange::outputColumn);
DFX_Short(pFX, _T("EmployeeID"), m_EmployeeID);
DFX_Text(pFX, _T("LastName"), m_LastName);
DFX_Short(pFX, _T("Age"), m_Age);
DFX_DateTime(pFX, _T("hire_date"), m_hire_date);
DFX_DateTime(pFX, _T("termination_date"), m_termination_date);
CDaoRecordset::DoFieldExchange(pFX);
}
CDaoRecordset::Edit
Geçerli kayıtta değişikliklere izin vermek için bu üye işlevini çağırın.
virtual void Edit();
Açıklamalar
Üye işlevini çağırdığınızda Edit
, geçerli kaydın alanlarında yapılan değişiklikler kopyalama arabelleğine kopyalanır. Kayıtta istediğiniz değişiklikleri yaptıktan sonra, değişikliklerinizi kaydetmek için arayın Update
. Edit
kayıt kümesinin veri üyelerinin değerlerini kaydeder. çağrısı Edit
yaparsanız, değişiklik yapın ve yeniden çağırın Edit
; kaydın değerleri ilk Edit
çağrıdan önceki değerlerine geri yüklenir.
Dikkat
Bir kaydı düzenler ve sonra başka bir kayda taşınan herhangi bir işlemi ilk çağrılmadan Update
gerçekleştirirseniz, değişiklikleriniz uyarı olmadan kaybolur. Ayrıca, kayıt kümesini veya üst veritabanını kapatırsanız, düzenlenen kaydınız uyarı olmadan atılır.
Bazı durumlarda, sütunu Null (veri içermeyen) yaparak güncelleştirmek isteyebilirsiniz. Bunu yapmak için, Null alanını işaretlemek için TRUE parametresiyle çağrısı SetFieldNull
yapın; bu, sütunun güncelleştirilmesine de neden olur. Değeri değişmemiş olsa bile bir alanın veri kaynağına yazılmasını istiyorsanız TRUE parametresiyle çağrısında SetFieldDirty
bulunun. Bu, alanda Null değeri olsa bile çalışır.
Çerçeve, daO kayıt alanı değişimi (DFX) mekanizması tarafından veri kaynağındaki kayda yazılacağından emin olmak için değiştirilen alan veri üyelerini işaretler. Bir alanın değerinin değiştirilmesi genellikle alanı otomatik olarak kirli olarak ayarlar, bu nedenle nadiren SetFieldDirty'yi kendiniz çağırmanız gerekir, ancak bazen alan veri üyesindeki değerden bağımsız olarak sütunların açıkça güncelleştirildiğinden veya eklendiğinden emin olmak isteyebilirsiniz. DFX mekanizması, PSEUDO NULL kullanımını da kullanır. Daha fazla bilgi için bkz . CDaoFieldExchange::m_nOperation.
Çift arabelleğe alma mekanizması kullanılmıyorsa, alanın değerini değiştirmek alanı otomatik olarak kirli olarak ayarlamaz. Bu durumda, alanı açıkça kirli olarak ayarlamak gerekir. m_bCheckCacheForDirtyFields içindeki bayrak bu otomatik alan denetimini denetler.
Kayıt kümesi nesnesi çok kullanıcılı bir ortamda kötümser bir şekilde kilitlendiğinde, kayıt güncelleştirme tamamlanana kadar kullanılan zamandan Edit
itibaren kilitli kalır. Kayıt kümesi iyimser bir şekilde kilitlenmişse, kayıt kilitlenir ve veritabanında güncelleştirilmeden hemen önce önceden düzenlenmiş kayıtla karşılaştırılır. çağırdığınızdan Edit
Update
beri kayıt değiştiyse işlem başarısız olur ve MFC bir özel durum oluşturur. ile SetLockingMode
kilitleme modunu değiştirebilirsiniz.
Not
İyimser kilitleme her zaman ODBC ve yüklenebilir ISAM gibi dış veritabanı biçimlerinde kullanılır.
çağrısından Edit
sonra geçerli kayıt güncel kalır. çağrısı Edit
yapmak için geçerli bir kayıt olmalıdır. Geçerli kayıt yoksa veya kayıt kümesi açık bir tablo türüne veya dinamik küme türündeki kayıt kümesi nesnesine başvurmuyorsa, bir özel durum oluşur. Çağırma Edit
, aşağıdaki koşullarda bir CDaoException
oluşturmasına neden olur:
Geçerli kayıt yok.
Veritabanı veya kayıt kümesi salt okunurdur.
Kayıttaki hiçbir alan güncelleştirilebilir değil.
Veritabanı veya kayıt kümesi başka bir kullanıcı tarafından özel kullanım için açıldı.
Başka bir kullanıcı kaydınızı içeren sayfayı kilitledi.
Veri kaynağı işlemleri destekliyorsa, çağrıyı Edit
bir işlemin parçası yapabilirsiniz. Çağırmadan Edit
önce ve kayıt kümesi açıldıktan sonra aramanız CDaoWorkspace::BeginTrans
gerekir. Çağırma CDaoWorkspace::CommitTrans
, işlemi tamamlamak için çağrının Update
yerini tutmaz Edit
. İşlemler hakkında daha fazla bilgi için bkz. sınıfı CDaoWorkspace
.
İlgili bilgiler için DAO Yardımı'ndaki "AddNew Method", "Edit Method", "Delete Method", "Update Method" ve "Updatable Property" konularına bakın.
CDaoRecordset::FillCache
Kayıt kümesinden belirtilen sayıda kaydı önbelleğe almak için bu üye işlevini çağırın.
void FillCache(
long* pSize = NULL,
COleVariant* pBookmark = NULL);
Parametreler
pSize
Önbelleği dolduracak satır sayısını belirtir. Bu parametreyi atlarsanız, değer temel alınan DAO nesnesinin CacheSize özellik ayarı tarafından belirlenir.
pBookmark
Yer işareti belirten bir COleVariant . Önbellek, bu yer işareti tarafından belirtilen kayıttan başlayarak doldurulur. Bu parametreyi atlarsanız, temel alınan DAO nesnesinin CacheStart özelliği tarafından belirtilen kayıttan başlayarak önbellek doldurulur.
Açıklamalar
Önbelleğe alma, uzak sunucudan veri alan veya getiren bir uygulamanın performansını artırır. Önbellek, uygulama çalışırken verilerin büyük olasılıkla yeniden isteneceği varsayımı üzerine sunucudan en son getirilen verileri tutan yerel bellek alanıdır. Veriler istendiğinde, Microsoft Jet veritabanı altyapısı verileri sunucudan getirmek yerine önce önbelleği denetler ve bu da daha fazla zaman alır. ODBC olmayan veri kaynaklarında veri önbelleğe alma özelliğinin kullanılması, veriler önbelleğe kaydedilmediğinden hiçbir etkisi olmaz.
Önbelleğin getirildikleri sırada kayıtlarla doldurulmalarını beklemek yerine, istediğiniz zaman üye işlevini çağırarak FillCache
önbelleği açıkça doldurabilirsiniz. Bu, önbelleği doldurmanın daha hızlı bir yoludur çünkü FillCache
bir kerede bir kayıt yerine aynı anda birkaç kayıt getirir. Örneğin, kayıtların her bir filtresi görüntülenirken, bir sonraki kayıt ekranını getirmek için uygulama çağrınızın FillCache
olmasını sağlayabilirsiniz.
Kayıt kümesi nesneleriyle erişilen tüm ODBC veritabanları yerel önbelleğe sahip olabilir. Önbelleği oluşturmak için uzak veri kaynağından bir kayıt kümesi nesnesi açın ve kayıt kümesinin SetCacheSize
ve SetCacheStart
üye işlevlerini çağırın. lSize ve lBookmark ile belirtilen SetCacheSize
SetCacheStart
aralığın kısmen veya tamamen dışında bir aralık oluşturursa, kayıt kümesinin bu aralığın dışındaki bölümü yoksayılır ve önbelleğe yüklenmez. FillCache
Uzak veri kaynağında kalandan daha fazla kayıt isterse, yalnızca kalan kayıtlar getirilir ve hiçbir özel durum oluşturulur.
Önbellekten getirilen kayıtlar, diğer kullanıcılar tarafından kaynak verilerde eşzamanlı olarak yapılan değişiklikleri yansıtmaz.
FillCache
yalnızca henüz önbelleğe alınmamış kayıtları getirir. Önbelleğe alınan tüm verilerin güncelleştirmeyi zorlamak için üye işlevini 0'a eşit bir lSize parametresiyle çağırın SetCacheSize
, ilk olarak istediğiniz önbelleğin boyutuna eşit lSize parametresiyle yeniden çağırın SetCacheSize
ve çağrısı yapınFillCache
.
İlgili bilgiler için DAO Yardımı'ndaki "FillCache Yöntemi" konusuna bakın.
CDaoRecordset::Find
Bir karşılaştırma işleci kullanarak dinamik küme veya anlık görüntü türü kayıt kümesindeki belirli bir dizeyi bulmak için bu üye işlevini çağırın.
virtual BOOL Find(
long lFindType,
LPCTSTR lpszFilter);
Parametreler
lFindType
İstenen Find işleminin türünü gösteren değer. Olası değerler:
AFX_DAO_NEXT Eşleşen dizenin sonraki konumunu bulun.
AFX_DAO_PREV Eşleşen dizenin önceki konumunu bulun.
AFX_DAO_FIRST Eşleşen dizenin ilk konumunu bulun.
AFX_DAO_LAST Eşleşen dizenin son konumunu bulun.
lpszFilter
Kaydı bulmak için kullanılan dize ifadesi (WHERE sözcüğü olmayan bir SQL deyimindeki WHERE yan tümcesi gibi). Örneğin:
rs.Find(AFX_DAO_FIRST, _T("EmployeeID = 7"));
rs.Find(AFX_DAO_NEXT, _T("LastName = 'Jones'"));
Dönüş Değeri
Eşleşen kayıtlar bulunursa sıfır olmayan, aksi takdirde 0.
Açıklamalar
Dizenin ilk, sonraki, önceki veya son örneğini bulabilirsiniz. Find
sanal bir işlevdir, bu nedenle bunu geçersiz kılabilir ve kendi uygulamanızı ekleyebilirsiniz. , , ve üye işlevleri üye işlevini çağırırFind
, böylece tüm Bul işlemlerinin davranışını denetlemek için kullanabilirsinizFind
.FindPrev
FindNext
FindLast
FindFirst
Tablo türündeki kayıt kümesindeki bir kaydı bulmak için Seek member işlevini çağırın.
İpucu
Sahip olduğunuz kayıt kümesi ne kadar küçük olursa, o kadar etkili Find
olur. Genel olarak ve özellikle ODBC verilerinde, yalnızca istediğiniz kayıtları alan yeni bir sorgu oluşturmak daha iyidir.
İlgili bilgiler için DAO Yardımı'ndaki "FindFirst, FindLast, FindNext, FindPrevious Methods" konusuna bakın.
CDaoRecordset::FindFirst
Belirtilen koşulla eşleşen ilk kaydı bulmak için bu üye işlevini çağırın.
BOOL FindFirst(LPCTSTR lpszFilter);
Parametreler
lpszFilter
Kaydı bulmak için kullanılan dize ifadesi (WHERE sözcüğü olmayan bir SQL deyimindeki WHERE yan tümcesi gibi).
Dönüş Değeri
Eşleşen kayıtlar bulunursa sıfır olmayan, aksi takdirde 0.
Açıklamalar
FindFirst
Üye işlevi, aramaya kayıt kümesinin başından başlar ve kayıt kümesinin sonuna kadar arar.
Aramanıza tüm kayıtları dahil etmek istiyorsanız (yalnızca belirli bir koşulu karşılayanları değil) kayıttan kayda geçmek için Taşıma işlemlerinden birini kullanın. Tablo türündeki kayıt kümesindeki bir kaydı bulmak için üye işlevini çağırın Seek
.
Ölçütle eşleşen bir kayıt bulunamazsa, geçerli kayıt işaretçisi belirsizdir ve FindFirst
sıfır döndürür. Kayıt kümesi ölçütleri karşılayan birden fazla kayıt içeriyorsa, FindFirst
ilk oluşumu bulur, FindNext
sonraki oluşumu bulur vb.
Dikkat
Geçerli kaydı düzenlerseniz, başka bir kayda geçmeden önce üye işlevini çağırarak Update
değişiklikleri kaydettiğinizden emin olun. Güncelleştirmeden başka bir kayda geçerseniz, değişiklikleriniz uyarı olmadan kaybolur.
Find
Üye işlevleri, konumdan ve aşağıdaki tabloda belirtilen yönde arama yapar:
İşlemleri bulma | Başla | Arama yönü |
---|---|---|
FindFirst |
Kayıt kümesinin başlangıcı | Kayıt kümesi sonu |
FindLast |
Kayıt kümesi sonu | Kayıt kümesinin başlangıcı |
FindNext |
Geçerli kayıt | Kayıt kümesi sonu |
FindPrevious |
Geçerli kayıt | Kayıt kümesinin başlangıcı |
Not
çağrısı FindLast
yaptığınızda, bu henüz yapılmamışsa, Microsoft Jet veritabanı altyapısı aramaya başlamadan önce kayıt kümenizi tamamen doldurur. İlk arama sonraki aramalardan daha uzun sürebilir.
Bul işlemlerinden birini kullanmak veya MoveNext
çağrısıyla MoveFirst
aynı değildir, ancak bu durum yalnızca bir koşul belirtmeden ilk veya sonraki kaydı geçerli hale getirir. Taşıma işlemiyle Bir Bul işlemini izleyebilirsiniz.
Bul işlemlerini kullanırken aşağıdakileri göz önünde bulundurun:
Sıfır olmayan bir değer döndürürse
Find
geçerli kayıt tanımlanmamıştır. Bu durumda, geçerli kayıt işaretçisini geçerli bir kayda geri konumlandırmanız gerekir.Find işlemini yalnızca ileriye doğru kaydırma anlık görüntü türü kayıt kümesiyle kullanamazsınız.
Microsoft Jet veritabanı altyapısının ABD sürümünü kullanmasanız bile tarih içeren alanları ararken ABD tarih biçimini (ay-gün-yıl) kullanmanız gerekir; aksi takdirde eşleşen kayıtlar bulunamayabilir.
ODBC veritabanları ve büyük dinamik kümelerle çalışırken, özellikle büyük kayıt kümeleriyle çalışırken Bul işlemlerini kullanmanın yavaş olduğunu fark edebilirsiniz. Özelleştirilmiş ORDERBY veya WHERE yan tümceleri, parametre sorguları veya
CDaoQuerydef
belirli dizinlenmiş kayıtları alan nesnelerle SQL sorgularını kullanarak performansı geliştirebilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "FindFirst, FindLast, FindNext, FindPrevious Methods" konusuna bakın.
CDaoRecordset::FindLast
Belirtilen koşulla eşleşen son kaydı bulmak için bu üye işlevini çağırın.
BOOL FindLast(LPCTSTR lpszFilter);
Parametreler
lpszFilter
Kaydı bulmak için kullanılan dize ifadesi (WHERE sözcüğü olmayan bir SQL deyimindeki WHERE yan tümcesi gibi).
Dönüş Değeri
Eşleşen kayıtlar bulunursa sıfır olmayan, aksi takdirde 0.
Açıklamalar
FindLast
Üye işlevi, aramasına kayıt kümesinin sonunda başlar ve kayıt kümesinin başına doğru geriye doğru arar.
Aramanıza tüm kayıtları dahil etmek istiyorsanız (yalnızca belirli bir koşulu karşılayanları değil) kayıttan kayda geçmek için Taşıma işlemlerinden birini kullanın. Tablo türündeki kayıt kümesindeki bir kaydı bulmak için üye işlevini çağırın Seek
.
Ölçütle eşleşen bir kayıt bulunamazsa, geçerli kayıt işaretçisi belirsizdir ve FindLast
sıfır döndürür. Kayıt kümesi ölçütleri karşılayan birden fazla kayıt içeriyorsa, FindFirst
ilk oluşumu bulur, FindNext
ilk oluşumdan sonraki oluşumu bulur ve bu şekilde devam eder.
Dikkat
Geçerli kaydı düzenlerseniz, başka bir kayda geçmeden önce üye işlevini çağırarak Update
değişiklikleri kaydettiğinizden emin olun. Güncelleştirmeden başka bir kayda geçerseniz, değişiklikleriniz uyarı olmadan kaybolur.
Bul işlemlerinden birini kullanmak veya MoveNext
çağrısıyla MoveFirst
aynı değildir, ancak bu durum yalnızca bir koşul belirtmeden ilk veya sonraki kaydı geçerli hale getirir. Taşıma işlemiyle Bir Bul işlemini izleyebilirsiniz.
Bul işlemlerini kullanırken aşağıdakileri göz önünde bulundurun:
Sıfır olmayan bir değer döndürürse
Find
geçerli kayıt tanımlanmamıştır. Bu durumda, geçerli kayıt işaretçisini geçerli bir kayda geri konumlandırmanız gerekir.Find işlemini yalnızca ileriye doğru kaydırma anlık görüntü türü kayıt kümesiyle kullanamazsınız.
Microsoft Jet veritabanı altyapısının ABD sürümünü kullanmasanız bile tarih içeren alanları ararken ABD tarih biçimini (ay-gün-yıl) kullanmanız gerekir; aksi takdirde eşleşen kayıtlar bulunamayabilir.
ODBC veritabanları ve büyük dinamik kümelerle çalışırken, özellikle büyük kayıt kümeleriyle çalışırken Bul işlemlerini kullanmanın yavaş olduğunu fark edebilirsiniz. Özelleştirilmiş ORDERBY veya WHERE yan tümceleri, parametre sorguları veya
CDaoQuerydef
belirli dizinlenmiş kayıtları alan nesnelerle SQL sorgularını kullanarak performansı geliştirebilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "FindFirst, FindLast, FindNext, FindPrevious Methods" konusuna bakın.
CDaoRecordset::FindNext
Belirtilen koşulla eşleşen bir sonraki kaydı bulmak için bu üye işlevini çağırın.
BOOL FindNext(LPCTSTR lpszFilter);
Parametreler
lpszFilter
Kaydı bulmak için kullanılan dize ifadesi (WHERE sözcüğü olmayan bir SQL deyimindeki WHERE yan tümcesi gibi).
Dönüş Değeri
Eşleşen kayıtlar bulunursa sıfır olmayan, aksi takdirde 0.
Açıklamalar
FindNext
Üye işlevi aramasına geçerli kayıtta başlar ve kayıt kümesinin sonuna kadar arar.
Aramanıza tüm kayıtları dahil etmek istiyorsanız (yalnızca belirli bir koşulu karşılayanları değil) kayıttan kayda geçmek için Taşıma işlemlerinden birini kullanın. Tablo türündeki kayıt kümesindeki bir kaydı bulmak için üye işlevini çağırın Seek
.
Ölçütle eşleşen bir kayıt bulunamazsa, geçerli kayıt işaretçisi belirsizdir ve FindNext
sıfır döndürür. Kayıt kümesi ölçütleri karşılayan birden fazla kayıt içeriyorsa, FindFirst
ilk oluşumu bulur, FindNext
sonraki oluşumu bulur vb.
Dikkat
Geçerli kaydı düzenlerseniz, başka bir kayda geçmeden önce üye işlevini çağırarak Update
değişiklikleri kaydettiğinizden emin olun. Güncelleştirmeden başka bir kayda geçerseniz, değişiklikleriniz uyarı olmadan kaybolur.
Bul işlemlerinden birini kullanmak veya MoveNext
çağrısıyla MoveFirst
aynı değildir, ancak bu durum yalnızca bir koşul belirtmeden ilk veya sonraki kaydı geçerli hale getirir. Taşıma işlemiyle Bir Bul işlemini izleyebilirsiniz.
Bul işlemlerini kullanırken aşağıdakileri göz önünde bulundurun:
Sıfır olmayan bir değer döndürürse
Find
geçerli kayıt tanımlanmamıştır. Bu durumda, geçerli kayıt işaretçisini geçerli bir kayda geri konumlandırmanız gerekir.Find işlemini yalnızca ileriye doğru kaydırma anlık görüntü türü kayıt kümesiyle kullanamazsınız.
Microsoft Jet veritabanı altyapısının ABD sürümünü kullanmasanız bile tarih içeren alanları ararken ABD tarih biçimini (ay-gün-yıl) kullanmanız gerekir; aksi takdirde eşleşen kayıtlar bulunamayabilir.
ODBC veritabanları ve büyük dinamik kümelerle çalışırken, özellikle büyük kayıt kümeleriyle çalışırken Bul işlemlerini kullanmanın yavaş olduğunu fark edebilirsiniz. Özelleştirilmiş ORDERBY veya WHERE yan tümceleri, parametre sorguları veya
CDaoQuerydef
belirli dizinlenmiş kayıtları alan nesnelerle SQL sorgularını kullanarak performansı geliştirebilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "FindFirst, FindLast, FindNext, FindPrevious Methods" konusuna bakın.
CDaoRecordset::FindPrev
Belirtilen koşulla eşleşen önceki kaydı bulmak için bu üye işlevini çağırın.
BOOL FindPrev(LPCTSTR lpszFilter);
Parametreler
lpszFilter
Kaydı bulmak için kullanılan dize ifadesi (WHERE sözcüğü olmayan bir SQL deyimindeki WHERE yan tümcesi gibi).
Dönüş Değeri
Eşleşen kayıtlar bulunursa sıfır olmayan, aksi takdirde 0.
Açıklamalar
FindPrev
Üye işlevi aramasına geçerli kayıtta başlar ve kayıt kümesinin başına doğru geriye doğru arar.
Aramanıza tüm kayıtları dahil etmek istiyorsanız (yalnızca belirli bir koşulu karşılayanları değil) kayıttan kayda geçmek için Taşıma işlemlerinden birini kullanın. Tablo türündeki kayıt kümesindeki bir kaydı bulmak için üye işlevini çağırın Seek
.
Ölçütle eşleşen bir kayıt bulunamazsa, geçerli kayıt işaretçisi belirsizdir ve FindPrev
sıfır döndürür. Kayıt kümesi ölçütleri karşılayan birden fazla kayıt içeriyorsa, FindFirst
ilk oluşumu bulur, FindNext
sonraki oluşumu bulur vb.
Dikkat
Geçerli kaydı düzenlerseniz, başka bir kayda geçmeden önce üye işlevini çağırarak Update
değişiklikleri kaydettiğinizden emin olun. Güncelleştirmeden başka bir kayda geçerseniz, değişiklikleriniz uyarı olmadan kaybolur.
Bul işlemlerinden birini kullanmak veya MoveNext
çağrısıyla MoveFirst
aynı değildir, ancak bu durum yalnızca bir koşul belirtmeden ilk veya sonraki kaydı geçerli hale getirir. Taşıma işlemiyle Bir Bul işlemini izleyebilirsiniz.
Bul işlemlerini kullanırken aşağıdakileri göz önünde bulundurun:
Sıfır olmayan bir değer döndürürse
Find
geçerli kayıt tanımlanmamıştır. Bu durumda, geçerli kayıt işaretçisini geçerli bir kayda geri konumlandırmanız gerekir.Find işlemini yalnızca ileriye doğru kaydırma anlık görüntü türü kayıt kümesiyle kullanamazsınız.
Microsoft Jet veritabanı altyapısının ABD sürümünü kullanmasanız bile tarih içeren alanları ararken ABD tarih biçimini (ay-gün-yıl) kullanmanız gerekir; aksi takdirde eşleşen kayıtlar bulunamayabilir.
ODBC veritabanları ve büyük dinamik kümelerle çalışırken, özellikle büyük kayıt kümeleriyle çalışırken Bul işlemlerini kullanmanın yavaş olduğunu fark edebilirsiniz. Özelleştirilmiş ORDERBY veya WHERE yan tümceleri, parametre sorguları veya
CDaoQuerydef
belirli dizinlenmiş kayıtları alan nesnelerle SQL sorgularını kullanarak performansı geliştirebilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "FindFirst, FindLast, FindNext, FindPrevious Methods" konusuna bakın.
CDaoRecordset::GetAbsolutePosition
Kayıt kümesi nesnesinin geçerli kaydının kayıt numarasını döndürür.
long GetAbsolutePosition();
Dönüş Değeri
0'dan kayıt kümesindeki kayıt sayısına kadar olan bir tamsayı. Kayıt kümesindeki geçerli kaydın sıralı konumuna karşılık gelir.
Açıklamalar
Temel alınan DAO nesnesinin AbsolutePosition özellik değeri sıfır tabanlıdır; 0 ayarı kayıt kümesindeki ilk kayda başvurur. GetRecordCount'ı çağırarak kayıt kümesindeki doldurulmuş kayıtların sayısını belirleyebilirsiniz. Sayımı belirlemek için tüm kayıtlara erişmesi gerektiğinden çağırma GetRecordCount
biraz zaman alabilir.
Kayıt kümesinde hiçbir kayıt olmadığı gibi geçerli bir kayıt yoksa - 1 döndürülür. Geçerli kayıt silinirse, AbsolutePosition özellik değeri tanımlanmamıştır ve MFC başvuruluysa bir özel durum oluşturur. Dynaset türündeki kayıt kümeleri için, dizinin sonuna yeni kayıtlar eklenir.
Not
Bu özelliğin vekil kayıt numarası olarak kullanılması amaçlanmamıştır. Yer işaretleri hala belirli bir konuma geri dönmenin önerilen yoludur ve geçerli kaydı tüm kayıt kümesi nesneleri arasında konumlandırmanın tek yoludur. Özellikle, bir önceki kayıtlar silindiğinde belirli bir kaydın konumu değişir. Ayrıca, orderby yan tümcesi kullanılarak bir SQL deyimiyle oluşturulmadığı sürece kayıt kümesi içindeki tek tek kayıtların sırası garanti edilmediğinden, kayıt kümesi yeniden oluşturulursa belirli bir kaydın aynı mutlak konuma sahip olacağının güvencesi yoktur.
Not
Bu üye işlevi yalnızca dynaset türü ve anlık görüntü türü kayıt kümeleri için geçerlidir.
İlgili bilgiler için DAO Yardımı'ndaki "AbsolutePosition Özelliği" konusuna bakın.
CDaoRecordset::GetBookmark
Belirli bir kayıttaki yer işareti değerini almak için bu üye işlevini çağırın.
COleVariant GetBookmark();
Dönüş Değeri
Geçerli kayıtta yer işaretini temsil eden bir değer döndürür.
Açıklamalar
Bir kayıt kümesi nesnesi oluşturulduğunda veya açıldığında, kayıtlarından her birinin destekliyorsa zaten benzersiz bir yer işareti vardır. Kayıt kümesinin yer işaretlerini destekleyip desteklemediğini belirlemek için çağrısı CanBookmark
yapın.
Yer işaretinin değerini bir COleVariant
nesneye atayarak geçerli kayıt için yer işaretini kaydedebilirsiniz. Farklı bir kayda geçtikten sonra bu kayda hızla dönmek için, bu nesnenin COleVariant
değerine karşılık gelen bir parametreyle çağrısı SetBookmark
yapın.
Not
Requery çağrısı, DAO yer işaretlerini değiştirir.
İlgili bilgiler için DAO Yardımı'ndaki "Yer İşareti Özelliği" konusuna bakın.
CDaoRecordset::GetCacheSize
Önbelleğe alınan kayıt sayısını almak için bu üye işlevini çağırın.
long GetCacheSize();
Dönüş Değeri
ODBC veri kaynağından yerel olarak önbelleğe alınabilecek verileri içeren dinamik küme türündeki kayıt sayısını belirten değer.
Açıklamalar
Veri önbelleğe alma, dinamik küme türündeki kayıt kümesi nesneleri aracılığıyla uzak sunucudan veri alan bir uygulamanın performansını artırır. Önbellek, uygulama çalışırken verilerin yeniden isteniyor olması durumunda sunucudan en son alınan verileri tutan yerel bellekte yer alan bir alandır. Veriler istendiğinde, Microsoft Jet veritabanı altyapısı istenen verileri sunucudan almak yerine önce önbelleği denetler ve bu da daha fazla zaman alır. ODBC veri kaynağından gelmeyen veriler önbelleğe kaydedilmez.
Ekli tablo gibi herhangi bir ODBC veri kaynağı yerel önbelleğe sahip olabilir.
İlgili bilgiler için DAO Yardımı'ndaki "CacheSize, CacheStart Özellikleri" konusuna bakın.
CDaoRecordset::GetCacheStart
Önbelleğe alınacak kayıt kümesindeki ilk kaydın yer işareti değerini almak için bu üye işlevini çağırın.
COleVariant GetCacheStart();
Dönüş Değeri
COleVariant
Önbelleğe alınacak kayıt kümesindeki ilk kaydın yer işaretini belirten bir.
Açıklamalar
Microsoft Jet veritabanı altyapısı önbellek aralığındaki kayıtları önbellekten ve önbellek aralığının dışındaki kayıtları sunucudan istemektedir.
Not
Önbellekten alınan kayıtlar, diğer kullanıcılar tarafından kaynak verilerde eşzamanlı olarak yapılan değişiklikleri yansıtmaz.
İlgili bilgiler için DAO Yardımı'ndaki "CacheSize, CacheStart Özellikleri" konusuna bakın.
CDaoRecordset::GetCurrentIndex
Dizinlenmiş tablo türündeki CDaoRecordset
bir nesnede kullanılmakta olan dizini belirlemek için bu üye işlevini çağırın.
CString GetCurrentIndex();
Dönüş Değeri
CString
Tablo türündeki kayıt kümesiyle kullanılmakta olan dizinin adını içeren. Dizin ayarlanmamışsa boş bir dize döndürür.
Açıklamalar
Bu dizin, tablo türündeki kayıt kümesindeki kayıtları sıralamak için temeldir ve Kayıtları bulmak için Üye ara işlevi tarafından kullanılır.
Bir CDaoRecordset
nesne birden fazla dizine sahip olabilir, ancak aynı anda yalnızca bir dizin kullanabilir (ancak CDaoTableDef nesnesinin üzerinde tanımlanmış birkaç dizin olabilir).
İlgili bilgiler için DAO Yardımı'ndaki "Dizin Nesnesi" konusuna ve "geçerli dizin" tanımına bakın.
CDaoRecordset::GetDateCreated
Temel tablonun oluşturulduğu tarih ve saati almak için bu üye işlevini çağırın.
COleDateTime GetDateCreated();
Dönüş Değeri
Temel tablonun oluşturulduğu tarih ve saati içeren bir COleDateTime nesnesi.
Açıklamalar
Tarih ve saat ayarları, temel tablonun oluşturulduğu bilgisayardan türetilir.
İlgili bilgiler için DAO Yardımı'ndaki "DateCreated, LastUpdated Properties" konusuna bakın.
CDaoRecordset::GetDateLastUpdated
Şemanın son güncelleştirildiği tarih ve saati almak için bu üye işlevini çağırın.
COleDateTime GetDateLastUpdated();
Dönüş Değeri
Temel tablo yapısının (şema) son güncelleştirilme tarihini ve saatini içeren bir COleDateTime nesnesi.
Açıklamalar
Tarih ve saat ayarları, temel tablo yapısının (şema) en son güncelleştirildiği bilgisayardan türetilir.
İlgili bilgiler için DAO Yardımı'ndaki "DateCreated, LastUpdated Properties" konusuna bakın.
CDaoRecordset::GetDefaultDBName
Bu kayıt kümesinin veritabanının adını belirlemek için bu üye işlevini çağırın.
virtual CString GetDefaultDBName();
Dönüş Değeri
CString
Bu kayıt kümesinin türetildiği veritabanının yolunu ve adını içeren bir.
Açıklamalar
CDaoDatabase işaretçisi olmadan bir kayıt kümesi oluşturulursa, bu yol kayıt kümesi tarafından varsayılan veritabanını açmak için kullanılır. Varsayılan olarak, bu işlev boş bir dize döndürür. ClassWizard öğesinden CDaoRecordset
yeni bir kayıt kümesi türediğinde, sizin için bu işlevi oluşturur.
Aşağıdaki örnek, dizenin doğru yorumlanması için gerektiği gibi dizede çift ters eğik çizgi (\\) kullanımını gösterir.
CString CCustSet::GetDefaultDBName()
{
return _T("c:\\mydir\\datasrc.mdb");
}
CDaoRecordset::GetDefaultSQL
Çerçeve, kayıt kümesinin temel aldığı varsayılan SQL deyimini almak için bu üye işlevini çağırır.
virtual CString GetDefaultSQL();
Dönüş Değeri
CString
Varsayılan SQL deyimini içeren bir.
Açıklamalar
Bu bir tablo adı veya SQL SELECT deyimi olabilir.
ClassWizard ile kayıt kümesi sınıfınızı bildirerek varsayılan SQL deyimini dolaylı olarak tanımlarsınız ve ClassWizard bu görevi sizin için gerçekleştirir.
Open'a null SQL dizesi geçirirseniz, kayıt kümenizin tablo adını veya SQL'ini belirlemek için bu işlev çağrılır.
CDaoRecordset::GetEditMode
Aşağıdaki değerlerden biri olan düzenleme durumunu belirlemek için bu üye işlevini çağırın:
short GetEditMode();
Dönüş Değeri
Geçerli kayıt için düzenleme durumunu gösteren bir değer döndürür.
Açıklamalar
Value | Açıklama |
---|---|
dbEditNone |
Devam eden bir düzenleme işlemi yok. |
dbEditInProgress |
Edit çağrısı yapıldı. |
dbEditAdd |
AddNew çağrısı yapıldı. |
İlgili bilgiler için DAO Yardımı'ndaki "EditMode Özelliği" konusuna bakın.
CDaoRecordset::GetFieldCount
Kayıt kümesinde tanımlanan alan (sütun) sayısını almak için bu üye işlevini çağırın.
short GetFieldCount();
Dönüş Değeri
Kayıt kümesindeki alanların sayısı.
Açıklamalar
İlgili bilgiler için DAO Yardımı'ndaki "Özelliği Say" konusuna bakın.
CDaoRecordset::GetFieldInfo
Kayıt kümesindeki alanlar hakkında bilgi edinmek 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
Dizine göre arama için kayıt kümesinin Fields koleksiyonundaki önceden tanımlanmış alanın sıfır tabanlı dizini.
fieldinfo
CDaoFieldInfo yapısına başvuru.
dwInfoOptions
Kayıt kümesiyle ilgili hangi bilgilerin alınacağını belirten seçenekler. Kullanılabilir seçenekler, işlevin döndürmesine neden olduklarıyla birlikte burada listelenir. En iyi performans için yalnızca ihtiyacınız olan bilgi düzeyini alın:
AFX_DAO_PRIMARY_INFO
(Varsayılan) Ad, Tür, Boyut, ÖzniteliklerAFX_DAO_SECONDARY_INFO
Birincil bilgiler, artı: Sıralı Konum, Gerekli, Sıfır Uzunluğa İzin Ver, Harmanlama Sırası, Yabancı Ad, Kaynak Alan, Kaynak TabloAFX_DAO_ALL_INFO
Birincil ve ikincil bilgilerin yanı sıra: Varsayılan Değer, Geçerlilik Kuralı, Doğrulama Metni
lpszName
Alanın adı.
Açıklamalar
İşlevin bir sürümü, bir alanı dizine göre aramanıza olanak tanır. Diğer sürüm, bir alanı ada göre aramanıza olanak tanır.
Döndürülen bilgilerin açıklaması için bkz . CDaoFieldInfo yapısı. Bu yapı, dwInfoOptions açıklamasında yukarıda listelenen bilgi öğelerine karşılık gelen üyelere sahiptir. Bir düzeyde bilgi istediğinizde, önceki düzeyler için de bilgi alırsınız.
İlgili bilgiler için DAO Yardımı'ndaki "Öznitelik özelliği" konusuna bakın.
CDaoRecordset::GetFieldValue
Kayıt kümesindeki verileri almak için bu üye işlevini çağır.
virtual void GetFieldValue(
LPCTSTR lpszName,
COleVariant& varValue);
virtual void GetFieldValue(
int nIndex,
COleVariant& varValue);
virtual COleVariant GetFieldValue(LPCTSTR lpszName);
virtual COleVariant GetFieldValue(int nIndex);
Parametreler
lpszName
Bir alanın adını içeren bir dize işaretçisi.
varValue
Bir alanın değerini depolayacak bir nesneye başvuru COleVariant
.
nIndex
Dizine göre arama için kayıt kümesinin Fields koleksiyonundaki alanın sıfır tabanlı dizini.
Dönüş Değeri
Değerini döndüren iki sürümü GetFieldValue
, bir alanın değerini içeren bir COleVariant nesnesi döndürür.
Açıklamalar
Bir alanı ada veya sıra konumuna göre arayabilirsiniz.
Not
Nesne döndüren bir COleVariant
sürümü çağırmak yerine, bu üye işlevinin nesne başvurularını parametre olarak alan sürümlerinden birini çağırmak daha verimlidir COleVariant
. Bu işlevin ikinci sürümleri geriye dönük uyumluluk için tutulur.
DoFieldExchange mekanizmasını kullanarak sütunları statik olarak bağlamak yerine çalışma zamanında alanları dinamik olarak bağlamak için ve SetFieldValue kullanınGetFieldValue
.
GetFieldValue
DoFieldExchange
ve mekanizma, performansı geliştirmek için birleştirilebilir. Örneğin, yalnızca isteğe bağlı olarak ihtiyacınız olan bir değeri almak ve bu çağrıyı arabirimdeki "Daha Fazla Bilgi" düğmesine atamak için kullanın GetFieldValue
.
İlgili bilgiler için DAO Yardımı'ndaki "Alan Nesnesi" ve "Değer Özelliği" konularına bakın.
CDaoRecordset::GetIndexCount
Tablo türü kayıt kümesinde kullanılabilir dizin sayısını belirlemek için bu üye işlevini çağırın.
short GetIndexCount();
Dönüş Değeri
Tablo türündeki kayıt kümesindeki dizinlerin sayısı.
Açıklamalar
GetIndexCount
kayıt kümesindeki tüm dizinler arasında döngü oluşturmak için kullanışlıdır. Bu amaçla ile kullanın GetIndexCount
GetIndexInfo
. Dynaset türü veya anlık görüntü türü kayıt kümelerinde bu üye işlevini çağırırsanız, MFC bir özel durum oluşturur.
İlgili bilgiler için DAO Yardımı'ndaki "Öznitelik özelliği" konusuna bakın.
CDaoRecordset::GetIndexInfo
Bir kayıt kümesinin temel aldığı temel tabloda tanımlanan bir dizin hakkında çeşitli bilgiler almak için bu üye işlevini çağırın.
void GetIndexInfo(
int nIndex,
CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetIndexInfo(
LPCTSTR lpszName,
CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Parametreler
nIndex
Sayısal konuma göre arama için tablonun Dizinler koleksiyonundaki sıfır tabanlı dizin.
indexinfo
CDaoIndexInfo yapısına başvuru.
dwInfoOptions
Dizinle ilgili hangi bilgilerin alınacağını belirten seçenekler. Kullanılabilir seçenekler, işlevin döndürmesine neden olduklarıyla birlikte burada listelenir. En iyi performans için yalnızca ihtiyacınız olan bilgi düzeyini alın:
AFX_DAO_PRIMARY_INFO
(Varsayılan) Ad, Alan Bilgisi, AlanlarAFX_DAO_SECONDARY_INFO
Birincil bilgiler ve artı: Birincil, Benzersiz, Kümelenmiş, IgnoreNulls, Gerekli, YabancıAFX_DAO_ALL_INFO
Birincil ve ikincil bilgilerin yanı sıra: Ayrı Sayı
lpszName
Ada göre arama için dizin nesnesinin adına yönelik bir işaretçi.
Açıklamalar
İşlevin bir sürümü, bir dizini koleksiyondaki konumuna göre aramanıza olanak tanır. Diğer sürüm, ada göre bir dizin aramanızı sağlar.
Döndürülen bilgilerin açıklaması için bkz . CDaoIndexInfo yapısı. Bu yapı, dwInfoOptions açıklamasında yukarıda listelenen bilgi öğelerine karşılık gelen üyelere sahiptir. Bir düzeyde bilgi istediğinizde, önceki düzeyler için de bilgi alırsınız.
İlgili bilgiler için DAO Yardımı'ndaki "Öznitelik özelliği" konusuna bakın.
CDaoRecordset::GetLastModifiedBookmark
En son eklenen veya güncelleştirilen kaydın yer işaretini almak için bu üye işlevini çağırın.
COleVariant GetLastModifiedBookmark();
Dönüş Değeri
COleVariant
En son eklenen veya değiştirilen kaydı gösteren bir yer işareti içeren.
Açıklamalar
Bir kayıt kümesi nesnesi oluşturulduğunda veya açıldığında, kayıtlarından her birinin destekliyorsa zaten benzersiz bir yer işareti vardır. Kayıt kümesinin yer işaretlerini desteklenip desteklemediğini belirlemek için GetBookmark'ı çağırın. Kayıt kümesi yer işaretlerini desteklemiyorsa, bir CDaoException
oluşturulur.
Kayıt eklediğinizde kayıt kümesi, kayıt kümesinin sonunda görünür ve geçerli kayıt değildir. Yeni kaydı güncel hale getirmek için, GetLastModifiedBookmark
yeni eklenen kayda dönmek için öğesini çağırın ve ardından çağırın SetBookmark
.
İlgili bilgiler için DAO Yardımı'ndaki "LastModified Özelliği" konusuna bakın.
CDaoRecordset::GetLockingMode
Kayıt kümesi için geçerli olan kilitleme türünü belirlemek için bu üye işlevini çağırın.
BOOL GetLockingMode();
Dönüş Değeri
Kilitleme türü kötümser ise sıfır olmayan, aksi takdirde iyimser kayıt kilitleme için 0.
Açıklamalar
Kötümser kilitleme etkin olduğunda, düzenlediğiniz kaydı içeren veri sayfası, Üyeyi düzenle işlevini çağırdığınız anda kilitlenir. Üyeyi Güncelleştir veya Kapat işlevini ya da Taşı veya Bul işlemlerinden herhangi birini çağırdığınızda sayfanın kilidi açılır.
İyimser kilitleme etkin olduğunda, kaydı içeren veri sayfası yalnızca kayıt üye işleviyle Update
güncelleştirilirken kilitlenir.
ODBC veri kaynaklarıyla çalışırken kilitleme modu her zaman iyimserdir.
İlgili bilgiler için DAO Yardımı'ndaki "LockEdits Özelliği" ve "Çok Kullanıcılı Uygulamalarda Kilitleme Davranışı" konularına bakın.
CDaoRecordset::GetName
Kayıt kümesinin adını almak için bu üye işlevini çağırın.
CString GetName();
Dönüş Değeri
Kayıt CString
kümesinin adını içeren.
Açıklamalar
Kayıt kümesinin adı bir harfle başlamalıdır ve en fazla 40 karakter içerebilir. Sayılar ve alt çizgi karakterleri içerebilir, ancak noktalama işaretleri veya boşluklar içeremez.
İlgili bilgiler için DAO Yardımı'ndaki "Ad Özelliği" konusuna bakın.
CDaoRecordset::GetParamValue
Temel alınan DAOParameter nesnesinde depolanan belirtilen parametrenin geçerli değerini almak için bu üye işlevini çağırın.
virtual COleVariant GetParamValue(int nIndex);
virtual COleVariant GetParamValue(LPCTSTR lpszName);
Parametreler
nIndex
Parametrenin temel alınan DAOParameter nesnesindeki sayısal konumu.
lpszName
Değerini istediğiniz parametrenin adı.
Dönüş Değeri
Parametrenin değerini içeren COleVariant sınıfının nesnesi.
Açıklamalar
parametreye ada veya koleksiyondaki sayısal konumuna göre erişebilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "Parametre Nesnesi" konusuna bakın.
CDaoRecordset::GetPercentPosition
Dynaset türü veya anlık görüntü türü kayıt kümesiyle çalışırken, kayıt kümesini tam olarak doldurmadan önce çağırırsanızGetPercentPosition
, hareket miktarı GetRecordCount çağrısıyla belirtilen sayıda erişilen kayıt sayısına göredir.
float GetPercentPosition();
Dönüş Değeri
Kayıt kümesindeki kayıtların yüzdesine göre kayıt kümesi nesnesindeki geçerli kaydın yaklaşık konumunu gösteren 0 ile 100 arasında bir sayı.
Açıklamalar
Tüm kayıt kümelerinin popülasyonunu tamamlamak için MoveLast'ı çağırarak son kayda geçebilirsiniz, ancak bu çok uzun sürebilir.
Dizinleri olmayan tablolar da dahil olmak üzere üç kayıt kümesi nesnesi türünü de çağırabilirsiniz GetPercentPosition
. Ancak, yalnızca ileriye doğru kaydırma anlık görüntülerinde veya dış veritabanına yönelik doğrudan sorgudan açılan bir kayıt kümesinde çağrı GetPercentPosition
yapamazsınız. Geçerli kayıt yoksa veya geçerli kayıt silinmişse, bir CDaoException
oluşturulur.
İlgili bilgiler için DAO Yardımı'ndaki "PercentPosition Özelliği" konusuna bakın.
CDaoRecordset::GetRecordCount
Kayıt kümesindeki kaç kayda erişildiğini öğrenmek için bu üye işlevini çağır.
long GetRecordCount();
Dönüş Değeri
Kayıt kümesi nesnesinde erişilen kayıtların sayısını döndürür.
Açıklamalar
GetRecordCount
, tüm kayıtlara erişilene kadar dinamik küme türü veya anlık görüntü türü kayıt kümesinde kaç kaydın yer aldığına işaret etmez. Bu üye işlev çağrısının tamamlanması önemli ölçüde zaman alabilir.
Son kayda erişildikten sonra, dönüş değeri kayıt kümesindeki silinmemiş kayıtların toplam sayısını gösterir. Son kayda erişmeye zorlamak için kayıt kümesi için veya FindLast
üye işlevini çağırınMoveLast
. Sorgunuzun döndüreceği yaklaşık kayıt sayısını belirlemek için SQL Sayısı da kullanabilirsiniz.
Uygulamanız dynaset türündeki kayıt kümesindeki kayıtları sildikçe değerinin GetRecordCount
dönüş değeri azalır. Ancak, diğer kullanıcılar tarafından silinen kayıtlar, geçerli kayıt silinmiş bir kayda konumlandırılana kadar tarafından yansıtılamaz GetRecordCount
. Kayıt sayısını etkileyen ve daha sonra işlemi geri alan bir işlem yürütürseniz, GetRecordCount
kalan kayıtların gerçek sayısını yansıtmaz.
Anlık görüntü türündeki kayıt kümesindeki değeri GetRecordCount
, temel tablolardaki değişikliklerden etkilenmez.
Tablo türündeki kayıt kümesindeki değeri GetRecordCount
, tablodaki yaklaşık kayıt sayısını yansıtır ve tablo kayıtları eklendikçe ve silindikçe hemen etkilenir.
Kayıt içermeyen bir kayıt kümesi 0 değerini döndürür. Ekli tablolarla veya ODBC veritabanlarıyla çalışırken, GetRecordCount
her zaman - 1 döndürür. Kayıt kümesinde üye işlevini çağırmak Requery
, değerini sorgu yeniden yürütülür gibi sıfırlar GetRecordCount
.
İlgili bilgiler için DAO Yardımı'ndaki "RecordCount Özelliği" konusuna bakın.
CDaoRecordset::GetSQL
Kayıt kümesinin kayıtları açıldığında seçmek için kullanılan SQL deyimini almak için bu üye işlevini çağırın.
CString GetSQL() const;
Dönüş Değeri
CString
SQL deyimini içeren bir.
Açıklamalar
Bu genellikle bir SQL SELECT deyimi olacaktır.
tarafından GetSQL
döndürülen dize genellikle lpszSQL parametresindeki kayıt kümesine Open member işlevine geçirmiş olabileceğiniz herhangi bir dizeden farklıdır. Bunun nedeni, kayıt kümesinin classWizard ile belirttiğiniz öğeye ve m_strFilter ve m_strSort veri üyelerinde belirtmiş olabileceğiniz değerlere Open
göre tam bir SQL deyimi oluşturmasıdır.
Not
Bu üye işlevini yalnızca çağrısı yaptıktan sonra çağır Open
.
İlgili bilgiler için DAO Yardımı'ndaki "SQL Özelliği" konusuna bakın.
CDaoRecordset::GetType
Kayıt kümesi nesnesinin türünü belirlemek için kayıt kümesini açtıktan sonra bu üye işlevini çağırın.
short GetType();
Dönüş Değeri
Kayıt kümesinin türünü gösteren aşağıdaki değerlerden biri:
dbOpenTable
Tablo türü kayıt kümesidbOpenDynaset
Dinamik küme türü kayıt kümesidbOpenSnapshot
Anlık görüntü türü kayıt kümesi
Açıklamalar
İlgili bilgiler için DAO Yardımı'ndaki "Tür Özelliği" konusuna bakın.
CDaoRecordset::GetValidationRule
Verileri doğrulamak için kullanılan kuralı belirlemek için bu üye işlevini çağırın.
CString GetValidationRule();
Dönüş Değeri
Bir CString
kayıttaki verileri değiştirildiğinde veya tabloya eklendikçe doğrulayan bir değer içeren nesne.
Açıklamalar
Bu kural metin tabanlıdır ve temel tablo her değiştirildiğinde uygulanır. Veriler yasal değilse, MFC bir özel durum oluşturur. Döndürülen hata iletisi, belirtilmişse temel alan nesnesinin ValidationText özelliğinin metni veya temel alan nesnesinin ValidationRule özelliği tarafından belirtilen ifadenin metnidir. Hata iletisinin metnini almak için GetValidationText'i çağırabilirsiniz.
Örneğin, ayın gününü gerektiren bir kayıttaki alanın "1 ILE 31 ARASI GÜN" gibi bir doğrulama kuralı olabilir.
İlgili bilgiler için DAO Yardımı'ndaki "ValidationRule Özelliği" konusuna bakın.
CDaoRecordset::GetValidationText
Temel alan nesnesinin ValidationText özelliğinin metnini almak için bu üye işlevini çağırın.
CString GetValidationText();
Dönüş Değeri
Bir CString
alanın değeri temel alan nesnesinin geçerlilik kuralını karşılamıyorsa görüntülenen ileti metnini içeren nesne.
Açıklamalar
İlgili bilgiler için DAO Yardımı'ndaki "ValidationText Özelliği" konusuna bakın.
CDaoRecordset::IsBOF
Kayıttan kayda kaydırmadan önce bu üye işlevini çağırarak kayıt kümesinin ilk kaydından önce gidip gitmediğiniz hakkında bilgi edinin.
BOOL IsBOF() const;
Dönüş Değeri
Kayıt kümesinde kayıt yoksa veya ilk kayıt öncesinde geriye doğru kaydırdıysanız sıfır olmayan; aksi takdirde 0.
Açıklamalar
Kayıt kümesinin herhangi bir kayıt mı içerdiğini yoksa boş mu olduğunu belirlemek için ile IsEOF
birlikte öğesini de çağırabilirsinizIsBOF
. çağrısından Open
hemen sonra, kayıt kümesi hiçbir kayıt içermiyorsa sıfır IsBOF
olmayan bir değer döndürür. En az bir kaydı olan bir kayıt kümesini açtığınızda, ilk kayıt geçerli kayıttır ve IsBOF
0 döndürür.
İlk kayıt geçerli kayıtsa ve öğesini çağırırsanızMovePrev
IsBOF
, daha sonra sıfır olmayan bir değer döndürür. Sıfır olmayan döndürürse IsBOF
ve çağrısı MovePrev
yaparsanız bir özel durum oluşur. Sıfır olmayan döndürürse IsBOF
geçerli kayıt tanımlanmamış olur ve geçerli kayıt gerektiren tüm eylemler özel durumla sonuçlanır.
Belirli yöntemlerin ve IsEOF
ayarları üzerindeki IsBOF
etkisi:
dahili olarak çağırmak
Open*
, çağırarakMoveFirst
kayıt kümesindeki ilk kaydı geçerli kayıt yapar. Bu nedenle, boş bir kayıt kümesinde çağrılmasıOpen
sıfır olmayan bir değer döndürmesine ve neden olurIsBOF
IsEOF
. (BaşarısızMoveFirst
olan veyaMoveLast
çağrının davranışı için aşağıdaki tabloya bakın.)Kaydı başarıyla buan tüm Taşıma işlemleri hem hem de
IsBOF
IsEOF
0 döndürmesine neden olur.Yeni
AddNew
kaydı başarıyla ekleyen birUpdate
çağrının ardından gelen bir çağrı, yalnızca sıfır olmayan bir durumdaIsEOF
0 döndürmesine nedenIsBOF
olur. durumuIsEOF
her zaman değişmeden kalır. Microsoft Jet veritabanı altyapısı tarafından tanımlandığı gibi, boş bir kayıt kümesinin geçerli kayıt işaretçisi bir dosyanın sonundadır, bu nedenle yeni kayıtlar geçerli kayıt sonrasında eklenir.Herhangi bir
Delete
çağrı, kayıt kümesinden kalan tek kaydı kaldırsa bile veyaIsEOF
değeriniIsBOF
değiştirmez.
Bu tabloda, farklı birleşimleriyle hangi Taşıma işlemlerine IsBOF
/ IsEOF
izin verildiği gösterilir.
State | MoveFirst, MoveLast | MovePrev, Taşıma < 0 |
Taşıma 0 | MoveNext, Taşıma > 0 |
---|---|---|---|---|
IsBOF =sıfır olmayan,IsEOF =0 |
İzin Verilir | Özel durum | Özel durum | İzin Verilir |
IsBOF =0,IsEOF =sıfır olmayan |
İzin Verilir | İzin Verilir | Özel durum | Özel durum |
Her ikisi de sıfır olmayan | Özel durum | Özel durum | Özel durum | Özel durum |
her ikisi de 0 | İzin Verilir | İzin Verilir | İzin Verilir | İzin Verilir |
Taşıma işlemine izin vermek, işlemin bir kaydı başarıyla bulacağı anlamına gelmez. Yalnızca belirtilen Taşıma işlemini gerçekleştirme girişimine izin verildiğini ve özel durum oluşturmayacağını gösterir. ve IsEOF
üye işlevlerinin IsBOF
değeri, taşıma girişiminin sonucu olarak değişebilir.
Ve ayarlarındaki bir kaydı bulmayan Taşıma işlemlerinin IsBOF
IsEOF
etkisi aşağıdaki tabloda gösterilmiştir.
Operations | IsBOF | IsEOF |
---|---|---|
MoveFirst , MoveLast |
Sıfır | Sıfır |
Move 0 |
Değişiklik yok | Değişiklik yok |
MovePrev , Move < 0 |
Sıfır | Değişiklik yok |
MoveNext , Move > 0 |
Değişiklik yok | Sıfır |
İlgili bilgiler için DAO Yardımı'ndaki "BOF, EOF Özellikleri" konusuna bakın.
CDaoRecordset::IsDeleted
Geçerli kaydın silinip silinmediğini belirlemek için bu üye işlevini çağırın.
BOOL IsDeleted() const;
Dönüş Değeri
Kayıt kümesi silinmiş bir kayıtta konumlandırıldıysa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bir kayda IsDeleted
kaydırıp TRUE (sıfır olmayan) döndürürseniz, diğer kayıt kümesi işlemlerini gerçekleştirebilmek için önce başka bir kayda kaydırmanız gerekir.
Not
Anlık görüntüdeki veya tablo türündeki kayıt kümesindeki kayıtların silinmiş durumunu denetlemeniz gerekmez. Kayıtlar anlık görüntüden silinemediğinden çağrısı IsDeleted
yapmanıza gerek yoktur. Tablo türündeki kayıt kümeleri için silinen kayıtlar kayıt kümesinden kaldırılır. Bir kayıt sizin tarafınızdan, başka bir kullanıcı tarafından veya başka bir kayıt kümesinde silindikten sonra bu kayda geri kaydıramazsınız. Bu nedenle çağrısı IsDeleted
yapmanıza gerek yoktur.
Dinamik kümeden bir kaydı sildiğinizde kayıt kümesinden kaldırılır ve bu kayda geri kaydıramazsınız. Ancak, dinamik kümedeki bir kayıt başka bir kullanıcı tarafından veya aynı tabloya dayalı başka bir kayıt kümesinde silinirse, IsDeleted
daha sonra bu kayda kaydırdığınızda TRUE döndürür.
İlgili bilgiler için DAO Yardımı'ndaki "Yöntemi Sil", "LastModified Özelliği" ve "EditMode Özelliği" konularına bakın.
CDaoRecordset::IsEOF
Kayıttan kayda kaydırdığınızda kayıt kümesinin son kaydının ötesine geçmiş olup olmadığınızı öğrenmek için bu üye işlevini çağırın.
BOOL IsEOF() const;
Dönüş Değeri
Kayıt kümesinde kayıt yoksa veya son kaydın ötesine geçtiyseniz sıfır olmayan; aksi takdirde 0.
Açıklamalar
Kayıt kümesinin herhangi bir kayıt mı içerdiğini yoksa boş mu olduğunu belirlemek için de çağırabilirsiniz IsEOF
. çağrısından Open
hemen sonra, kayıt kümesi hiçbir kayıt içermiyorsa sıfır IsEOF
olmayan bir değer döndürür. En az bir kaydı olan bir kayıt kümesini açtığınızda, ilk kayıt geçerli kayıttır ve IsEOF
0 döndürür.
Çağrısı yaptığınızda MoveNext
IsEOF
son kayıt geçerli kayıtsa, daha sonra sıfır olmayan bir değer döndürür. Sıfır olmayan döndürürse IsEOF
ve çağrısı MoveNext
yaparsanız bir özel durum oluşur. Sıfır olmayan döndürürse IsEOF
geçerli kayıt tanımlanmamış olur ve geçerli kayıt gerektiren tüm eylemler özel durumla sonuçlanır.
Belirli yöntemlerin ve IsEOF
ayarları üzerindeki IsBOF
etkisi:
dahili olarak çağırmak
Open
, çağırarakMoveFirst
kayıt kümesindeki ilk kaydı geçerli kayıt yapar. Bu nedenle, boş bir kayıt kümesinde çağrılmasıOpen
sıfır olmayan bir değer döndürmesine ve neden olurIsBOF
IsEOF
. (BaşarısızMoveFirst
bir çağrının davranışı için aşağıdaki tabloya bakın.)Kaydı başarıyla buan tüm Taşıma işlemleri hem hem de
IsBOF
IsEOF
0 döndürmesine neden olur.Yeni
AddNew
kaydı başarıyla ekleyen birUpdate
çağrının ardından gelen bir çağrı, yalnızca sıfır olmayan bir durumdaIsEOF
0 döndürmesine nedenIsBOF
olur. durumuIsEOF
her zaman değişmeden kalır. Microsoft Jet veritabanı altyapısı tarafından tanımlandığı gibi, boş bir kayıt kümesinin geçerli kayıt işaretçisi bir dosyanın sonundadır, bu nedenle yeni kayıtlar geçerli kayıt sonrasında eklenir.Herhangi bir
Delete
çağrı, kayıt kümesinden kalan tek kaydı kaldırsa bile veyaIsEOF
değeriniIsBOF
değiştirmez.
Bu tabloda, farklı birleşimleriyle hangi Taşıma işlemlerine IsBOF
/ IsEOF
izin verildiği gösterilir.
State | MoveFirst, MoveLast | MovePrev, Taşıma < 0 |
Taşıma 0 | MoveNext, Taşıma > 0 |
---|---|---|---|---|
IsBOF =sıfır olmayan,IsEOF =0 |
İzin Verilir | Özel durum | Özel durum | İzin Verilir |
IsBOF =0,IsEOF =sıfır olmayan |
İzin Verilir | İzin Verilir | Özel durum | Özel durum |
Her ikisi de sıfır olmayan | Özel durum | Özel durum | Özel durum | Özel durum |
her ikisi de 0 | İzin Verilir | İzin Verilir | İzin Verilir | İzin Verilir |
Taşıma işlemine izin vermek, işlemin bir kaydı başarıyla bulacağı anlamına gelmez. Yalnızca belirtilen Taşıma işlemini gerçekleştirme girişimine izin verildiğini ve özel durum oluşturmayacağını gösterir. Ve IsEOF
üye işlevlerinin IsBOF
değeri, taşıma girişiminin sonucu olarak değişebilir.
Ve ayarlarındaki bir kaydı bulmayan Taşıma işlemlerinin IsBOF
IsEOF
etkisi aşağıdaki tabloda gösterilmiştir.
Operations | IsBOF | IsEOF |
---|---|---|
MoveFirst , MoveLast |
Sıfır | Sıfır |
Move 0 |
Değişiklik yok | Değişiklik yok |
MovePrev , Move < 0 |
Sıfır | Değişiklik yok |
MoveNext , Move > 0 |
Değişiklik yok | Sıfır |
İlgili bilgiler için DAO Yardımı'ndaki "BOF, EOF Özellikleri" konusuna bakın.
CDaoRecordset::IsFieldDirty
Bir dinamik kümenin belirtilen alan veri üyesinin "kirli" (değiştirildi) olarak işaretlenip işaretlenmediğini belirlemek için bu üye işlevini çağırın.
BOOL IsFieldDirty(void* pv);
Parametreler
Pv
Durumunu denetlemek istediğiniz alan veri üyesinin işaretçisi veya alanlardan herhangi birinin kirli olup olmadığını belirlemek için NULL.
Dönüş Değeri
Belirtilen alan veri üyesi kirli olarak işaretlenmişse sıfır olmayan; aksi takdirde 0.
Açıklamalar
Tüm kirli alan veri üyelerindeki veriler, geçerli kayıt üye işlevine CDaoRecordset
yapılan bir çağrıyla güncelleştirildiğinde (veya AddNew
çağrısının Edit
ardından) veri kaynağındaki Update
kayda aktarılır. Bu bilgiyle, alan veri üyesinin sütunu işaretleyerek veri kaynağına yazılmaması için işaretlemesini kaldırma gibi başka adımlar da uygulayabilirsiniz.
IsFieldDirty
aracılığıyla DoFieldExchange
uygulanır.
CDaoRecordset::IsFieldNull
Bir kayıt kümesinin belirtilen alan veri üyesinin Null olarak işaretlenip işaretlenmediğini belirlemek için bu üye işlevini çağırın.
BOOL IsFieldNull(void* pv);
Parametreler
Pv
Durumunu denetlemek istediğiniz alan veri üyesinin işaretçisi veya alanlardan birinin Null olup olmadığını belirlemek için NULL.
Dönüş Değeri
Belirtilen alan veri üyesi Null olarak işaretlenmişse sıfır olmayan; aksi takdirde 0.
Açıklamalar
(Veritabanı terminolojisinde Null değerin olmadığı anlamına gelir ve C++'da NULL ile aynı değildir.) Alan veri üyesi Null olarak işaretlenirse, geçerli kaydın değeri olmayan bir sütunu olarak yorumlanır.
Not
Bazı durumlarda, aşağıdaki kod örneğinde gösterildiği gibi kullanımı IsFieldNull
verimsiz olabilir:
COleVariant varValue;
void *pField = &(rs.m_Age);
int nField = 2;
// this code is inefficient because data
// must be retrieved for both IsFieldNull
// and GetFieldValue
if (!rs.IsFieldNull(pField))
rs.GetFieldValue(nField, varValue);
// this code is more efficient
rs.GetFieldValue(nField, varValue);
if (varValue.vt == VT_NULL)
varValue.Attach(varNewVal); // do something
Not
dinamik kayıt bağlaması kullanıyorsanız, örneğinde CDaoRecordset
gösterildiği gibi VT_NULL kullandığınızdan emin olun.
CDaoRecordset::IsFieldNullable
Belirtilen alan veri üyesinin "null atanabilir" olup olmadığını belirlemek için bu üye işlevini çağırın (Null değerine ayarlanabilir; C++ NULL, Veritabanı terminolojisinde "değere sahip olmak" anlamına gelen Null ile aynı değildir.
BOOL IsFieldNullable(void* pv);
Parametreler
Pv
Durumunu denetlemek istediğiniz alan veri üyesinin işaretçisi veya alanlardan birinin Null olup olmadığını belirlemek için NULL.
Dönüş Değeri
Belirtilen alan veri üyesi Null yapılabiliyorsa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Null olmayan bir alanın değeri olmalıdır. Kayıt eklerken veya güncelleştirirken böyle bir alanı Null olarak ayarlamaya çalışırsanız, veri kaynağı toplamayı veya güncelleştirmeyi reddeder ve Update
bir özel durum oluşturur. Özel durum, çağrısı Update
yaptığınızda değil çağırdığınızda SetFieldNull
oluşur.
CDaoRecordset::IsOpen
Kayıt kümesinin açık olup olmadığını belirlemek için bu üye işlevini çağırın.
BOOL IsOpen() const;
Dönüş Değeri
Kayıt kümesi nesnesinin Open
veya Requery
üye işlevinin daha önce çağrılıp kayıt kümesinin kapatılmaması durumunda sıfır olmayan; aksi takdirde 0.
Açıklamalar
CDaoRecordset::m_bCheckCacheForDirtyFields
Önbelleğe alınan alanların otomatik olarak kirli (değiştirilmiş) ve Null olarak işaretlenip işaretlenmediğini gösteren bir bayrak içerir.
Açıklamalar
Bayrak varsayılan olarak TRUE olarak ayarlanır. Bu veri üyesindeki ayar çift arabelleğe alma mekanizmasının tamamını denetler. Bayrağı TRUE olarak ayarlarsanız, DFX mekanizmasını kullanarak önbelleğe almayı alan temelinde kapatabilirsiniz. Bayrağı FALSE olarak ayarlarsanız, ve SetFieldNull
kendinizi çağırmalısınızSetFieldDirty
.
çağrısı Open
öncesinde bu veri üyesini ayarlayın. Bu mekanizma öncelikli olarak kullanım kolaylığına yöneliktir. Değişiklikler yapılırken alanların iki kez arabelleğe alınması nedeniyle performans daha yavaş olabilir.
CDaoRecordset::m_nFields
Kayıt kümesi sınıfındaki alan veri üyesi sayısını ve veri kaynağından kayıt kümesi tarafından seçilen sütun sayısını içerir.
Açıklamalar
Kayıt kümesi sınıfının oluşturucusunun doğru sayıda statik olarak bağlı alanla başlatılması m_nFields
gerekir. ClassWizard, kayıt kümesi sınıfınızı bildirmek için kullandığınızda bu başlatmayı sizin için yazar. El ile de yazabilirsiniz.
Çerçeve, alan veri üyeleriyle veri kaynağındaki geçerli kaydın ilgili sütunları arasındaki etkileşimi yönetmek için bu sayıyı kullanır.
Not
Bu numara, parametresiyle CDaoFieldExchange::outputColumn
çağrısından SetFieldType
sonra içinde DoFieldExchange
kayıtlı çıkış sütunlarının sayısına karşılık olmalıdır.
ve CDaoRecordset::SetFieldValue
yoluyla CDaoRecordset::GetFieldValue
sütunları dinamik olarak bağlayabilirsiniz. Bunu yaparsanız, üye işlevinizdeki DFX işlev çağrılarının sayısını yansıtmak için içindeki sayıyı m_nFields
artırmanız DoFieldExchange
gerekmez.
CDaoRecordset::m_nParams
Kayıt kümesi sınıfındaki parametre veri üyesi sayısını ( kayıt kümesinin sorgusuyla geçirilen parametre sayısını) içerir.
Açıklamalar
Kayıt kümesi sınıfınızda herhangi bir parametre veri üyesi varsa, sınıfın oluşturucusunun doğru sayıyla m_nParams başlatması gerekir. m_nParams değeri varsayılan olarak 0'dır. Parametre veri üyeleri eklerseniz (el ile yapmanız gerekir), parametre sayısını (en az m_strFilter veya m_strSort dizenizdeki '' yer tutucularının sayısı kadar büyük olmalıdır) yansıtmak için sınıf oluşturucusunda el ile bir başlatma da eklemeniz gerekir.
Çerçeve, kayıt kümesinin sorgusunu parametreleştirdiğinde bu sayıyı kullanır.
Not
Bu numara, parametresiyle CFieldExchange::param
çağrısından sonra SetFieldType
içinde kaydedilen DoFieldExchange
"params" sayısına karşılık olmalıdır.
İlgili bilgiler için DAO Yardımı'ndaki "Parametre Nesnesi" konusuna bakın.
CDaoRecordset::m_pDAORecordset
Nesnenin temel aldığı DAO kayıt kümesi nesnesinin OLE arabirimine yönelik CDaoRecordset
bir işaretçi içerir.
Açıklamalar
DAO arabirimine doğrudan erişmeniz gerekiyorsa bu işaretçiyi kullanın.
İlgili bilgiler için DAO Yardımı'ndaki "Kayıt Kümesi Nesnesi" konusuna bakın.
CDaoRecordset::m_pDatabase
Kayıt kümesinin CDaoDatabase
bir veri kaynağına bağlandığı nesneye ilişkin bir işaretçi içerir.
Açıklamalar
Bu değişken iki şekilde ayarlanır. Genellikle, kayıt kümesi nesnesini oluştururken zaten açık CDaoDatabase
olan bir nesneye işaretçi geçirirsiniz. Bunun yerine NULL geçirirseniz, CDaoRecordset
sizin için bir CDaoDatabase
nesne oluşturur ve bunu açar. Her iki durumda da işaretçiyi CDaoRecordset
bu değişkende depolar.
Normalde içinde depolanan m_pDatabase
işaretçiyi doğrudan kullanmanız gerekmez. Ancak kendi uzantılarınızı CDaoRecordset
yazarsanız işaretçiyi kullanmanız gerekebilir. Örneğin, kendi CDaoException
işaretçinizi (ler) atarsanız işaretçiye ihtiyacınız olabilir.
İlgili bilgiler için DAO Yardımı'ndaki "Veritabanı Nesnesi" konusuna bakın.
CDaoRecordset::m_strFilter
BIR SQL deyiminin WHERE yan tümcesini oluşturmak için kullanılan bir dize içerir.
Açıklamalar
Kayıt kümesini filtrelemek için WHERE ayrılmış sözcüğünü içermez. Bu veri üyesinin kullanımı tablo türündeki kayıt kümeleri için geçerli değildir. kullanımı m_strFilter
, işaretçi kullanarak CDaoQueryDef
kayıt kümesini açarken hiçbir etkisi olmaz.
Microsoft Jet veritabanı altyapısının ABD sürümünü kullanmasanız bile tarih içeren alanları filtrelerken ABD tarih biçimini (ay-gün-yıl) kullanın; aksi takdirde veriler beklediğiniz gibi filtrelenmeyebilir.
İlgili bilgiler için DAO Yardımı'ndaki "Özelliği Filtreleme" konusuna bakın.
CDaoRecordset::m_strSort
BIR SQL deyiminin ORDERBY yan tümcesini içeren ve ORDERBY ayrılmış sözcükleri içermeyen bir dize içerir.
Açıklamalar
Dinamik küme ve anlık görüntü türündeki kayıt kümesi nesnelerini sıralayabilirsiniz.
Tablo türündeki kayıt kümesi nesnelerini sıralayamazsınız. Tablo türündeki kayıt kümesinin sıralama düzenini belirlemek için SetCurrentIndex'i çağırın.
bir işaretçi kullanarak kayıt kümesini açarken m_strSort kullanımının hiçbir CDaoQueryDef
etkisi yoktur.
İlgili bilgiler için DAO Yardımı'ndaki "Özelliği Sıralama" konusuna bakın.
CDaoRecordset::Move
Geçerli kayıttan lRows kayıt kümesini konumlandırmak için bu üye işlevini çağırın.
virtual void Move(long lRows);
Parametreler
lRows
İleri veya geri taşınacak kayıt sayısı. Pozitif değerler, kayıt kümesinin sonuna doğru ilerler. Negatif değerler başa doğru geriye doğru hareket eder.
Açıklamalar
İleri veya geri gidebilirsiniz. Move( 1 )
, ile MoveNext
eşdeğerdir ve Move( -1 )
ile MovePrev
eşdeğerdir.
Dikkat
Kayıt kümesinde Move
kayıt yoksa işlevlerden herhangi birinin çağrılması bir özel durum oluşturur. Genel olarak, kayıt kümesinin herhangi bir kaydı olup olmadığını belirlemek için taşıma işleminden önce ve IsEOF
hem hem de IsBOF
çağırın. veya çağrısı Open
yaptıktan sonra ya Requery
da IsBOF
IsEOF
öğesini arayın.
Not
Kayıt kümesinin başlangıcını veya sonunu kaydırdıysanız ( IsBOF
veya IsEOF
sıfır olmayan bir değer döndürürse) çağrısı Move
oluşturur CDaoException
.
Not
Geçerli kayıt güncelleştirilirken veya eklenirken işlevlerden herhangi birini Move
çağırırsanız, güncelleştirmeler uyarı olmadan kaybolur.
Yalnızca ileriye doğru kaydırma anlık görüntüsünü çağırdığınızda Move
, lRows parametresi pozitif bir tamsayı olmalıdır ve yer işaretlerine izin verilmez, bu nedenle yalnızca ileri gidebilirsiniz.
Kayıt kümesindeki ilk, son, sonraki veya önceki kaydı geçerli kayıt yapmak için , MoveLast
, MoveNext
veya MovePrev
üye işlevini çağırınMoveFirst
.
İlgili bilgiler için DAO Yardımı'ndaki "MoveFirst, MoveLast, MoveNext, MovePrevious Methods" konularına bakın.
CDaoRecordset::MoveFirst
Kayıt kümesindeki ilk kaydı (varsa) geçerli kayıt yapmak için bu üye işlevini çağırın.
void MoveFirst();
Açıklamalar
Kayıt kümesini açtıktan hemen sonra çağırmanız MoveFirst
gerekmez. Bu sırada, ilk kayıt (varsa) otomatik olarak geçerli kayıt olur.
Dikkat
Kayıt kümesinde Move
kayıt yoksa işlevlerden herhangi birinin çağrılması bir özel durum oluşturur. Genel olarak, kayıt kümesinin herhangi bir kaydı olup olmadığını belirlemek için taşıma işleminden önce ve IsEOF
hem hem de IsBOF
çağırın. veya çağrısı Open
yaptıktan sonra ya Requery
da IsBOF
IsEOF
öğesini arayın.
Not
Geçerli kayıt güncelleştirilirken veya eklenirken işlevlerden herhangi birini Move
çağırırsanız, güncelleştirmeler uyarı olmadan kaybolur.
Move
Koşul uygulamadan kayıttan kayda geçmek için işlevlerini kullanın. Belirli bir koşulu karşılayan dynaset türü veya anlık görüntü türü kayıt kümesi nesnesindeki kayıtları bulmak için Bul işlemlerini kullanın. Tablo türündeki kayıt kümesi nesnesindeki bir kaydı bulmak için çağrısı yapın Seek
.
Kayıt kümesi tablo türündeki bir kayıt kümesine başvuruyorsa, hareket tablonun geçerli dizinini izler. Temel alınan DAO nesnesinin Index özelliğini kullanarak geçerli dizini ayarlayabilirsiniz. Geçerli dizini ayarlamazsanız, döndürülen kayıtların sırası tanımlanmamış olur.
SQL sorgusuna veya sorgu tanımına dayalı bir kayıt kümesi nesnesini çağırırsanız MoveLast
, sorgu tamamlanmaya zorlanır ve kayıt kümesi nesnesi tam olarak doldurulur.
Veya MovePrev
üye işlevini yalnızca ileriye doğru kaydırma anlık görüntüsüyle çağıramazsınızMoveFirst
.
Kayıt kümesi nesnesindeki geçerli kaydın konumunu belirli sayıda kaydı ileri veya geri taşımak için çağrısı yapın Move
.
İlgili bilgiler için DAO Yardımı'ndaki "MoveFirst, MoveLast, MoveNext, MovePrevious Methods" konularına bakın.
CDaoRecordset::MoveLast
Kayıt kümesindeki son kaydı (varsa) geçerli kayıt yapmak için bu üye işlevini çağırın.
void MoveLast();
Açıklamalar
Dikkat
Kayıt kümesinde Move
kayıt yoksa işlevlerden herhangi birinin çağrılması bir özel durum oluşturur. Genel olarak, kayıt kümesinin herhangi bir kaydı olup olmadığını belirlemek için taşıma işleminden önce ve IsEOF
hem hem de IsBOF
çağırın. veya çağrısı Open
yaptıktan sonra ya Requery
da IsBOF
IsEOF
öğesini arayın.
Not
Geçerli kayıt güncelleştirilirken veya eklenirken işlevlerden herhangi birini Move
çağırırsanız, güncelleştirmeler uyarı olmadan kaybolur.
Move
Koşul uygulamadan kayıttan kayda geçmek için işlevlerini kullanın. Belirli bir koşulu karşılayan dynaset türü veya anlık görüntü türü kayıt kümesi nesnesindeki kayıtları bulmak için Bul işlemlerini kullanın. Tablo türündeki kayıt kümesi nesnesindeki bir kaydı bulmak için çağrısı yapın Seek
.
Kayıt kümesi tablo türündeki bir kayıt kümesine başvuruyorsa, hareket tablonun geçerli dizinini izler. Temel alınan DAO nesnesinin Index özelliğini kullanarak geçerli dizini ayarlayabilirsiniz. Geçerli dizini ayarlamazsanız, döndürülen kayıtların sırası tanımlanmamış olur.
SQL sorgusuna veya sorgu tanımına dayalı bir kayıt kümesi nesnesini çağırırsanız MoveLast
, sorgu tamamlanmaya zorlanır ve kayıt kümesi nesnesi tam olarak doldurulur.
Kayıt kümesi nesnesindeki geçerli kaydın konumunu belirli sayıda kaydı ileri veya geri taşımak için çağrısı yapın Move
.
İlgili bilgiler için DAO Yardımı'ndaki "MoveFirst, MoveLast, MoveNext, MovePrevious Methods" konularına bakın.
CDaoRecordset::MoveNext
Kayıt kümesindeki bir sonraki kaydı geçerli kayıt yapmak için bu üye işlevini çağırın.
void MoveNext();
Açıklamalar
Önceki kayda geçmeyi denemeden önce aramanız IsBOF
önerilir. İlk kayıt öncesinde zaten kaydırma yaptığınız veya kayıt kümesi tarafından hiçbir kayıt seçilmediğini belirten sıfır olmayan bir if IsBOF
döndüren bir CDaoException
çağrısı MovePrev
oluşturur.
Dikkat
Kayıt kümesinde Move
kayıt yoksa işlevlerden herhangi birinin çağrılması bir özel durum oluşturur. Genel olarak, kayıt kümesinin herhangi bir kaydı olup olmadığını belirlemek için taşıma işleminden önce ve IsEOF
hem hem de IsBOF
çağırın. veya çağrısı Open
yaptıktan sonra ya Requery
da IsBOF
IsEOF
öğesini arayın.
Not
Geçerli kayıt güncelleştirilirken veya eklenirken işlevlerden herhangi birini Move
çağırırsanız, güncelleştirmeler uyarı olmadan kaybolur.
Move
Koşul uygulamadan kayıttan kayda geçmek için işlevlerini kullanın. Belirli bir koşulu karşılayan dynaset türü veya anlık görüntü türü kayıt kümesi nesnesindeki kayıtları bulmak için Bul işlemlerini kullanın. Tablo türündeki kayıt kümesi nesnesindeki bir kaydı bulmak için çağrısı yapın Seek
.
Kayıt kümesi tablo türündeki bir kayıt kümesine başvuruyorsa, hareket tablonun geçerli dizinini izler. Temel alınan DAO nesnesinin Index özelliğini kullanarak geçerli dizini ayarlayabilirsiniz. Geçerli dizini ayarlamazsanız, döndürülen kayıtların sırası tanımlanmamış olur.
Kayıt kümesi nesnesindeki geçerli kaydın konumunu belirli sayıda kaydı ileri veya geri taşımak için çağrısı yapın Move
.
İlgili bilgiler için DAO Yardımı'ndaki "MoveFirst, MoveLast, MoveNext, MovePrevious Methods" konularına bakın.
CDaoRecordset::MovePrev
Kayıt kümesindeki önceki kaydı geçerli kayıt yapmak için bu üye işlevini çağırın.
void MovePrev();
Açıklamalar
Önceki kayda geçmeyi denemeden önce aramanız IsBOF
önerilir. İlk kayıt öncesinde zaten kaydırma yaptığınız veya kayıt kümesi tarafından hiçbir kayıt seçilmediğini belirten sıfır olmayan bir if IsBOF
döndüren bir CDaoException
çağrısı MovePrev
oluşturur.
Dikkat
Kayıt kümesinde Move
kayıt yoksa işlevlerden herhangi birinin çağrılması bir özel durum oluşturur. Genel olarak, kayıt kümesinin herhangi bir kaydı olup olmadığını belirlemek için taşıma işleminden önce ve IsEOF
hem hem de IsBOF
çağırın. veya çağrısı Open
yaptıktan sonra ya Requery
da IsBOF
IsEOF
öğesini arayın.
Not
Geçerli kayıt güncelleştirilirken veya eklenirken işlevlerden herhangi birini Move
çağırırsanız, güncelleştirmeler uyarı olmadan kaybolur.
Move
Koşul uygulamadan kayıttan kayda geçmek için işlevlerini kullanın. Belirli bir koşulu karşılayan dynaset türü veya anlık görüntü türü kayıt kümesi nesnesindeki kayıtları bulmak için Bul işlemlerini kullanın. Tablo türündeki kayıt kümesi nesnesindeki bir kaydı bulmak için çağrısı yapın Seek
.
Kayıt kümesi tablo türündeki bir kayıt kümesine başvuruyorsa, hareket tablonun geçerli dizinini izler. Temel alınan DAO nesnesinin Index özelliğini kullanarak geçerli dizini ayarlayabilirsiniz. Geçerli dizini ayarlamazsanız, döndürülen kayıtların sırası tanımlanmamış olur.
Veya MovePrev
üye işlevini yalnızca ileriye doğru kaydırma anlık görüntüsüyle çağıramazsınızMoveFirst
.
Kayıt kümesi nesnesindeki geçerli kaydın konumunu belirli sayıda kaydı ileri veya geri taşımak için çağrısı yapın Move
.
İlgili bilgiler için DAO Yardımı'ndaki "MoveFirst, MoveLast, MoveNext, MovePrevious Methods" konularına bakın.
CDaoRecordset::Open
Kayıt kümesinin kayıtlarını almak için bu üye işlevini çağırmanız gerekir.
virtual void Open(
int nOpenType = AFX_DAO_USE_DEFAULT_TYPE,
LPCTSTR lpszSQL = NULL,
int nOptions = 0);
virtual void Open(
CDaoTableDef* pTableDef,
int nOpenType = dbOpenTable,
int nOptions = 0);
virtual void Open(
CDaoQueryDef* pQueryDef,
int nOpenType = dbOpenDynaset,
int nOptions = 0);
Parametreler
nOpenType
Aşağıdaki değerlerden biri:
dbOpenDynaset
Çift yönlü kaydırma ile dinamik küme türündeki kayıt kümesi. Bu varsayılan seçenektir.dbOpenTable
Çift yönlü kaydırmalı tablo türündeki kayıt kümesi.dbOpenSnapshot
Çift yönlü kaydırma ile anlık görüntü türündeki kayıt kümesi.
lpszSQL
Aşağıdakilerden birini içeren bir dize işaretçisi:
NULL işaretçisi.
Bir veya daha fazla tablo tanımı ve/veya sorgu tanımı (virgülle ayrılmış) adı.
SQL SELECT deyimi (isteğe bağlı olarak SQL WHERE veya ORDERBY yan tümcesiyle).
Geçiş sorgusu.
nSeçenekler
Aşağıda listelenen seçeneklerden biri veya daha fazlası. Varsayılan değer 0'tir. Olası değerler aşağıdaki gibidir:
dbAppendOnly
Yalnızca yeni kayıtları ekleyebilirsiniz (yalnızca dynaset türündeki kayıt kümesi). Bu seçenek tam anlamıyla kayıtların yalnızca eklenebileceği anlamına gelir. MFC ODBC veritabanı sınıfları, kayıtların alınmasına ve eklenmesine izin veren yalnızca ekleme seçeneğine sahiptir.dbForwardOnly
Kayıt kümesi yalnızca ileriye doğru kaydırma anlık görüntüsüdür.dbSeeChanges
Başka bir kullanıcı düzenlediğiniz verileri değiştiriyorsa bir özel durum oluşturun.dbDenyWrite
Diğer kullanıcılar kayıtları değiştiremez veya ekleyemez.dbDenyRead
Diğer kullanıcılar kayıtları görüntüleyemez (yalnızca tablo türü kayıt kümesi).dbReadOnly
Yalnızca kayıtları görüntüleyebilirsiniz; diğer kullanıcılar bunları değiştirebilir.dbInconsistent
Tutarsız güncelleştirmelere izin verilir (yalnızca dinamik küme türü kayıt kümesi).dbConsistent
Yalnızca tutarlı güncelleştirmelere izin verilir (yalnızca dinamik küme türündeki kayıt kümesi).
Not
ve dbInconsistent
sabitleri dbConsistent
birbirini dışlar. Birini veya diğerini kullanabilirsiniz, ancak her ikisini de belirli bir örneğinde Open
kullanamazsınız.
pTableDef
CDaoTableDef nesnesinin işaretçisi. Bu sürüm yalnızca tablo türündeki kayıt kümeleri için geçerlidir. Bu seçenek kullanıldığında, CDaoDatabase
öğesini oluşturmak CDaoRecordset
için kullanılan işaretçi kullanılmaz; bunun yerine tabledef'in bulunduğu veritabanı kullanılır.
pQueryDef
CDaoQueryDef nesnesinin işaretçisi. Bu sürüm yalnızca dynaset türü ve anlık görüntü türü kayıt kümeleri için geçerlidir. Bu seçenek kullanılırken, CDaoDatabase
öğesini oluşturmak CDaoRecordset
için kullanılan işaretçi kullanılmaz; bunun yerine sorgu tanımında bulunan veritabanı kullanılır.
Açıklamalar
çağrısından Open
önce kayıt kümesi nesnesini oluşturmanız gerekir. Bunu yapmanın birkaç yolu vardır:
Kayıt kümesi nesnesini oluştururken, zaten açık olan bir nesneye bir
CDaoDatabase
işaretçi geçirin.Kayıt kümesi nesnesini oluştururken açık olmayan bir nesneye bir
CDaoDatabase
işaretçi geçirin. Kayıt kümesi birCDaoDatabase
nesne açar, ancak kayıt kümesi nesnesi kapatıldığında nesneyi kapatmaz.Kayıt kümesi nesnesini oluşturduğunuzda NULL işaretçisi geçirin. Kayıt kümesi nesnesi, Microsoft Access'in adını almak için öğesini çağırır
GetDefaultDBName
. Açılacak MDB dosyası. Daha sonra kayıt kümesi birCDaoDatabase
nesneyi açar ve kayıt kümesi açık olduğu sürece açık tutar. Kayıt kümesinde çağırdığınızdaClose
,CDaoDatabase
nesne de kapatılır.Not
Kayıt kümesi nesneyi açtığında
CDaoDatabase
, veri kaynağını münhasır olmayan erişimle açar.
lpszSQL parametresini kullanan sürümü Open
için kayıt kümesi açıldıktan sonra kayıtları birkaç yoldan biriyle alabilirsiniz. İlk seçenek, DFX işlevlerinin içinde DoFieldExchange
olmasıdır. İkinci seçenek, üye işlevini çağırarak dinamik bağlamayı kullanmaktır GetFieldValue
. Bu seçenekler ayrı olarak veya birlikte uygulanabilir. Bunlar birleştirilirse, çağrısında SQL deyimini kendiniz geçirmeniz gerekir Open
.
nesnesinde CDaoTableDef
geçirdiğiniz ikinci sürümünü Open
kullandığınızda, sonuçta elde edilen sütunlar ile ve DFX mekanizması aracılığıyla DoFieldExchange
bağlamanız ve/veya aracılığıyla GetFieldValue
dinamik olarak bağlamanız için kullanılabilir.
Not
Yalnızca tablo türündeki kayıt kümeleri için bir CDaoTableDef
nesne kullanarak çağırabilirsinizOpen
.
Nesnesini CDaoQueryDef
geçirdiğiniz üçüncü sürümünü Open
kullandığınızda, bu sorgu yürütülür ve sonuçta elde edilen sütunlar ile ve DFX mekanizması aracılığıyla DoFieldExchange
bağlamanız ve/veya aracılığıyla GetFieldValue
dinamik olarak bağlamanız için kullanılabilir.
Not
Yalnızca dynaset türü ve anlık görüntü türü kayıt kümeleri için bir CDaoQueryDef
nesne kullanarak çağırabilirsinizOpen
.
parametresini Open
kullanan ilk sürümü için lpszSQL
kayıtlar aşağıdaki tabloda gösterilen ölçütlere göre seçilir.
Parametrenin lpszSQL değeri |
Seçilen kayıtlar | Örnek |
---|---|---|
NULL | tarafından GetDefaultSQL döndürülen dize. |
|
Bir veya daha fazla tablo tanımı ve/veya sorgu tanımı adının virgülle ayrılmış listesi. | içinde DoFieldExchange temsil edilen tüm sütunlar. |
"Customer" |
SELECT sütun-listesi FROM tablo-listesi | Belirtilen tablo tanımlarından ve/veya sorgu tanımlarından belirtilen sütunlar. | "SELECT CustId, CustName FROM Customer" |
Her zamanki yordam, öğesine NULL Open
geçirmektir; bu durumda, Open
ClassWizard'ın türetilmiş bir sınıf oluştururken oluşturduğu geçersiz kılınabilir üye CDaoRecordset
işlevini çağırırGetDefaultSQL
. Bu değer ClassWizard'da belirttiğiniz tabledef(ler) ve/veya sorgu tanımı adlarını verir. Bunun yerine lpszSQL parametresinde başka bilgiler belirtebilirsiniz.
Ne geçirirseniz geçirin, Open
sorgu için son bir SQL dizesi oluşturur (dizede geçirdiğiniz lpszSQL dizesine SQL WHERE ve ORDERBY yan tümceleri eklenmiş olabilir) ve sorguyu yürütür. çağrısından Open
sonra çağırarakGetSQL
, oluşturduğunuz dizeyi inceleyebilirsiniz.
Kayıt kümesi sınıfınızın alan verileri üyeleri, seçilen verilerin sütunlarına bağlıdır. Herhangi bir kayıt döndürülürse, ilk kayıt geçerli kayıt olur.
Kayıt kümesi için filtre veya sıralama gibi seçenekleri ayarlamak istiyorsanız, kayıt kümesi nesnesini oluşturmadan önce, çağırmadan Open
önce ayarlayın m_strSort
veya m_strFilter
sonra ayarlayın. Kayıt kümesi zaten açık olduktan sonra kayıt kümesindeki kayıtları yenilemek istiyorsanız çağrısında bulunur Requery
.
Dynaset türü veya anlık görüntü türü kayıt kümesinde çağırırsanız Open
ya da veri kaynağı ekli tabloyu temsil eden bir SQL deyimine veya tablo tanımına başvuruyorsa, tür bağımsız değişkeni için kullanamazsınız dbOpenTable
; bunu yaparsanız, MFC bir özel durum oluşturur. Tabledef nesnesinin ekli bir tabloyu temsil edip etmediğini belirlemek için bir CDaoTableDef nesnesi oluşturun ve GetConnect üye işlevini çağırun.
dbSeeChanges
Aynı kaydı düzenlerken veya silerken makinenizde başka bir kullanıcı veya başka bir program tarafından yapılan değişiklikleri yakalamak istiyorsanız bayrağını kullanın. Örneğin, iki kullanıcı aynı kaydı düzenlemeye başlarsa, üye işlevini çağıran Update
ilk kullanıcı başarılı olur. İkinci kullanıcı tarafından çağrıldığında Update
, bir CDaoException
oluşturulur. Benzer şekilde, ikinci kullanıcı kaydı silmek için aramayı Delete
denerse ve ilk kullanıcı tarafından zaten değiştirilmişse, bir CDaoException
gerçekleşir.
Genellikle, kullanıcı güncelleştirme sırasında bunu CDaoException
alırsa, kodunuz alanların içeriğini yenilemeli ve yeni değiştirilen değerleri almalıdır. Silme işleminde özel durum oluşursa kodunuz kullanıcıya yeni kayıt verilerini ve verilerin yakın zamanda değiştiğini belirten bir ileti görüntüleyebilir. Bu noktada kodunuz, kullanıcının kaydı hala silmek istediğini belirten bir onay isteyebilir.
İpucu
Uygulamanız ODBC veri kaynağından açılan bir kayıt kümesinden tek geçiş yaptığında performansı artırmak için yalnızca ileri kaydırma seçeneğini (dbForwardOnly
) kullanın.
İlgili bilgiler için DAO Yardımı'ndaki "OpenRecordset Yöntemi" konusuna bakın.
CDaoRecordset::Requery
Kayıt kümesini yeniden oluşturmak (yenilemek) için bu üye işlevini çağır.
virtual void Requery();
Açıklamalar
Herhangi bir kayıt döndürülürse, ilk kayıt geçerli kayıt olur.
Kayıt kümesinin sizin veya diğer kullanıcıların veri kaynağına yaptığı eklemeleri ve silmeleri yansıtması için, çağırarak Requery
kayıt kümesini yeniden oluşturmanız gerekir. Kayıt kümesi bir dinamik kümeyse, sizin veya diğer kullanıcıların mevcut kayıtlarında (eklemeleri değil) yaptığı güncelleştirmeleri otomatik olarak yansıtır. Kayıt kümesi bir anlık görüntüyse, eklemeler ve silmelerin yanı sıra diğer kullanıcıların düzenlemelerini yansıtmak için çağırmalısınız Requery
.
Dinamik küme veya anlık görüntü için, parametre değerlerini kullanarak kayıt kümesini yeniden oluşturmak istediğinizde çağırın Requery
. Yeni filtreyi ayarlayın veya ayarına m_strFilter
göre ve m_strSort
çağrısından Requery
önce sıralayın. çağrısı Requery
öncesinde parametre veri üyelerine yeni değerler atayarak yeni parametreler ayarlayın.
Kayıt kümesini yeniden oluşturma girişimi başarısız olursa, kayıt kümesi kapatılır. çağrısından Requery
önce, üye işlevini çağırarak kayıt kümesinin yeniden sorgulanıp sorgulanamadığını CanRestart
belirleyebilirsiniz. CanRestart
bunun başarılı olacağını garanti Requery
etmez.
Dikkat
Yalnızca çağrısı Requery
yaptıktan sonra arayın Open
.
Not
Çağrı, Requery
DAO yer işaretlerini değiştirir.
Çağrı 0 döndürürse dynaset türünde veya anlık görüntü türündeki kayıt kümesinde çağrı Requery
CanRestart
yapamazsınız veya tablo türündeki bir kayıt kümesinde kullanamazsınız.
çağrısından Requery
sonra hem hem IsEOF
de IsBOF
sıfırdan farklı bir değer döndürürse, sorgu hiçbir kayıt döndürmez ve kayıt kümesi veri içermez.
İlgili bilgiler için DAO Yardımı'ndaki "Yeniden Sorgulama Yöntemi" konusuna bakın.
CDaoRecordset::Seek
Bu üye işlevini çağırarak geçerli dizin için belirtilen ölçütlere uyan dizine alınan tablo türündeki kayıt kümesi nesnesindeki kaydı bulun ve bu kaydın geçerli kaydı yapmasını sağlayın.
BOOL Seek(
LPCTSTR lpszComparison,
COleVariant* pKey1,
COleVariant* pKey2 = NULL,
COleVariant* pKey3 = NULL);
BOOL Seek(
LPCTSTR lpszComparison,
COleVariant* pKeyArray,
WORD nKeys);
Parametreler
lpszComparison
Aşağıdaki dize ifadelerinden biri: "<", "<=", "=", ">=" veya ">".
pKey1
Değeri dizindeki ilk alana karşılık gelen bir COleVariant işaretçisi. Gerekli.
pKey2
Değeri dizindeki ikinci alana (varsa) karşılık gelen bir COleVariant
işaretçi. Varsayılan değer NULL'tır.
pKey3
Değeri, varsa dizindeki üçüncü alana karşılık gelen bir COleVariant
işaretçi. Varsayılan değer NULL'tır.
pKeyArray
Bir değişken dizisi işaretçisi. Dizi boyutu, dizindeki alan sayısına karşılık gelir.
nKeys
Dizinin boyutuna karşılık gelen ve dizindeki alanların sayısı olan tamsayı.
Not
anahtarlarda joker karakter belirtmez. Joker karakterler eşleşen kayıt döndürmemeye neden Seek
olur.
Dönüş Değeri
Eşleşen kayıtlar bulunursa sıfır olmayan, aksi takdirde 0.
Açıklamalar
dört veya daha fazla alanın dizinlerini işlemek için ikinci (dizi) sürümünü Seek
kullanın.
Seek
tablo türündeki kayıt kümelerinde yüksek performanslı dizin aramasını etkinleştirir. çağrısından Seek
önce çağırarak SetCurrentIndex
geçerli dizini ayarlamanız gerekir. Dizin bir nonunique anahtar alanı veya alanları tanımlarsa, Seek
ölçütleri karşılayan ilk kaydı bulur. Dizin ayarlamazsanız bir özel durum oluşur.
UNICODE kayıt kümesi oluşturmuyorsanız, COleVariant
nesnelerin açıkça ANSI olarak bildirilmesi gerekir. Bu işlem, vtSrc ayarı (ANSI) olan oluşturucunun COleVariant::COleVariant( lpszSrc , vtSrc ) formu kullanılarak veya vtSrc olarak ayarlanmış VT_BSTRT
VT_BSTRT
SetString( lpszSrc , vtSrc ) işlevi kullanılarak COleVariant
yapılabilir.
çağırdığınızda Seek
, bir veya daha fazla anahtar değeri ve karşılaştırma işleci ("<", "<=", "=", ">=" veya ">") geçirirsiniz. Seek
belirtilen anahtar alanlarını arar ve lpszComparison ve pKey1 tarafından belirtilen ölçütleri karşılayan ilk kaydı bulur. Bulunduktan sonra sıfır Seek
olmayan değerini döndürür ve bu kaydı güncel hale getirir. Eşleşme bulunamıyorsa Seek
sıfır Seek
döndürür ve geçerli kayıt tanımlanmamış olur. DAO'yu doğrudan kullanırken, NoMatch özelliğini açıkça denetlemeniz gerekir.
"=", ">=" veya ">" iselpszComparison
, Seek
dizinin başında başlar. lpszComparison "" veya "<<=" ise, Seek
dizinin sonunda başlar ve sonunda yinelenen dizin girdileri olmadığı sürece geriye doğru arar. Bu durumda, Seek
dizinin sonundaki yinelenen dizin girişleri arasında rastgele bir girişte başlar.
kullanırken Seek
geçerli bir kayıt olması gerekmez.
Belirli bir koşulu karşılayan dynaset veya anlık görüntü türü kayıt kümesindeki bir kaydı bulmak için Bul işlemlerini kullanın. Yalnızca belirli bir koşulu karşılayan kayıtları değil tüm kayıtları dahil etmek için, Kayıttan kayda geçmek için Taşıma işlemlerini kullanın.
Ekli tabloların dynaset türü veya anlık görüntü türü kayıt kümeleri olarak açılması gerektiğinden, herhangi bir türde ekli tabloda çağrı Seek
yapamazsınız. Ancak, doğrudan yüklenebilir bir ISAM veritabanını açmayı çağırırsanız CDaoDatabase::Open
, performans yavaş olsa da bu veritabanındaki tabloları çağırabilirsiniz Seek
.
İlgili bilgiler için DAO Yardımı'ndaki "Arama Yöntemi" konusuna bakın.
CDaoRecordset::SetAbsolutePosition
Kayıt kümesi nesnesinin geçerli kaydının göreli kayıt numarasını ayarlar.
void SetAbsolutePosition(long lPosition);
Parametreler
lPosition
Kayıt kümesindeki geçerli kaydın sıralı konumuna karşılık gelir.
Açıklamalar
Çağırma SetAbsolutePosition
, geçerli kayıt işaretçisini dinamik küme türündeki veya anlık görüntü türü kayıt kümesindeki sıralı konumuna göre belirli bir kayda konumlandırmanızı sağlar. GetAbsolutePosition çağrısı yaparak da geçerli kayıt numarasını belirleyebilirsiniz.
Not
Bu üye işlevi yalnızca dynaset türü ve anlık görüntü türü kayıt kümeleri için geçerlidir.
Temel alınan DAO nesnesinin AbsolutePosition özellik değeri sıfır tabanlıdır; 0 ayarı kayıt kümesindeki ilk kayda başvurur. Doldurulan kayıt sayısından büyük bir değer ayarlamak, MFC'nin özel durum oluşturmasına neden olur. Üye işlevini çağırarak kayıt kümesindeki doldurulan kayıtların GetRecordCount
sayısını belirleyebilirsiniz.
Geçerli kayıt silinirse, AbsolutePosition özellik değeri tanımlanmamıştır ve MFC başvuruluysa bir özel durum oluşturur. Sıranın sonuna yeni kayıtlar eklenir.
Not
Bu özelliğin vekil kayıt numarası olarak kullanılması amaçlanmamıştır. Yer işaretleri hala belirli bir konuma geri dönmenin önerilen yoludur ve geçerli kaydı yer işaretlerini destekleyen tüm kayıt kümesi nesneleri arasında konumlandırmanın tek yoludur. Özellikle, bir önceki kayıtlar silindiğinde belirli bir kaydın konumu değişir. Ayrıca, orderby yan tümcesi kullanılarak bir SQL deyimiyle oluşturulmadığı sürece kayıt kümesi içindeki tek tek kayıtların sırası garanti edilmediğinden, kayıt kümesi yeniden oluşturulursa belirli bir kaydın aynı mutlak konuma sahip olacağının güvencesi yoktur.
İlgili bilgiler için DAO Yardımı'ndaki "AbsolutePosition Özelliği" konusuna bakın.
CDaoRecordset::SetBookmark
Kayıt kümesini belirtilen yer işaretini içeren kayıtta konumlandırmak için bu üye işlevini çağırın.
void SetBookmark(COleVariant varBookmark);
Parametreler
varBookmark
Belirli bir kaydın yer işareti değerini içeren bir COleVariant nesnesi.
Açıklamalar
Bir kayıt kümesi nesnesi oluşturulduğunda veya açıldığında, kayıtlarının her birinin benzersiz bir yer işareti vardır. Değerini çağırarak GetBookmark
ve bir COleVariant
nesneye kaydederek geçerli kaydın yer işaretini alabilirsiniz. Daha sonra kaydedilen yer işareti değerini kullanarak arayarak SetBookmark
bu kayda dönebilirsiniz.
Not
Requery çağrısı, DAO yer işaretlerini değiştirir.
UNICODE kayıt kümesi oluşturmuyorsanız nesne açıkça COleVariant
ANSI olarak bildirilmelidir. Bu işlem, vtSrc ayarı (ANSI) olan oluşturucunun COleVariant::COleVariant( lpszSrc , vtSrc ) formu kullanılarak veya vtSrc olarak ayarlanmış VT_BSTRT
VT_BSTRT
SetString( lpszSrc , vtSrc ) işlevi kullanılarak COleVariant
yapılabilir.
İlgili bilgiler için DAO Yardımı'ndaki "Yer İşareti Özelliği" ve Yer İşaretlenebilir Özellik" konularına bakın.
CDaoRecordset::SetCacheSize
Önbelleğe alınacak kayıt sayısını ayarlamak için bu üye işlevini çağırın.
void SetCacheSize(long lSize);
Parametreler
lSize
Kayıt sayısını belirtir. Tipik bir değer 100'dür. 0 ayarı önbelleğe almayı kapatır. Ayar 5 ile 1.200 kayıt arasında olmalıdır. Önbellek önemli miktarda bellek kullanabilir.
Açıklamalar
Önbellek, uygulama çalışırken verilerin yeniden isteniyor olması durumunda sunucudan en son alınan verileri tutan yerel bellekte yer alan bir alandır. Veri önbelleğe alma, dinamik küme türündeki kayıt kümesi nesneleri aracılığıyla uzak sunucudan veri alan bir uygulamanın performansını artırır. Veriler istendiğinde, Microsoft Jet veritabanı altyapısı istenen verileri sunucudan almak yerine önce önbelleği denetler ve bu da daha fazla zaman alır. ODBC veri kaynağından gelmeyen veriler önbelleğe kaydedilmez.
Ekli tablo gibi herhangi bir ODBC veri kaynağı yerel önbelleğe sahip olabilir. Önbelleği oluşturmak için uzak veri kaynağından bir kayıt kümesi nesnesi açın, ve SetCacheStart
üye işlevlerini çağırın SetCacheSize
ve ardından üye işlevini çağırın FillCache
veya Taşıma işlemlerinden birini kullanarak kayıtlarda ilerleyin. Üye işlevinin SetCacheSize
lSize parametresi, uygulamanızın aynı anda çalışabileceği kayıt sayısına bağlı olabilir. Örneğin, ekranda görüntülenecek verilerin kaynağı olarak bir kayıt kümesi kullanıyorsanız lSize parametresini 20 olarak geçirerek SetCacheSize
aynı anda 20 kayıt görüntüleyebilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "CacheSize, CacheStart Özellikleri" konusuna bakın.
CDaoRecordset::SetCacheStart
Önbelleğe alınacak kayıt kümesindeki ilk kaydın yer işaretini belirtmek için bu üye işlevini çağırın.
void SetCacheStart(COleVariant varBookmark);
Parametreler
varBookmark
Önbelleğe alınacak kayıt kümesindeki ilk kaydın yer işaretini belirten bir COleVariant.
Açıklamalar
Üye işlevinin varBookmark parametresi için herhangi bir kaydın SetCacheStart
yer işareti değerini kullanabilirsiniz. Önbelleği geçerli kayıtla başlatmak istediğiniz kaydı oluşturun, SetBookmark'ı kullanarak bu kayıt için bir yer işareti oluşturun ve üye işlevinin parametresi SetCacheStart
olarak yer işareti değerini geçirin.
Microsoft Jet veritabanı altyapısı önbellek aralığındaki kayıtları önbellekten ve önbellek aralığının dışındaki kayıtları sunucudan istemektedir.
Önbellekten alınan kayıtlar, diğer kullanıcılar tarafından kaynak verilerde eşzamanlı olarak yapılan değişiklikleri yansıtmaz.
Önbelleğe alınan tüm verilerin güncelleştirmeyi zorlamak için lSize parametresini SetCacheSize
0 olarak geçirin, ilk olarak istediğiniz önbelleğin boyutuyla yeniden çağırın SetCacheSize
ve üye işlevini çağırınFillCache
.
UNICODE kayıt kümesi oluşturmuyorsanız nesne açıkça COleVariant
ANSI olarak bildirilmelidir. Bu işlem, vtSrc ayarı (ANSI) olan oluşturucunun COleVariant::COleVariant( lpszSrc , vtSrc ) formu kullanılarak veya vtSrc olarak ayarlanmış VT_BSTRT
VT_BSTRT
SetString( lpszSrc , vtSrc ) işlevi kullanılarak COleVariant
yapılabilir.
İlgili bilgiler için DAO Yardımı'ndaki CacheSize, CacheStart Properties" konusuna bakın.
CDaoRecordset::SetCurrentIndex
Tablo türündeki kayıt kümesinde dizin ayarlamak için bu üye işlevini çağır.
void SetCurrentIndex(LPCTSTR lpszIndex);
Parametreler
lpszIndex
Ayarlanacak dizinin adını içeren bir işaretçi.
Açıklamalar
Temel tablolardaki kayıtlar belirli bir sırada depolanmaz. Dizinin ayarlanması veritabanından döndürülen kayıtların sırasını değiştirir, ancak kayıtların depolanma sırasını etkilemez. Belirtilen dizin zaten tanımlanmış olmalıdır. Var olmayan bir dizin nesnesi kullanmaya çalışırsanız veya Arama'yı çağırdığınızda dizin ayarlanmadıysa, MFC bir özel durum oluşturur.
CDaoTableDef::CreateIndex'i çağırarak ve CDaoTableDef::Append'i çağırıp kayıt kümesini yeniden açarak yeni dizini temel tablo tanımı indexes koleksiyonuna ekleyerek tablo için yeni bir dizin oluşturabilirsiniz.
Tablo türündeki kayıt kümesinden döndürülen kayıtlar yalnızca temel tablo tanımı için tanımlanan dizinler tarafından sıralanabilir. Kayıtları başka bir düzende sıralamak için, CDaoRecordset::m_strSort içinde depolanan bir SQL ORDERBY yan tümcesini kullanarak dynaset türü veya anlık görüntü türü kayıt kümesini açabilirsiniz.
İlgili bilgiler için DAO Yardımı'ndaki "Dizin Nesnesi" konusuna ve "geçerli dizin" tanımına bakın.
CDaoRecordset::SetFieldDirty
Kayıt kümesinin alan veri üyesini değiştirilmiş veya değişmemiş olarak işaretlemek için bu üye işlevini çağırın.
void SetFieldDirty(
void* pv,
BOOL bDirty = TRUE);
Parametreler
Pv
Kayıt kümesindeki veya NULL'daki bir alan veri üyesinin adresini içerir. NULL ise, kayıt kümesindeki tüm alan verileri üyelerine bayrak eklenir. (C++ NULL, veritabanı terminolojisindeki Null ile aynı değildir ve bu da "değere sahip olmadığı" anlamına gelir.)
bDirty
Alan veri üyesi "kirli" (değiştirildi) olarak işaretlenecekse TRUE. Aksi takdirde, alan veri üyesi "temiz" (değişmemiş) olarak işaretlenecekse YANLIŞ.
Açıklamalar
Alanları değişmemiş olarak işaretlemek, alanın güncelleştirilmemesini sağlar.
Çerçeve, daO kayıt alanı değişimi (DFX) mekanizması tarafından veri kaynağındaki kayda yazılacağından emin olmak için değiştirilen alan veri üyelerini işaretler. Bir alanın değerinin değiştirilmesi genellikle alanı otomatik olarak kirli olarak ayarlar, bu nedenle nadiren kendinizi çağırmanız SetFieldDirty
gerekir, ancak bazen alan veri üyesindeki değerden bağımsız olarak sütunların açıkça güncelleştirildiğinden veya eklendiğinden emin olmak isteyebilirsiniz. DFX mekanizması aynı zamanda PSEUDONULL kullanımını da kullanır. Daha fazla bilgi için bkz . CDaoFieldExchange::m_nOperation.
Çift arabelleğe alma mekanizması kullanılmıyorsa, alanın değerini değiştirmek alanı otomatik olarak kirli olarak ayarlamaz. Bu durumda, alanı açıkça kirli olarak ayarlamak gerekir. m_bCheckCacheForDirtyFields içindeki bayrak bu otomatik alan denetimini denetler.
Not
Bu üye işlevini yalnızca Düzenle veya EkleYeni olarak adlandırdıktan sonra çağır.
İşlevin ilk bağımsız değişkeni için NULL kullanıldığında işlevi içindeki param alanlarına değil tüm outputColumn
alanlara CDaoFieldExchange
uygulanır. Örneğin, arama
SetFieldDirty(NULL);
yalnızca outputColumn
alanları NULL olarak ayarlar; param alanları etkilenmez.
Bir param üzerinde çalışmak için, üzerinde çalışmak istediğiniz bağımsız parametrenin gerçek adresini sağlamanız gerekir, örneğin:
SetFieldDirty(&m_strParam);
Bu, alanlarla outputColumn
yaptığınız gibi tüm param alanlarını NULL olarak ayarlayabileceğiniz anlamına gelir.
SetFieldDirty
aracılığıyla DoFieldExchange
uygulanır.
CDaoRecordset::SetFieldNull
Kayıt kümesinin alan veri üyesini Null (özellikle değer içermeyen) veya Null olmayan olarak işaretlemek için bu üye işlevini çağırın.
void SetFieldNull(
void* pv,
BOOL bNull = TRUE);
Parametreler
Pv
Kayıt kümesindeki veya NULL'daki bir alan veri üyesinin adresini içerir. NULL ise, kayıt kümesindeki tüm alan verileri üyelerine bayrak eklenir. (C++ NULL, veritabanı terminolojisindeki Null ile aynı değildir ve bu da "değere sahip olmadığı" anlamına gelir.)
bNull
Alan veri üyesi hiçbir değere (Null) sahip olarak işaretlenecekse sıfır olmayan. Aksi takdirde, alan veri üyesi Null olmayan olarak işaretlenecekse 0.
Açıklamalar
SetFieldNull
mekanizmaya DoFieldExchange
bağlı alanlar için kullanılır.
Kayıt kümesine yeni bir kayıt eklediğinizde, tüm alan veri üyeleri başlangıçta Null değerine ayarlanır ve "kirli" (değiştirildi) olarak işaretlenir. Bir veri kaynağından kayıt aldığınızda, sütunlarının değerleri zaten vardır veya Null'tır. Boş alan yapmak uygun değilse, bir CDaoException oluşturulur.
Örneğin, çift arabelleğe alma mekanizmasını kullanıyorsanız, özellikle geçerli kaydın bir alanını değere sahip değil olarak belirlemek istiyorsanız bNull değeri TRUE olarak ayarlanmış olarak çağırarak SetFieldNull
Null olarak işaretleyebilirsiniz. Bir alan daha önce Null olarak işaretlendiyse ve şimdi ona bir değer vermek istiyorsanız, yeni değerini ayarlayın. ile SetFieldNull
Null bayrağını kaldırmanız gerekmez. Alanın Null olmasına izin verilip verilmeyeceğini belirlemek için IsFieldNullable'ı çağırın.
Çift arabelleğe alma mekanizmasını kullanmıyorsanız, alanın değerini değiştirmek alanı otomatik olarak kirli ve Null olmayan olarak ayarlamaz. Özel olarak kirli ve Null olmayan alanları ayarlamanız gerekir. m_bCheckCacheForDirtyFields içindeki bayrak bu otomatik alan denetimini denetler.
DFX mekanizması PSEUDONULL kullanımını kullanır. Daha fazla bilgi için bkz . CDaoFieldExchange::m_nOperation.
Not
Bu üye işlevini yalnızca Düzenle veya EkleYeni olarak adlandırdıktan sonra çağır.
İşlevin ilk bağımsız değişkeni için NULL kullanıldığında işlevi içindeki param alanlarına değil yalnızca outputColumn
alanlara CDaoFieldExchange
uygulanır. Örneğin, arama
SetFieldNull(NULL);
yalnızca outputColumn
alanları NULL olarak ayarlar; param alanları etkilenmez.
CDaoRecordset::SetFieldValue
Bir alanın değerini sıralı konuma göre veya dizenin değerini değiştirerek ayarlamak için bu üye işlevini çağırın.
virtual void SetFieldValue(
LPCTSTR lpszName,
const COleVariant& varValue);
virtual void SetFieldValue(
int nIndex,
const COleVariant& varValue);
void SetFieldValue(
LPCTSTR lpszName,
LPCTSTR lpszValue);
void SetFieldValue(
int nIndex,
LPCTSTR lpszValue);
Parametreler
lpszName
Bir alanın adını içeren bir dize işaretçisi.
varValue
Alanın içeriğinin değerini içeren bir COleVariant nesnesine başvuru.
nIndex
Kayıt kümesinin Fields koleksiyonundaki (sıfır tabanlı) alanın sıralı konumunu temsil eden bir tamsayı.
lpszValue
Alan içeriğinin değerini içeren bir dize işaretçisi.
Açıklamalar
DoFieldExchange mekanizmasını kullanarak sütunları statik olarak bağlamak yerine çalışma zamanında alanları dinamik olarak bağlamak için ve GetFieldValue kullanınSetFieldValue
.
UNICODE kayıt kümesi oluşturmuyorsanız, parametre içermeyen bir COleVariant
biçimi SetFieldValue
kullanmanız veya nesnenin COleVariant
açıkça ANSI olarak bildirilmesi gerekir. Bu işlem, vtSrc ayarı (ANSI) olan oluşturucunun COleVariant::COleVariant( lpszSrc , vtSrc ) formu kullanılarak veya vtSrc olarak ayarlanmış VT_BSTRT
VT_BSTRT
SetString( lpszSrc , vtSrc ) işlevi kullanılarak COleVariant
yapılabilir.
İlgili bilgiler için DAO Yardımı'ndaki "Alan Nesnesi" ve "Değer Özelliği" konularına bakın.
CDaoRecordset::SetFieldValueNull
Alanı Null değerine ayarlamak için bu üye işlevini çağırın.
void SetFieldValueNull(int nIndex);
void SetFieldValueNull(LPCTSTR lpszName);
Parametreler
nIndex
Sıfır tabanlı dizine göre arama için kayıt kümesindeki alanın dizini.
lpszName
Ada göre arama için kayıt kümesindeki alanın adı.
Açıklamalar
C++ NULL, Null ile aynı değildir ve veritabanı terminolojisinde "değer olmaması" anlamına gelir.
İlgili bilgiler için DAO Yardımı'ndaki "Alan Nesnesi" ve "Değer Özelliği" konularına bakın.
CDaoRecordset::SetLockingMode
Kayıt kümesi için kilitleme türünü ayarlamak için bu üye işlevini çağırın.
void SetLockingMode(BOOL bPessimistic);
Parametreler
bPessimistic
Kilitleme türünü gösteren bayrak.
Açıklamalar
Kötümser kilitleme etkin olduğunda, üye işlevini çağırır çağırmaz Edit
düzenlemekte olduğunuz kaydı içeren 2K sayfası kilitlenir. veya üye işlevini veya Taşı veya Close
Bul işlemlerinden herhangi birini çağırdığınızda Update
sayfanın kilidi açılır.
İyimser kilitleme etkin olduğunda, kaydı içeren 2K sayfası yalnızca kayıt üye işleviyle Update
güncelleştirilirken kilitlenir.
Bir sayfa kilitliyse, başka hiçbir kullanıcı aynı sayfadaki kayıtları düzenleyemez. Çağrısı SetLockingMode
yaparsanız ve sıfır olmayan bir değer geçirirseniz ve başka bir kullanıcı sayfayı zaten kilitlemişse, çağırdığınızda Edit
bir özel durum oluşturulur. Diğer kullanıcılar kilitli sayfalardan verileri okuyabilir.
Sayfa başka bir kullanıcı tarafından kilitliyken sıfır değerle ve daha sonra çağrıyla çağırırsanız SetLockingMode
Update
, bir özel durum oluşur. Başka bir kullanıcı tarafından kaydınızda yapılan değişiklikleri görmek (ve değişikliklerinizi kaybetmek) için üye işlevini geçerli kaydın yer işareti değeriyle çağırın SetBookmark
.
ODBC veri kaynaklarıyla çalışırken kilitleme modu her zaman iyimserdir.
CDaoRecordset::SetParamValue
Çalışma zamanında kayıt kümesindeki bir parametrenin değerini ayarlamak için bu üye işlevini çağırın.
virtual void SetParamValue(
int nIndex,
const COleVariant& varValue);
virtual void SetParamValue(
LPCTSTR lpszName,
const COleVariant& varValue);
Parametreler
nIndex
Querydef'in Parameters koleksiyonundaki parametrenin sayısal konumu.
var
Ayarlanacağı değer; bkz. Açıklamalar.
lpszName
Değerini ayarlamak istediğiniz parametrenin adı.
Açıklamalar
parametresi, kayıt kümesinin SQL dizesinin bir parçası olarak zaten oluşturulmuş olmalıdır. Parametreye ada veya koleksiyondaki dizin 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ı. UNICODE kayıt kümesi oluşturmuyorsanız nesne açıkça COleVariant
ANSI olarak bildirilmelidir. Bu işlem, vtSrc ayarı (ANSI) olan oluşturucunun COleVariant::COleVariant( lpszSrc , vtSrc ) formu kullanılarak veya vtSrc olarak ayarlanmış VT_BSTRT
VT_BSTRT
SetString( lpszSrc , vtSrc ) işlevi kullanılarak COleVariant
yapılabilir.
CDaoRecordset::SetParamValueNull
Parametresini Null değerine ayarlamak için bu üye işlevini çağırın.
void SetParamValueNull(int nIndex);
void SetParamValueNull(LPCTSTR lpszName);
Parametreler
nIndex
Sıfır tabanlı dizine göre arama için kayıt kümesindeki alanın dizini.
lpszName
Ada göre arama için kayıt kümesindeki alanın adı.
Açıklamalar
C++ NULL, Null ile aynı değildir ve veritabanı terminolojisinde "değer olmaması" anlamına gelir.
CDaoRecordset::SetPercentPosition
Kayıt kümesi nesnesindeki geçerli kaydın yaklaşık konumunu kayıt kümesindeki kayıtların yüzdesine göre değiştiren bir değer ayarlamak için bu üye işlevini çağırın.
void SetPercentPosition(float fPosition);
Parametreler
fPosition
0 ile 100 arasında bir sayı.
Açıklamalar
Dynaset türü veya anlık görüntü türü kayıt kümesiyle çalışırken, çağırmadan SetPercentPosition
önce son kayda geçerek kayıt kümesini doldurun. Kayıt kümesini tam olarak doldurmadan önce çağırırsanız SetPercentPosition
, taşıma miktarı GetRecordCount değeriyle gösterildiği gibi erişilen kayıt sayısına göredir. öğesini çağırarak MoveLast
son kayda geçebilirsiniz.
çağrısı SetPercentPosition
yaptıktan sonra, bu değere karşılık gelen yaklaşık konumdaki kayıt geçerli olur.
Not
Geçerli kaydı kayıt kümesindeki belirli bir kayda taşımak için çağrılması SetPercentPosition
önerilmez. Bunun yerine SetBookmark üye işlevini çağırın.
İlgili bilgiler için DAO Yardımı'ndaki "PercentPosition Özelliği" konusuna bakın.
CDaoRecordset::Update
veya Edit
üye işlevine yapılan çağrıdan sonra bu üye işlevini çağırınAddNew
.
virtual void Update();
Açıklamalar
Bu çağrı, veya Edit
işlemini tamamlamak AddNew
için gereklidir.
Edit
Hem hem de AddNew
eklenen veya düzenlenen verilerin veri kaynağına kaydedilecek şekilde yerleştirildiği bir düzenleme arabelleği hazırlayın. Update
verileri kaydeder. Yalnızca değiştirilmiş olarak işaretlenen veya algılanan alanlar güncelleştirilir.
Veri kaynağı işlemleri destekliyorsa, çağrıyı Update
(ve buna karşılık gelen AddNew
veya Edit
çağrısını) bir işlemin parçası yapabilirsiniz.
Dikkat
veya çağrısı yapmadan ararsanız Update
AddNew
Edit
, Update
bir CDaoException
oluşturur. veya öğesini çağırırsanızAddNew
, MoveNext öğesini çağırmadan önce veya kayıt kümesini ya da veri kaynağı bağlantısını kapatmadan önce çağırmalısınızUpdate
.Edit
Aksi takdirde, değişiklikleriniz bildirimde bulunmadan kaybolur.
Kayıt kümesi nesnesi çok kullanıcılı bir ortamda kötümser bir şekilde kilitlendiğinde, kayıt güncelleştirme tamamlanana kadar kullanılan zamandan Edit
itibaren kilitli kalır. Kayıt kümesi iyimser bir şekilde kilitlenmişse, kayıt kilitlenir ve veritabanında güncelleştirilmeden hemen önce önceden düzenlenmiş kayıtla karşılaştırılır. çağırdığınızdan Edit
Update
beri kayıt değiştiyse işlem başarısız olur ve MFC bir özel durum oluşturur. ile SetLockingMode
kilitleme modunu değiştirebilirsiniz.
Not
İyimser kilitleme her zaman ODBC ve yüklenebilir ISAM gibi dış veritabanı biçimlerinde kullanılır.
İlgili bilgiler için DAO Yardımı'ndaki "AddNew Metodu", "CancelUpdate Yöntemi", "Delete Yöntemi", "LastModified Özelliği", "Update Yöntemi" ve "EditMode Özelliği" konularına bakın.
Ayrıca bkz.
CObject Sınıfı
Hiyerarşi Grafiği
CDaoTableDef Sınıfı
CDaoWorkspace Sınıfı
CDaoDatabase Sınıfı
CDaoQueryDef Sınıfı