View Full Version : به روز شدن اطلاعات در شبکه
IKHATAMI
پنج شنبه 01 مهر 1389, 12:21 عصر
من یک برنامه تحت شبکه با دلفی و بانکهای اسکیوال سرور نوشته ام در شبکه کار می کند وکلاینتها وصل می شوند ولی آپدیتها و اطلاعات جدید که در هر کلاینت ایجاد می گردد توسط سایرین قابل مشاهده نیست مگر اینکه از برنامه خارج شده مجددا وارد گردند راه حل چیست؟
من از ado استفاده کرده ام
با تشکر
MOJTABAATEFEH
پنج شنبه 01 مهر 1389, 17:18 عصر
من یک برنامه تحت شبکه با دلفی و بانکهای اسکیوال سرور نوشته ام در شبکه کار می کند وکلاینتها وصل می شوند ولی آپدیتها و اطلاعات جدید که در هر کلاینت ایجاد می گردد توسط سایرین قابل مشاهده نیست مگر اینکه از برنامه خارج شده مجددا وارد گردند راه حل چیست؟
من از ado استفاده کرده ام
با تشکر
ببنید دوست عزیز برای اینکار خود جدول های دیتابیس رو میشه با تریگرها به روز نگه داشت ولی برای کاری که شما می خواین بایستی با اضافه کردن یک دکمه در جایی از برنامه که کاربر احتیاج به اطلاعات جدید دارد این به روزرسانی رو انجام بدین معمولا در تمام قسمتهای برنامه نیاز به اطلاعات جدید نیست چون برای ثبت و ویرایش ها با توجه به کد نویسی ها آخرین اطلاعات ثبت شده کنترل می شوند (بستن و باز کردن Query)
موفق باشید
بهزادصادقی
پنج شنبه 01 مهر 1389, 20:42 عصر
من یک برنامه تحت شبکه با دلفی و بانکهای اسکیوال سرور نوشته ام در شبکه کار می کند وکلاینتها وصل می شوند ولی آپدیتها و اطلاعات جدید که در هر کلاینت ایجاد می گردد توسط سایرین قابل مشاهده نیست مگر اینکه از برنامه خارج شده مجددا وارد گردند راه حل چیست؟
من از ado استفاده کرده ام
با تشکر
ببینید من درست متوجه مسئله شما شده ام یا نه:
1. شما یک دیتابیس مرکزی دارید. فقط یک نسخه از این دیتابیس فعال است. همه کاربرها فقط به همین یک نسخه وصل می شوند و اطلاعاتشان را وارد همین یک نسخه می کنند.
2. اگر من و شما دو تا کاربر هستیم، و من دارم روی صفحه نمایشم مثلا به اطلاعات پایه یک مشتری نگاه می کنم، و در آن واحد شما آن اطلاعات را تغییر می دهید، صفحه نمایش من تغییر نمی کند، یعنی من نمی بینم که شما تغییراتی را در آن داده هایی را که من دارم مشاهده شان می کنم به وجود آورده اید. ولی شما آن تغییرات را در صفحه نمایش خود می بینید.
3. تا وقتی من از برنامه خارج نشده ام و دوباره از اول وارد آن نشده ام، تغیرات شما قابل رویت به وسیله من نمی باشند.
آیا این ها درسته؟ آیا مطلب دیگری هم هست که لازم می بینید به این صورت مسئله اضافه نمائید؟
esmit61
پنج شنبه 01 مهر 1389, 22:19 عصر
اگه از ADO استفاده میکنی:
خاصیت CursorLocation از AdoTable رو روی clUseServer و
خاصیت CursorType از همین کامپوننت رو روی ctDynamic قرار بده.
البته باید دقت کنی، مثلاً اگه از DBGrid هم استفاده میکنی، ممکنه به مشکل بربخوری
IKHATAMI
پنج شنبه 01 مهر 1389, 22:57 عصر
ببینید من درست متوجه مسئله شما شده ام یا نه:
1. شما یک دیتابیس مرکزی دارید. فقط یک نسخه از این دیتابیس فعال است. همه کاربرها فقط به همین یک نسخه وصل می شوند و اطلاعاتشان را وارد همین یک نسخه می کنند.
2. اگر من و شما دو تا کاربر هستیم، و من دارم روی صفحه نمایشم مثلا به اطلاعات پایه یک مشتری نگاه می کنم، و در آن واحد شما آن اطلاعات را تغییر می دهید، صفحه نمایش من تغییر نمی کند، یعنی من نمی بینم که شما تغییراتی را در آن داده هایی را که من دارم مشاهده شان می کنم به وجود آورده اید. ولی شما آن تغییرات را در صفحه نمایش خود می بینید.
3. تا وقتی من از برنامه خارج نشده ام و دوباره از اول وارد آن نشده ام، تغیرات شما قابل رویت به وسیله من نمی باشند.
آیا این ها درسته؟ آیا مطلب دیگری هم هست که لازم می بینید به این صورت مسئله اضافه نمائید؟
بله درست مسئله همینه
بهزادصادقی
جمعه 02 مهر 1389, 02:40 صبح
بله درست مسئله همینه
والا من می خواستم یک جواب خاصی را بدهم و بگویم که این اصلا مشکل نیست و تمام برنامه های دیتابیسی این طوری هستند، و اگر شما می خواهید داده هایی که در صفحه نمایش یک کاربر دیده می شوند بعد از هر تغییرات به طور خودکار به روز رسانی شوند، باید خودتان یک کدی بنویسید که هر چند ثانیه یا چند دقیقه چک می کند ببیند داده ای عوض شده یا نه و بعد صفحه نمایش را refresh می کند، و راحی جز این وجود ندارد.
ولی درست قبل از اینکه بتوانم این مطلب را بنویسم، دوست گرامی خانم یا آقای esmit61 پیشنهاد خود را در جواب به سوال شما درج کرد، که به نظر می رسد اطلاعاتشان در این زمینه خیلی از من بیشتر است، و ایشان به نظر می رسد راهی را میدانند. پس اجازه دهید من فعلا چیزی نگویم و شاید ایشان بتوانند مسئله شما را حل کنند.
IKHATAMI
شنبه 03 مهر 1389, 07:14 صبح
اگه از ADO استفاده میکنی:
خاصیت CursorLocation از AdoTable رو روی clUseServer و
خاصیت CursorType از همین کامپوننت رو روی ctDynamic قرار بده.
البته باید دقت کنی، مثلاً اگه از DBGrid هم استفاده میکنی، ممکنه به مشکل بربخوری
با تشکر از شما
من این خاصیتها را ست کردم ولی مشکل جدیدی ایجاد شد دستورات locate و indexfieldname دیگر فعال نمی شود و خطا می دهد برای جستجو در بانکهای sql چیکار کنم
مثلا من در بانک براساس نام یک رکورد را جستجو کرده و عملیات ویرایشی بر روی آن رکورد انجام دهم
IKHATAMI
سه شنبه 06 مهر 1389, 10:27 صبح
با تشکر از شما
من این خاصیتها را ست کردم ولی مشکل جدیدی ایجاد شد دستورات locate و indexfieldname دیگر فعال نمی شود و خطا می دهد برای جستجو در بانکهای sql چیکار کنم
مثلا من در بانک براساس نام یک رکورد را جستجو کرده و عملیات ویرایشی بر روی آن رکورد انجام دهم
یکی جواب بدهد
ice007
سه شنبه 06 مهر 1389, 16:55 عصر
یک خاصیتی هست به اسم sqldependency به این صورت کار می کنه که یک قسمت از جداول رو میشه به اون حساس کرد هر وقت تغییر کنه یک event فعال می شه که کلاینت می تونه بفهمه اون اطلاعات تغییر کرده
البته کار کردن باهاش یکم سخته و باید روش کار کنی تا دستت بیاد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.