PDA

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



en.kamali.ir
سه شنبه 17 دی 1387, 12:42 عصر
سلام دوستان .
برنامه ای نوشتم بانکش sql 200
برنامه کلاینت سرور هم هست .
در برنامه سرور با استفاده از ado به بانک مرتبط شدم و طبیعی هستش که از طریق برنامه کلاینت هم اطلاعات بانک رو از روی سرور لود میکنم . این برنامه توسط 5 کلاینت داره اجرا میشه و در مورد ثبت اطلاعات هم هیچ مشکلی نداره تنها مشکل این است که کاربران از تغییرات در برنامه مطلع نمی شوند . فرض کنید یکی از کلاینت ها یک رکورد را حذف می کند این تغییرات در کامپیوتر های دیگر دیده نمیشود آن هم تا زمانی که هر کدام از کاربران یک بار برنامه خود را باز و بسته کند . در آن صورت برنامه اش به روز میشو . از توابعی مانند :applyupdate هم استفاده کردم اما جواب نداد .
سرچ هم زدم ولی جواب نگرفتم . لطفا راهنمایی نمایید .

bmanfy
سه شنبه 17 دی 1387, 18:05 عصر
سلام . فکر میکنم برنامتون رو با sucket Server نوشته باشین .
تو همون تاپیکی که در مورد برنامه نویسی تحت شبکه ایجاد کرده بودین . من هم همین مشکل رو داشتم .این کارد کردم :
مقدار CursorLocation مربوط به AdoConnection و AdoQuery رو از CluClient به CluServer تغییر دادم .
که جواب هم داد . البته خوب مقدار clientDataSet رو هم یک بار False و True کردم .
البته دیگران میگن Refresh هم همین کار رو میکنه . اما خوب من False و True کردن رو ترجیح میدم .
من تو پست 75 همون تاپیک (صفحه 8) همون برنامه رو که میگم گذاشتم .

rezazd
چهارشنبه 25 دی 1387, 14:01 عصر
سلام . فکر میکنم برنامتون رو با sucket Server نوشته باشین .
تو همون تاپیکی که در مورد برنامه نویسی تحت شبکه ایجاد کرده بودین . من هم همین مشکل رو داشتم .این کارد کردم :
مقدار CursorLocation مربوط به AdoConnection و AdoQuery رو از CluClient به CluServer تغییر دادم .
که جواب هم داد . البته خوب مقدار clientDataSet رو هم یک بار False و True کردم .
البته دیگران میگن Refresh هم همین کار رو میکنه . اما خوب من False و True کردن رو ترجیح میدم .
من تو پست 75 همون تاپیک (صفحه 8) همون برنامه رو که میگم گذاشتم .

روش شما درست است حتما باید دیتا رو دوباره بخوانید

مشکل اینجاست که در کامپیوتری دیگر بدون رفرش چگونه رکورد جدید اتو ماتیک دیده میشود ؟

شما در اپلیکشین ایونت یه کد با تایمر میذارید که هی یک جدولی فرعی را بخواند
در جدول های اصلی با تریگر هر تغییری را در این جدول اینسرت میکنید شامل نام جدول تغییر یافته باشد .
در اپلیکشین ایونت می تونید ببینید کودوم فرم الان باز است و بسته به اونفرم یک مسیج با کمک winproc میفرستید
در متن همهفرمها به محض دریافت این مسیج کوئری مربوطه را رفرش کنید یا همون کلوز
اوپن

bmanfy
چهارشنبه 25 دی 1387, 17:40 عصر
مشکل اینجاست که در کامپیوتری دیگر بدون رفرش چگونه رکورد جدید اتو ماتیک دیده میشود ؟

شما در اپلیکشین ایونت یه کد با تایمر میذارید که هی یک جدولی فرعی را بخواند
در جدول های اصلی با تریگر هر تغییری را در این جدول اینسرت میکنید شامل نام جدول تغییر یافته باشد .
در اپلیکشین ایونت می تونید ببینید کودوم فرم الان باز است و بسته به اونفرم یک مسیج با کمک winproc میفرستید
در متن همهفرمها به محض دریافت این مسیج کوئری مربوطه را رفرش کنید یا همون کلوز
اوپن

چه لزومی داره بدون رفرش کردن ببینیم . خوب میتونیم در زمان Show شدن فرم رفرش کنیم . و اگر کاربر لازم دونست که باید رفرش بشه خوب فرم رو ببنده و باز کنه .
تو این برنامه ای که منظور من بوده اگه بخواد به محض تعییر رفرش کنه یه سری مشکلات هم برای کاربر ایجاد مشیه .
فرض یکن یخ جستجو کرده . یا می خواد یک رکورد رو اصلاح کنه اما قبل اینکه رو دکمه اصلاح بزنه جدول رفرش بشه . باز روز از نو روزی از نو . حتی گاهی هم ممکنه سر در گم بشه .
در ضمن تو سرعت چی ؟ مشکلی پیش نمیاد ؟