none
Kullanıcılara Tabloya Yeni Kayıt Yapıldığını veya Kayıt Silindiğini Bildirme RRS feed

  • Soru

  • Arkadaşlar sql server 2008 kullanıyorum 239 kullanıcım var

    Veritabanında Yeni Kayıt , Kayıt Silme , Kayıt Güncelleme   Gerçekleştiğinde tüm kullanıcılara işlem yapıldığını bildirip liste güncellemelerini sağlamak istiyorum bir yolu varsa yardım ederseniz müteşekkir olurum. şimdiden teşekkürler....!

    26 Mart 2013 Salı 11:44

Tüm Yanıtlar

  • Merhaba,

    Şöyle bir yol izleyebilirsin. Yeni oluşturulan kaydı direkt oluşturma işleminden sonra bilgilendirirsin. Bu zaten bir kere olacak. Kayıt silme veya kayıt güncelleme işlemleri için ise IsDeleted, IsUpdated gibi kolonlar koyarsın. Bu kolonların alacağı değer bit olacaktır. 0 hayır 1 ise evet gibi düşünürsek bir kullanıcı profilinde değişiklik yaptığı zaman IsUpdated alanına 1 değerini verirsin. Daha sonra Windows Service tarzı bir uygulama ile her 2 dakikada bir (mesela) IsUpdated veya IsDeleted alanında hiç 1 değeri var mı diye kontrol edersin. Varsa hangi alan olduğuna bakıp ona göre e-posta şablonu gönderirsin. Demek istediğim IsDeleted 1 ise "Hesabınız kapanmıştır." gibi bir e-posta şablonu yollarsın. E-posta ile bilgilendirdikten sonra o kullanıcının 1 olan alanını yine sıfır yaparsın.

    26 Mart 2013 Salı 12:27
  • Bildirimi nasıl yapacaksınız, email ile mi? 

    tablolarınıza trigger ekleyip, email gönderen stored procedure'u çağırabilirsiniz. Bunun için email smtp ayarlarının yapılmış olması gerekiyor, önce email gönderme profil(ler)i oluşturuyorsunuz daha sonra  istediğiniz profil üzerinden mesaj gönderebiliyorsunuz.

    http://msdn.microsoft.com/en-us/library/ms187605.aspx burada ve

    http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/ burada nasıl email profili oluşturulacağı anlatılmış.

    db mail gönderme için ise http://msdn.microsoft.com/en-us/library/ms190307.aspx burayı inceleyiniz.

    Trigger ise şunun gibi olmalı;

    create trigger tr_insert_notification
    on Tablo1
    after insert
    as
       sp_send_dbmail(.......);
    
    
    create trigger tr_delete_notification
    on Tablo1
    after delete
    as
       sp_send_dbmail(.......);



    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    26 Mart 2013 Salı 13:16
  • çok teşekkür ederim ama eposta şablonu olmadan connection nesnesine mesaj göndermek mümkün değil mi.?
    26 Mart 2013 Salı 17:51
  • Hayır.

    Bu işlem için ADO.Net'te notification yerine Optimistic Concurrency kullanıyorlar. Siz uygulamanızı ne ile geliştiriyorsunuz?


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    26 Mart 2013 Salı 22:30
  • Hocam Delphi 2010 ile Seyehat Firmasına Uygulama Yazdım ama

    Koltuklar Tablosuna Kayıt ile Bilgileri Kullanıcılara Geç Bildirim Yaptığım için çift koltuk satma problemi yaşıyorum.

    Yani Diyorum ki:

    239 Kullanıcıya (* Kullanıcıların hepsi "sa" kodu ile bağlanıyor sql server 2008 ' e *) koltuk satıldı (* Tabloya Kayıt Yapıldı *)  bilgisini gönderip listelerini güncellemek istiyorum. Yardımcı olursanız çok müteşekkir olurum. Saygılar.

    27 Mart 2013 Çarşamba 00:33
  • Programı hangi IDE ile geliştirdiğinden çok bence veri tabanının yapısı önemli. Zira koltuk bilgilerini tuttuğun tabloda aynı aracın (otobüs, tren, uçak vs.) aynı koltuğunu bir daha kayıt ettirmemek için bu alana bir unique key constrain koyman gerekir. Bu sayede sen istesen bile SQL buna izin vermeyecektir.

    27 Mart 2013 Çarşamba 07:47
  • Direk hangi development ortamında geliştirdiğiniz ile alakalı. Ben Delphi bilmiyorum, ama .net ortamında geliştirirken Concurrency ile kullanıcılara "veriyi aldıktan sonra bir başkası değişklik yaptı" bilgisine ulaşılabiliyor.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC


    27 Mart 2013 Çarşamba 11:46