ورود

View Full Version : مشکل در update کردن بانک درشبکه



Panje Tala
شنبه 05 اردیبهشت 1383, 10:44 صبح
با سلام خدمت دوستان برنامه نویس
فرض کنید یک برنامه بانک اطلاعاتی از نوع DBIsam در شبکه دارید که دو کاربر مختلف در شبکه بصورت مجزا به این بانک دسترسی دارند.حال کاربر اول اطلاعاتی را به بانک اضافه میکندو انرا post می نماید.چرا وقتی کاربر اول اطلاعات را به بانک فرستاد اطلاعات نمایش داده شده برای کاربر دوم به روز نمی شود.البته اگر کاربر دوم بانک خود را refresh کند اطلاعات جدید را می تواند ببیندولی این راه منطقی نیست چون کاربر دوم نمی داند اطلاعات در شبکه کی تغییر کرده تا جدول خود را refresh نماید.استفاده از تایمر هم مضحک به نظر می رسد. پس چگونه می توان به محض تغییر اطلاعات بانک در شبکه همه Station ها به روز گردند؟

با تشکر

omid_delphi2
شنبه 05 اردیبهشت 1383, 11:29 صبح
بنظ من این مسئله کاملا طبیعی است چون شما اطلاعاتی که روی سیستم دوم میبینید در واقع اطلاعات داخل بافر همان سیستم میباشد و نه اطلاعات روی شبکهو REFRESH کردن برای مشاهده اطلاعات جدید کاملا طبیعی است
با اینحال خاصیت AUTO REFRESH مربوط به TABLE را TRUE کنید شاید مشکل حل شود

mmx110
یک شنبه 06 اردیبهشت 1383, 21:38 عصر
A Timer can create many problems. You get quite some traffic on the network,
the server is busy, and you don't get the changes immediately.

Another approach would be to create a table, with one record for every table
you are using right now, the table name and a counter. After every Post and
Delete, a client increments the counter for the table it has changed. If you
want to know of a table has changed, you just read the appropiate record and
compare the counter in that record with the counter value that you've stored
locally (an in-memory table would be a good place). You know it's time to
call Refresh when the values differ.

najafi_1
شنبه 12 اردیبهشت 1383, 08:14 صبح
بالاخره برنامه شما باید یه جوری تشخیص بده که اطلاعات تغییر کرده
هیچ چاره ای نداری جز اینکه بانک رو دوباره چک کنی
نصب تایمر که خود برنامه هر چند مدت یه بار این عمل رو انجام بده ایده خوبیه