Bir kaydet butonuna basılınca arka arkaya bi sürü işlem yapılıyor programlarda.
ÖRNEK Fatura Kaydet diyince sırayla stokhareketini kaydediyor, stokta kalan miktarı güncelliyor , Carinin Bakiyesini güncelliyor , Faturayı kaydediyor. Şimdi bakiye güncellerken bir hata oluştuğu zaman eski kaydettikleri kalıyor ve kendinden sonrakileri de kaydediyor. Bunu bi türlü aşamadım. Yani programlarda mantık benim bildiğim herangi bir yerde hata olursa hiçbiyere kaydetmez. TRİGGERLAR veya TRANSACTİON benim işimi çözebilir ama hangisi ve nasıl çözer.
SQL Server 2000 kullanıyorum.Trigger diye bişey bulamıyorum içinde .Stored procedurede sağ tıklayıp yeni açabiliyorum ama triggerı nerden nasıl açıcam
daha öncede niyetlendim öğrenmeye fakat daha trigger ve TRANSACTİON yaratmasını bilmiyorum . Tam anlamıyla bir örnek olursa baştan sona
BİLENLER YARDIMCI OLURSA SEVİNİRİM
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
rollback, commit - transaction komutlarıdır. Aralarında mantıksal ilişki bulunan birden fazla tablo var, ve bunlar peşpeşe günlenecek ise, işlemleri yığın olarak yapmak zorundasın; yoksa hata durumunda işlemleri geri almak çok zor olur.
Veritabanı komutlarında "begintransaction" ya da buna benzer bir komut vardır. Bu komutla, parçalanamayacak yani bir bütün olarak yapılacak işlemler için veritabanına gereken bilgi gitmiş olur. Bundan sonra A, B, C ... tablolarını günlersin, değiştirir ya da silersin. İşlemler sorunsuz biterse, "transaction.commit" (ya da benzeri bir) komutla, yapılan işlemlerin veritabanına aktarılmasını sağlarsın. Eğer arada bir problem olursa ve işlemleri geri alman gerekirse de "transaction.rollback" (ya da benzeri bir) komutu çalıştırıp, veritabanını eski haline getirirsin.
trigger'lar ise, server tarafında yani ana makinede komut çalıştırmak içindir. Temel olarak, bir x olayı olduğunda (örn. kayıt silindiğinde) ana makinede bir komut (ya da daha doğru ifade ile yordam) çalıştırır; böylece örn. her kayıt silindiğinde Z tablosuna bu bilgiyi tarih-saat ile kaydedersin.. Bu işlemler için client programları değiştirmene gerek kalmaz; işlem ana makinede gerçekleşir.
Transaction, commit ya da rollback gibi anahtar kelimeleri kullandığın veritabanında aratırsan, sana sözdizimini mutlaka gösterir. Temel olarak transaction'ların mantığı böyle : önce transaction başlatırsın, sonra gerektiği kadar tablo üzerinde işlem yaparsın, commit yapıncaya kadar bu bilgiler kaydedilmez.
ÖRNEK Fatura Kaydet diyince sırayla stokhareketini kaydediyor, stokta kalan miktarı güncelliyor , Carinin Bakiyesini güncelliyor , Faturayı kaydediyor.
Şimdi bakiye güncellerken bir hata oluştuğu zaman eski kaydettikleri kalıyor ve kendinden sonrakileri de kaydediyor. Bunu bi türlü aşamadım.
Yani programlarda mantık benim bildiğim herangi bir yerde hata olursa hiçbiyere kaydetmez.
TRİGGERLAR veya TRANSACTİON benim işimi çözebilir ama hangisi ve nasıl çözer.
SQL Server 2000 kullanıyorum.Trigger diye bişey bulamıyorum içinde .Stored procedurede sağ tıklayıp yeni açabiliyorum ama triggerı nerden nasıl açıcam
daha öncede niyetlendim öğrenmeye fakat daha trigger ve TRANSACTİON yaratmasını bilmiyorum .
Tam anlamıyla bir örnek olursa baştan sona
BİLENLER YARDIMCI OLURSA SEVİNİRİM
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.