PDA

View Full Version : refresh برنامه تحت شبکه



دوشنبه 02 شهریور 1383, 17:48 عصر
با سلام خدمت همه دوستان
سوال من اینه که در یه برنامه تحت شبکه که چند برنام به یک بانک sqlserver وصل شدن چطوری وقتی یکی از برنامه ها داده ای ره post کرد برنام های دیگه بلافاصله خودشون update یا همون refresh بشن
با تشکر

SReza1
سه شنبه 03 شهریور 1383, 20:52 عصر
یه روش به کمک Socket programing است که به محض اینکه رکوردی update شد به تمام clientها پبغام بدی

یه روش دیگه هم به کمک یه timer است که مثلا هر چند باز بکیار بانک رو چک میکنه! من روش اول رو توصیه میکنم

m_reza
چهارشنبه 04 شهریور 1383, 10:26 صبح
میشه در مورد روش اول بیشتر توضیح بدین (اگر هم با یک مثال عملی باشه که دیگه عالی میشه 8) )

SReza1
چهارشنبه 04 شهریور 1383, 21:46 عصر
خوب به کمک socketها شما میتونانید به راحتی ارسال Message کنید به هر clinet که مثلا فلان رکورد اضافه شد!
میتونی یه نگاه به مثال netchat در دلفی 7 بندازی متوجه میشی! البته ربطی به database نداره ولی میتونی از اون استفاده کنی! در انترنت هم زیاده!

vatal
پنج شنبه 05 شهریور 1383, 02:59 صبح
با سلام خدمت دوستان 8-)
فکر کنم میشه این کار و ساده تر و با استفاده از Triger در SQL Sever
انجام داد :wink:

Mohammad S
پنج شنبه 05 شهریور 1383, 12:44 عصر
جناب vatal لااقل می فرمودید چگونه؟ کمی هم در مورد Triger توضیح می دادید! :oops:

چهارشنبه 18 شهریور 1383, 23:49 عصر
من یه روشی خوب پیدا کردم یعنی کسی بهم گفت و بهم نشون داد
یک شی از نوع com ساخته بود و این شی خودش متوجه تغییر میشد و میتونستیم با رویداد اون کلاینت ها refresh کنیم البته من سورس رو هنوز ندیدم و اون فقط روش رو گفت چون سورس همراش نبود حالا اگه کسی اینو کامل بلده یه لطفی بکنه و بنویسه

با تشکر

AminSobati
پنج شنبه 19 شهریور 1383, 00:28 صبح
دوست عزیزم،
در این کار، گاها ترجیح داده میشه که کاربر توسط مثلا یک کلید Refresh در مواقعی که نیاز داره، اطلاعات روی Client خودش رو به روز کنه. اما اگر الزاما این کار باید به صورت کاملا اتوماتیک انجام بشه، شما باید از یک ابزار Notification استفاده کنین. استفاده از Timer برای Refresh کردن در صورتی که حجم رکوردها کم باشه و ترافیک زیاد در شبکه ایجاد نکنه شاید بی درد سرترین راه باشه.
اما در مورد Notification که اصولی ترین روش هست، ابزار مختلفی وجود داره مثل DCOM. در این روش، یک COM Object به عنوان سرور روی کامپیوتری که SQL Server نصب شده قرار میگیره. هر کلاینت به محض لاگین کردن، خودش رو در COM Object(روی سرور) رجیستر میکنه. هر بار که یکی از کلاینتها رکورد جدیدی وارد دیتابیس میکنه، به COM Object اطلاع میده. COM Object که لیست تمام کلاینتهای در حال کار رو داره، بهشون اصطلاحا یک Callback Message ارسال میکنه و اونها متوجه میشن که باید اطلاعات خودشون رو Refresh کنن و کاربر برنامه نیازی به انجام کار اضافی نداره. همونطور که عرض کردم DCOM یکی از روشهای Notify کردن هست و تنها راه نیست.
موفق باشید،
امین ثباتی MCSD

JavanSoft
پنج شنبه 19 شهریور 1383, 14:03 عصر
فکر کنم میشه این کار و ساده تر و با استفاده از Triger در SQL Sever
Triger در سطح SqlServer است که بانکها نیازی به Refresh ندارند
و اصولا چگونه از طریق Triger شما Refresh می کنید؟ :wink: