• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

InternetMaster

اعضاء
  • عدد المشاركات

    118
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

115 جيد جدا

عن InternetMaster

  • الرتبة
    خبير قواعد البيانات

طرق الإتصال

  • ICQ 0

أحدث الزائرين لملفلك الشخصي

10,217 زياره للملف الشخصي
  1. البحث داخل مصفوفة

    مرحبا،،، لم يكن جدالاً !! إذا لم تقرأ !!! قلن تنفعك أية دورس. نقطة. تحياتي،،،
  2. البحث داخل مصفوفة

    الأخ/ محمد النحراوي سلام الله عليك ورحمته وبركاته،،، أولاً الجملة التي ذكرتها وهي (وكيف تكون البرمجة باستخدام ADO.NET ذلك هرباً من ال OOP ؟) غير صحيحة، لم أقل هذا في ردي السابق وما قلته هو أننا عند برمجة التطبيقات والمواقع نهرب من إستخدامات OOPS وهذا صحيح بنسبة 99% وبالذات في المواقع والتطبيقات العربية. وللأسف مازلنا نقوم بهذا (لا أستثني نفسي). ثانياً لا أبحب القفز للنتائج .... يجب أن نتفق أنا وإياك على مفاهيم موحدة عن OOPS حيث قد يكون فهمي للمتر 90سم وفهمك له 100سم وبالتالي نتحدث عن مترين مختلفنين (بالمناسبة لماذا المتر 100سم؟) ما أريد قوله أن OOPS ليس مجرد Classes و Objects ووراثة وتغليف وغيرها... ال OOPS مفهوم متكامل والفرق بين OOPS و Class و Object هو مثل الفرق بين سيارة وتويوتا وداتسون ومثل الفرق بين قواعد البيانات وجدول وإستعلام أي أن ال OOPS نظام وإجراء متكامل A Concept وفهمي له قد يختلف عن فهمك له وقد نختلف أنا وأنت عن فهم الآخرين له وبالتالي القفز للنتائج والتحدث عن عن كيفية إستخدام المتر في القياس قبل أن نتفق على تفسير ما هو المتر يشكل دائرة متداخلة من التساؤلات ولا يقدم جديداً أي أن الخطوة الأولى أن يتبرع من يضع الخطوط الحمراء ويشرح لنا OOPS بالتفصيل الممل ويصبح لدينا نفس المفاهميم ونفس الرؤية. ولكني سأتجاوز هذه النقطة وأفترض أنني وإياك لدينا نفس المفاهيم والرؤية عن OOPS وإعود معك إلى موضوع ADO.NET ومثال DATASET ولدي شرط أساسي آمل أن تتفق معي عليه وهو أننا عندما نتحدث عن DataSet فنحن نتحدث إما عن تطبيق على بيئة Windows أو نتحدث عن إنترانت وقطعاً لا نتحدث عن موقع إنترنت حيث أن إستخدام DataSet في مواقع الإنترنت مصيبة فادحة إنتشرت مؤخراً وال DataSet لم تنشأ لهذا الغرض إلا في حدود وشروط معينة. تعال معي إلى تطبيق أو موقع إنترانت (ليس إنترنت) يوجد فيه 125 نموذج من ضمنهم 63 نموذج تحتاج إلى DataSet وكل DataSet يغذي إما DataGrid أو Table (بالمناسبة هذه بيانات حقيقية من موقع إنترانت نقوم بتسليمه للعميل حالياً) ماذا نفعل؟ هل نرمي DataSet واحدة في كل نموذج من النماذج ال 63 ونقول أن DataSet عبارة عن OOPS وبالتالي العملية سهلة والموضوع بسيط ... خلاص ال DataSet يغذي DataGrid هنا ويغذي Table هناك وتأخذ العملية بضعة دقائق فقط!! للأسف هذا ما نفعله، لماذا؟ لأنه سهل وسريع ومباشر وفي داخل عقولنا نستطيع أن نتخيل نموذج فيه كافة إحتياجات هذا النموذج (التفكير والتخيل وإدارة النوذج أسهل) لأن كافة معطيات وإحتياجات هذا النموذج متوفرة في النموذج، التخيل أصعب وأعقد إذا كان النموذج يستمد بياناته من مصادر مختلفة. ماذا حدث الآن؟ يوجد خطأ في قاعدة البيانات ترتب عليه إجراء بعض التعديلات وبالتالي تغييرات في Stored Procedure داخل خادم قواعد البيانات وبالتالي تغيرت طريقة الإتصال إلخ... وإحتجنا إللى إجراء تعديل على DataSet !!!!!!! 63 نموذج بحاجة إلى تعديل !!!! تخيل ماذا لو إنشأنا Class فيه Method تأخذ Connection وتعيد لنا DataSet!!! مرحباً بك في عالم OOPS عند تحديث هذا ال Class تتحدث النماذج 63 كلها مباشرة في نفس الوقت !!! إحفظ معي أهم قاعدة من قواعد OOPS عندما تقوم بكتابة حل لمشكلة ما مثل كيفية الإتصال بخادم قواعد بيانات Oracle مثلاً فيكفي أن تكتبه مرة واحدة طيلة حياتك العملية، عندما تكتب Program يقوم بترقيص نموذج فيكفي أن تكتبه مرة واحدة طيلة حياتك العمليةّّ!! وهذا ما يسمى Code Reuse إي إعادة إستخدم الكود وهي أهم نقطة في ال OOPS عندما أضطر إلى إعادة كتابة أي جزء من برنامج فببساطة أنا لا أستخدم OOPS العملية أشمل وأوسع عندما ندخل XML Web Services في الموضوع يصبح لنا كنز غير طبيعي... سأقوم أنا وأنت بكتابة XML Web Service عن القرآن العظيم بإستخدام OOPS عن طريق Visual Studio .NET ونضع فيه كل ما يخطر على بالك من Methods مثل إستدعاء سورة ما أو آية ما أو البحث عن آية أو تلاوة أية من قارىء ما و... و.. و... ثم نستضيف هذا XML Web Service في مكان ما ونعلن أن الإشتراك يكلف 5 دولار وفتح الله على وعليك وجاءنا 1000 مشترك أي اننا نقبض شهريا 5000 دولار ماذا يعني هذا بلغة OOPS؟ لدينا 1000 موقع مختلف كل منها يستطيع أن يعرض صفحات وآيات وسور القرآن العظيم بإستخدام موقع واحد فقط !!! بدون OOPS وبدون XML Web Services كان هذا حلماً من أحلام اليقظة سابقاً (وبالمناسبة من لديه الإستعداد لعمل تطبيق للقرآن العظيم تجاريا فأنا مستعد) عودة إلى سؤالك كيف يتم الإتصال بقاعدة البيانات بإستخدام OOPS؟ وصدقني هذا هو أهم سؤال على الإطلاق هذه الأيام وهو ما يعرف ب Data Access Layer أو طبقة الإتصال بقواعد البيانات أو ما يعرف بالطبقة الثانية في 3 tier applications وهو هدف كل مطور ومبرمج وهو أسهل مما تتخيل وهو عبارة عن Classes منفصلة على شكل DLL تستخدمها متى شئت في أي تطبيق أو موقع إنترنت أو موقع إنترانت. أي أنك بإستخدام OOPS قمت بعزل كافة إحتياجاتك عن كيفية الإتصال بقواعد البيانات في مكان منعزل وموحد. ومن هنا يبدأ COPS أي البرمجة بالموكونات والموكونات عبارة عن Classe وObjects تتحادث مع بعضها البعض بإسلوب معين. سأعطيك مثالاً آخر عن تطبيق قمنا بإنهائه مؤخراً لأحد العملاء... العميل عبارة عن شركة برمجة تقوم بتطوير الألعاب ومن ضمنها ألعاب (ورق اللعب) ولديهم الحاجة إلى تطوير أكثر من 100 لعبة وتوزيعها على أقراص ليزر في السوق ... ماذا كان إحتياجهم؟ ما الذي يجمع هذه ال 100 لعبة، الجواب هو الحاجة إلى تطوير ال 52 ورقة + 2 جوكر التي تشكل في مجموعها أوراق اللعب ما هي الحلول المطروحة أمامهم؟ إما أن يصمموا أوراق اللعب لكل لعبة على إنفراد ويستخدموا البرنامج 100 مرة وهذا مصيبة!! لماذا لأن أي تغيير في أوراق اللعب مثل أن تتغير صورة الجوكر مثلاً يتطلب تغيير 100 لعبة!! بإستخدام OOPS أنشأنا لهم Class واحد يخدم ورقة لعب واحدة فقط !! لاحظ أن OOPS حل لنا مشكلة واحدة فقط وهي أن لدينا الآن ورقة لعب واحدة تستطيع أن تجعلها أي ورقة من الأوراق ال 54 ولكن ورقة لعب واحدة لا تصلح لإنشاء Deck أي مجموعة الأوراق كلها. صدقني فكر في الموضوع لوهله وإفتح Visual Studio.Net وإختر لغتك المفضلة VB أو C# ثم إختر Windows Class Library صدقني خلال أقل من ساعة سيكون لديك ورقة لعب واحدة. وصدقني أيضاً أنك تجلس أما الحاسب الآلي بضعة أيام ولا تجد حلاً لإنشاء مجموعة الأوراق التي تشكل 54 ورقة في مجملها لماذا؟ لأن OOPS توقف هنا !! ونحتاج إلى أداة مختلفة يكون عملها هو أن تكون محتوى أو صندوقاً ل 54 Class مختلف... مرحباً بك في عالم Components أو COPS وهو الذي سيقوم بمساعدتك عندما تضعط Button على نموذج ترى الزر أمامك ولكن عندما تضع MainMenu أو DataSet تراها تسقط في أسفل الصفحة لماذ؟ أحاول جاهداً في هذا الرد أن أركز على المفهوم العام وليس على ماهية OOPS و COPS خشية أن أبدأ حديثاً لا يسعفني وقتي في إنهائه. الحديث عن OOPS ممتع والحوار معك أكثر متعة تحياتي وتقديري،،،
  3. البحث داخل مصفوفة

    مرحبا،، الأخ/ أبو مازن شكراً على الرابطين الذين أشرت مشكوراً إليهما. والشكر قطعاً موصول للأخ المجتهد مجدي محمود (جزاه الله خيراً) على هذا الجهد... ولكن... الشرح للأشياء السهلة والبسيطة يحتاج إلى جهد كبير فما بالك بالمواضيع ذات التعقيد العالي مثل OOPS والتي يفر منها المحترفين، شرح البرمجة بالكائنات يتطلب عرقاً أكبر وجهداً أكثر من وجهة نظري (المتواضعة) أن التدريس موهبة والشرح موهبة والتوضيح موهبة. OOPS عبارة عن صخرة جلمود ضخمة الحجم تتطلب ممن ينبري لشرحها أن يحطم هذه الصخرة إلى حجارة صغيرة ومن ثم يكسر هذه الحجارة إلى شظايا ثم إلى تراب ثم يعجنها بقليل من الماء. الأخ/ مجدي مشكوراً أنهى الخطوة الأولى تقريباً في رحلة الألف ميل. OOPS تتطلب للأسف أكثر من هذا بكثير ربما يسعفني وقتي ذات يوم لإكمال بعض الدروس التي بدأتها وأرجو من العلي القدير أن تحتوي على شرح تفصيلي أكثر لل OOPS ما زلت أطالب المحترفين من رواد هذا المنتدي ممن لديهم الوقت ألا يبخلوا على زوار المنتدى في شرح تفصيلي للبرمجة بالكائنات، علماً بأن البرمجة بالكائنات هي الأساس للبرمجة الحديثة المعروفة بإسم COPS أو Component Programming System أو البرمجة بالمكونات إن جازت الترجمة. عموماً البرمجة بال DOT NET بدون OOPS ستنتج برامج متهالكة مهللهة غير جادة ولا ترقى لمتطلبات السوق وأعطيك مثالاً بسيطاً كلنا نفعله عند برمجة التطبيقات أو المواقع (للهرب من OOPS) وهو إستخدام ADO.NET وكافة وسائل الإتصال بقواعد البيانات من ضمن التطبيق أي نرمي DataSet في نموذج و DataReader في نموذج أخر وهكذا دواليك... نعم... يشتغل التطبيق ويشتغل الموقع، لكن بعد فترة من الزمان تكتشف خطأ ما في البرنامج Bug أو تريد تحديث البرنامج، ماذا يحدث؟ لن تستطيع!! وقطعاً تعلم لماذا؟ تصحيح البرنامج أو تطويره (في معظم الحالات) سيكلف وقتاً ومالاً وجهداً أكثر وأكبر من إعادة البرمجة. بإستخدام OOPS من البداية وفصل الإتصال بقواعد البيانات (مثلاً) في Class منفصل سيجعلك تحل المشاكل وتطور في وقت أقل وتكلفة أقل... الحوار حول OOPS طويل جداً ولكن ممتع. إن كان هناك روابط إخرى في هذا المنتدى أو غيره تشرح OOPS بشكل أعمق وأشمل أكون لك شاكراً لتوجيهي إليها الأخ/ crazy-Man لا يوجد مصفوفة ثابتة (لم أواجهها على مدي أكثر من 25 عاماً من البرمجة إلا فيما ندر) لأن شخصية المصفوفة هي أن تكون Dynamic في معظم الأحوال أي أن (تصفر) بعض الخلايا أو تغير قيمها أو تلغي عناصر منها أو تضيف أخرى، تقول أنه في الجولة الأولى يتم إنشاء المصفوفة ثم يتم إستخدامها بعد ذلك ولأنها ديناميكية ستتغير المصفوفة الأساسية وسيتم إعادة تشكيل المصفوفة الثانية !! نفس المشكلة التي طرحها الأخ/ أبو مازن مسبقاً. أتواصل معك لطلبك الملاحظات والتوجيه... وتوجيهي لك هو أن تلقي بال VB 6 في أقرب سلة مهملات !! والتوجيه الآخر (إذا لم يكن لديك مشكلة مع اللغة الإنجليزية) هو أن تنتقي الكتاب التالي وتغرق فيه لمدة 10 أيام فقط وهو: OOP With Microsoft VB.Net and C#.Net Robin A. Reynolds-Heartle وهو من إصدارات شركة مايكروسوف ومتوفر في الأسواق ومن الأمازون أيضاً. الكتاب أكثر من راااااااااااائع وبعد العشرة أيام صدقني ستتلذذ ببرمجة DOT NET تحياتي وتقديري لكم،،،
  4. البحث داخل مصفوفة

    مرحبا،،، هل نتحدث عن VB أم Basic القديم جداً أم VB.NET مع وضع سطرين تحت NET عندما نتخيل كلمة .NET في البرمجة الحديثة يجب أن نتخيل شيئاً أساسياً ألا وهو OOPS أو البرمجة بالكائنات هذه مقدمة سريعة... ونصيحتي لكل من يبرمج بلغات DOT NET عليه البدء فوراً وسريعاً في فهم كل أسس OOPS وستقوم هذه الأسس بجعل البرمجة أوضح وأسهل وأسرع، وقوة لغات البرمجة الحديثة المبنية على NET تتبنى كافة مفاهيم وأسس OOPS ومن أهمها الوراثة Inheritance وأهم ما أريد قوله هو أن الوراثة جعلت Arrays أو المصفوفات ومشاكلها جزءاً من الماضي!! أعود إلىالأخ Crazy-Man وفكرته في البحث داخل مصفوفة وطلبه التعليق على محاولته الرائعة (قبل NET وال OOPS) وأقول له أن ما طرحة الأخ أبو مازن صحيح 100% وأضيف على ما قاله الأخ أبو مازن... أولاً: هذه طريقة رائعة لكنها تأخرت حوالي.... تقريباً.... 23 سنة حيث أن هذه النوعية من الحلول كانت مطروحة لحل مشاكل المصفوفات في لغات مثل FORTRAN و BASIC و COBOL و PASCAL ثانياً: مشكلتي مع المنتديات ومن ضمنها هذا المنتدى الرائع (بل الرائع جداً) هي في المفاهيم الأساسية، لا يهمني أن يحل أحداً مشكلة ما أو يبرمج تطبيقاً ما بقدر ما يهمني أن يعمق المفاهيم الصحيحة للبرمجة الحديثة وبالتالي لا أتدخل ولا أعلق ولا أرد إلا في حالة واحدة أن هناك فكرة أو تطبيق أو حل يبتعد عن المفاهيم الأساسية الصحيحة ثالثاُ: ال DOT NET قام بحل شامل لكافة مشاكل المصفوفات أي أننا لسنا بحاجة لحل أي مشكلة لأنه لا يوجد مشكلة من أصله، لماذا؟ لأن المصفوفات في DOT NET تتعامل مع OOPS وهي بدورها تتعامل مع الوراثة وبالتالي لدينا عشرات الأنواع من المصفوفات التي ورثت خصائص المصفوفات القديمة بمصفوفات حديثة ومرنة وتفاعلية Interactive رابعاً: من لم يتعلم OOPS لن يتعلم DOT NET وبالتالي ستبقى نفس المشاكل التي واجهته في PASCAL أو VB 6 مثلاً قائمة في ال DOT NET خامساً وسادساً وسابعاً حتى المائة: حلك صحيح مع أخذ تعليق الأخ أبو مازن في الإعتبار ولكن هذا الحل خطير ويهد كافة مفاهيم OOPS من جذورها أخبراً لماذا كل هذا الصداع... إفتح نموذج وضع به Button وفي حدث Click للزر إكتب هذا الكود Dim data() as Integer = {2,9,300,8,400,5,18,3,19,900,300} dim a as new ArrayList a.AddRange(data) msgbox(a.IndexOf(19)) لن أشرح الكود فأعتقد أنه واضح، وأعيد أن ليس هدفي هو طرح حلول بقدر ما هو طرح مفاهيم أساسية، الكود أعلاه يحل مشكلة البحث عن أي عنصر من عناصر أي مصفوفة مهما ترتيب العناصر فيها وبطريقة سريعة جداً وسهلة جداً (ويوجد حل أيضاً في حالة تكررت عناصر المصفوفة) ملاحظات أخيرة: OOPS إختصار لجملة Object Oriented Programming System ليت هناك من يتبرع ويشرح أسس ومقاهيم OOPS لزوار الموقع تحياتي وتقديري لكم،،،
  5. الأخ/ أبو مالك سلام الله عليك،،، بالصدفة دخلت الموقع، ووالله بالصدفة رأيت إستفسارك، ويعلم الله أني بحاجة لكل ساعة ودقيقة لإنهاء الكثير من الأعمال ولكني سأستمتع معك للحظات بعض منتصف الليل عن معشوقتي وإياك (قواعد البيانات)... في بداية الأمر، دعك من جدوال الحركة فهي أسهل بكثير من سؤالك الآخر... لنفكر سوياً ونبسط الأمر قد المستطاع... سأصمم وإياك برنامجاً لإدارة مدرسة، ماذا لدينا؟ فصول مدرسون طلبة مواد يكفي هذا... ما هي أهم أهداف تصميم الجداول في قاعدة بيانات: 1) عدم تكرار أي (حقل) من الحقول في أكثر من جدول أي أن الحقل الواحد يذكر مرة واحدة في كامل قاعدة البيانات 2) عدم تكرار أي (سجل) في أي جدول من جداول قاعدة البيانات 3) عدم إجراء أي عمليات حسابية في الجدوال 4) عدم وجود أكثر من مفتاح رئيسي ((((واحـــــــــــــــــد))) فقط لكل جدول <------------ تحفظ عن ظهر قلب 5) بعض الأهداف الأخرى... لا تهمنا هنا ملاحظة: النقطة الرابعة ليست علمية ولكنها عملية جداً سنبدأ سوياً بتوزيع الطلبة على الفصول... جاهز؟ هل يوجد مشكلة؟ قطعاً لا؟ لأنه لا يمكن لأي طالب أن يتواجد في أكثر من فصل (تذكر أنها مدرسة وليست جامعة). إذا العلاقة بين جدولي الطلبة والفصول هي علاقة واحد (فصل) إلى متعدد (طلبة) وهذه علاقة مباشرة وسهلة جداً هل يوجد مشكلة بين المدرسين والمواد؟ الجواب، لا، كل مدرس (واحد) له مجموعة مواد (متعدد) وهكذا دواليك حتى نصطدم أنا وأنت بحائط كالصخر أن كل ما سبق يمكن أن يكون خاطئاً حيث قد تكون المدرسة تسمح للطالب بتغيير الفصل، ويمكن أي يكون هناك ثلاثة مدرسين وسبع مدرسات لمادة الرياضيات. لناخذ واحدة من هذه المشاكل ونقتلها بحثاً... ولنأخذ واحدة قطعاً ستكون مشكلة وهي الطلبة والمواد بين الطلبة والفصول قد نتفق أو نختلف (حسب وضع المدرسة) بين الطلبة والمدرسين قد نتفق أو نختلف (حسب وضع المدرسة) بين المدرسين والفصول قد نتفق أو نختلف (حسب وضع المدرسة) ولكن لا يوجد أي إختلاف على أن العلاقة بين الطلبة والمواد هي علاقة تبادلية أي أن لكل طالب مجموعة من المواد، ولكل مادة مجموعة من الطلبة!! في جدول الطلبة لدينا: رقم الطالب <---- مفتاح الباب !! إسم الطالب لون العينين !! إلخ في جدول المواد لدينا: رقم المادة <----- مفتاح السيارة !! إسم المادة عدد الصفحات المؤلف إلخ جدول التقاطع Junction Table هو علاقة (متعدد) إلى (متعدد) الحل الأول: علمي وليس عملي (بحاجة إلى إحتراف شديد ومع ذلك يؤدي إلى الكثير من المشاكل) نسمي جدول التقاطع (جدول التسجيل مثلاً) وحقوله: رقم الطالب رقم المادة الدرجة في الآكسس: نضغط على حقل (رقم الطالب) ثم باليد اليسرى نضغط على زر CTRL ثم نضغط على حقل (رقم المادة) ثم نضغط على المفتاح في إس كيو إل: ننشط الحقلين (رقم الطالب) و (رقم المادة) ثم نضغط المفتاح النتيجة تصبح أنه لدينا (مفتاحين) <----- جملة خطأ، مرة أخرى هذه جملة خطأ ولكنك سترى فعلياُ أنه لديك مفتاحين وبالطبع يمكن أن يكون لديك ثلاثة مفاتيح أو أربعة أو أي رقم آخر (حتى الحدود المسوح بها) مرة أخرى... عدد المفاتيح لا يعني أنه لدينا أكثر من مفتاح للجدول، ماذا تعني؟ تعني أن مجموع المفتاحين مع بعضهما البعض يشكل المفتاح الرئيسي مثال: جدول الطلبة... رقم الطالب ثم إسمه 3 خالد 4 سعيد 9 أحمد 2 ريما جدول المواد... رقم المادة ثم إسمها 2 رياضيات 3 دين 6 نحو وصرف تعال معي الآن إلى جدول التقاطع (جدول التسجيل) لن تستطيع أن تكرر أي سجل وهذا هو الهدف ما يلي هو (رقم الطالب ثم رقم المادة ثم الدرجة): 4، 3، 89 <----- سعيد في مادة الدين بدرجة 89 4، 2، 93 <----- سعيد في مادة الرياضيات بدرجة 93 لاحظ أن السجل الثاني ليس تكراراً لأن المادة مختلفة، الآن حاول أن تضيف 4، 3، 75 <---- لن تستطيع هذا هو التكرار (في جدول التقاطع التكرار يجب أن يكون لكل الحقول التي بمجموعها تشكل المفتاح الرئيسي) الحل الثاني: الحل العملي جداً جدول التقاطع (جدول التسجيل) رقم التسجيل <---------- المفتاح الرئيسي (فقط مفتاح واحد) <------ راجع الهدف الرابع أعلاه (هذا الحقل مستحدث) (إختراع) رقم الطالب<----------- ربط بعلاقة واحد إلى متعدد مع جدول الطلاب ---- بدون مفتاح رقم المادة <----------- ربط بعلاقة واحد إلى متعدد مع جدول المواد ---- بدون مفتاح الدرجة وليس لديك أي مشكلة من أي نوع !!! جرب كل ما سبق على الآكسس او SQL وإدعي لي !! بالمناسبة: السيارة والباب أعلاه مجرد مزح!! سرني الحوار معك تحياتي،،،
  6. سلام الله عليكم ورحمته وبركاته أجمعين،،، مرحبا بكم،،، يقال في التراث الغربي أن الذكي جدا الذي يعمل لوحده دون مساعدة يمكنه الوصول إلى نجاح 100%، أما الذكي العادي الذي يعمل من ضمن فريق عمل متكاتف فهناك إحتمال أن يصل إلى 500% ؟؟؟؟ !!!! العمل ضمن فريق واحد هو من أمتع اللحظات (التي أمارسها بشكل شبه يومي) وأتمنى من الجميع التعود على العمل ضمن فريق فدماغين أفضل من دماغ واحد كما أن العمل ضمن فريق يلغي الأنانية ويشجع على المحية والتفاني والإخلاص. في بداية مداخلتي هذه أتقدم بجزيل الشكر والعرفان لمن بدأ هذا الحوار وهو الأخ AhmdMu وأقول له شكرا جزيلا وبارك الله فيك وحقق لك كل أمانيك وأحلامك. عند قراءتي لهذا الموضوع في رمضان (أعاده الله علينا جميعا أعواما كثيرة) سعدت به وكنت من أوائل المعلقين عليه بشكل مقتضب ولكن في قرارة نفسي كان عندي بعضا من الأحاسيس الغريبة أن هذا الموضوع سيفشل بشكل ذريع وسيتساقط من أعلى الجبل متحطما في الوادي مثل غيره من المشاريع. اتحدث هنا من خبرة عميقة. اليوم، وأنا أقرأ المشاركات مرة أخرى لم أشعر بالشعور السابق ووجدت أن هناك بصيصا من الأمل أن تنجح هذه الفكرة ورأيت فتية في ريعان الشباب تمتلىء صدورهم بالحماس والطوح والعنفوان والرغبة في إبتلاع التقنية وهضمها. وأنا أقرأ اليوم هذه المشاركات لاحظت ورود إسمي في أكثر من مشاركة وأكثر من مداخلة وهذا هز مشاعري بعنف وأرعش ركبتاي أن أسأل في يوم من الأيام عما قدمته وهل كان واضحا وهل كان مفهوما وهل وهل وهل... إلخ. ورود إسمي أكثر من مرة زاد العبء والهم والمهمة التي ورطت نفسي بها !!! حيث أن الأمانة أن تكون الأمور واضحة وجلية للجميع... وحيث أن معظمكم يستند إلى شروحاتي ومساهماتي المتواضعة جدا، ومن منطلق الأمانة أحببت أن أشارككم في هذا الموضوع وأن أكون عضوا فعالا قدر إستطاعتي (وحسب وقتي) بما قدرني الله عليه. الهدف من مشاركتك هو ضمان أن ما شرحته لكم يسير بكم فعلا إلى الطريق الصحيح وسأحاول أن أركز على جزئية Navigator أي ملاح السفينة أو الطائرة الذي يقول لكم أنكم تسيرون في الإتجاه الصحيح أو الإتجاه الخاطىء ويساعدكم على تصحيح مسيرتكم. رئيس الفريق هو الأخ AhmdMu ويقع على عاتقه نجاح هذه المهمة أو فشلها وهو الذي سنعطيه وساما في آخر المطاف في حالة النجاح أو نقوم بتعليقه على مقصلة قواعد البيانات (مداعبة طبعا) ... هو المسئول أولا وآخرا. والآن سأقوم ببمارسة دوري كملاح لهذه السفينة (كمستشار) بتعبير آخر. لماذا تفشل فرق العمل؟ لا بد من دراسة هذا الموضوع بتمعن لتلافي السقوط في أخطاء سقطت فيها فرق عمل أخرى قبلنا. ومن تجاربي السابقة أن فشل فرق العمل يقع في إطار المشاكل التالية الأساسية: لا يوجد أهداف محددة وواضحة وصريحة لفريق العمل. أنانية بعض الأعضاء في فريق العمل من حيث سحب الفريق إلى أهدافم الشخصية بدلا من أهداف فريق العمل عدم وجود قائد يتمتع بصفات القيادة الإسلامية الصحيحة--أن يكون متخذا للقرارات في أوقاتها المناسبة وأن يكون عطوفا حنونا على فريقه (ولو كنت فظا غليظ القلب ... الآية) عدم وجود خارطة عمل Flow Chart توضح مسارات العمل ومسئوليات كل فرد في فريق العمل عدم وجود Schedule يوضح بالتفصيل تواريخ البداية والنهاية لكل مهمة من المهام عدم التغيير في عناصر فريق العمل،، لا يوجد مهمة في الدنيا تبدأ بفريق عمل وتنتهي بنفس فريق العمل، لا بد من التغيير والتعديل والتطعيم حسب مسارات ومحطات العمل تماما مثل ما يفعله المدرب مع فريقه !! وجود عناصر محبطة في فريق العمل عدم إجتماع فريق العمل فعليا (وجها لوجه) في قاعة أو صالة مما سبق تتضح مسئوليات الأخ AhmdMu من البداية وهي: تحديد العمل المطلوب وأرى أنكم إخترتم نظام المعاملات الإدارية (ولي تحفظ عليه كمستشار) وصف وتحديد الأهداف المطلوب تحقيقها من هذا العمل (وهنا المشكلة) إختيار وتحديد فريق العمل إسناد المهام المختلفة إلى كل فرد ومن ثم محاسبة المقصر بناء خطة وجدول العمل بالتفصيل تعديل الجدول حسب مسار العمل أنا لا أفقه شيئا ولا أعلم شيئا وآمل أن تفترضو أنني طفلا في السادسة من عمره يتحدث بغباء مطلق .... كل مجهود بدون مردود لا قيمة له-- هذا ليس كلامي هذا يدرس في كليات الهندسة والإدارة والعلوم وغيرها!!! كملاح وكمستشار وكأمانة في عنقي أن أصصح مسار هذا الفريق كلما شعرت أنه يسير في الإتجاه الخاطىء أنصح بما يلي: أي برنامج تتفقون على إنشائه لا ينتج عنه مردود مالي فلا قيمة له !!! أستثني من هذا أن يكون الهدف هو المردود العلمي والثقافي... أي اننا نعرف في قواعد البيانات ونريد ان نمارس هذه المعرفة من خلال برنامج حقيقي... لا بأس بهذا ولكن لماذا لا نصطاد عصفورين بحجر واحد؟ لماذا لا ننشىء برنامج يحقق الهدفين الأول: التعلم والممارسة، والثاني: المردود المالي أو المعنوي أو كلاهما ؟!! يبدو من مشاركاتي المتواضعة أنني لم أشرح بشكل واضح؟!! التطبيقات القائمة على عميل وخادم Client Server هي تطبيقات تعود إلى الوراء ولا تتقدم إلى الأمام!! لماذا؟ لأن تكلفة إنتاجها مرتفعة أنها تحتاج إلى شبكة وهذه مكلفة جدا، ومكلفة بشكل رهيب إذا تحولت من LAN إلى WAN أنها تحتاج إلى تكلفة عالية للتدريب أنها تحتاج إلى مدخلي بيانات محترفين أنها تحتاج إلى مشرف خادم قواعد بيانات (رواتبهم خرافية) System Administrator أنها تحتاج إلى خوادم Backup أنها... أنها... ألخ. للأسف كافة البرامج التي في السوق: المحاسبة شؤون الموظفين المعاملات الإدارية تأجير السيارات تأجير الأشرطة حجز الفنادق مراقبة وإدارة المخازن المستوصفات إلخ... كلها تنصب في إطار التطبيقات Client Server وهذه مصيبة !!! بدأت شركة ميكروسوف في عام 2000 ميلادية بتغيير هذه المفاهيم ومحاولة إيجاد مخرج لهذه المشكلة... مشكلة؟؟؟ أين المشكلة؟؟؟ المشكلة هي الإرتفاع الحاد في تكلفة إنتاج وإدارة تطبيقات قواعد البيانات... الحملة إرتكزت على مبدأ واحد فقط وهو... تحويل تطبيقات Client Server إلى تطبيقات Internet Intranet تعالو نلخص ونركز: سأفترض انكم خلال 4 أشهر (وهو وقت قياسي) نجحتم في تصميم برنامج المعاملات الإدارية بشكل محترف ومتقن... السؤال هو، ما هي الخطوة التالية؟؟ نرميه؟ نطوره؟ نتدرب عليه أكثر؟ نعطيه لأقاربنا كهدية؟ نتمنظر أمام أصدقائنا بقدراتنا؟ نعلقه على الحائط كشهادة على إمكانياتنا؟ نرفقه في السرة الذاتية.؟ ماذا نفعل به؟؟؟ لا يوجد إلا حل واحد وهو أن نبيعه؟؟ ممتاز--- السؤال الثاني، لمن نبيعه؟؟؟ لن أجيب !! تعالو نخوض رحلة مختلفة وسريعة جدا (لن أطيل أكثر): عندما يكون لديك شبكة مرتبطة مع بعضها البعض (بأسلاك) فهي LAN أو Local Area Network أو شبكة محلية وهذه رائعة جدا لأنك تستطيع أن تضع أحد الأجهزة كخادم للبيانات ومن خلال تطبيق بسيط يمكنك التعامل من البيانات من أي جهاز آخر وهذا يسمى Intranet لاحظ إنترانت وليس إنترنت !!! عندما يكون لديك LAN في مبنى أو مدينة ما مرتبطة ب LAN أخرى في مبنى أو مدينة مختلفة تحول الموضوع إلى WAN أي Wide Area Network وهي شبكة واسعة وهي مصيبة ومكلفة للغاية لانه لا يوجد سلك مربوط بين أجهزة تبتعد عن نفسها مسافات كبيرة إلا سلك التلفون !!!!!!!!! وهذه قصة مكلفة جدا لضرورة الحصول على شبكة DDN. أين وصلنا... نريد أن نبيع برنامج المعاملات الإدارية، أقترح أن نبيعه على وزارة التربية والتعليم في السعودية !!! ممتاز.. تكلفة الإنتاج (عرقكم وتعبكم) وصلت مثلا إلى 50 ألف ريال. رائع جدا سنبيعه على شركة البطيخ العالمية وكذلك على شركة فلان وشركة علان ووزارة الصحة... إلخ. إذا نستطيع أن نبيعه على 15 وزارة وشركة كل جهة تدفع لنا 10 ألاف ريال وهذا يحقق لنا 150 ألف ريال نخصص 50 ألف منها لإنتاج برنامج آخر و 10 ألاف للدعاية والباقي نوزعه على فريق العمل كأرباح... رائع جدا وممتاز ولكن لحظة... كل شركة أو وزارة ستدفع 10 ألاف ريال فقط ولكنها لعمل الشبكة WAN ستدفع اكثر من 100 ألف ريال شهريا وقد تصل إلى الملايين ؟؟؟؟؟؟؟؟؟؟؟؟؟ لن يشتري أحد برنامج المعاملات الإدارية !!!!!!!!!!! وسنعود إلى تعليقه على الحائط !!! القرار لرئيس الفريق AhmdMu ولا أريد أن أعود بكم إلى مربع رقم 1 مرة أخرى لإختيار برنامج ما، القرار له ووظيفتي أن أشير عليه وعليكم فقط، بإمكانه طرح الموضوع للتصويت، بإمكانه إتخاذا القرار وإختيار تطبيق آخر مختلف، وبإمكانه المضي قدما في برنامج المعاملات الإدارية... كل ما أريده أن تحققوا مبالغ مالية حقيقية بالإضافة إلى: التعود على العمل مع فريق واحد متكاتف ومتعاضد التعلم والتدرب وتبادل الآراء والأفكار وممارسة علمكم وثقافتكم وما سبق لن يكون من خلال برنامج Client Server بل سيكون من خلال تطبيق Internet Intranet. هدف المردود المالي سيطور فكرنا إلى تصميم قواعد بيانات من منظور السوق والتجارة والبيع وليس من منظور بضعة جداول على توليفية إستعلامات فقط !!! بعد كل ما سبق يتبقى نقطة واحدة وهي الإجتماع الفعلي في قاعة أو فندق أو صالة، وأعتقد أن هذا مستحيل فعليا لأن فريق العمل من دول مختلفة وبهذا يتبقى طريقة واحدة فقط وآمل أني بطرحها لا أخالف قواعد هذا المنتدى الرائع وهي: مواعيد محددة للقاء الفريق في غرفة على Pal Talk مواعيد محددة للقاء الفريق في غرفة على MS Messenger مواعيد محددة للقاء الفريق في غرفة على Yahoo Messenger الأخ AhmdMu مطلوب منك كرئيس للفريق إتخاذ مجموعة من القرارات: تحديد البرنامج تحديد شكل التطبيق Client Server او Intrent Intranet تحديد أهداف المشروع تحديد فريق العمل تحديد الخطة والجدول الزمني تحديد كيفية العمل واللقاءات أو فصلي من فريق العمل لأنني أزعجتك !!! اللهم هل بلغت. تحياتي،،،
  7. مرحبا،،، هذه أحد أهم نقاط قوة MS SQL وهي أنك عند الربط بينه وبين أي برنامج مثل الفيجوال بيسك وغيره لا بد من إستخدام ODBC أو أي وسيلة أخرى مثل sqlClient في الدوت نت وعليه عند إنشاء جملة الربط ConnectionString لا بد من تحديد User ID وكذلك Password وبالتالي لا يمكن لأي شخص يستخدم برنامج الدخول إلى خادم البيانات. أما إذا كان قصدك أن المستخدم يدخل إلى القاعدة مباشرة من جهازك أنت دون إستخدام أي تطبيق فهذا منطقي جدا والأفضل أن يستمر الحال على وضعه لأن هذا أسهل في عمليات البرمجة والتطوير وكل ما يتطلبه الأمر هو منع الآخرين من التعامل مع الأجهزة التي عليها خادمات البيانات. إذا كان هذا الحل مرفوض أو ليس لديك الصلاحيات لتنفيذه فلا يوجد إلا حل واحد آخر بالضغط بالزر الأيمن على الخادم وإختيار Edit SQL Server Registration Properties ومن ثم إختيار Use SQL Server authentication بدلاً من Use Windows authentication أدخل إسم المعرف وكلمة المرور للمسموح له بالدخول إلى الخادم ثم ضع علامة صح على Always prompt for login name and password وبهذا ستضطر إلى إدخال أسم المعرف وكلمة المرور كلما أردت الدخول إلى الخادم. لا تستخدم المعرف sa بل قم بإتشاء مستخدم جديد حسب ما تم شرحه في الرد السابق ثم نفذ هذه الخطوة. الرجاء الملاحظة أن هذا الوضع سيكون مزعجا للدخول والخروج إلى الخادم. آمل أن هذا هو المطلوب. تحياتي،،،
  8. السلام عليكم ورحمة الله وبركاته،،، مرحبا بكم جميعا،،، تقوم شركة مقرها السعودية بإطلاق حملة مبدأية نحو تقديم بعض خدمات الإنترنت المتخصصة في العالم العربي، على أي شاب أو فتاة ممن تنطبق عليهم الطلبات التالية التفضل بإرسال بريد إلكتروني إلى [email protected] للمناقشة والحصول والتفاهم والإتفاق على التفاصيل: 1) خبرة في السوق التي تود إفتتاح الفرع فيها (البحرين، لبنان، الكويت، إلخ) 2) خبرة متوسطة عن العمل على الإنترنت 3) القدرة على إنشاء مجموعة صغيرة للتسويق والمبيعات "يمكن لهذه المجموعة البدء في العمل من منازلهم كمرحلة أولى" 4) بعض العلاقات والإتصالات يمكن مناقشة كافة التفاصيل بعض الإتصال بنا ولكن الفكرة الأساسية هي تقديم الخدمات التالية أو بعضها حسب متطلبات السوق: 1) تسجيل النطاقات 2) تصميم المواقع 3) البرمجة المتقدمة المواقع 4) قواعد البيانات 5) الحلول مثل E-Business, E-Government, & E-Commerce 6) تسكين المواقع 7) الدعاية والإعلام على المجموعة أو الفرد الذي سيقع عليه الإختيار إدارة الموقع المزمع إنشاؤه، ويمكن إنشاؤه حسب الخدمات التي يتطلبها سوق الدولة المعنية. كافة متطلبات الدعم الفني والإداري والمالي متوفرة ويمكن مناقشة أكثر من طريقة أو أسلوب لتنفيذ هذا المشروع. كل ما يتطلبه الأمر هو مجموعة من المتحمسين الذين لديم الرغبة والإصرار للقيام بهذا العمل، إن كنت أحدهم نأمل منك إرسال رسالة على البريد المشار إليه أعلاه لمناقشة التفاصيل ودراسة الموضوع سويا لتحقيق أكبر عائد مادي لك ولنا. ترتكز الفكرة على أن الموقع التسويقي للدولة المعنية (ولدينا 22 نطاق جاهزة ومحجوزة) سيتم تصميمه بالكامل من قبلنا وكذلك إستضافته، وينحصر عملك في الحصول على العملاء، عند الحصول على عميل لديك إختياران، الأول تصميم وبرمجة موقع العميل من قبلك أنت وفريق العمل لديك واستضافته من قبلنا مع تحصيلنا لنسبة من تكلفة التصميم والبرمجة (نتفق عليها لاحقا)، الإختيار الثاني تصميم وبرمجة وإستضافة الموقع من قبلنا وتحصيلك لنسبة (نتفق عليها لاحقا) من التصميم والبرمجة والإستضافة (النسبة من الإستضافة لأول سنة فقط). لنفترض أنك في دولة المغرب الشقيقة ولديك دراية في سوقها وإحتياجها من هذه الخدمات ولديك علاقات متعددة وقدرات تسويقية، ماذا يحدث؟ نصمم نحن الموقع التسويقي الخاص بدولة المغرب مجانا ونستضيفه مجانا. يمكنك تصميم الموقع وندفع لك مقابل التصميم سعرا نتفق عليه. نقوم بحملة دعائية للموقع مجانا. تقوم بتشكيل فريق عمل حسب إختيارك وحسب إحتياجك وحسب إحتياج السوق (لن نقوم بتمويل مكتب قبل مرور سنة على الأقل من شراكتنا سويا) بعد مرور سنة وحسب عدد العملاء لديك سنقوم بتمويل مكتب من إيجار وتسجيل وموظفين دائمين وخلافه ويمكن أن نتفق على نسب معينة سويا. تقوم بما يحلو لك من طرق (حسب السوق لديك) وحسب الأسعار لديك للحصول على عملاء... لنفترض أنك حصلت على 12 عميل. لديك الإختيار بأن تقوم بتصميم وبرمجة 12 موقع من قبلك أنت وفريق العمل لديك ونحصل نحن على نسبة عينية من قيمة التصميم والبرمجة. الإستضافة تتم على الخادمات لدينا وليس لك نسبة من هذه. لديك إختيار آخر وهو أن نقوم نحن بتصميم وبرمجة 12 موقع ونقوم كذلك بإستضافتها. تحصل أنت على نسبة عينية من تكلفة الإستضافة لأول سنة فقط. وتحصل كذلك على نسبة عينية من تكلفة التصميم والبرمجة. لاحظ أن كافة الأسعار تحدد من قبلك أنت وعملاؤك (سنتفق على الحد الأدنى من الأسعار فيما بعد). الدعم الفني للعملاء يتم إما من خلالك أو من خلالنا حسب رغبتك أنت. أية مشاريع نحصل عليها من دولة أخرى سواء في السعودية أو غيرها لعملا في المغرب يتم تحويلها لك وينطبق عليها ما جاء أعلاه (يمكن الإتفاق على النسب) بين من قام بالتحويل وبينك. إذا كانت الفكرة من الناحية المبدأية منطقية بالنسبة لك، نأمل الإتصال بنا للتفاهم. هذا الموضوع بالطبع مفتوح للجميع من أي دولة عربية فيما عد السعودية لأن فيها مركز الإدارة العامة للشركة. تحياتنا للجميع،،،
  9. مرحبا،، هل البرنامج مطلوب للويندوز ام للويب ام لكليهما؟؟ يمكن انهاء البرنامج على الويب خلال 10 أيام. يمكن انهاء البرنامج على الويندوز خلال 7 أيام. بإمكانك الاتصال للتفاهم حول التفاصيل. تحياتي،،،
  10. وظيفة

    مرحبا،،، الرجاء توضيح الخبرات والمهارات... إذا ما كنتي تبحثين عن وظيفة حتى الآن. تحياتي،،،
  11. مرحبا،،، رائع جدا... وشكرا للتوجيه، وأن كان القصد كتابة الجملة الإنجليزية خلال وضمن النص العربي. مثل كتابة <CODE/> أو </CODE>. عموما لك جزيل الشكر. توجيهك لي سيخفف عبء كبير. أما بخصوص المسابقة... فآمل إعطائي مهلة حتى 1 يناير قبل إعلان فشلي في تحديد الأسئلة لضيق الوقت، بعد هذه المدة وعند إعلان فشلي سأنقل هذه المهمة لكم لتحديد شكل ونوع المسابقة حسب ما ترونه وتقييم المشاركات وفرزها وإعلان فائز وفائزة. وسيكون دوري محصورا في منح الجائزتين فقط. سأحاول جادا ومتكلا على الله في إنهاء المهمة قبل بداية العام الجديد. تحياتي،،،
  12. سؤال خطير جداً ؟؟؟؟؟؟؟؟؟؟؟؟؟؟ !!!!!!!!!!!!!!!!! لا حول ولا قوة إلا بالله.
  13. I need help plz!

    Hi Creating a chat room is an advanced topic, you need to be pro in programming to do that by yourself, also; for pros; chat rooms are nighmares in programming. Try to use off-the-shelf "ready made" chat rooms, one famous one is DigiChat and it does not cost a lot. Best regards;
  14. مرحبا،،، يبدو لي أن السؤال غير مفهوم -- عذرا لعدم إستيعابي له !!! المشكلة ليست في كيفية إنشاء Password لمستخدم لقاعدة البيانات -- السؤال الأهم كيف دخلت أنت إلى قاعدة البيانات: هل دخلت عن طريق كلمة المرور الخاصة بنظام التشغيل Windows أم دخلت من خلال Admin للخادم أم دخلت Owner لقاعدة البيانات آسف مرة أخرى... إليك الجواب حسب فهمي للسؤال: أبدا MS SQL 2000 Server من خلال تشغيل Enterprise Manager إذهب إلى قاعدة البيانات التي تعمل عليها إذهب إلى Users إضغط بالزر الأيمن على Users وقم بإختيار New Database User في النافذة التي فتحت أمامك -- من Login name إختر <new> في النافذة الجديدة الأخرى الآن: في خانة Name إكتب إسم المستخدم وليكن batman تحتها لديك إختيارين إما كلمة مرور بإستخدام الوندوز أو بإستخدام الخادم وأقترح الثانية وعليه أنقر على SQL Server Authentication قم بإدخال كلمة المرور Password ولتكن welcome في أسفل هذه النافذة ---تأكد من إختيار قاعدة البيانات-- وإلا سيصبح المستخدم المضاف مستخدما للخادم وليس لقاعدة البيانات وهذا خطأ شائع --- مرة أخرى أنتبه وإختر قاعدة البيانات المراد من هذا المستخدم السماح له بإستخدامها.. بعد هذا إضغط OK ستظهر لك نافذة لتأكيد كلمة المرور -- لاحظ أن الحروف الكبيرة تختلف عن الحروف الصغيرة-- أي يجب إدخال كلمة المرور حسبما تم إدخالها سابقا..إكتب welcome مرة أخرى وأضغط OK ستظهر لك رسالة تحذيرية بأن المستخدم أضيف بدون صلاحيات !!!! تأكد من إختيار NO لإعطاء صلاحيات للمستخدم الجديد ستفتح لك صفحة Database Access من لقائمة العليا إختر قاعدة البيانات ويجب أن تكون مطابقة لقاعدة البيانات التي تم إختيارها سابقا. في القائمة السفلى قم بتحديد الصلاحيات حسبما ترى وحسب إحتياج قاعدة البيانات. إضغط OK ثم Cancle أتمنى أني فهمت السؤال بشكل صحيح. تحياتي،،،
  15. مرحبا،،، الأخ alhajri،،، معظم علامات HTML لا تتطلب علامة الإقفال أي أن علامة الإقفال إختيارية، وكلامك صحيح بالنسبة لإقفال علامة السطر وينطبق نفس الأمر أيضا على علامة الخلية !!! ولكن لحظة !!! نصيحتي أن تمارس إقفال كافة العلامات فيما عدا تلك التي ليس لها علامات إقفال مثل <BR> و <HR>. إن التعود على إقفال كافة العلامات سيساعدك بشدة وبقوة عند البدء في برمجة HTML و DHTML و ASP. تحياتي،،،