veritabanına kayıt eklendiğini anlamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
balsoft
Üye
Mesajlar: 60
Kayıt: 09 Şub 2005 06:01
Konum: ANKARA
İletişim:

veritabanına kayıt eklendiğini anlamak

Mesaj gönderen balsoft »

arkadaşlar mysql veri tabanına zeos comp. lerle bağlanıyorum tabii veri tabanı internette ve insanlar sürekli bilgi giriyor yeni bir kayıt eklendiğini client kısmından nasıl anlayabilirim bir fikriniz hatta mümkünse bir örneğiniz varmı acaba
Bilgini saklamaki daha fazla öğrenebilesin...
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Hocam en basiti otomatik artan bir id alanı oluşturup bunun en büyük değerini kayıtsetini yenilemeden önceki değeri ile karşılaştırmaktır. Eğer yeni değer eskisinden büyükse yeni kayıt eklenmiş demektir.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@Ali Erdoğan'ın bahsettiği yöntem çok işlevseldir. Ancak her client güncel durumu öğrenmek için peryodik olarak sorgu yapmak zorundadır.

- Bir diğer yöntem (sistemi kurmak kimine göre basit kimine göre zordur) tüm client'ları sunucu bilgisayara TCP ile bağlantı kurmasını sağlayıp belirleyeceğiniz bir protokol ile küçük paketler halinde haberleştirerek sağlayabilirsiniz. Herhangi bir client kayıt işlemi yaptığında sunucu aracılığıyla tüm diğer client'lara online mesaj ulaşır ve hatta dilerseniz veri ekranlarındaki bilgiye online IMKB verileri online değişir gibi müdahale de edebilirsiniz.

- Ancak bu işlem için modem port açma gibi teknik bilgi gerektirir. Ekstra kazanımı ise "hangi client şu an aktif" ile başlayan bir çok konuda bilgi sahibi olabilirsiniz. Client'lar arasında kişisel mesajlaşma imkanı bile sağlayabilirsiniz.
Resim
Resim ....Resim
Kullanıcı avatarı
balsoft
Üye
Mesajlar: 60
Kayıt: 09 Şub 2005 06:01
Konum: ANKARA
İletişim:

Mesaj gönderen balsoft »

mrmarman dediğin gerçekten mantıklı ve benimde aklıma gelen o oldu ama bir sorun varki sadece clientten bilgi girilmiyor normal web üzerinden de giriş yapılıyor o yüzden server yazılımının bunu yakalaması için de bir periyodik kontrol yapması gerekiyor @Ali Erdoğan arkadaşın dediği şekilde yapmayı düşündüm ancak onun matığını bi türlü kafamda toparlayamıyorum o yüzden mümkünse bir örnek kod demiştim :)
Bilgini saklamaki daha fazla öğrenebilesin...
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

balsoft yazdı:@Ali Erdoğan arkadaşın dediği şekilde yapmayı düşündüm ancak onun matığını bi türlü kafamda toparlayamıyorum o yüzden mümkünse bir örnek kod demiştim :)
Hocam bu kadar hazırcı olmayın. Yapacağınız şey son derece basit.

Kod: Tümünü seç

Select MAX(ID) as IDMAX from tablo
Bu sorgu cümlesini bir kayıtseti marifeti ile sorgulatıp her seferinde bir önceki değeri ile karşılaştırmanız gerekiyor. Sadece bir rakam döneceğinden önemsenecek derecede bir ağ trafiğine neden olmayacaktır.
Kullanıcı avatarı
balsoft
Üye
Mesajlar: 60
Kayıt: 09 Şub 2005 06:01
Konum: ANKARA
İletişim:

Mesaj gönderen balsoft »

Ali Erdoğan hocam cevabın için teşekkürler yanlız minik bi açıklamam yapmam gerek bu hazırcılık değildi yaklaşık 2 haftadır doru dürüs uyumuyorum ve beynim durmuş durumda o yüzden toparlayamadım demiştim sorunu hallettim id ye göre sorgulatmak istediğim sonucu vermiyordu kayıt sayısına göre sorgulatmak daha doğru olacaktı ve o şekilde hallettim ilginize teşekkürler
Bilgini saklamaki daha fazla öğrenebilesin...
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Mesaj gönderen csunguray »

Hep MySql hızlı ve sağlam övücü sözlerini duyarız. Çünkü MySQL'de Stored Procedure ve Trigger desteği yok. Eğer olsaydı söylediğiniz şey bir çırpıda hallolurdu. MySQL 5'te sanırım varmış bu özellikleri. Eğer sunucunuz MySQL 5 ise Trigger özelliğini incelemenizi tavsiye ederim.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

csunguray yazdı:Hep MySql hızlı ve sağlam övücü sözlerini duyarız. Çünkü MySQL'de Stored Procedure ve Trigger desteği yok. Eğer olsaydı söylediğiniz şey bir çırpıda hallolurdu. MySQL 5'te sanırım varmış bu özellikleri. Eğer sunucunuz MySQL 5 ise Trigger özelliğini incelemenizi tavsiye ederim.
Baişka bir yanılgıda şu;

insanlar habire mysql bedava diyorlar ve bir çok ticari program mysql kullanıyor.

Mysql iki şartlı lisansa sahip. eğer yazılımız open source ise mysql bedava ama yazılımınız ticari ise mysql içinde lisans almanız gerekiyor.

insanlar buna dikkat etmeli.

öte yandan SP, ve Trigger konusuna katılmakla birlikte, Referential Integrity olayının çok kısıtlayıcı olduğunu belirtmeliyim.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...
balsoft yazdı:sorunu hallettim id ye göre sorgulatmak istediğim sonucu vermiyordu kayıt sayısına göre sorgulatmak daha doğru olacaktı ve o şekilde hallettim ilginize teşekkürler
- Kayıt sayısına göre sorgulatıyorsanız, kayıt silme yapılırsa ne olacak, yani silinen her kayıt ile kayıt sayısı eksileceğinden sanki yeni kayıt eklenmemiş gibi değerlendirilmesin sakın ?

- Kayıt sayısı için değerlendirmeniz LOG kayıtları ise o zaman başka. Çünkü LOG'lara hep ileri yönlü kayıt yapılır, kayıt silme yoktur...
Resim
Resim ....Resim
Kullanıcı avatarı
balsoft
Üye
Mesajlar: 60
Kayıt: 09 Şub 2005 06:01
Konum: ANKARA
İletişim:

Mesaj gönderen balsoft »

mrmarman hocam log kayıtlarına göre işlem yaptırıyorum sizinde dediğiniz gibi sürekli ileri gideceği için sorun olmuyor teşekkürler ilgilerinize
Bilgini saklamaki daha fazla öğrenebilesin...
Cevapla