الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

معرفة اذا كان المستخدم متصل بالبرنامج ام لا

مغلق
بدأه omda_asem في 7 نوفمبر 2007 · 7 رد · 1,083 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

انا استخدم vb6 + sql server 2000 المشكلة هل يمكن معرفة اذا كان المستخدم فى الوقت الحالى متصل بقاعدة البيانات ام لا ( بمعنى اخر هل هو الان فاتح البرنامج) انا حقيقة اعرف طريقة واحدة مضمونة وهى عن طريق عمل ملف باسم المستخدم يظل مفتوحا طالما ان المستخدم على النظام , واذا اردت

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

من وصايا لقمان الحكيم لابنه

يابني: إذا جلست لذي سلطان، فليكن بينك وبينه مقعد رجل فلعله يأتيه من هو آثر عنده منك فينحّيك فيكون نقصاً عليك.

يابني: إن أردت أن تؤاخي رجلاً فأغضبه، فإن أنصفك في غضبه، وإلا فدعه.

يابني: لا تضحك من غير عجب، ولا تمشى في غير أدب، ولا تسأل عما لا يعنيك.

يابني: زاحم العلماء بركبتيك »أي أكثر من الجلوس إليهم «وانصت لهم بأذنيك، فإن القلب يحيا بنور العلماء، كما تحيا الأرض الميتة بماء السماء.

#2

يوجد ستورد بروسيجر يرجع كل المتصلين بسيرفر ال SQL والذي هو sp_who حيث يرجع اسماء المستخدمين وقاعدة البيانات واسم الجهاز .

عن طريق هذه البيانات اعتقد انك تستطيع تحديد اذا كان البرنامج شغال ام لا

#3

اولا اود ان اشكرك على سرعة ردك

ولكنى اعتقد انى لم اشرح المطلوب بما يكفى

عندما اشرت الى المستخدم كنت اقصد مستخدم البرنامج مثال (عماد) وليس مستخدمsql server حيث ان المستخدمين خاصين بالبرنامج فى جدول المستخدمين خاصتى :)

من وصايا لقمان الحكيم لابنه

يابني: إذا جلست لذي سلطان، فليكن بينك وبينه مقعد رجل فلعله يأتيه من هو آثر عنده منك فينحّيك فيكون نقصاً عليك.

يابني: إن أردت أن تؤاخي رجلاً فأغضبه، فإن أنصفك في غضبه، وإلا فدعه.

يابني: لا تضحك من غير عجب، ولا تمشى في غير أدب، ولا تسأل عما لا يعنيك.

يابني: زاحم العلماء بركبتيك »أي أكثر من الجلوس إليهم «وانصت لهم بأذنيك، فإن القلب يحيا بنور العلماء، كما تحيا الأرض الميتة بماء السماء.

#4

اليك بحل اخر

عند عمل اتصال جديد يأخذ هذا الاتصال على السيرفر رقم خاص وفريد SPID فيمكنك ربط هذا الرقم مع اسم المستخدم في برنامج عن طريق عمل جدول جديد به هذا الرقم ورقم المستخدم

يمكن حذف هذا الرقم من الجدول عند اغلاق البرنامج لكن توجد مشكلة الخروج الاضطراري مثل انقطاع الكهرباء ففي هذه الحالة نرجع الى sp_who ومعرفة اذا كان هذا الرقم موجود ام لا

SPID يمكن الحصول عليه من خلال SELECT @@SPID AS 'ID' اي يمكنك وضعه في بروسجر او recordset

اتصور هذه مقدمة للموضوع وبحاجة الى شرح اكثر لكن سانتظر تعليقك

#5

بجد ربنا يكرمك على اهتمامك بالرد وربنا يجعلة فى ميزان حسناتك ان شاء الله

فكرة انى اتحكم فى المسألة عن طريق جدول فى قاعدة البيانات مشكلتة زى ماحضرتك قلت "الخروج الاضطراري "

عشان كدة انا اضطريت استخدم طريقة الملفات اللى شرحتها فى اول المشاركة "امرى الى الله" عشان مخفش من الخروج الاضطرارى او اى حاجة تانية

لان زى ما انت عارف الخروج الاضطرارى هيخلى الملف حر اى قابل للحذف

ومرة تانية احب شكرك على اهتمامك بالموضوع

وردودك على اقل حاجة عرفتنى stored procedure مكنتش حتى ببصلها :)

من وصايا لقمان الحكيم لابنه

يابني: إذا جلست لذي سلطان، فليكن بينك وبينه مقعد رجل فلعله يأتيه من هو آثر عنده منك فينحّيك فيكون نقصاً عليك.

يابني: إن أردت أن تؤاخي رجلاً فأغضبه، فإن أنصفك في غضبه، وإلا فدعه.

يابني: لا تضحك من غير عجب، ولا تمشى في غير أدب، ولا تسأل عما لا يعنيك.

يابني: زاحم العلماء بركبتيك »أي أكثر من الجلوس إليهم «وانصت لهم بأذنيك، فإن القلب يحيا بنور العلماء، كما تحيا الأرض الميتة بماء السماء.

#6

إذا كان قصدك كيف نعرف المستخدم شغال على البرنامج فهذا شئ آخر أعتقد؟ تقدر تفحص حالة النافذة أو الفورم هل هي نشطة أو غير نشطة أو تقدر تحط كوكيز على البرنامج ، على فكرة ممكن الفكرة دي

#8

'اولا يتم عمل فولدر على الشبكة ونجعلة full sahre ولنفرض اننا سنضع ذا المسار فى NetworkPath

'لعمل ايقاف للبرنامج الى ان اتأكد من انة لا يوجد احد يستخدم هذه الشاشة
Private Sub CmdAdd_Click()
NetworkPath ="\\sicowin\emad\"
TryAgain:
If AllowAdd(NetworkPath & "jrn" ) = False Then
  GoTo TryAgain
Else
  'open file to reserve saveing
  Open PicPath & "jrn" & BranchName For Output As #1

End If
'Start adding
....
'at last
close #1
end sub
'

Public Function AllowAdd(Typ As String) As Boolean
On Error GoTo errh
AllowAdd = False
If Dir(Typ) <> "" Then
  Kill Typ
End If
AllowAdd = True

Exit Function
errh:
AllowAdd = False
'
End Function
'

وبذلك نكون قد تجاهلنا التوقف المفاجئ للبرنامج حيث ان هذا التوقف ايضا سيسبب غلق الملف مما يتيح حذفة لاحقا

ارجو ان اكون اوضحت وجهة نظرى

تم تعديل هذه المشاركة بواسطة omda_asem في 18 نوفمبر 2007 في 10:38

من وصايا لقمان الحكيم لابنه

يابني: إذا جلست لذي سلطان، فليكن بينك وبينه مقعد رجل فلعله يأتيه من هو آثر عنده منك فينحّيك فيكون نقصاً عليك.

يابني: إن أردت أن تؤاخي رجلاً فأغضبه، فإن أنصفك في غضبه، وإلا فدعه.

يابني: لا تضحك من غير عجب، ولا تمشى في غير أدب، ولا تسأل عما لا يعنيك.

يابني: زاحم العلماء بركبتيك »أي أكثر من الجلوس إليهم «وانصت لهم بأذنيك، فإن القلب يحيا بنور العلماء، كما تحيا الأرض الميتة بماء السماء.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…