• الإعلانات

    • فيصل الحربي

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

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

حسام فيصل

المشرفون
  • عدد المشاركات

    1,435
  • تاريخ الانضمام

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

كل شيء نشر بواسطة حسام فيصل

  1. السلام عليكم و رحمة الله : إن مجال إدراة قواعد البيانات أوركل لا يجد حقه في هذا المنتدى ، لأن أغلب المشاركات تتمحور حول تطوير التطبيقات بشكل عام ، لذلك رغبت في أن أستغل فترة الصيف لنقوم بسلسلة دروس حول إدارة القاعدة ، أي يمكن أن نعتبرها دورة متكاملة في إدارة القاعدة من المستخدمين حتى البنى الفيزيائية كـDatafiles و Redo log Files و البنى المنطقية Table Spaces ، مروراً بالنسخ الإحتياطي Backup و استخدام RMAN ... إلخ بحسب ما يسمح لنا الوقت . أتمنى أن تأخذ هذ الدورة بأهمية و أجد التفاعل و يتم التثبيت لكي نستثمر الوقت بأفضل وسيلة للتعلم . و بدلاً من كثرة الكلام لنبدأ الفعل مع القسم الأول إدارة المستخدمين . ما هي الحاجة إلى وجود مستخدمين ؟ تكمن الحاجة في حتمية وجود خصوصية للبيانات بحيث يستطيع كل شخص أن يحتفظ ببيناته و قدرته على تعديلها و منح الحق لغيره بالإطلاع عليها أو إجراء العمليات المختلفة عليها . عندما يريد أحد التعامل مع أوراكل يجب أن تكون له سماحية الدخول إلى النظام و هذه السماحية تؤخذ بالطرق : : 1- Data Dictionary قاموس البيانات . 2- Operating System نظام التشغيل . 3- Networking الشبكة . سيكون موضوع بحثنا هو الطريقتين الأولى و الثانية . قبل البدء بعملية إنشاء المستخدمين يجب أن أوضح المصطلحات التالية : 1- Schema المخطط : و هي مجموعة objects التي يملكها المستخدم أي الجداول – index –PL/SQL CODE .... 2- Table Space الفضاء الجدولي : منطقياً هو المكان المخصص لكل مستخدم لكي يقوم بتخزين بياناته عليه ، فيزيائياً هو مجموعة من الملفات التي تخزن البيانات ندعوها data file . 3- Privileges الصلاحية : و تعني إمكانية قيام مستخدم معين بعملية ما على البيانات أو إنشاء بنى جديدة أو حذف بنى موجودة ....إلخ . 4-Quotas : و هي السماحة المخصصة للمستخدم للتخزين على فضاء tablespace معين ... تعليمة إنشاء user : الشكل القياسي لها : [color=#CC0000][b]CREATE USER user IDENTIFIED {BY password | EXTERNALLY} [ DEFAULT TABLESPACE tablespace ] [ TEMPORARY TABLESPACE tablespace ] [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace ]...] [ PASSWORD EXPIRE ] [ ACCOUNT { LOCK | UNLOCK }] [ PROFILE { profile | DEFAULT }][/b][/color] مخيفة ، أليس كذلك ؟ بالطبع لا ، فهي بسيطة و سهلة و سنرى ذلك في سياق السلسة بإذن الله .. لنبدأ بـ : 1- إنشاء Database User : كما تحدثنا سابقاً فإنه توجد عدة طرق لإنشاء مستخدم منها Data Dictionary . و فيها يأخذ المستخدم صلاحية الدخول من أوركل أي يكون لديه password . لتعليمة الإنشاء المثال التالي: create user Arabteam identified by arabteam_pass إذا أردنا أن نتوسع أكثر فلنجعل لهذا المستخدم حصة على Users Tablespace و هو فضاء جدولي إفتراضي يتم إنشاءه عند تنصيب Oracle : create user Arabteam identified by arabteam_pass default tablespace users quota 50m on users في الحياة العملية لا يجب لمدير القاعدة أن يعرف كلمة السر الخاصة بمستخدم معين و هذا ما نشاهده في حالتنا فقد أسندنا كلمة السر التي نريد إلى المستخدم و هذا لا يصح . لذلك ما رأيكم لو أننا طلبنا من المستخدم أن يقوم بعملية تغيير قسرية لكلمة السر الخاصة به عند أول دخول ؟؟ بذلك " نصفي ذمتنا " (على الطريقة السورية ) ؟؟ create user Arabteam identified by arabteam_pass default tablespace users quota 50m on users password Expire; حتى الآن أظن أن الأمور بخير و لا يوجد شيء صعب على الفهم على ما أعتقد ..... ماذا لو أردنا عدم تفعيل الحساب مباشرة ؟ أي ننشء الحساب و لكن المستخدم لن يستطيع إستخدامه ؟ create user Arabteam identified by arabteam_pass default tablespace users quota 50m on users password Expire Account Lock; 2- إنشاء Operating System User : و هنا يتم السماح للمستخدم إستخدام النظام بعد مصادقة نظام التشغيل . كلام غامض جداً جداً ؟؟؟؟؟؟ كلنا يعلم أننا يمكن إنشاء مستخدمين في نظام التشغيل الذي نعمل عليه سواء أكان Windows أو Linux أو أي نظام تشغيل آخر ، أفلا يمكننا إستخدام هذه الإمكانية في سماحية الدخول إلى أوراكل ؟ أي يكفي للمستخدم أن يقوم بستجيل الدخول إلى نظام التشغيل ثم يستدعي مثلاً SQL PLUS هكذا : c:\> sqlplus / أي دون الحاجة إلى كتابة اسم المستخدم و كلمة المرور ؟؟؟ هذا ما ندعو بمصادقة نظام التشغيل ... كيف نحقق ذلك ؟ create user Arabteam identified Externally و ننشىء مستخدم اسمه ArabTeam على النظام ، و انتهت القصة .. سهلة أليس كذلك ؟؟ و لكن هناك شيء أساسي يجب ذكره : إن اسم مستخدم نظام التشغيل مرتبط بشكل أساسي بالبرامتر OS_AUTHENT_PREFIX ( البارامترات هي مجموعة من القيم التي تحدد طبيعة بعض العمليات الإدارية للقاعدة مثل اسماء data files و control files و النسخ الإحتياطي Backup ..... إلخ و هي مخزنة داخل ملف SPFILE أو PFILE الذين سيكون لهم نقاش طويل بإذن الله ) بحيث يجب أن تكون قيمته "" ... الآن كيف نستطيع فعل ذلك ؟؟؟ لنتبع الخطوات التالية : 1- سجل الدخول بالشكل التالي : sys/pass as sysdba 2- نفذ التعليمة التالية : alter system set OS_AUTHENT_PREFIX='' scope=spfile; 3- أغلق القاعدة بالشكل : shutdown immediate 4- أعد تشغيل القاعدة بالشكل : startup و بذلك تم الأمر .. و الآن لنسجل الدخول بالمستخدم الذي إنشأناه : Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options SQL> create user arabteam 2 identified by arabteam; User created. SQL> connect arabteam/arabteam ERROR: ORA-01045: user ARABTEAM lacks CREATE SESSION privilege; logon denied Warning: You are no longer connected to ORACLE. SQL> ما الذي حدث ؟؟؟؟ تحدثنا في البداية بضرورة وجود الصلاحيات التي تحكم عمل المستخدم حتى في تسجيل دخوله . لذلك نحتاج إلى منح المستخدم Arabteam القدرة على تسجيل الدخول و ذلك بالطريقة : SQL> connect system/pass Connected. SQL> grant create session to arabteam; Grant succeeded. SQL> connect arabteam/arabteam_pass; Connected. SQL> و سيكون لنا حديث طويل جداًعن السماحيات و ذلك في الجزء القادم إن شاء الله . التعديلات على خصائص المستخدمين : هل نستطيع إجراء التعديلات على المستخدمين الذين أنشأناهم ؟ هل نستطيع تغيير كلمة المرور أو Quota أو الفضاء الجدولي ؟؟؟ بالطبع نستطيع و ذلك عن طريق التعليمة : ALTER USER user [ DEFAULT TABLESPACE tablespace] [ TEMPORARY TABLESPACE tablespace] [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ] ...] ما رأيكم بتغيير كلمة المرور للسمتخدم الذي أنشأناه ؟؟ SQL> alter user arabteam 2 identified by pass; User altered. ملاحظة : يمكن حتى للمستخدم arabteam نفسه أن ينفذ هذه التعليمة لتغيير كلمة السر الخاصة به . ما رأيكم بتغيير المساحة المخصصة للسمتخدم للكتابة على الفضاء الجدولي USERS ؟؟؟ SQL> alter user arabteam 2 quota 50m on users; User altered و بذلك أنتهى الجزء الخاص بإنشاء السمتخدمين .. سوف نتحدث في الجزء القادم بإذن الله عن السماحيات ... ملاحظة هامة جداً : لكي تستطيع تطبيق كل التعليمات التي ذكرناها يجب أن توجد سماحيات للقيام بها ، أي لا تحاول أن تنفذ التعليمات بواسطة Scott ، و إنما أنصح تسجيل الدخول بواسطة SYSTEM ..
  2. السلام عليكم ورحمة الله : بعد أن طلب العيد من الأخوة مواضيع متقدمة في إدارة قواعد أوراكل وجدت أنه من الأنسب أن أقوم بإضافة موضوع جديد يختص بدروس متقدمة عن الإدارة ، و السبب أنني لم أرد أن أضم هذه الدروس إلى الدورة التي تجري حالياً لخوفي على المبتدئين في هذا المجال من إصابتهم بالإحباط نظراً لسوية هذه الدروس ، على أن يتم دمج المواضيع في منهاج متكامل نفخر به في هذا المنتدى ... سأبدأ هذه الدروس حول مفاهيم القواعد الموزعة Distributed Database و القواعد عن بعد Remote Database و سأتطرق إلى مفهوم قواعد البيانات الغرضية في أوراكل Object Oriented Database و سأتناول مفهوم Cluster ... و غيرها ... مقدمة : قد يفرض عليك العمل أن تحتاج إلى أكثر من قاعدة في المؤسسة التي تعمل بها ، إما لكثرة المستخدمين بالتالي لا تستطيع القاعدة الواحدة تحمل الضغط أو لوجود تقسيمات في العمل تساعدك على ذلك .. فمثلاً : تريد للذاتية قاعدة خاصة بهم و قسم المحاسبة قاعدة أخرى بالتالي تصبح الإدارة نظرياً أسهل ... و لكن توجد مشاكل أخرى : ماذا لو إشترك القسمان في بيانات مشتركة بين القاعدتين ؟ مثلاً ذاتية الموظفين في المؤسسة ؟؟؟؟ عندها ستضطر إلى نقل البيانات من القسم إلى الآخر .. و هذا غير معقول أليس كذلك ؟؟ إذاً نحتاج إلى آلية تمكن الموظفين في أحد هذين القسمين أن يصل القاعدة الأخرى و يقوم بجلب البيانات من جدول منها للإستفادة .. إنتهبوا إلى ملاحظة مهمة جداً : إن جلب البيانات من القاعدة الثانية لا يتطلب أ ن يسجل الدخول إليها ... ما معنى هذا ؟ نعلم أنه في SQL PLUS نستطيع تسجيل الدخول على أي قاعدة نريدها عبر الشبكة و ذلك عبر Local Naming .. هنا الوضع مختلف : سيقوم المستخدم بتسجيل الدخول على قاعدة واحدة و سيطلب البيانات من الأخرى بدون تسجيل الدخول إليها ... هل فهم الفرق ؟؟؟؟ الحل : وصلة البيانات Database Link و Replication ( ترجمتها في القاموس هي الصدى !!!!! ) .. من أجل تنفيذ الأمثلة في هذه الدروس سوف أعتمد على قاعدتين هما orcl و القاعدة الأخرى db2 .. يمكن من لديه شبكة أن يقوم بتنصيب القاعدتين على جهازين مختلفين ، و من لديه جهاز واحد (مثلي ) عليه إنشاء قاعدتين على جهازه ( راجع دورة الإدارة من أجل إنشاء قواعد جديدة ) ... و لنبدأ : وصلة القواعد Database Link : أكاديمياُ : هي إتصال connection يتم بين قاعدة نسميها Local Database بقاعدة أخرى Remote Database بحساب مستخدم معين و كلمة سره للإستفادة من الأغراض الموجودة داخل حساب هذا الشخص ... عملياً : عندما نريد أن نحضر بيانات من جدول ما في نفس القاعدة فإن التعليمة هي : select * from local_table; أما إذا أردنا أن نحضر بيانات من جدول في قاعدة أخرى فيمكننا استعمال Database link بالشكل : select * from [email protected]; حيث أن remoteDataLink هي اسم الوصلة و الجدول RemoteTable هو في قاعدة أخرى على الشبكة .... ما رأيكم بذلك أليست رائعة ؟؟ و ليس كذلك فقط ، بل حتى يمكننا أن ننشئ مرادف synonym لذلك بحيث : create synonym remotetable for [email protected]; عندها يمكنه إجراء عملية select بالشكل : select * from remotetable; مارأيكم بذلك ؟؟؟؟ ما رأيكم بإنشاء view إعتماداً على Database link ؟؟ create view myview as select * from [email protected]; و حتى يمكنك أن تقوم بعملية تعديل للبيانات الموجودة في القاعدة الأخرى : update [email protected] set col1=value1 ; الآن كفانا تشويقاً و لنقوم بعملية إنشاء هذه الوصلة : create [shared] [public] database link REMOTE_CONNECT connect to {current_user | username identified by password [authentication clause]} using 'connect string'; يوجد نوعين من الوصلات : عامة public أي يمكن لجميع المستخدمين في هذه القاعدة استخدامها و خاصة private فقط للمستخدم الذي أنشأها ( يجب أن يملك هذا المستخدم صلاحية Create Database link لإنشاء الوصلة ( .. لنشرح التعليمة : Connect to : نحدد هنا الحساب الذي نريد الإتصال به و لدينا خيارات عدة : Current_user : هنا سيحاول الإتصال بنفس اسم المستخدم الحالي و كلمة سره بالقاعدة الأخرى ... Username : هنا نستطيع تحديد المستخدم الذي نريد الإتصال به و عندها يجب أن نحدد كلمة السر password لهذا الحساب .. Connect String : هو اسم معرف الإتصال Connection Host الذي نضعه في tnsnames.ora ( راجع دورة إدارة قواعد أوراكل قسم Local Name net Configuration ) .. ما رأيكم بأمثلة ؟؟؟ لنمنح أولاً مستخدمنا scott على القاعدة orcl صلاحية إنشاء Database Link : SQL> connect system/[email protected] Connected. SQL> grant create database link to scott; Grant succeeded. SQL> لنقوم بإنشاء وصلة بين scott على القاعدة orcl و scott على القاعدة db2 : نلاحظ أن الحسابين متماثلين بالإسم و كلمة المرور لذلك : SQL> connect scott/[email protected] Connected. SQL> create database link db2link 2 connect to current_user 3 using 'db2'; Database link created. لنجلب البيانات من الجدول emp : select * from [email protected]; ما رأيكم بإنشاء وصلة بين scott على القاعدة orcl و hr على القاعدة db2 : SQL> connect scott/[email protected] Connected. SQL> create database link db2hrlink 2 connect to hr identified by hr 3 using 'db2'; Database link created. SQL> select * from [email protected] ; ما رأيكم أن نسهل الأمور أكثر و نقوم بإنشاء synonym : SQL> create synonym employees for [email protected]; Synonym created. SQL> select * from employees; الوصلات الديناميكية Dynamic Links : استخدام أمر Copy في SQL PLUS : راينا في القسم السابق كيف استطعنا أن نقوم بجلب البيانات من قاعدة إلى أخرى بإستخدام الوصلات و لكن يجب أن نضع في تفكيرنا دوماً فكرة أن البيانات تبقى في القاعدة الثانية و أن هذه البيانات ليست موجودة في القاعدة الأولى ,, قد نظطر إلى عملية نسخ البيانات من القاعدة الثانية Remot إلى الأولى local بحيث تصبح البيانات موجودة فعلاً في القاعدتين ، سأتحدث اليوم عن الأمر copy الذي نستخدمه لنسخ البيانات من قاعدة إلى قاعدة أخرى : copy from [ remote username/ remote [email protected] connect string] [to username/ [email protected] connect string] { append|create|insert|replace} table_name using subquery; حيث : Append : يقوم بإضافة البيانات إلى الجدول و تنشئه في حالة عدم وجوده .. Create : تنشئ جدولاً جديداً و تضع البيانات فيه Insert : هنا تتم إضافة البيانات إلى الجدول table_name و في حال عدم وجوده فإنه يعطي خطأ .. Replace : هنا يتم حذف الجدول table_name ثم إنشائه مرة أخرى ووضع البيانات بداخله .. مثال : لنقم بإنشاء جدول عند المستخدم scott في القاعدة orcl يحوي على بيانات من الجدول employees الموجود لدى hr في القاعدة db2 : SQL> connect scott/[email protected] Connected. SQL> copy from hr/[email protected] to scott/[email protected] create hr_emp using select first_name , last_name from employees Array fetch/bind size is 15. (arraysize is 15) Will commit when done. (copycommit is 0) Maximum long size is 80. (long is 80) Table HR_EMP created. 107 rows selected from [email protected] 107 rows inserted into HR_EMP. 107 rows committed into HR_EMP at [email protected] SQL> أين أصبحت البيانات ؟؟؟ أصبحت في جدول اسمه hr_emp في حساب scott في القاعدة الأولى ........ ملاحظة مهمة : إذا قام المستخدم hr في القاعدة db2 بإضافة بيانات أو حذف أو أي تعديل كان فإن هذا لن يؤدي إلى إجراء هذه التعديلات على الجدول hr_emp للمستخدم scott الموجود بالقاعدة orcl أتوماتيكياً بل يجب عليك تنفيذ أمر copy مرة أخرى : SQL> connect scott/[email protected] Connected. SQL> copy from hr/[email protected] to scott/[email protected] REPLACE hr_emp using select first_name , last_name from employees Array fetch/bind size is 15. (arraysize is 15) Will commit when done. (copycommit is 0) Maximum long size is 80. (long is 80) Table HR_EMP created. 107 rows selected from [email protected] 107 rows inserted into HR_EMP. 107 rows committed into HR_EMP at [email protected] SQL> طبعاً يوجد طريقة أتوماتيكية لفعل ذلك تدعى بــ Replication التي سأشرحها في الدرس القادم إن شاء الله ... و الآن انتهى درسنا اليوم و أتمنى أن يكون واضحاً ... بإذن الله سوف اشرح Replication غداً إن شاء الله فأستعدوا للمعركة ..... و السلام
  3. هل اصدار forms 10g و report يختلف عن اصدار 10g

    الإصدار 12g ??? أظنك تقصد Oracle Database 11g ... تستطيع العمل على Oracle Forms 10 g حيث يمكنك الإتصال بقاعدة بيانات 11g ببساطة .. بالتوفيق
  4. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة نود تنبيهك أن العنوان غير مناسب. الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية. وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!! قواعد المشاركة http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  5. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة نود تنبيهك أن العنوان غير مناسب. الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية. وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!! قواعد المشاركة http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  6. forms Program Download

    http://www.arabteam2000-forum.com/index.php?showtopic=232612&view=findpost&p=1159040
  7. طلب من ادارة المنتدي والاعضاء

    على الأغلب فإنك تحتاج : Forms 10gl بالتوفيق
  8. skins for c# in visual 2010

    يرجى عدم تحويل الموضوع لطلب سيريال أو كراك أو فك حماية (قرصنة ) فقوانين حماية الملكية في المنتدى تمنع ذلك ... إذا بالإمكان إرفاق أدوات مجانية لذلك فليكن .... وإلا فعذراً منكم سيتم إغلاق الموضوع . بالتوفيق ...
  9. كتاب Introducing .NET 4.0 with Visual Studio 2010

    السلام عليكم ورحمة الله وبركاته : يمنع وضع روابط لبرامج أو كتب مقرصنة ........ بالتوفيق
  10. أين مكتبة القسم

    وعليكم السلام ورحمة الله وبركاته : تم وضعها كروابط في الموضوع المثبت بعض المواضيع الجيدة فى القسم ... بالتوفيق
  11. كتابين سي شارب 2010 ...NEW!

    أخي الكريم : يمنع وضع روابط كتب وكركات و غيره مما يخالف قوانين الملكية الفكرية ... مغلق
  12. الفرق بين ال delegate وال event

    بارك الله بك أخي AliBazzi ولكن delegate شيء و Event شيء آخر وإن إرتبط تعريف Event بdelegate!!! event : هي وسلية لإرسال رسالة Message عند حدوث شيء ما في غرض معين ، ويتم إستقباله من قبل أغراض آخرى قامت بالإشتراك كمتلقين Receivers لهذا الحدث .. delegate : هو مؤشر على Method محدد بحيث تحمل هذه Method نفس signature التي يعرفها delegate... Event يستخدم delegate في نمط تعريفه لإجبار المتلقين Receivers على نمط تعريف محدد للإجرائية Method التي ستقوم بإستقبال الحدث ... هذا فقط ما يربط الإثنين ببعضهما .. delegate له إستخدامات أخرى كثيرة خارجة عن مفهوم الأحداث event .. في الرابط التالي شرح أفضل : Events and Delegates بالتوفيق
  13. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة استخدام البحث قبل السؤال. قواعد طرح المشاركات http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  14. الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته. مرحباً بكم في منتدى الفريق العربي للبرمجة تحدثنا عن هذا الموضوع في أكثر من موضوع سابق، الرجاء استخدام البحث والإطلاع على المواضيع المثبتة. كما يرجى التنبه وعدم تكرار المخالفة في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية. قواعد المشاركة http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
  15. يرجى الإضطلاع على هذا الموضوع : http://www.arabteam2000-forum.com/index.php?showtopic=115282 يرجى إستخدام البحث قبل وضع أي موضوع جديد ..
  16. مشكلة فى كود البحث فى قاعدة البيانات

    إستخدم BindingSource بين Textbox و Dataset >>>
  17. مشكلة فى كود البحث فى قاعدة البيانات

    ما تقوم به هو إعادة ربط Bind للTextBox في المرة الثانية التي تقوم بالبحث فيها ... إذا كنت مصراً على إعادة الربط Bind ، فقم بعملية clear أولا : textBox1.DataBindings.Clear(); textBox1.DataBindings.Add("Text", DataSet1, "Buy_Stock.Name"); بالتوفيق
  18. استفتاء عن استخدام برامج Microsoft Dynamics

    :) سوق GP في السعودية له نصيب وافر وشركات IT تتتنافس على تقديم أفضل Implementation له للشركات الراغبة بتطبيقه لديها .. كما أن مايكروسوفت أعطت له إهتماماً ولم تقتصر على دعم أخيه الأكبر AX ، بدأت بعملية Integrate مع SharePoint و بدأت بإعطاء المطورين أدوات أفضل لتطوير برامج تتكامل معه ...
  19. استفتاء عن استخدام برامج Microsoft Dynamics

    في شركتي نستخدم Dynamics GP بإصدارته (7.5 - 10 - 2010 ) وخاصة Financial -Inventory Module ... كمطورين : نستخدم Dynamics GP Web Services ( إضافة إلى Continuum :mad: في الأنظمة القديمة ) في بناء Solutions مخصصة لأعمال الشركة لدينا ...
  20. كيف يمكن عمل شاشة اعدادات لنظام

    ولا يهمك أخي عبد الله .. تقبل الله منا ومنكم صيام الشهر الفضيل وكل عام وأنتم بخير ..
  21. مشكل بإستيراد microsofte. DirectX

    تحتاج إلى DirectX SDK على ما أعتقد .. تحديث : ستجدها في صفحة Com وليس .Net .. هناك درس حول DirectX في المنتدى يمكنك الإستفادة منه ,.
  22. كيف يمكن عمل شاشة اعدادات لنظام

    هذا ما توقعته : يا أخي إنت تقوم بعمل Object من frmSeting في الدالة btn_Get_Click وهو الذي يقوم المستخدم بوضع البيانات فييه ... قم تقوم بإنشاء Object مختلف تماماً من frmSeting في الدالة الثانية و تريد منه أن يحضر لك البيانات التي تم وضعها في object الأول ، كيف فكرت بهذا :) ؟ أحضر البيانات من الملفات التي قمت بإنشائها ..ز بالتوفيق
  23. مشكلة في استخدام الثريد في سي شارب

    الآن فهمت القصد من برنامجك :) ... - إستخدامك للـ ThreadStart صحيح (كطريقة ) و لا أرى فيه مشكلة .. القضية هنا إذا رغبت بتحسن برنامجك : هلى يجب طلب جميع المواقع والتأكد بعدها أن العملية نجحت لواحد على الأقل ؟ ام أن الأفضل هي نجاح أول Thread وبالتالي عدم الحاجة لإكمال البقية ؟ - إستخدامك للـMutex ضروري فقط للتأكد من القيمة count لتعلم عدد مرات نجاح إستدعاء المواقع . ... - بالنسبة لسطر count = count +1-1 فليس له أي فائدة تذكر فالأفضل إزالته ، يمكنك تسجيل site الذي حدثت له عملية Timeout إن رغبت فقط .. بالنسبة لموضوع البروكسي فلا أستطيع إفادتك ، قد يكون للأخوة رأي أفضل .. بالتوفيق
  24. مشكلة في استخدام الثريد في سي شارب

    الهدف من المتغير count هو معرفة عدد المرات التي تم التنفيذ فيها بشكل صحيح ، أليس كذلك ؟ كنظرة أولى مشكلتلك هي مشكلة synchronization بين Threads حيث تستخدم متحول مشترك ... إستخدامك للmutex صحيح ولكن لماذا قمت بتعليقه ؟ ثانياً : لم أفهم ماهي الغاية من التعليمة : count = count - 1 + 1; النتيجة واحدة (عدم تغيير count ) ... ثالثاً : كما فهمت من كلامك أنك تعتبر النتيجة صحيحة إذا كان قيمة المتغير count مثلاُ 10 (عدد المواقع الموضوعة في المصفوفة ) أليس كذلك ؟ هذا يحدث عند حصول Exception بسبب Operation Timeout مثلاً و عندها متحول count لن يتم زيادته و سيتم عرض القيمة الحالة له ..... بالتوفيق
  25. مشكلة في استخدام الثريد في سي شارب

    أولاً أعد كتابة سؤالك هنا (بالعربية ) بعدها نبدأ النقاش :wink: ..