folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder MS SQL Veritabanından Python İle Veri Çekme Sorunu, Socket.IO



MS SQL Veritabanından Python İle Veri Çekme Sorunu, Socket.IO

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    shock56
    shock56's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek

    Localde çalışacak bir program yapıyorum. 

    Veritabanı olarak Ms SQL (SQL server 2008)

    Masaüstü program için Python 

    Mobil uygulama için Kotlin kullanılıyor. 

    Python ile Kotlin arasında socket bağlantısı kurdum ve veritabanındanki değişiklikleri mobil cihaza atmam gerekiyor. (Sadece tek tabloyu kontrol edeceğim)

    Sıkıntım da burada başlıyor. Ms SQL Veritabanındaki değişiklikleri python ile nasıl algılayabilirim. 

    Normalde postresql gibi bir veritabanı olsa sunucudaki değişiklikleri alırım ancak MS SQL de bu nasıl olur?

    Şu an için aklıma gelen tek çözüm 10 sn de bir timer atıp sunucudaki değişiklikleri alıp mobil cihaza atmak. 

    Yardım ederseniz sevinirim. 

    (SQL Server Change Tracking diye bir şey denedim. Tablodaki değişiklikleri algılayıp başka bir alana atıyor. Ancak yine aynı sorun oluyor sunucuda olan değişiklik python tarafına nasıl ulaşacak)

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    server nerde aga onu bulamadım? mobil ve desktop direk DB yemi bağlanıyor?


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MaviGozluDev
    MaviGozluDev's avatar
    Kayıt Tarihi: 05/Eylül/2005
    Erkek

    "Normalde postresql gibi bir veritabanı olsa sunucudaki değişiklikleri alırım ancak MS SQL de bu nasıl olur?"  şu kısmı anlayamadım postgrede nasıl alıyordun da mssql'de işe yaramıyor?
    Bir de desktop için phyton , mobil için kotlin demişsin o ikisini de soketten birbirine bağladım demişsin desktop uygulama ile mobil uygulamayı direk birbiriyle mi konuşturuyrsun soketten yanlış mı anlıyorum?

    DB'den bağımsız olarak desktop/mobil farketmeksizin db'ye attığın her kayıt sonrası gruplara yayınlasan, desktop/mobil farketmeden soketten dinlesen değişiklikleri öyle yakalasan olmaz mı?


    .
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    firebase kullan


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    python olayini bilmem ama .net tarafinda sqldependency kullanabilirsin, belki python tarafinda da bir karsiligi vardir

    https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/sql/detecting-changes-with-sqldependency?redirectedfrom=MSDN

    ayrica degisiklik yapildigini neden tespit etmen lazim onu anlamis degilim. Bu degisikligi, python yapmiyor mu? insert into ya da bir kütüphane kullaniyorsan insert metodundan dönen sonuc >0 ise, demek ki kayit eklenmis. O durumda direk mobil uygulamaya, yeni satir eklendi/update edildi diyemiyor musun?  O zaman DB'yi dinlemene gerek kalmiyor.

    Yok 3. bir uygulama veritabanina kayit ekliyorsa; o zaman söyle yapabilirsin (üstteki sqldependency haric)

    ayri bir tablo olusturacaksin, daha sonra ana tablon icin bir trigger yazacaksin, o tabloya veri eklendiginde/güncellendiginde, bu trigger, diger tabloya bunu yazacak (mesela yeni satirin ID'si yazilabilir). Daha sonra senin python uygulaman bu tabloyu ara ara kontrol edecek, ve orada kayit varsa, ana tablodan veriyi cekip, o tablodaki kaydi silecek.

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    yolbulucu bunu yazdı

    firebase kullan

    yine mssql'deki degisikler icin bir listener'a ihtiyaci var ki firebase'e cekebilsin veriyi.

    sorun kullanilan veritabanini degistirme sansinin olmamasi sanirim.

    shock56 bunu yazdı

    (SQL Server Change Tracking diye bir şey denedim. Tablodaki değişiklikleri algılayıp başka bir alana atıyor. Ancak yine aynı sorun oluyor sunucuda olan değişiklik python tarafına nasıl ulaşacak)

    baska bir alana atiyor demissin ya,

    o alana bir sey atilmasi durumu icin (insert/update) bir trigger set et, o trigger da bir python scriptini execute etsin.

    python scripti de websocket'ine yeni eklenen verileri emit etsin. (baska bir alana atiyor dedigin verileri select ile alip dinleme yaptigin socket kanalina yayinlayacak.)

    edit:

    https://www.sqlshack.com/different-approaches-to-execute-python-in-sql-server/

    select ile almak yerine trigger'a gelen updated/inserted columnlari arguman olarak verirsen concurrency problemi de yasamazsin :)

    end tarafından 30/Eyl/22 15:44 tarihinde düzenlenmiştir

    0x0480 takilin madem ﷽﷽﷽
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    end bunu yazdı
    yolbulucu bunu yazdı

    firebase kullan

    yine mssql'deki degisikler icin bir listener'a ihtiyaci var ki firebase'e cekebilsin veriyi.

    sorun kullanilan veritabanini degistirme sansinin olmamasi sanirim.

    shock56 bunu yazdı

    (SQL Server Change Tracking diye bir şey denedim. Tablodaki değişiklikleri algılayıp başka bir alana atıyor. Ancak yine aynı sorun oluyor sunucuda olan değişiklik python tarafına nasıl ulaşacak)

    baska bir alana atiyor demissin ya,

    o alana bir sey atilmasi durumu icin (insert/update) bir trigger set et, o trigger da bir python scriptini execute etsin.

    python scripti de websocket'ine yeni eklenen verileri emit etsin. (baska bir alana atiyor dedigin verileri select ile alip dinleme yaptigin socket kanalina yayinlayacak.)

    edit:

    https://www.sqlshack.com/different-approaches-to-execute-python-in-sql-server/

    select ile almak yerine trigger'a gelen updated/inserted columnlari arguman olarak verirsen concurrency problemi de yasamazsin :)

    e adam python dan zaten bildirim atıyo, firebase e atacak bildirimi


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    yolbulucu bunu yazdı
    end bunu yazdı
    yolbulucu bunu yazdı

    firebase kullan

    yine mssql'deki degisikler icin bir listener'a ihtiyaci var ki firebase'e cekebilsin veriyi.

    sorun kullanilan veritabanini degistirme sansinin olmamasi sanirim.

    shock56 bunu yazdı

    (SQL Server Change Tracking diye bir şey denedim. Tablodaki değişiklikleri algılayıp başka bir alana atıyor. Ancak yine aynı sorun oluyor sunucuda olan değişiklik python tarafına nasıl ulaşacak)

    baska bir alana atiyor demissin ya,

    o alana bir sey atilmasi durumu icin (insert/update) bir trigger set et, o trigger da bir python scriptini execute etsin.

    python scripti de websocket'ine yeni eklenen verileri emit etsin. (baska bir alana atiyor dedigin verileri select ile alip dinleme yaptigin socket kanalina yayinlayacak.)

    edit:

    https://www.sqlshack.com/different-approaches-to-execute-python-in-sql-server/

    select ile almak yerine trigger'a gelen updated/inserted columnlari arguman olarak verirsen concurrency problemi de yasamazsin :)

    e adam python dan zaten bildirim atıyo, firebase e atacak bildirimi

    abi adam socket uzerinden mobil uygulamaya bildirim atabiliyormus ama veritabanindaki degisiklikleri track edemiyormus realtime olarak. sorusu da aslen su, "ben mssql serverda olan degisikleri pythonda nasil yakalarim?"

    end tarafından 30/Eyl/22 16:08 tarihinde düzenlenmiştir

    0x0480 takilin madem ﷽﷽﷽
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    shock56
    shock56's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek
    end bunu yazdı
    yolbulucu bunu yazdı
    end bunu yazdı
    yolbulucu bunu yazdı

    firebase kullan

    yine mssql'deki degisikler icin bir listener'a ihtiyaci var ki firebase'e cekebilsin veriyi.

    sorun kullanilan veritabanini degistirme sansinin olmamasi sanirim.

    shock56 bunu yazdı

    (SQL Server Change Tracking diye bir şey denedim. Tablodaki değişiklikleri algılayıp başka bir alana atıyor. Ancak yine aynı sorun oluyor sunucuda olan değişiklik python tarafına nasıl ulaşacak)

    baska bir alana atiyor demissin ya,

    o alana bir sey atilmasi durumu icin (insert/update) bir trigger set et, o trigger da bir python scriptini execute etsin.

    python scripti de websocket'ine yeni eklenen verileri emit etsin. (baska bir alana atiyor dedigin verileri select ile alip dinleme yaptigin socket kanalina yayinlayacak.)

    edit:

    https://www.sqlshack.com/different-approaches-to-execute-python-in-sql-server/

    select ile almak yerine trigger'a gelen updated/inserted columnlari arguman olarak verirsen concurrency problemi de yasamazsin :)

    e adam python dan zaten bildirim atıyo, firebase e atacak bildirimi

    abi adam socket uzerinden mobil uygulamaya bildirim atabiliyormus ama veritabanindaki degisiklikleri track edemiyormus realtime olarak. sorusu da aslen su, "ben mssql serverda olan degisikleri pythonda nasil yakalarim?"

    @end teşekkürler. Benim sormak istediğim sorunu tek cümlede açıklamışsın :) "ben mssql serverda olan degisikleri pythonda nasil yakalarim?" 

    Söylemiş olduğun yöntemi deneyeceğim. 

     

Toplam Hit: 1854 Toplam Mesaj: 9
mssql python socket.io