Aracılığıyla paylaş


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 etkili bir şekilde ekleyebilirsiniz.Daha fazla bilgi için bkz. Kayıt Kümesi: Kayıtları Toplu Ekleme (ODBC).

[!NOT]

Bu konu toplu satır yakalamanın uygulanmadığı CRecordset'ten türetilen nesnelere uygulanır.Toplu satır yakalama kullanıyorsanız bkz. Kayıt Kümesi: Kayıtları Toplu Yakalama (ODBC).

Güncelleştirilebilir anlık görüntüler ve dinamik kümeler kayıtları eklemenize (güncelleştirmenize), düzenlemenize ve silmenize izin verir.Bu konu şunları açıklar:

  • Kayıt kümenizin güncelleştirilebilir olup olmadığını nasıl anlarsınız.

  • Yeni bir kayıt nasıl eklenir.

  • Varolan bir kayıt nasıl düzenlenir.

  • Bir kayıt nasıl silinir.

Güncelleştirmelerin nasıl yapıldığı ve güncelleştirmelerinizin diğer kullanıcılara nasıl göründüğüyle ilgili daha fazla bilgi için bkz. Kayıt Kümesi: Kayıt Kümelerinin Kayıtları Güncelleştirmesi (ODBC).Normalde bir kaydı eklediğinizde, düzenlediğinizde veya sildiğinizde, kayıt kümesi veri kaynağını hemen değiştirir.Bunun yerine ilgili güncelleştirmelere yönelik grupları işlemlere toplu olarak işleyebilirsiniz.İşlem sürüyorsa, işlemi yapmadan önce güncelleştirme son haline gelmez.Bu değişiklikleri geri almanıza veya önceki haline döndürmenize izin verir.İşlemler hakkında bilgi için bkz. İşlem (ODBC).

Aşağıdaki tablo farklı güncelleştirme özellikleri olan kayıt kümeleri için kullanılabilen seçenekleri özetler.

Kayıt Kümesi Okuma/Güncelleştirme Seçenekleri

Tür

Okuma

Kaydı düzenleme

Kaydı silme

Yeni ekleyin (ekle)

Salt okunur

Y

N

N

N

Salt eklenir

Y

N

N

Y

Tamamen güncellenebilir

Y

Y

Y

Y

Kayıt Kümenizin Güncelleştirilebilir Olup Olmadığını Belirleme

Veri kaynağı güncelleştirilebilir durumdaysa ve kayıt kümesini güncelleştirilebilir olarak açtıysanız, kayıt kümesi nesnesi güncelleştirilebilir.Güncelleştirilebilmesi kullandığınız SQL deyimine, ODBC sürücünüzün yeteneklerine ve ODBC imleç kitaplığının bellekte olup olmadığına da bağlıdır.Salt okunur bir veri kümesi ya da veri kaynağını güncelleyemezsiniz.

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.

    Kayıt kümesi güncellenebilir durumdaysa CanUpdate sıfırdan farklı bir değer getirir.

Varsayılan olarak, kayıt kümeleri tamamen güncelleştirilebilir (AddNew, Düzenle ve Sil işlemlerini gerçekleştirebilirsiniz).Ancak güncelleştirilebilir kayıt kümelerini açmak için appendOnly seçeneğini de kullanabilirsiniz.Bu şekilde açılan bir kayıt kümesi, yalnızca yeni kayıtların AddNew ile birlikte eklenmesini sağlar.Varolan kayıtları düzenleyemez ve silemezsiniz.CanAppend üye işlevini çağırarak bir kayıt kümesinin yalnızca ekleme için mi açık olduğunu test edebilirsiniz.Kayıt kümesi tamamen güncelleştirilebilir veya yalnızca ekleme için açık durumdaysa, CanAppend sıfırdan farklı bir değer getirir.

Aşağıdaki kod rsStudentSet adı verilen bir kayıt kümesi nesnesi için CanUpdate öğesini nasıl kullanacağınızı gösterir:

if( !rsStudentSet.Open( ) )
    return FALSE;
if( !rsStudentSet.CanUpdate( ) )
{
    AfxMessageBox( "Unable to update the Student recordset." );
    return;
}
Uyarı notuUyarı

Update çağırarak bir kayıt kümesini güncelleştirmeyi planladığınızda, kayıt kümenizin tablonun birincil anahtarını oluşturan tüm sütunları içerdiğinden emin olun (veya tablodaki benzersiz dizinin tüm sütunlarını).Bazı durumlarda, çerçeve, tablonuzda güncelleştirilecek kaydı tanımlamak için, yalnızca kayıt kümenizde seçili olan sütunları kullanabilir.Gerekli sütunların tümü olmadan tablodaki birden çok kayıt güncelleştirilebilir ancak bu durum tablonun bilgi tutarlılığına zarar verebilir.Bu durumda Update öğesini çağırdığınızda çerçeve özel durumlar atar.

Kayıt Kümesine Bir Kayıt Ekleme

Bir kayıt kümesinin CanAppend üye işlevi sıfır olmayan bir değer döndürüyorsa, bu kayıt kümesine yeni kayıtlar ekleyebilirsiniz.

Bir kayıt kümesine yeni bir kayıt eklemek için

  1. Kayıt kümesinin eklenebilir olduğundan emin olun.

  2. Kayıt kümesi nesnesinin AddNew üye işlevini çağırın.

    AddNew kayıt kümesini bir düzenleme arabelleği görevi üstlenecek şekilde hazırlar.Tüm alan veri üyeleri, özel Null değere ayarlanır ve değişmemiş olarak işaretlenir, böylelikle Güncelleştir'i çağırdığınızda veri kaynağına yalnızca değiştirilen (kirli) değerler yazılır.

  3. Yeni kaydın alan veri üyelerinin değerini ayarlayın.

    Alan verisi üyelerine değerler atayın.Atamadıklarınız veri kaynağına yazılmaz.

  4. Kayıt kümesi nesnesinin Güncelle üye işlevini çağırın.

    Güncelleştir eklemeyi yeni kaydı veri kaynağına yazarak tamamlar.Güncelleştir'i çağıramadığınız takdirde neler olacağı konusunda bilgi için bkz. Kayıt Kümesi: Kayıt Kümeleri Kayıtları Nasıl Güncelleştirir (ODBC).

Kayıt işlemenin nasıl gerçekleştiği ve eklenen kayıtların kayıt kümenizde ne zaman görünür olacağı hakkında bilgi için bkz. Kayıt Kümesi: AddNew, Edit ve Delete Nasıl Çalışır (ODBC).

Aşağıdaki örnek yeni bir kaydın nasıl eklendiği gösterir:

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İpucu

Bir AddNew veya Düzenle çağrısı yapmak için sadece AddNew veya Düzenle öğelerine başka bir çağrı yapın veya AFX_MOVE_REFRESH parametresiyle Taşı öğesini çağırın.Veri üyeleri önceki değerlerine sıfırlanır ve siz halen Düzenleme veya Ekle modunda kalırsınız.

Kayıt Kümesi üzerinde Kayıt Düzenleme

Kayıt kümenizin CanUpdate üye işlevi sıfır olmayan bir değer döndürürse varolan kayıtları düzenleyebilirsiniz.

Bir kayıt kümesinde varolan bir kaydı düzenlemek için

  1. Kayıt kümesinin güncelleştirilebilir olduğundan emin olun.

  2. Güncelleştirmek istediğiniz kayda ilerleyin.

  3. Kayıt kümesi nesnesinin Düzenle üye işlevini çağırın.

    Düzenle kayıt kümesini bir düzenleme arabelleği görevi üstlenecek şekilde hazırlar.Tüm alan veri üyeleri işaretlenir, böylelikle kayıt kümesi daha sonra onların değiştirilip değiştirilmediklerini söyleyebilir.Güncelleştir öğesini çağırdığınızda değiştirilen alan veri üyeleri için yeni değerler veri kaynağına yazılır.

  4. Yeni kaydın alan veri üyelerinin değerini ayarlayın.

    Alan verisi üyelerine değerler atayın.Değer atamadığınız öğeler değişmeden kalır.

  5. Kayıt kümesi nesnesinin Güncelle üye işlevini çağırın.

    Güncelleştir düzenlemeyi değiştirilmiş kaydı veri kaynağına yazarak tamamlar.Güncelleştir'i çağıramadığınız takdirde neler olacağı konusunda bilgi için bkz. Kayıt Kümesi: Kayıt Kümeleri Kayıtları Nasıl Güncelleştirir (ODBC).

Bir kaydı düzenlemenizin ardından, düzenlenen kayıt geçerli kayıt olarak kalır.

Aşağıdaki örnek bir Düzenle işlemi gösterir.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İpucu

Bir AddNew veya Düzenle çağrısı yapmak için sadece AddNew veya Düzenle öğelerine başka bir çağrı yapın veya AFX_MOVE_REFRESH parametresiyle Taşı öğesini çağırın.Veri üyeleri önceki değerlerine sıfırlanır ve siz halen Düzenleme veya Ekle modunda kalırsınız.

Kayıt Kümesinden Kayıt Silme

Kayıt kümenizin CanUpdate üye işlevi sıfır olmayan bir değere geri dönerse kayıtları silebilirsiniz.

Bir kaydı silmek için

  1. Kayıt kümesinin güncelleştirilebilir olduğundan emin olun.

  2. Güncelleştirmek istediğiniz kayda ilerleyin.

  3. Kayıt kümesi nesnesinin Sil üye işlevini çağırın.

    Sil kaydı hem kayıt kümesi hem de veri kaynağı üzerinde, anında silindi olarak işaretler.

    AddNew ve Düzenle öğelerinden farklı olarak Sil öğesinin hiç ilişkili Güncelleştir çağrısı yoktur.

  4. Başka bir kayda ilerleyin.

    [!NOT]

    Kayıt kümesinin üstünden geçerken silinmiş öğeler atlanmayabilir.Daha fazla bilgi için, IsDeleted üye işlevine bakın.

Aşağıdaki örnek bir Sil işlemi gösterir.Kullanıcının silmek istediği bir kayda taşındığını varsayar.Sil öğesi çağrıldıktan sonra, yeni bir kayda geçmek önemlidir.

rsStudent.Delete( );
rsStudent.MoveNext( );

AddNew, Düzenle ve Sil üye işlevlerinin etkileri hakkında daha fazla bilgi için bkz. Kayıt Kümesi: Kayıt Kümeleri Kayıtları Nasıl Güncelleştirir (ODBC).

Ayrıca bkz.

Kavramlar

Kayıt Kümesi (ODBC)

Kayıt Kümesi: Kayıtları Kilitleme (ODBC)