Kayıt kümesi: Kayıtları Ekleme, Güncelleştirme ve Silme (ODBC)
Bu konu MFC ODBC sınıfları için geçerlidir.
Not
Artık kayıtları toplu olarak daha verimli bir şekilde ekleyebilirsiniz. Daha fazla bilgi için bkz . Kayıt Kümesi: Kayıtları Toplu Ekleme (ODBC).
Not
Bu konu, toplu satır getirmenin uygulanmadığı türetilen CRecordset
nesneler için geçerlidir. Toplu satır getirme kullanıyorsanız bkz . Kayıt Kümesi: Kayıtları Toplu Getirme (ODBC).
Güncelleştirilebilir anlık görüntüler ve dinamik kümeler kayıtları eklemenize, düzenlemenize (güncelleştirmenize) ve silmenize olanak sağlar. Bu konu başlığı altında açıklanmaktadır:
Kayıt kümenizin güncelleştirilebilir olup olmadığını belirleme.
Yeni kayıt ekleme.
Var olan bir kaydı düzenleme.
Kayıt silme.
Güncelleştirmelerin nasıl gerçekleştirildiği ve güncelleştirmelerinizin diğer kullanıcılara nasıl göründüğü hakkında daha fazla bilgi için bkz . Kayıt Kümesi: Kayıt Kümeleri Kayıtları Nasıl Güncelleştirir (ODBC). Normalde, kayıt eklediğinizde, düzenlediğinizde veya sildiğinizde kayıt kümesi veri kaynağını hemen değiştirir. Bunun yerine, ilgili güncelleştirme gruplarını işlemler halinde toplu işleyebilirsiniz. Bir işlem devam ederse, siz işlemi işleyene kadar güncelleştirme son halini almaz. Bu, değişiklikleri geri almanıza veya geri almanıza olanak tanır. İşlemler hakkında bilgi için bkz . İşlem (ODBC).
Aşağıdaki tabloda, farklı güncelleştirme özelliklerine sahip kayıt kümeleri için kullanılabilen seçenekler özetlenmiştir.
Kayıt Kümesi Okuma/Güncelleştirme Seçenekleri
Tür | Okundu | Kaydı düzenle | Kaydı sil | Yeni ekle (ekle) |
---|---|---|---|---|
Salt Okunur | Y | N | N | N |
Yalnızca ekle | Y | N | N | Y |
Tamamen güncelleştirilebilir | Y | Y | Y | Y |
Kayıt Kümenizin Güncelleştirilebilir Olup Olmadığını Belirleme
Veri kaynağı güncelleştirilebilirse ve kayıt kümesini güncelleştirilebilir olarak açtıysanız kayıt kümesi nesnesi güncelleştirilebilir. Güncelleştirilebilirliği kullandığınız SQL deyimine, ODBC sürücünüzün özelliklerine ve ODBC İmleç Kitaplığı'nın bellekte olup olmadığına da bağlıdır. Salt okunur kayıt kümesini veya veri kaynağını güncelleştiremezsiniz.
Kayıt kümenizin güncelleştirilebilir olup olmadığını belirlemek için
Kayıt kümesi nesnesinin CanUpdate üye işlevini çağırın.
CanUpdate
kayıt kümesi güncelleştirilebilirse sıfır olmayan bir değer döndürür.
Varsayılan olarak, kayıt kümeleri tamamen güncelleştirilebilir (, Edit
ve Delete
işlemleri gerçekleştirebilirsinizAddNew
). Ancak güncelleştirilebilir kayıt kümelerini açmak için appendOnly seçeneğini de kullanabilirsiniz. Bu şekilde açılan kayıt kümesi ile yalnızca yeni kayıtların AddNew
eklenmesine izin verir. Mevcut kayıtları düzenleyemez veya silemezsiniz. CanAppend üye işlevini çağırarak kayıt kümesinin yalnızca ekleme için açık olup olmadığını test edebilirsiniz. CanAppend
kayıt kümesi tamamen güncelleştirilebilirse veya yalnızca ekleme için açıksa sıfır olmayan bir değer döndürür.
Aşağıdaki kod, adlı rsStudentSet
bir kayıt kümesi nesnesi için nasıl kullanabileceğinizi CanUpdate
gösterir:
if( !rsStudentSet.Open( ) )
return FALSE;
if( !rsStudentSet.CanUpdate( ) )
{
AfxMessageBox( "Unable to update the Student recordset." );
return;
}
Dikkat
çağırarak Update
bir kayıt kümesini güncelleştirmeye hazırlanırken, kayıt kümenizin tablonun birincil anahtarını (veya tablodaki herhangi bir benzersiz dizinin tüm sütunlarını) oluşturan tüm sütunları içerdiğine dikkat edin. Bazı durumlarda çerçeve, tablonuzda hangi kaydın güncelleştirilecek olduğunu belirlemek için yalnızca kayıt kümenizde seçilen sütunları kullanabilir. Gerekli tüm sütunlar olmadan, tabloda birden çok kayıt güncelleştirilebilir ve tablonun bilgi tutarlılığı zarar verebilir. Bu durumda, çağırdığınızda Update
çerçeve özel durumlar oluşturur.
Kayıt Kümesine Kayıt Ekleme
CanAppend üye işlevi sıfır olmayan bir değer döndürüyorsa kayıt kümesine yeni kayıtlar ekleyebilirsiniz.
Kayıt kümesine yeni kayıt eklemek için
Kayıt kümesinin eklenebilir olduğundan emin olun.
Kayıt kümesi nesnesinin AddNew üye işlevini çağırın.
AddNew
kayıt kümesini düzenleme arabelleği işlevi görmesi için hazırlar. Tüm alan veri üyeleri Null özel değerine ayarlanır ve değiştirilmedi olarak işaretlenir, bu nedenle Update'i çağırdığınızda veri kaynağına yalnızca değiştirilen (kirli) değerler yazılır.Yeni kaydın alan veri üyelerinin değerlerini ayarlayın.
Alan veri üyelerine değerler atayın. Atamadığınız veriler veri kaynağına yazılmaz.
Kayıt kümesi nesnesinin üye işlevini çağırın
Update
.Update
yeni kaydı veri kaynağına yazarak toplamayı tamamlar. çağrısıUpdate
başarısız olursa gerçekleşenler hakkında bilgi için bkz . Kayıt Kümesi: Kayıt Kümeleri Kayıtları Güncelleştirme (ODBC).
Kayıt eklemenin nasıl çalıştığı ve eklenen kayıtların kayıt kümenizde ne zaman göründüğü hakkında bilgi için bkz . Kayıt Kümesi: Nasıl EkleYeni, Düzenleme ve Silme Çalışması (ODBC).
Aşağıdaki örnekte yeni bir kaydın nasıl ekleneceği gösterilmektedir:
if( !rsStudent.Open( ) )
return FALSE;
if( !rsStudent.CanAppend( ) )
return FALSE; // no field values were set
rsStudent.AddNew( );
rsStudent.m_strName = strName;
rsStudent.m_strCity = strCity;
rsStudent.m_strStreet = strStreet;
if( !rsStudent.Update( ) )
{
AfxMessageBox( "Record not added; no field values were set." );
return FALSE;
}
İpucu
Bir AddNew
veya Edit
çağrısını iptal etmek için, AFX_MOVE_REFRESH parametresiyle başka bir çağrı AddNew
Edit
veya çağrı Move
yapmanız yeterlidir. Veri üyeleri önceki değerlerine sıfırlanır ve siz hala veya Add
modundasınızEdit
.
Kayıt Kümesindeki Kaydı Düzenleme
Kayıt kümenizin CanUpdate üye işlevi sıfır olmayan bir değer döndürüyorsa mevcut kayıtları düzenleyebilirsiniz.
Kayıt kümesindeki mevcut bir kaydı düzenlemek için
Kayıt kümesinin güncelleştirilebilir olduğundan emin olun.
Güncelleştirmek istediğiniz kayda kaydırın.
Kayıt kümesi nesnesinin Üyeyi düzenle işlevini çağırın.
Edit
kayıt kümesini düzenleme arabelleği işlevi görmesi için hazırlar. Kayıt kümesinin değiştirilip değiştirilmediklerini daha sonra görebilmesi için tüm alan veri üyeleri işaretlenir. Değiştirilen alan veri üyeleri için yeni değerler, Update'i çağırdığınızda veri kaynağına yazılır.Yeni kaydın alan veri üyelerinin değerlerini ayarlayın.
Alan veri üyelerine değerler atayın. Değer atamadığınız değerler değişmeden kalır.
Kayıt kümesi nesnesinin üye işlevini çağırın
Update
.Update
değiştirilen kaydı veri kaynağına yazarak düzenlemeyi tamamlar. çağrısıUpdate
başarısız olursa gerçekleşenler hakkında bilgi için bkz . Kayıt Kümesi: Kayıt Kümeleri Kayıtları Güncelleştirme (ODBC).
Bir kaydı düzenledikten sonra, düzenlenen kayıt geçerli kayıt olarak kalır.
Aşağıdaki örnekte bir Edit
işlem gösterilmektedir. Kullanıcının düzenlemek istediği bir kayda taşındığını varsayar.
rsStudent.Edit( );
rsStudent.m_strStreet = strNewStreet;
rsStudent.m_strCity = strNewCity;
rsStudent.m_strState = strNewState;
rsStudent.m_strPostalCode = strNewPostalCode;
if( !rsStudent.Update( ) )
{
AfxMessageBox( "Record not updated; no field values were set." );
return FALSE;
}
İpucu
Bir AddNew
veya Edit
çağrısını iptal etmek için, AFX_MOVE_REFRESH parametresiyle başka bir çağrı AddNew
Edit
veya çağrı Move
yapmanız yeterlidir. Veri üyeleri önceki değerlerine sıfırlanır ve siz hala veya Add
modundasınızEdit
.
Kayıt Kümesinden Kayıt Silme
Kayıt kümenizin CanUpdate üye işlevi sıfır olmayan bir değer döndürürse kayıtları silebilirsiniz.
Kaydı silmek için
Kayıt kümesinin güncelleştirilebilir olduğundan emin olun.
Güncelleştirmek istediğiniz kayda kaydırın.
Kayıt kümesi nesnesinin Üyeyi sil işlevini çağırın.
Delete
kaydı hem kayıt kümesinde hem de veri kaynağında silinmiş olarak işaretler.ve
Edit
'Delete
den farklı olarakAddNew
buna karşılık gelenUpdate
bir çağrı yoktur.Başka bir kayda kaydırın.
Not
Kayıt kümesinde gezinirken, silinen kayıtlar atlanmayabilir. Daha fazla bilgi için bkz . IsDeleted üye işlevi.
Aşağıdaki örnekte bir Delete
işlem gösterilmektedir. Kullanıcının silmek istediği bir kayda taşındığını varsayar. Çağrıldıktan sonra Delete
yeni bir kayda geçmek önemlidir.
rsStudent.Delete( );
rsStudent.MoveNext( );
, Edit
ve üye işlevlerinin AddNew
etkileri hakkında daha fazla bilgi için bkz. Kayıt Kümesi: Kayıt Kümeleri Kayıtları Güncelleştirme (ODBC)Delete
.
Ayrıca bkz.
Kayıt Kümesi (ODBC)
Kayıt Kümesi: Kayıtları Kilitleme (ODBC)