مشاهده نسخه کامل
: اطلاع از اضافه شدن رکورد به دیتابیس بر روی شبکه
naser_feb8646
25-11-2013, 22:20
سلام دوستان واساتید محترم
یک سوال داشتم
من یه برنامه نوشتم و دیتابیس اون رو که SQLServer هست روی یک کامپیوتر قرار دادم و بقیه کامپیوتر ها رو از طریق IP و Port به دیتابیس متصل کردم حالا سوال اینجاست که من چطور وقتی در یک کامپیوتر رکوردی به دیتابیس اضافه میکنم بقیه کامپیوترها هم از این تغییر اطلاع پیدا کنند
naser_feb8646
01-12-2013, 19:15
یعنی هیچگونه امکانی وجود نداره که بشه این کار رو انجام داد
سلام
برای دیتابیس SQLServer میتوانید از کلاس System.Data.SqlClient.SqlDependency استفاده کنید که مخصوص عمل مورد نظر شما طراحی شده.
naser_feb8646
02-12-2013, 19:22
ممنون از پاسخگویی شما
میشه لطف کنید و بیشتر توضیح بدین
سلام
یک تاپیک و یک مثال بسیار قدیمی در این مورد داشتم که خوشبختانه کار میکند...
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برای امتحان:
پس از اطمینان از نصب و فعال بودن SQLServer
برنامه را که در شاخه bin قرار دارد به درایو D کپی کنید و exe موجود را با راست کلیک و فرمان Run As Admin اجرا کنید.
برنامه تلاش میکند با یک ConnectionString پیشفرض به SQLServer متصل شود و اگر نتواند سپس دیالوگی برای تنظیم ConnectionString نمایش خواهد داد.
برای الحاق دیتابیس دکمه Attach را کلیک کنید.
نمونه دیگری از exe برنامه را مجدد با دبل کلیک اجرا کنید.
هر دو برنامه را Start کنید.
دکمه Sample INSERT یک سطر خالی در دیتابیس درج میکند و خواهید دید که هر دو نسخه برنامه از این درج مطلع میشوند...
و...
اطلاعات تکمیلی:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
موفق باشید.
Payman_62
07-12-2013, 00:59
سلام.
برنامه مهندس به خوبی کار میکنه.
اگر هم بخواهید داخل خود sql یا توسط دستورات sql آخرین تغییرات رو مشاهده کنید میتونید از خاصیت change tracking خود sql استفاده کنید.
توضیحات تکمیلی ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
naser_feb8646
07-12-2013, 13:49
ممنون از شما جناب H2
نرم افزار رو دیدم اما دقیقا نتونستم متوجه بشم که این کلاس چطور کار میکنه
با عرض شرمندگی میدونم سرتون خیلی شلوغه ولی اگر براتون ممکنه میشه یه توضیحی در مورد روال کار این کلاس بدین
سلام
میبخشید گاهاً پاسخ دادنم طولانی میشود ...
تاپیک قبلی هم که اشاره کردم، این بود:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
(که البته آن زمان کد اجرا نشد بدلیلی که بعداً متوجه شدم و در ادامه خواهم گفت ...)
=====
باید یک Connection به دیتابیس و یک Command حاوی دستور SQL-SELECT که قصد ردیابی تغییرات آن را دارید، ایجاد کنید...
سپس شی ای از نوع System.Data.SqlClient.SqlDependency را با دادن Command نمونه سازی کنید و از رویداد OnChange جهت اطلاع از تغییرات استفاده کنید...
گمانم شما به کد ساده ای نیاز دارید که اینقدرهاهم تو در تو نباشد!
کد حداقلی که برای این منظور میتوان نوشت:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(کد فوق آزمایش نشده)
سه نکته را دقت کنید:
1) Command مورد نظر باید یکبار ExecuteXXXXX شده باشد.
2) باید سرویس بروکر روی دیتابیس مورد نظر فعال شده باشد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(صدور دستور فوق، کلاً یکبار روی دیتابیس کافی است.)
3) باید مجوز لازم جهت دیتابیس مورد نظر وجود داشته باشد: (مشکل چند سال قبل که این کد کار نمیکرد)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(صدور دستور فوق، کلاً یکبار روی دیتابیس کافی است.)
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.