Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
3
Cevap
228
Tıklama
0
Öne Çıkarma
TRİGGER mı TRANSACTİON mu
K
19 yıl
Yüzbaşı
Konu Sahibi

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.

Üye Ol Şimdi Değil



O
19 yıl
Yarbay

İlk defa duydum bu programları,



I
19 yıl
Yüzbaşı

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.

Umarım yararı olmuştur..


Bu mesaja 1 cevap geldi.
K
19 yıl
Yüzbaşı
Konu Sahibi

Saolasın ben de şunu buldum örnek:
http://www.mutasyon.net/makaleoku.asp?id=728



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.