• 29-04-2014, 10:26:25
    #1
    iki den daha fazla tablom var ana tablom öğrenciler tablosu öğreorncinin nüfüs cüzdan bilgileri , okul bilgileri ayri tablolara ayırdım kayıtlar tek from üzerinden giriyorum ekle tıkladığımda bütün tablolara verilerin eklenmesi gerekli iki tane sorgu oluşturdum insert sorgusu iki tane sorgu yapsın eklesin diye olmadı. Sql de Stored Procedure ile yapılıyormuş kullandığım veri tabani access nasıl bir yol izleyebilirim ? tablolarda _idler ile birbirini eşleştirdim tabloların.
  • 29-04-2014, 10:37:14
    #2
    Dostum şöyle ki ; Batch Query olayını araştırıp tek command üzerinden de yapabilirsin, Eğer Batch Query kullanırsan içeride yapılan işlemlerin birinde hata çıktığında(tablo1'e ekledi,tablo2'ye eklemedi diyelim) veri bütünlüğü bozulmuş olacak, manuel olarak o kaydı silmekle uğraşıcaksın vs. Sql Stored Procedure kullanmadım hiç onun hakkında bilgi veremiycem.
    Fakat sana önerdiğim yöntem Transaction kullanman yönünde, tablo1 ve tablo2 işlem aşamalarında herhangi bir sıkıntı çıktığında o ana kadar yapılan işlemler geri alınır, database yansımaz.
    http://www.omercebi.com/IcerikDetay-...animi-126.aspx şurda anlatmış arkadaş araştırırsan birçok örneği var zaten.Kısaca mantığıda şöyle
    try
    BEGIN TRANSACTION
    Kodlar(tablo1)
    Kodlar(tablo2)
    COMMIT TRANSACTION
    catch
    ROLLBACK TRANSACTION
  • 29-04-2014, 11:44:46
    #3
    Bayrakdar adlı üyeden alıntı: mesajı görüntüle
    Dostum şöyle ki ; Batch Query olayını araştırıp tek command üzerinden de yapabilirsin, Eğer Batch Query kullanırsan içeride yapılan işlemlerin birinde hata çıktığında(tablo1'e ekledi,tablo2'ye eklemedi diyelim) veri bütünlüğü bozulmuş olacak, manuel olarak o kaydı silmekle uğraşıcaksın vs. Sql Stored Procedure kullanmadım hiç onun hakkında bilgi veremiycem.
    Fakat sana önerdiğim yöntem Transaction kullanman yönünde, tablo1 ve tablo2 işlem aşamalarında herhangi bir sıkıntı çıktığında o ana kadar yapılan işlemler geri alınır, database yansımaz.
    http://www.omercebi.com/IcerikDetay-...animi-126.aspx şurda anlatmış arkadaş araştırırsan birçok örneği var zaten.Kısaca mantığıda şöyle
    try
    BEGIN TRANSACTION
    Kodlar(tablo1)
    Kodlar(tablo2)
    COMMIT TRANSACTION
    catch
    ROLLBACK TRANSACTION
    hocam iki tabloyu myCommand.CommandText = "insert_data_in_employee_table"; birleştiriyor sanırım ?
  • 29-04-2014, 12:26:03
    #4
    sRc adlı üyeden alıntı: mesajı görüntüle
    hocam iki tabloyu myCommand.CommandText = "insert_data_in_employee_table"; birleştiriyor sanırım ?
    yukardaki örnekte insert_data_in_employee_table derken sorguyu yazmanı istemiş
    command.CommandText ="Insert into Hasta(HastaID, HastaAd) VALUES (1, 'Okan')"; vs gibi Bu Transactionda birleştirme söz konusu değil, Transaction'ın ne işe yaradığını bi araştır anlıcaksın zaten.

    Alttakilerde ayrıntılı örneği var, 2 tablo kayıt almayıda anlatmış oraya bakarsan sorununu çözersin.
    http://www.aykutbastug.com/Makale.aspx?MakaleID=12 ve
    http://auzunun.blogspot.com.tr/2008/...ion-ilemi.html
    http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx