![]() | |
| | #1 (permalink) |
| Üye Üyelik Tarihi: 04/2008 Yer: Diyarbakır
Mesaj: 9
|
merhaba, arkadaşlar üç gündür çözemediğim bir sorun var, acil yardıma ihtiyacım var: ADO table ve DB Grid ile ekranda kayıtları gösteren bir programım var. Bu programımın çalıştırdığı bir başka program da aynı veritabanı dosyasına kayıt yazıyor. yani iki program aynı veritabanı dosyasını kullanıyor. (iki farklı thread oluşmuş oluyor) ikinci program çalışırken ve kapandıktan sonra veritabanına yazdığı verileri birinci programdaki dbgridde göremiyorum. bir requery göndermezsem hiç göremiyorum. sorum şu: - ADO ile başka bir programın veritabanına yazdığı bilgileri anlık olarak görmem mümkün müdür (bir timerla requery gönderme gibi yöntemler dışında), cursortype falan mı değiştirmem lazım? - ikinci programın veritabanına yazıyor göründüğü veriler direk dosyaya yazılmıyor mu? önce bellekte tutulup sonra diske gönderildiği için mi birinci programda anlık olarak göremiyorum, öyleyse direk olarak diske yazılmasını sağlayabilirmiyim? yardımlarınız için şimdiden çok teşekkürler.. |
| | |
| | #2 (permalink) |
| Kodlarım, Canlarım... Üyelik Tarihi: 05/2005 Yer: » Delphi Bölümü «
Mesaj: 1,677
|
Yaptığını söylediğn şey veri tabanı mantığına aykırı. Bir sunucu üzerinden paylaşılan veri tabanı tipi ne olursa olsun (access, mysql, DB2, IBS vs.) birden fazla istemci ile kullanıldığında istemcilerin aynı anda aynı kayıt satırına işlem yapmak üzere erişmesi demek bir onRecileError (güncelleme çakışması) hatası demektir. Suncu üzerinden istemcilere aktarılan veriler istemci bilgisayar üzerinde Delta adı verilen bir cache bölgesinde tutulur. Yapılan güncellemeler eğer direk sunucuya commit edilirse, bu değişiklikten diğer sitemci bilgisayarların özel bir yöntem yazılmadığı sürece haberi olamaz. Neden ? Çünkü onlar veriyi sunucudan almış ve sunucu ile irtibatlarını kesmişlerdir. Data Delta üzerinde görüntülenmektedir. Direkt sunucuya yapılan post çağrılarının diğer istemcilerdede fark edilmesi için kullanılacak bir çok yöntem mevcuttur. Bunlardan biri güncelleme zaman bilgisini bir tabloda tutup belirli zaman aralıklarında bu tabloya bakmaktır. Esasen Client/Server yada network tabanlı database uygulamalarında veri tabanı bağlantıları hiç bir zaman canlı olmamalıdır. Lakin senin yaptığın işleme göre bu bağlantıyı canlı tuttuğunu görüyoruz. Bu veri Delta üzerinde tutuluyor. Kesin anlık son durum gösterimleri istiyorsan veriyi canlı tutma ve güncellemeleri timer vb. algortimalarla takip et...
__________________ Haberbox | Tek Sevgi | Genel Seçimler | Magice Book | Yerel Seçimler Yaşamaya Değer Bir Hayattan, Sevmeye Değer Bir Aşktan, Dostluğa Değer Bir Arkadaşlıktan Asla Vazgeçmeyin... |
| | |
| | #3 (permalink) |
| Üye Üyelik Tarihi: 04/2008 Yer: Diyarbakır
Mesaj: 9
|
ne demek istediğinizi genel olarak anladım, teşekkürler. ancak biraz daha detay belirtmek istiyorum. ben sunucu-istemci tabanlı bir program yazmıyorum. veritabanı bir pc de ve iki program da aynı pc de çalışıyor. programlardan sadece biri veritabanına bilgi yazıyor, diğeri de bu bilgileri anlık olarak görüntülesin istiyorum. sanırım burada programlarımı istemci bilgisayar, ODBC yi ya da MDAC ı da sunucu bilgisayar gibi düşünmem gerekiyor sizin söylediklerinizi anlayabilmem için. benim sorunum verilerin delta dediğiniz cache te tutulmasından kaynaklanıyor anladığım kadarıyla. yine timer gibi birşeyler kullanarak ya da işlemin sonlandığını kontrol ederek AdoTable.requery yapmam gerekiyor. |
| | |
| | #4 (permalink) |
| Kodlarım, Canlarım... Üyelik Tarihi: 05/2005 Yer: » Delphi Bölümü «
Mesaj: 1,677
|
aynı bilgisayarıda kullansan her uygulama kendi uzay adresinde çalışacağından kendine ait bir Delta cache ile veri alış verişi yapar. Süreçler (process) farklı olduğundan Mantık değişmez...
__________________ Haberbox | Tek Sevgi | Genel Seçimler | Magice Book | Yerel Seçimler Yaşamaya Değer Bir Hayattan, Sevmeye Değer Bir Aşktan, Dostluğa Değer Bir Arkadaşlıktan Asla Vazgeçmeyin... |
| | |
| | #5 (permalink) |
| Üye Üyelik Tarihi: 12/2007 Yer: DELPHI LAND
Mesaj: 640
|
Ayrıca tablonuzda 10-15 kayıt varsa Adotable kullanın. Aksi Halde performans için AdoQuery kullanmanızı şiddetle tavsiye ederim .
__________________ Soru Sormadan Önce: http://forum.ceviz.net/pascal-delphi-delphinet/announcement-soru-sormadan-once.html Sigarayı BIRAKMANIN YOLLARI.......! http://www.yesilay.org.tr/sigara_nasil_birakilmali.asp |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| usb çalışmıyor | madeye | Donanım | 0 | 22/02/2008 15:41 |
| PHP çalışmıyor! | Codegen | PHP | 15 | 21/12/2006 09:12 |
| asp çalışmıyor | MeM | ASP | 6 | 10/11/2004 02:58 |
| IIS Çalışmıyor... | hgumus | Uygulama Yazılımları / Hazır Betikler | 12 | 02/08/2004 13:48 |
| cd-rom çalışmıyor | murath | Windows | 1 | 09/07/2003 00:08 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |