صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 49

نام تاپیک: تشخیص آنی رکورد جدید در جدول

  1. #1

    تشخیص آنی رکورد جدید در جدول

    سلام

    برای اینکه بتونم منظورم خوب مطرح کنم یک مثال میزنم.

    یک جدول در SQL داریم که میخوایم به محض اینکه رکوردی جدید توسط کاربر اول (در شبکه) در اون ثبت شد، کاربر دوم مطلع بشه. میشه هم گفت مسنجر.
    راه حل منطقی چیه؟

    خودم یک راه به ذهنم میرسه که برنامه‌ی هر کاربر توسط یک تایمر به صورت مداوم (هر 5 ثانیه) وجود رکورد جدید رو چک کنه. ولی در این روش ترافیک شبکه بالا میره و برنامه تقریبا مشغول هست. و ممکنه در هر بار چک کردن، برنامه برای باز کردن جدول یک ایست کوتاه داشته باشه.

    چه راهکارهای دیگه ای شما پیشنهاد میکنید.

    پیشاپیش از همکاریتون متشکرم.

  2. #2
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    چرا از socket programing استفاده نمی کنید؟

  3. #3
    نقل قول نوشته شده توسط ali_kolahdoozan مشاهده تاپیک
    چرا از socket programing استفاده نمی کنید؟
    نمیدونم منظور شما هموم WinSock هست؟ یعنی تبادل با پروتکلهای شبکه.
    من که اسم مسنجر رو بردم فقط مثال بود. کاری که میخوام باید مستقیم دیتابیس رو بخونه و از طریق دیتابیس اطلاعات منتقل بشه نه با روش دیگه.
    یعنی با socket programing میشه تشخیص داد که رکوردی به جدول اضافه شده؟؟؟
    میشه بیشتر توضیح بدید.

  4. #4
    کاربر دائمی آواتار vahidiran
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    کرمان
    پست
    211
    به نظر من طراحی پایگاه یه جورایی مشکل داره
    فکر کنم از ارتباط بین جداول خوب استفاده نکردید البته این نظر منه
    حالا اگه بگید برای چیه نیار به دانستن انی دارید شاید یه راهی به نظرمون برسه

  5. #5
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    اینطوری شما باید هر چند دقیقه رکوردها رو چک کنید . زیاد جالب به نظر نمیرسه / اگر مشگلتون برای دانشگاه و پروژه و 000 است با همون تایمر حلش کنید بره / اما در عمل این تایمر زیاد جالب نیست / یک کار بهتر بکنید هر وقت رکورد جدید اضافه شد با همون دستورات socket یک پیام برای بقیه کلاینتها بفرستید .

  6. #6
    نقل قول نوشته شده توسط vahidiran مشاهده تاپیک
    به نظر من طراحی پایگاه یه جورایی مشکل داره
    فکر کنم از ارتباط بین جداول خوب استفاده نکردید البته این نظر منه
    ربطی به طراحی جدول و دیتابیس نداره.
    نقل قول نوشته شده توسط vahidiran مشاهده تاپیک
    حالا اگه بگید برای چیه نیار به دانستن انی دارید شاید یه راهی به نظرمون برسه
    نمیخواستم زیاد وارد جزئیات بشم. ولی خب یک سیستم کارتابل مکانیزست که کاربران مایلند در صورتی که یک یادداشت یا نامه در کارتابلشان (توسط کاربر دیگه در شبکه) وارد شد سریعا مطلع بشن. میخوام که علاوه بر ثبت سوابق در دیتابیس همزمان با ارسال یادداشت جدید (که منجر به اضافه شدن یک رکورد در جدول میشه) به کاربر مخاطب اطلاع داده شود. (توسط بوق کیس و یک فرم Popup)
    به خاطر حساسیت کار، حداکثر زمان اطلاع رسانی رو فقط میتونم تا 15 ثانیه افزایش بدم.
    البته میشه کلید رفرش هم گذاشت ولی کاربر فراموش میکنه یا از پشت میز بلند میشه.

    نقل قول نوشته شده توسط ali_kolahdoozan مشاهده تاپیک
    اینطوری شما باید هر چند دقیقه رکوردها رو چک کنید . زیاد جالب به نظر نمیرسه / اگر مشگلتون برای دانشگاه و پروژه و 000 است با همون تایمر حلش کنید بره / اما در عمل این تایمر زیاد جالب نیست / یک کار بهتر بکنید هر وقت رکورد جدید اضافه شد با همون دستورات socket یک پیام برای بقیه کلاینتها بفرستید .
    هر چند دقیقهزیاده. شرح رو بالا گفتم. پروژه دانشگاهی و اینا نیست. یک غلطی کردیم باید پاش وایستیم.
    راستش کابرد کامل سوکت رو نمیدونم چطوریه؟ مطمئنا به دیتابیس نمونه متصل بشه.
    ولی یک فکرایی به نظرم رسید.
    منتظرم بقیه کاربران نظرشون رو بگن.

    از همه به خاطر توجهشون متشکرم.

  7. #7

    Exclamation

    نقل قول نوشته شده توسط Neeloofar مشاهده تاپیک
    سلام

    برای اینکه بتونم منظورم خوب مطرح کنم یک مثال میزنم.

    یک جدول در SQL داریم که میخوایم به محض اینکه رکوردی جدید توسط کاربر اول (در شبکه) در اون ثبت شد، کاربر دوم مطلع بشه. میشه هم گفت مسنجر.
    راه حل منطقی چیه؟

    خودم یک راه به ذهنم میرسه که برنامه‌ی هر کاربر توسط یک تایمر به صورت مداوم (هر 5 ثانیه) وجود رکورد جدید رو چک کنه. ولی در این روش ترافیک شبکه بالا میره و برنامه تقریبا مشغول هست. و ممکنه در هر بار چک کردن، برنامه برای باز کردن جدول یک ایست کوتاه داشته باشه.

    چه راهکارهای دیگه ای شما پیشنهاد میکنید.

    پیشاپیش از همکاریتون متشکرم.
    ُُبا سلام .
    اگر از SQL Server 2005 استفاده کنید یک امکانی داره به نام QueryNotification که به سادگی اینکار رو انجام میده. شاید شما حتی به چشم هم قادر به دیدن تغییر نباشید. تغییرات در کمتر از 100 ام ثانیه نمایش داده خواهند شد.


    نقل قول نوشته شده توسط ali_kolahdoozan مشاهده تاپیک
    چرا از socket programing استفاده نمی کنید؟
    خیلی سخته و به نظر من در اینصورت باید بی خیالش بشه.
    نقل قول نوشته شده توسط vahidiran مشاهده تاپیک
    به نظر من طراحی پایگاه یه جورایی مشکل داره
    فکر کنم از ارتباط بین جداول خوب استفاده نکردید البته این نظر منه
    حالا اگه بگید برای چیه نیار به دانستن انی دارید شاید یه راهی به نظرمون برسه
    جل الخالق.
    اینجا یک فروم است اگر چیزی رو نمیدونید لطفا" دوستان رو گمراه نکنید. تشکر
    نقل قول نوشته شده توسط ali_kolahdoozan مشاهده تاپیک
    اینطوری شما باید هر چند دقیقه رکوردها رو چک کنید . زیاد جالب به نظر نمیرسه / اگر مشگلتون برای دانشگاه و پروژه و 000 است با همون تایمر حلش کنید بره / اما در عمل این تایمر زیاد جالب نیست / یک کار بهتر بکنید هر وقت رکورد جدید اضافه شد با همون دستورات socket یک پیام برای بقیه کلاینتها بفرستید .
    چرا اینقدر با دانشگاه لجی. یک کم پیشرفت کن برو ببین دنیا چه میکنه. من که اینجوری شدم با دیدن SQL 2005 .

    آقا/ خانم نیلوفر من در اولین فرصت برای شما یک مثال خواهم گذاشت فقط شما بگویید که آیا میخواهید از همین ورژن SQL Server استفاده کنید یا خیر.

  8. #8
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    خودم یک راه به ذهنم میرسه که برنامه‌ی هر کاربر توسط یک تایمر به صورت مداوم (هر 5 ثانیه) وجود رکورد جدید رو چک کنه. ولی در این روش ترافیک شبکه بالا میره و برنامه تقریبا مشغول هست. و ممکنه در هر بار چک کردن، برنامه برای باز کردن جدول یک ایست کوتاه داشته باشه.
    استفاده از روش Polling همانطور که خودتان اشاره کردید ترافیک شبکه و اتلاف پهنای باند می شود. در عمل برنامه نویسی سوکت سریعترین راه حل است (البته اگر می خواهید به چیزی شبیه به چت برسید)، اما باید شما تمامی کار ها (مانند مدیریت پورتها و مولتی تردینگ) را بوسیله برنامه نویسی انجام دهید.اما اگر می خواهید از SQL Server و امکانات آن استفاده کنید می توانید از Service Broker استفاده کنید که در نسخه 2000 و 2005 موجود است (Service Broker به شما این امکان را می دهد که بر اساس شرایطی Event خاصی را فعال کنید).در صورتی که از 2005 استفاده می کنید همانطور که دوستمان اشاره داشتند می توانید از Query Notification استفاده کنید.
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  9. #9
    نقل قول نوشته شده توسط DonetKarvb مشاهده تاپیک
    ُُبا سلام .
    اگر از SQL Server 2005 استفاده کنید یک امکانی داره به نام QueryNotification که به سادگی اینکار رو انجام میده. شاید شما حتی به چشم هم قادر به دیدن تغییر نباشید. تغییرات در کمتر از 100 ام ثانیه نمایش داده خواهند شد.

    آقا/ خانم نیلوفر من در اولین فرصت برای شما یک مثال خواهم گذاشت فقط شما بگویید که آیا میخواهید از همین ورژن SQL Server استفاده کنید یا خیر.
    آقا/ خانم نیلوفر


    بله SQL 2005. ( وبا VB.NET کار میکنم)
    بیصبرانه منتظر هستم.
    جسارتا متذکر ب شم من میخوام توسط یک Win App به کاربر وجود رکورد جدید رو هشدار بدم و نه از طریق کنسول SQL.
    .
    .

  10. #10
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    وقتی تغییرات رخ میدهد . باید همه کلاینتها متوجه بشن . خب درسته که 2005 این سرویس رو داره اما به هر حال باید هر چند لحظه چک بشه . مگر اینکه راه شما چیزی غیر از این باشه که باید دید

  11. #11
    کاربر دائمی آواتار vahidiran
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    کرمان
    پست
    211
    برای تمامی دستورات که پیغام رو می فرستند علاوه بر اینکه در بانک ذخیره شه چک کنه صاحبشو پیدا کنه و پیغام رو هم به او بفرسته
    همان طور که دوستمون اشاره ای به ان کرد
    آخرین ویرایش به وسیله vahidiran : دوشنبه 23 بهمن 1385 در 08:02 صبح دلیل: فراموش کردن نوستن یک جمله

  12. #12
    نقل قول نوشته شده توسط vahidiran مشاهده تاپیک
    برای تمامی دستورات که پیغام رو می فرستند علاوه بر اینکه در بانک ذخیره شه چک کنه صاحبشو پیدا کنه و پیغام رو هم به او بفرسته
    همان طور که دوستمون اشاره ای به ان کرد
    مشکلی از این بابت نیست.
    در رکورد یک فیلد به نام UserID هست که وقتی رکرود جدید اضافه میشه، مقصد پیام توسط UserID مشخص میشه.
    یعنی تمامی کلاینتها این جدول رو چک میکنند و اگر رکوردی با UserID خودشون پیدا کردند اونوقت کاربر رو مطلع میکنند.
    فقط مشکل تشخیص رکورد هست که منتظر پاسخ دوستمون DonetKarvb هستم.
    البته من در MSDN در مورد QueryNotification سرچ کردم و چندتا نمونه پیدا کردم. ولی خیلی خطا داره. نمیدونم اشکال کار کجاست.

  13. #13
    کاربر دائمی آواتار mostafa_leman
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    نیشابور
    پست
    187
    آیا میشه sql server رو به یک فیلد خاص از یک Table حساس کرد که یک پیغام به ما بده ؟ من یک برنامه نوشتم که تو اون یک سری سفارش ثبت میشه . اما تنها راهی که برای به ذهنم رسید تا به کاربر اعلام کنم که سفارش رو آماده کنند همین Timer بود .

  14. #14
    نقل قول نوشته شده توسط mostafa_leman مشاهده تاپیک
    آیا میشه sql server رو به یک فیلد خاص از یک Table حساس کرد که یک پیغام به ما بده ؟ من یک برنامه نوشتم که تو اون یک سری سفارش ثبت میشه . اما تنها راهی که برای به ذهنم رسید تا به کاربر اعلام کنم که سفارش رو آماده کنند همین Timer بود .
    این برنامه به کوئری حساس است. شما میتونید کوئری رو جوری تنظیم کنید که فقط روی اون فیلد تمرکز کنه.

    نقل قول نوشته شده توسط Neeloofar مشاهده تاپیک


    بله SQL 2005. ( وبا VB.NET کار میکنم)
    بیصبرانه منتظر هستم.
    جسارتا متذکر ب شم من میخوام توسط یک Win App به کاربر وجود رکورد جدید رو هشدار بدم و نه از طریق کنسول SQL.
    .
    .
    ** منظورم از آقا/ خانم این بود که میتواند نیلوفر نام خانوادگی باشد( که مرد هم میشه) و یا اسم

    بله این پروژه ای رو که برای شما فرستادم دقیقا" با VB.Net 2005 و ADO.Net 2.0 و SQL Server 2005 تحت ویندوزWinAPP نوشته شده است.
    نقل قول نوشته شده توسط ali_kolahdoozan مشاهده تاپیک
    وقتی تغییرات رخ میدهد . باید همه کلاینتها متوجه بشن . خب درسته که 2005 این سرویس رو داره اما به هر حال باید هر چند لحظه چک بشه . مگر اینکه راه شما چیزی غیر از این باشه که باید دید
    غیر از این هست. ببین و حالشو ببر.

  15. #15
    با سلام
    دوستان این یک برنامه است و دقیقا" همینکار رو میکنه که شما میخواید
    یک کوئری نوشته شه که به اطلاعات مشتریانی که از کشور UK هستد حساس میباشد. شما بعد از اجرای برنامه به سراغ دیتابیس NorthWind و جدول Customers رفته و اطلاعات یکی از مشتریان که در این حیطه هستند را ویرایش کنید. البته به Insert ,Delete,Update حساس هست.
    این برنامه رو خودم ننوشتم و از اینترنت گرفتم
    تقدیم به دوستان عزیز:
    فایل های ضمیمه فایل های ضمیمه

  16. #16
    نقل قول نوشته شده توسط DonetKarvb مشاهده تاپیک
    با سلام
    دوستان این یک برنامه است و دقیقا" همینکار رو میکنه که شما میخواید
    یک کوئری نوشته شه که به اطلاعات مشتریانی که از کشور UK هستد حساس میباشد. شما بعد از اجرای برنامه به سراغ دیتابیس NorthWind و جدول Customers رفته و اطلاعات یکی از مشتریان که در این حیطه هستند را ویرایش کنید. البته به Insert ,Delete,Update حساس هست.
    من اجرا کردم، ولی چون از کانکشن استرینگ شما ایراد میگرفت:
    An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)


    برای همین اینطوری کردم:

     
    "server=MY-SERVER\SQLEXPRESS;Integrated Security=SSPI;Database=Northwind;Pooling=False; failover partner=.\sql2005_2"


    در مورد تغییرات هم هیچ عکس العملی نشون نمیده. چه با دستور Insert ,Delete,Update و از طریق خود سلولها و غیره.

    گفتید تمرکز روی یک فیلد. مگه باید فیلد خاصی تغییر کنه تا این برنامه عکس العمل نشون بده.

  17. #17
    نقل قول نوشته شده توسط Neeloofar مشاهده تاپیک
    من اجرا کردم، ولی چون از کانکشن استرینگ شما ایراد میگرفت:
    An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
    برای همین اینطوری کردم:

     
    "server=MY-SERVER\SQLEXPRESS;Integrated Security=SSPI;Database=Northwind;Pooling=False; failover partner=.\sql2005_2"
    در مورد تغییرات هم هیچ عکس العملی نشون نمیده. چه با دستور Insert ,Delete,Update و از طریق خود سلولها و غیره.

    گفتید تمرکز روی یک فیلد. مگه باید فیلد خاصی تغییر کنه تا این برنامه عکس العمل نشون بده.
    کانکشن استرینگ رو به این صورت در بیاورید:
     "server=MY-SERVER\SQLEXPRESS;Integrated Security=SSPI;Database=Northwind;"

    در بخش Option های دیتابیس SQl Service Broker رو حتما" فعال کنید.
    تغییراتی رو که انجام میدهید باید روی مشتریانی باشد که در کشور UK زندگی میکنند.
    البته اگر کوئری را به این صورت تغییر دهید :
    Select * From Customers
    با هر تغییر در جدول customers شما شاهد تغییرات خواهید بود.

  18. #18
    نقل قول نوشته شده توسط DonetKarvb مشاهده تاپیک
    کانکشن استرینگ رو به این صورت در بیاورید:
     "server=MY-SERVER\SQLEXPRESS;Integrated Security=SSPI;Database=Northwind;"

    در بخش Option های دیتابیس SQl Service Broker رو حتما" فعال کنید.
    تغییراتی رو که انجام میدهید باید روی مشتریانی باشد که در کشور UK زندگی میکنند.
    البته اگر کوئری را به این صورت تغییر دهید :
    Select * From Customers
    با هر تغییر در جدول customers شما شاهد تغییرات خواهید بود.
    من تمام موارد فوق رو رعایت کردم غیر از این :

    در بخش Option های دیتابیس SQl Service Broker رو حتما" فعال کنید.
    هر چی گشتم چنین گزینه ای در Properties دیتابیس و سرور پیدا نکردم.
    باید سرویس خاصی رو نصب کنم. یا موقع نصب SQL گزینه ای رو تیک نزدم؟

  19. #19
    اینو یه تستش بکن
    USE master ;
    GO

    ALTER DATABASE Northwind SET ENABLE_BROKER ;
    GO




  20. #20
    سلام

    فرمان بالا درست اجرا شد.

    ولی باز هم بی خیال نسبت به تغییرات عمل میکنه.

    من یک New Query باز میکنم و این دستور رو توش میدم:

     
    UPDATE Customers
    SET City = 'er'
    WHERE (Country = 'uk') AND (CustomerID = 'AROUT')


    و اجرا میکنم. با کلیک کردن مجدد Get Data تغییرات ملاحظه میشه (در گرید) ولی هنوز هم تعداد تغییرات رو 0 میزنه.
    همه موارد فوق رو رعایت کردم نمیدونم کجای کار من اشکال داره؟

    در ضمن فکر نکنم به دیتابیس ربطی داشته باشه. ولی من چون دیتابیس Northwind رو نداشتم فقط تونستم ورژن 2000 دیتابیس رو از سایت MS پیدا کنم و Attach کنم.

  21. #21
    می توانید از Service Broker استفاده کنید که در نسخه 2000 و 2005 موجود است
    توی 2K هم سرویس بروکر داریم؟
    هر که بر مرکب باطل نشیند ، در سراى پیشمانى فرودش مى‏آورند

  22. #22
    سلام

    من برنامه روی یک دیتابیس دیگه آزمایش کردم.
    این بار با اجرای فرم و فرمان GetData شروع میکنه به بالا رفتن تغییرات. و برنامه توی یک حلقه میافته. در صورتی که اصلا تغییراتی ندادم.

    میشه لطف کنید و دیتابیسی که خود شما استفاده میکنید رو یک بک آپ یا یک کپی از اون تهیه و بفرستید. شاید تنظیمات دیتابیس فرق بکنه.
    برای کم شدن حجم جداول اضافیش رو پاک کنید.

  23. #23
    ظاهرا این فناوری برای خیلی ها جا نیافتاده (از جمله خودم) چون تو اینترنت هم میگردم همش 4 تا دونه مثال اونم تکراری گیرم می آید که توضیح درست و کاملی ندارند.
    MSDN (آنلین و آفلین) هم کم لطفی کرده.
    مثل اینکه فعلا باید با همون تایمر یکجورایی کارم رو راه بندازم.

  24. #24
    کسی دیگه ای این برنامه رو چک نکرده؟ 8 بار دانلود داشتیم حدا اقل دو نفر دانلود کردند که ایا اون یکی دوستمون هم مشکل داشتند؟

  25. #25
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    نقل قول نوشته شده توسط Neeloofar مشاهده تاپیک
    ظاهرا این فناوری برای خیلی ها جا نیافتاده (از جمله خودم) چون تو اینترنت هم میگردم همش 4 تا دونه مثال اونم تکراری گیرم می آید که توضیح درست و کاملی ندارند.
    MSDN (آنلین و آفلین) هم کم لطفی کرده.
    مثل اینکه فعلا باید با همون تایمر یکجورایی کارم رو راه بندازم.
    نیلوفر خانم. گر صبر کنی ...

    درسته در اینترنت نمونه ها کمیاب هستند.
    ولی این یکی درست کار میکنه و مشکل نداره.
    درسته پایگاه داده باید یک سری تنظیمات رو تغییر بدی و یک سری سرویس تعریف کنی.
    مثال دوستمون هم DonetKarvb تقریبا درسته ولی نگفته که باید سرویس های notification برای یک پایگاه داده تعریف بشه. احتمالا بانکی که ایشون روی سیستمشون دارند این سرویس ها رو داره.
    در هر صورت این نمونه دارای یک فایل SQL هست که خودش یک بانک ایجاد میکنه و تنظیمات و سرویس های لازم در اون انجام میشه.
    ابتدا Database.sql رو اجرا کنید.
    سپس تغییرات Connection String رو در سورس برنامه برای سرور خود انجام بدید.
    بعد هم خروجی EXE برنامه رو دو بار اجرا کنید و دو تا کاربر مختلف رو انتخاب کنید.
    حالا در سیستم خودتون دو تا کاربر با هم چت میکنن. تغییرات بصورت آنی (همونطور که میخواید) به کاربر دیگه اطلاع داده میشه.

    ضمنا سورس این برنامه با C#‎ هست. من فرصتی برای تبدیل کد به وی بی ندارم.

    موفق و مؤید باشید.
    فایل های ضمیمه فایل های ضمیمه

  26. #26
    خیلی ممنون.
    درسته این همون چیزی بود که میخواستم.
    نه یک خورده C#‎ سرم میشه. لزومی به تبدیل نیست.

    خیلی متشکر!

    نقل قول نوشته شده توسط DonetKarvb مشاهده تاپیک
    کسی دیگه ای این برنامه رو چک نکرده؟ 8 بار دانلود داشتیم حدا اقل دو نفر دانلود کردند که ایا اون یکی دوستمون هم مشکل داشتند؟
    احتمالا بیشتر هم دانلود شده. چون من هر وقت از اینجا چیزی دانلود میکنم، بازم با رفرش صفحه تعداد دانلود شده ثابت میمونه.
    از شما DonetKarvb هم متشکرم.

  27. #27
    نقل قول نوشته شده توسط Payam Moradi مشاهده تاپیک
    درسته پایگاه داده باید یک سری تنظیمات رو تغییر بدی و یک سری سرویس تعریف کنی.
    مثال دوستمون هم DonetKarvb تقریبا درسته ولی نگفته که باید سرویس های notification برای یک پایگاه داده تعریف بشه. احتمالا بانکی که ایشون روی سیستمشون دارند این سرویس ها رو داره.
    من در پستی جدا به ایشون گفته بودم که این بخش رو فعال کنند و ایشون هم فعال کردند .

    نقل قول نوشته شده توسط DonetKarvb مشاهده تاپیک
    اینو یه تستش بکن
    USE master ;
    GO

    ALTER DATABASE Northwind SET ENABLE_BROKER ;
    GO




  28. #28
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    توی 2K هم سرویس بروکر داریم؟
    با عرض پوزش ، این سرویس در SQL 2005 وجود دارد و قابل استفاده است (ضمن اینکه در جایی خواندم که این سرویس در 2000 موجود بوده اما فقط خود سیستم از آن استفاده می کند). اما برای یک همچنین کاری در 2000 می توانید از همان Notification Services استفاده نمائید.
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  29. #29
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524

    نسخه VB.Net

    اونایی که با C#‎ مشکل دارند، خیلی ساده کردم و با VB.Net نوشتم.
    .
    فایل های ضمیمه فایل های ضمیمه

  30. #30
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    این سورس آقای DonetKarvb با دیتابیس Northwind منتها با اجرای فایل northwind.sql ابتدا دیتابیس را ایجاد کنید.
    آقای DonetKarvb زحمت پیدا کردن فرق دیتابیسی که northwind.sql میسازه با دیتابیس Northwind که در SQL نصب هست با خودتون.
    کد شما موردی نداره و فقط دیتابیس باید یک تغییراتی بکنه.
    ضمنا یک تغییر کوچیک هم در کد دادم. بهتره از یک SP استفاده کنید.
    فایل های ضمیمه فایل های ضمیمه

  31. #31
    نقل قول نوشته شده توسط Payam Moradi مشاهده تاپیک
    ضمنا یک تغییر کوچیک هم در کد دادم. بهتره از یک SP استفاده کنید.
    استفاد از SP یکی از علایق بنده هست. ولی خوب میتونم بپرسم اینجا فرقشون چیه؟ شاید یکی نخواد از SP استفاده کنه......

  32. #32
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    نقل قول نوشته شده توسط DonetKarvb مشاهده تاپیک
    استفاد از SP یکی از علایق بنده هست. ولی خوب میتونم بپرسم اینجا فرقشون چیه؟ شاید یکی نخواد از SP استفاده کنه......
    دلیل منطقی نداره! در این مورد من نتیجه ی مطلوب نگرفتم. شما هم تست کنید.

  33. #33
    سلام

    نمونه کد جناب DonetKarvb با اصلاحاتی که آقای مرادی انجام دادند و دیتابیسی (northwind.sql) که ارسال کردند، درست شد. البته کد DonetKarvb کاملتره چون نحوه تغییرات رو هم نشون میده.
    من هم با SP که کار میکنم جواب میده ولی با کوئری نمیدونم چرا جواب نمیده.

    در مجموع یک پروژ کامل و بدون نقص شد.
    از آقای مرادی و DonetKarvb سپاسگذارم.

  34. #34
    آیا توی وب هم میشه همچین کار روی کرد؟

  35. #35
    کاربر دائمی آواتار Payam Moradi
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    بيرجند
    سن
    40
    پست
    524
    نقل قول نوشته شده توسط TuneUp مشاهده تاپیک
    آیا توی وب هم میشه همچین کار روی کرد؟
    من امکان تست ندارم. ولی حتما میشه.

  36. #36
    با سلام
    دوستان عزیز و پیشکسوت
    امکان داره عملیات فوق را با sql server 2000 پیاده کرد .

  37. #37
    اگر بشه با sqlserver2000 پیاده سازی بشه خیلی عالی می شه. چون اکثرا هم با همین ورژن دارند کار می کنند.

  38. #38
    ابتدای همین بحث توضیح داهد شده بود که نمیشه. به این دلیل که این سرویس فقط در SQL Server 2005 وجود دارد و از طرفی ADo.Net 2.0 هست که میتواند از این سرویس استفاده کند.
    برای SQL 2000 راه هایی وجود دارد. مثل سوکت پروگرمینگ که کار دشوار و سختیه همچنین استفاده از notification Service که باید آنرا به صورت یک بسته جدا گرفت و نصب کرد. در مجموع عرض کنم که این کار در SQL 2000 به سختی قابل انجامه.

  39. #39
    کاربر دائمی آواتار asilverisis
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    اهواز
    پست
    262
    سلام
    من کدها رو دانلود کردم ، درست کار می کنن ولی وقتی همون کدها رو برای دیتابیس خودم تغییر میدم رویداد MyChangeEvent مثل یک حلقه بی نهایت مدام اجرا می شه بدون اینکه هیچ تغییری در دیتابیس داده بشه.

    باتشکر.

  40. #40
    کاربر دائمی آواتار MH2538
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    No Man Land
    پست
    537
    سلام
    دوستان من یک همچین پروژه ای رو قبلاً نوشتم.
    شما از همون اول دارید راه رو استباه می رید. در اینکار نباید روی دیتابیش اتکا داشت چون همینجوریش هم تحت فشاره چه برسه به این که بخواد تصمیمات این تیپی هم بگیره.
    راه حل استفاده از MultiTier‌است.
    شما هر درج اطلاعات که می خواید انجام بدید به لایه میانی یا همون BusinessLayer میگید.اون لایه هم ، هم اطلاعات رو وارد بانک اطلاعاتی می کنه هم یک Notification به Clientهایی که باید خبر دار شن می فرسته.

صفحه 1 از 2 12 آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •