منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف نستخدم الاستعلام في ملف Glbal.asax - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم برمجة وتطوير المواقع (http://vb4arb.com/vb/forumdisplay.php?fid=51)
+--- قسم : قسم ASP.NET (http://vb4arb.com/vb/forumdisplay.php?fid=52)
+---- قسم : قسم اسئلة ASP.NET (http://vb4arb.com/vb/forumdisplay.php?fid=53)
+---- الموضوع : كيف نستخدم الاستعلام في ملف Glbal.asax (/showthread.php?tid=6961)



كيف نستخدم الاستعلام في ملف Glbal.asax - سعود - 14-11-12

هذا الملف له احداث معروفة كيف اصيغ كود بحيث يتحقق هل الداخل للموقع مسجل ام لا بواسطة session


كيف نستخدم الاستعلام في ملف Glbal.asax - سعود - 14-11-12

طيب اخواني سؤال آخر كيف اخرج العضو من ضمن المتواجدين الان؟ لاني اضيفه عن طريق تعديل عمود Online=1 عند تسجيل الدخول وعند الخروج اغيرها الى 0 لكن لو لم يسجل خروج ستظل القيمة ثابتة بالقاعدة كيف اعالج الامر؟؟
اخواني انا ابرمج منتدى افضل من اللي انا سويتهم من قبل فارجو المساعدة وشكرا سلفا لكل الاخوان


كيف نستخدم الاستعلام في ملف Glbal.asax - macary007 - 14-11-12

سعود كتب :طيب اخواني سؤال آخر كيف اخرج العضو من ضمن المتواجدين الان؟ لاني اضيفه عن طريق تعديل عمود Online=1 عند تسجيل الدخول وعند الخروج اغيرها الى 0 لكن لو لم يسجل خروج ستظل القيمة ثابتة بالقاعدة كيف اعالج الامر؟؟
اخواني انا ابرمج منتدى افضل من اللي انا سويتهم من قبل فارجو المساعدة وشكرا سلفا لكل الاخوان

الطريقة هي أنك تضع حقل في معلوماته الشخصية يكون من نوع Datatime
وفي كل مرة يقوم المتصفح بعمل للصفحة request أو Postback قم بتحديث هذا الحقل للمستخدم عن طريق الدالة في نفس قواعد البيانات GETDATE

بعد هذه الخطوة نأتي للخطوة التالية : وهي كيف أعرف إن هذا الشخص غادر الموقع أم لا !!؟
نقوم بعمل حسبة بسيطه على كل الآشخاص الذين موجودين online ونقارن تاريخ الحقل الذي عملناه سابقا هل تجاوز مثلا 5 دقائق !! فلو تجاوز نضع في خانة حقل online قيمة false .

كيف نقوم بخطوة الفحص على حالة الموجودين !!!!؟؟
اللي في بالي الان طريقتين :
الطريقة الأولى :
عن طريق Job الموجود في Agent الموجود في SqlServer Managment
بحيث تقوم بعمل job يقوم بفحص الحالات ( كل مثلا دقيقة واحدة ) اللي في حقل online مساوي ل true ويقارن الحقل اللي انشأناه من نوع DateTime ونقارن قيمته !! هل هو أكبر من 5 دقائق !! فلو كان نقوم بتعديل حقل online إلى false

المشكلة في الطريقة هو أن Agent لن يكون لديك صلاحية عليه إلا إذا كنت ادمن على SqlServer Managment .



الطريقة الثانية :
وهي أن تقوم بعملية فحص للحالات في كل عملية Postback لأي صفحة .

وبالتوفيق ...


كيف نستخدم الاستعلام في ملف Glbal.asax - H111er - 14-11-12

واجهتني نفس المشكلة و حللتها بفضل الله ..
الفكرة هي ان تقوم بصنع تايمر في Global.asax .. و تايمر عند المستخدم .. التايمر الموجود عند المستخدم يقوم بالتاكيد على ان المستخدم موجود بصورة مستمرة .. اما التايمر الموجود في Global.asax فيقوم بحذف جميع من في قائمة onlines .. عند كل دقيقة مثلا .. و هكذا سوف تستطيع فعل ذلك
انظر هذه المشاركة :
http://vb4arb.com/vb/showthread.php?2949-%DF%ED%DD-%C7%DA%E3%E1-%CA%C7%ED%E3%D1-%DA%E1%EC-%E3%D3%CA%E6%EC-%C7%E1%C7%C8%E1%ED%DF%ED%D4%E4-%BF&p=8148&viewfull=1#post8148



كيف نستخدم الاستعلام في ملف Glbal.asax - سعود - 14-11-12

بارك الله فيكم اخواني.
بالنسبة للاخ الفاضل [b]macary007 طريقتك احترافية و متقدمة قد احتاج لها قريبا لاني استخدم استضافة مجانية قد لا تتوفر لدي الوصول الكامل.
----------------------------------------------------------
بالنسبة للاخ الفاضل
[/b][b]H111er
قمت بتحويل الكود الذي كتبت الى فيجوال بيسك عبر موقع:
[/b]http://converter.telerik.com/
واصبح كالتالي:
كود :
Private Sub Timer_Tick(sender As Object, e As System.Timers.ElapsedEventArgs)    Application("onlines") = ""
End Sub


Private Sub Application_Start(sender As Object, e As EventArgs)
    ' Code that runs on application startup
    Application("onlines") = ""
    Dim Timer As New System.Timers.Timer()
    Timer.Interval = 60000
    Timer.Elapsed += New System.Timers.ElapsedEventHandler(Timer_Tick)
    Timer.Enabled = True
    Timer.Start()
End Sub
لكن كيف اجمع بين هذا المتغير
كود :
Application("onlines") = ""
وين متغير تحمله الجلسة وهي مثلا
كود :
session("tname")
والذي اخزنه حال تسجيل الدخول


كيف نستخدم الاستعلام في ملف Glbal.asax - H111er - 15-11-12

سعود كتب :بارك الله فيكم اخواني.
بالنسبة للاخ الفاضل [b]macary007 طريقتك احترافية و متقدمة قد احتاج لها قريبا لاني استخدم استضافة مجانية قد لا تتوفر لدي الوصول الكامل.
----------------------------------------------------------
بالنسبة للاخ الفاضل
[/b][b]H111er
قمت بتحويل الكود الذي كتبت الى فيجوال بيسك عبر موقع:
[/b]http://converter.telerik.com/
واصبح كالتالي:
كود :
Private Sub Timer_Tick(sender As Object, e As System.Timers.ElapsedEventArgs)    Application("onlines") = ""
End Sub


Private Sub Application_Start(sender As Object, e As EventArgs)
    ' Code that runs on application startup
    Application("onlines") = ""
    Dim Timer As New System.Timers.Timer()
    Timer.Interval = 60000
    Timer.Elapsed += New System.Timers.ElapsedEventHandler(Timer_Tick)
    Timer.Enabled = True
    Timer.Start()
End Sub
لكن كيف اجمع بين هذا المتغير
كود :
Application("onlines") = ""
وين متغير تحمله الجلسة وهي مثلا
كود :
session("tname")
والذي اخزنه حال تسجيل الدخول
بالنسبة للكود الذي كتبته حضرتك فلن يعمل .. حتما سوف تحتاج الى السي شارب الا اذا وجدت حل .. عموما لا تقلق فالسي شارب قريبا جدا من الفيجوال بيسك ..
بالنسبة لسؤالك يوجد حل باستخدام الـ Split .. و تعامل دقيق مع النصوص .. باذن الله سوف اضع مثال بسيط في قسم المقالات .. و بالتوفيق !


كيف نستخدم الاستعلام في ملف Glbal.asax - سعود - 15-11-12

خلاص انا غيرت الطريقة الى تخزين المسجلين الى مصفوفة ثم طباعتهم في الرئيسية

http://im30.gulfup.com/p6Zu1.jpg


كيف نستخدم الاستعلام في ملف Glbal.asax - سعود - 15-11-12