0% found this document useful (0 votes)
1K views30 pages

Bisic Doc

يوضح المستند خطوات تنصيب قاعدة بيانات أوراكل وإجراءات صيانتها وتحسين أدائها مثل إضافة فضاءات جدولية وفهارس وتخزين البيانات على أكثر من قرص صلب وضبط معاملات التخزين.

Uploaded by

tarek taha
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views30 pages

Bisic Doc

يوضح المستند خطوات تنصيب قاعدة بيانات أوراكل وإجراءات صيانتها وتحسين أدائها مثل إضافة فضاءات جدولية وفهارس وتخزين البيانات على أكثر من قرص صلب وضبط معاملات التخزين.

Uploaded by

tarek taha
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 30

‫‪del /a/f/q c:\autorun.

inf‬‬
‫‪---------------------------------------------------------------------------------------‬‬
‫‪Mrt /f gh‬لذالة كل الفيروسات والبرامج الضارة‬
‫الفيروس المسؤل عن حزف ملفات ‪ exe‬اسمه ‪ salo.exe‬حاول تحزفه من الجهاز ومن الريجسترى واكتشف من ‪taskmanager‬‬
‫‪Gpedit.msc‬لظهار تاسك بار‬
‫المر التالى يمكنك من جعل الويندوز مثل الجديد‬
‫المر من الدوس ‪ sfc /scannow‬وضع اسطوانة الويندوز فى الدرايف لكى ينسخ الملفات من السطوانة‬
‫شبكة التصال‪:‬يوجد فى الخدمات سجلين مسئولين عن ظهور ايقونة شبكة التصال ‪local disk manager &plug and play‬‬
‫موضوع تحويل بيانات ‪ access‬الى ‪oracle‬‬
‫مبدئيا يجب وجود قاعدة بيانات او على القل اتصال بقاعدة بيانات قوى‬
‫اذهب الى محرك ‪ odbc‬واختار التاب ‪ user dsn‬ثم ‪ add‬ثم اختار فى الخر قاعدة بيانات ‪oracle‬‬
‫يظهر صفحة فيها حقول ادخل اسم المصدر ‪taha‬‬
‫فى حقل ‪ tns service name‬اختار المعرف مثل ‪orac‬‬
‫فى حقل ‪ userid‬ضع اسم اليوزى ليكن ‪ hott‬انتهى ‪ok‬‬
‫اذهب الى اكسس ثم اظهر جميع الجداول من خلل ‪ tools‬ثم ‪ option‬ثم ‪ hidden objectevs‬او كائنات مخفية وذلك وذلك لظهار جميع‬
‫جداول اكسس‬
‫اذهب الى الجدول المراد تصديره ثم غير جميع انواع الحقول الى ‪ text‬لتحصل على جميع الحقول بصيغة النص‬
‫ايضا غير جميع اسماء الحقول الى حروف كبيرة مهمه جدا جدا جدا‬
‫قف على الجدول المطلوب تصديره الى اوراكل ثم اختار تصدير من حقل النوع اختر محرك ‪odbc‬‬
‫سيظهر لك مربع لتحرير اسم الجدول فى اوراكل اكتب السم بحروف كبيرة مهمه جدا جدا جدا‬
‫سيظهر بعد ذلك شاشة لتعريف رابط ‪ odbc‬اختار التاب ‪ machine data source‬اشر الى الرابط ثم ‪ok‬‬
‫سيظهر مربع التصال بقاعدة البيانات ادخل كلمة السر ثم ‪ ok‬سيتم تصدير الجدول الى اوراكل ثم استمتع‬
‫ملحوظه‪:‬سينشئ الجدول وستراه تحت اليوزر ولكن لكى تتعامل معة ضعه بين كوتاشن " " مثل الجدول "‪"emp‬‬
‫ملحوظه نهائية‪:‬اذا لم تحول اسم الجدول واسماء حقوله الى حروف كبيره فلبد من اضافة "" بين الحقل والجدول‬
‫ملحوظه تقارير اوراكل ‪:‬كي تتمكن من جعل التقرير يطوى نفسه ويكمل بياناته داخل نفس الورقة ثم يكمل في الصفحة الثانية اذهب الى الطار‬
‫الطويل الحاوي للحقول ثم خصائص ثم اختار العداد ‪ PRINT DIRECTION‬واختار ‪ down/crosse‬ثم اترك مسافة على يسار الحقول‬
‫الصلية لكى يتمكن المعالج من وضع الحقول الممتدة‪.‬‬
‫الرموت ديسكتوب ل يظهر الطابعات على الكلينت وما العمل؟؟؟‬
‫الحل فى‬
‫‪Start the Add or Remove Programs Control Panel applet (Start, Settings, Control Panel, Add or Remove‬‬
‫‪Programs).‬‬
‫‪Double-click the Add/Remove Windows Components button.‬‬
‫‪Select Application Server and click Details.‬‬
‫‪Select Internet Information Services (IIS) and click Details.‬‬
‫‪Ensure that the "Internet Printing" check box is selected.‬‬
‫‪Click OK to close all dialog boxes.‬‬
‫تتتتتتتتتتتتت‪:‬‬
‫اضافة حقل;)‪Alter table sara add dname varchar2(40‬‬
‫تغيير اسم الجدول;‪Alter table sara rename to sara1‬‬
‫تعديل نوع الحقل;)‪Alter table sara modify dname varchar2(60‬‬
‫حزف حقل;‪Alter table sara drop column dname‬‬
‫تغيير اسم الحقل;‪Alter table sara rename column dname to dname_a‬‬
‫لتغيير سيريال جدولين مثل ‪ transto and transtodata‬يتم التى ‪:‬‬
‫‪-1‬انشاء جدولين مماثلين للجدولين السابقين بطريقة ‪ create‬لن امر ‪ copy‬ل يعترف ب العشريات‬
‫‪-2‬امل الجدولين بالبيانات بطريقة ‪select‬‬
‫‪ -3‬اعمل ‪ delete‬لجدول التفاصيل‬
‫ملحوظه الخطأ الذى يظهر عند تشيع التقرير وهو‪ unable to create temporay file:‬يرجع لعدم وجود الفولدر‬
‫‪c:\orant\reports60\tmp‬‬
‫الخطأ‪(ORA-01727: numeric precision specifier is out of range (1 to 38 :‬‬
‫هذا الخطأ يظهر نتيجة استعمالك لل ‪ sqlplus‬قديم ولكن استعمل الصدارات ‪9‬و‪ 10‬الخ‬
‫ملحوظه جريئة وجد ان احد العملء يشتكى من ان الحقل ل يقبل الكسور العشرية وقد تم البحث فى الفورم واثبت انه برئ برائه الزئب من دم ابن‬
‫يغقوب وتبين ان عند انشائك للجدول اصل باستخدام المعالج المعروف يضع فى الخانة ‪ scale 0‬اى يلزم الحقل بعدم وضع كسور ولعلج ذلك‬
‫عدل الحقل كالتالى ‪ ;alter table sanad_sarf modify dvalue number‬اى ان الحقل المراد تعديله هو ‪..dvalue‬ودمتم‬
‫مبدئيا لتنصيب قاعدة بيانات اواركل تأكد من التى‪:‬‬
‫حمل اعدادت اللغة العربية من الوندوز‬
‫حول جميع اعدادات اللغة الى العربية السعودية حتى فى ظل المود النجليزى والمود العربى‬
‫احذف جميع برامج ‪antivirus‬‬
‫احزف جميع برامج تسريع الجهاز‬
‫احزف جميع برامج ادارة الشبكات بانواعها‬

‫بعد انشاء قاعده البيانات وتشغيلها تحت اى مود خذ نسخة من ‪ oracle registry‬لنها الجزء الوحيد الخارج عن سيطره اوراكل‬
‫يجب تخزين ملفات البيانات على اكبر عدد ممكن من القراص)اكثر من عدد الفضاءات والملفات لتوزيع ‪ I/O‬على اكبر مساحه‬
‫ممكنه(‬
‫عند انشاء فضاءات جدوليه‪..‬اجعل لكل فضاء جدولى ملف بيانات منفصل بقدر المكان ‪.‬‬
‫يجب انشاء فضاءات جدوليه منفصله للفهارس و القيود بمعزل عن الجداول الساسيه للبيانات‬
‫يجب الزام قاعدةالبيانات بدمج المتدادات التى فرغت نتاج حزف البيانات وذلك بتفعيل دور ‪ smon‬وذلك كالتى‪:‬‬
‫عند انشاء فضاء جدولى جديد يجب اعداد المعامل ‪ pctincrease 1‬وليس فارغ او صفر‪..‬عند انشاءك لفضاء‬
‫حاول جيدا ضبط العدادات الخرى )ص‪.(336‬‬
‫اذا اردت دمج المتدادات يدويا استعمل العباره التاليه‪alter tablespace taha default storage:‬‬
‫‪((pctincrease 1‬‬
‫بقدر المكان اذا انشات فهرس على عمود مثل ))‪ A‬حاول ان تجعل ادراج البيانات على هذا العمود من ‪A--->Z‬‬
‫بعد انشاء اجراء او داله حاول استعمال التعديل التالى لتجنب تكلفه التجميع فى وقت التشغيل‪:‬‬
‫)‪( ;ALTER PROCEDURE FUN1 COMPILE‬ص ‪.309‬‬
‫عند انشاء جدول حاول دائما ضبط العداد ‪ PCTFREE 20‬وضبط العداد ‪ PCTUSED 60‬ليتم تنظيم مساحه بلوك‬
‫التخزين فى الفضاء الجدولى‬
‫عند تعطيل واعاده تشغيل خدمه المثال فى ‪ service‬الويندوز هذا يولزم المثال باعاده تحميل ملف المعاملت مره اخرى)‬
‫‪(spfile‬‬
‫وكان مناسبه ذلك ظهور الخطأ )‪dispatchers) cannot start/shutdown the database‬وقد تم علج ذلك بتحويل مود قاعده البيانات‬
‫الى نظام ‪ DEDICATED‬وذلك كالتى‪:‬ضع فى ملف ‪ TNSNAMES‬العباره التاليه)‪CONNECT_DATA=(SERVICE_NAME=o‬‬
‫‪(rac)(server=dedicated‬‬
‫*ضع فى اعتبارك انه يجب ان يكون اسم ‪ ALIAS‬ل يترك مسافه بينه وبين بدايه السطر ويجب ان يكون السطور التابعه له تاركه مسافه على‬
‫القل مسطره واحده وال فلن يعمل الليس‬
‫عند انشاءك لجدول وهذا الجدول عليه عمليات قراءه وكتابه كبيره حاول بقدر المكان جعله منفصل عن الجداول المشابهه له‪.‬‬
‫المر التالى يستعرض بيانات البارامترات للنظام‬
‫‪show parameter shared_pool_size‬‬
‫‪ DBA_SEGMENTS‬يستعرض الفضاءات والجداول المرتبطه بهذه الفضاءات وانواع الجداول وعدد البلوكات التى يشغلها‬
‫هذا الجدول فى الفضاء ص‪248‬‬
‫‪ DBA_DATA_FILES‬يستعرض الفضاءات الجدوليه وملفات البيانات المرتبطه بهذه الفضاءات وحجم كل فضاء او ملف‬
‫بالبلوكص ‪248‬‬
‫‪ DBA_FREE_SPACE‬يستعرض المساحة الخاليه فى الفضاء بالبلوك ص‪248‬‬
‫‪ V$FILESTAT‬يستعرض عدد البلوكات المخصصه للقراءه وللكتابة التى تجرى على مستوى الفضاء الجدولى ص‪259‬‬
‫‪ V$DATAFILE‬يستعرض ملفات البيانات)اسم الملف وبياناته(ص‪259‬‬
‫‪ USER_SOURCE‬يستعرض سطور كل اجراء او دالة سطر سطر المخزنه فى قاموس البيانات‬
‫‪ USER/DBA_TABLES‬لستعراض الجداول الموجوده فى اسكيما او على مستوى النظام‬
‫‪ USER/DBA_VIEWS‬لستعراض العروض الموجوده فى اسكيما او على مستوى النظام‬
‫‪ USER/DBA_TABLESPACES‬لستعراض الفضاءات الموجوده فى اسكيما او على مستوى النظام‬
‫اذا اردت معرفة الجدول المقابل فى‪ key foriegne‬فخذ هذا المثال‪:‬‬
‫‪- SELECT TABLE_NAME,CONSTRAINT_NAME FROM ALL_CONSTRAINTS‬‬
‫‪WHERE CONSTRAINT_NAME IN (SELECT R_CONSTRAINT_NAME FROM‬‬
‫‪- ALL_CONSTRAINTS‬‬
‫‪;('WHERE TABLE_NAME='DEPTDATA‬هنا استبدل ‪ deptdata‬باى جدول اخر‬
‫‪- SELECT TABLE_NAME,CONSTRAINT_NAME FROM ALL_CONSTRAINTS‬‬
‫‪WHERE R_CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM‬‬
‫‪- ALL_CONSTRAINTS‬‬
‫‪;('WHERE TABLE_NAME='DEPT‬‬
‫يجب مراقبه البلوكات الحره والمستخدمه فى الفضاءات الجدوليه اسبوعيا خلل شهر او اكثر)من خلل برنامج الداره(‬
‫لمعرفه الى اى مدى يتضخم الفضاء الجدولى كل اسبوع وعمل جرافيك يبين هذا التضخم ومن ثم النتباه الى هذا الفضاء‬
‫وعمل اللزم له اما اضافه مساحه ضخمه تتناسب مع المد او نقل بعض الجداول التى تضخم هذا الفضاء‬
‫وذلك بتحريكها الى فضاء جدولى اخر‬
‫اذا تم ازاله عباره اسم النطاق ) ‪ (world.‬من ملف ‪ listener‬وملف ‪ tnsnames‬وتم تشغيل المنصت مره اخرى تستطيع‬
‫التسجيل‬
‫بعد ذلك ل يهم اذا عدلت اسم النطاق )‪ (db_name‬فى ملف ‪ init.ora‬او ل ستسجل بدون ذلك‬
‫اذا اعددت قاعده البيانات على نظام الرشفه فانها ستتمسك بهذا العداد حتى لو تم قفلها ثم فتحها مره اخرى‬
‫المشهد ‪ USER_OBJECTS‬يستعرض كل كائنات السكيما )جداول‪-‬عروض‪-‬دوال‪-‬اجراءات‪..‬الخ( ويستعرض تاريخ الكائن‬
‫واشياء كثيره حاول التعرف عليها—كذلك ‪ ALL_OBJECTS‬يستعرض كائنات قاعده البيانات وهذا مفيد للبحث عن جدول‬
‫معين فى كل قاعده البيانات‪..‬‬
‫اذا اردت قياس المده الزمنيه لرد قاعده البيانات على نداء معين فشغل هذا الجراء من الدوس‬
‫‪ Tnsping 100.116.100.3 20‬حيث ان ‪ ip‬المذكور هو اسم جهاز قاعده البيانات‪.‬‬
‫خاصيه ‪)flashbach‬فقط ‪(10g‬‬
‫عملها مماثل لسله المهملت بالضبط وعندما تقوم ب ‪ ;drop table dara‬سيتحول الجدول الى السله وتستطيع استكشافه من خلل ظهوره‬
‫كجدول بهذا الشكل ‪ bin$04lh…….==$0‬من خلل المر ‪ ;select * from tab‬ولن يوضح اسم الجدول ولكن من خلل استعراض سله‬
‫تستطيع عرض الجدول والسم الذى ظهر ‪..…bin‬‬ ‫المهملت بالمر التالى‪;show recyclebin:‬‬
‫اذا اردت استعاده الجدول من سله المهملت اليك المر التالى‪:‬‬
‫‪;Flashback table dara to before drop‬‬
‫لتفريغ سله المهملت استخدم المر ‪;purge recyclebin‬‬
‫ولحزف الجدول بدون نقله الى سله المهملت استخدم المر ‪;drop table dara purge‬‬
‫بفرض ان لديك ‪ date_birth‬وهو من النوع ‪ date‬وفى احدى الستعلمات اردت ان تضع العباره ‪where‬‬
‫‪ date_birth=sysdate‬لن يفلح استعلمك ابدا وذلك لن التاريخين يحملن الوقت بالثانيه والدقيقه ولعلج ذلك استبدل العباره‬
‫التاليه بالشكل التالى ‪ (’Where to_char(date_birth,’dd-mm-yyyy’)=to_char(sysdate,’dd-mm-yyyy‬بذلك‬
‫سينجح الستعلم لنك حصرت التاريخين فقط فى اليام والشهور والسنوات‬
‫موضوع ‪ constraints‬الضوابط والخاص ب‬
‫‪index‬‬
‫‪Not null‬‬
‫‪Primary key‬‬
‫‪Foreigne key‬‬
‫‪Uniq‬‬
‫‪Chick‬‬
‫الشرح‪:‬‬
‫‪ Index‬يعتبر ‪ object‬مثله مثل اللهداف الخرى يوضع على اسكيما وعلى ‪ tablespace‬تماما مثل الجدول‪..‬‬
‫الغرض منه هو ترتيب الجدول تصاعديا)الفتراضى( حسب الحقل الذى عرف عليه الفهرس والترتيب يكون فزيائيا وليس مثل‬
‫‪ order by‬كما انه يخزن بيانات خاصه به على الجدول مثل الصف رقم ‪ 10‬فى المكان الفزيائى رقم كذا على الهارد ديسك لذلك‬
‫يسهل عمليه الوصول والرتابه باسرع وقت‪..‬اذا اردت ان يكون الترتيب تنازليا يضاف عباره ‪ desc‬بعد اسم الحقل مع مسافه‪..‬مثل‬
‫عند انشاء فهرس استخدم‬
‫لنشاء فهرس عادى‪--‬تصاعديا‪;(Create index sara on emp(empno‬‬
‫لنشاء فهرس تنازليا‪;(Create index sara on emp(empno desc‬‬
‫‪ Not null‬معروفه وهى تعرف على اى حقل‬
‫بالضافه الى ذلك يمكنك جعل الفهرس يحافظ على جعل البيانات وحيده ل تتكرر وذلك عند انشاء الفهرس مثل‪:‬لنشاء فهرس عادى‬
‫استخدم ‪create index sara‬‬
‫ولنشاءه بحيث يكون فريد ‪.....create uniqe index sara‬انتهى‬
‫‪Primary key‬هى مفتاح يوضع على احد الحقول لضمان شيئان الول عدم تكرار البيانات فى حقل وتخليق فهرس على‬
‫هذا الحقل ولن الفهرس ليس فيه خاصيه الوحداويه للحقل لذا يقوم هذا المفتاح بذلك‬
‫‪ Uniqe‬هو مفتاح يعرف على حقل يضمن فقط الوحدانيه لبيانات الحقل‬
‫‪ Forieng key‬مفتاح لضمان تنظيم البيانات بين ‪master and detail‬‬
‫‪Chick‬مفتاح يوضع على حقل لضمان ان هذا الحقل ل تقل او ل تكبر قيمته عن رقم او شى معين مثل ‪Chick‬‬
‫‪ empno<1500‬فهو يمنع دخول القيم القل من ‪ 500‬على الحقل ‪ empno‬مثل‬
‫‪DATABASE LINKS‬‬
‫لنشاء رابط قاعدة بيانات استعمل العلقة التالية‪:‬‬
‫‪CREATE DATABASE LINK SARA CONNECT TO HOT IDENTIFIED BY HOT USING‬‬
‫‪;''ORAC_ALIAS‬‬
‫بالمناسبة لو حاولت ان تفتح اكثر من ‪ 4‬روابط سيرفض النظام لذا عليك زيادة عدد الروابط الى العدد المطلوب مثل الى ‪ 5‬من‬
‫خلل العبارة التالية‪:‬‬
‫‪;ALTER SYSTEM SET OPEN_LINKS=5 SCOPE=SPFILE‬‬
‫‪;ALTER SYSTEM SET open_links_per_instance=5 SCOPE=SPFILE‬‬
‫بعدها اقفل قاعدة البيانات ثم افتحها لتفعيل التغييرات‬
‫ملحوظه مهمة للغاية ‪::‬عند تشغيل اللينك احيانا تظهر رساله وهى‬
‫‪ORA-02085: database link TARR connects to orac‬‬
‫هذة الرسالة ناتجة عن شى واحد فقط هو ان الباراميتر ‪ global_name‬موضوع على ‪ true‬ولحل هذة المشكلة اعمل العبارة‪:‬‬
‫‪;Alter system set global_names=false‬‬
‫ولكن ما حكاية ان يكون ‪ true‬او ‪ false‬اذا كانت ‪ true‬فهى تجعل جميع اسماء الروابط متشابهة فمثل فى حالة ‪true‬‬
‫ل يمكن الحصول على نتائج ال بشروط معينه فى الرابط مثل يجب ان يكون‬
‫‪;'Create database link orac.world@med connect to med identified by med using 'orac‬‬
‫تلحظ هنا ان اسم اللينك يجب ان يكون على هذة الصورة فقط لحط ان‪ orac.world‬هى اسم ‪ global_name‬لقاعدة‬
‫البيانات البعيدة وهو دائما الموجود فى ملف ‪ tnsname‬فى اخر عبارة‬
‫ررررر رررر رر ررررر رر ررررر رررررررر ررر ررررر رررر ‪Ora-01033‬‬
‫رررررر التأهيل حتى ‪ 5‬ساعات هذا يحدث فقط عند ‪ initializing database‬رررر ررررر رررررر‬
‫‪..‬سنتكلم بالتفصيل ‪ controlfile‬فصل الكهرباء عن السيرفر مرة واحدة مما يتسبب فى تدمير‬
‫الحل؟‪..‬‬
‫اعمل التالى‬
‫;‪Shutdown‬‬
‫;‪Startup nomount‬‬
‫;‪Alter database mount‬‬
‫;‪Alter database open‬‬
‫اذا تحدث عن خلل ما فى ‪ control file‬اعمل التالى‬
‫مبدئيا انسخ ملفات الكنترول فيل الى مجلد جديد للحتياط‪..‬ثم انسخ ملف ‪ controlfile02‬على ‪ controlfile01‬ثم اذهب الى‬
‫ملف ‪ init.ora‬ثم احزف كل ‪ controlfiles‬ما عدا ‪ controlfile01‬فقط‬
‫نفذ الوامر التالية‪:‬‬
‫‪Sys/system as sysdba‬‬
‫;‪Sql>recover database‬‬
‫هذا المر سيعيد وصغ ‪ controlfiles‬الى وضعة الطبيعي سينشى ملفات ‪02‬و‪03‬‬
‫بعد ذلك نفذ الوامر التالية‬
‫;‪Shutdown‬‬
‫;‪Startup nomount‬‬
‫;‪Alter database mount‬‬
‫;‪Alter database open‬‬
‫في بعض الحيان يحدث ان تكةن قاعدة البيانات والمنصت يعملون جيدا فى الخدمات ولكن يعطي خطأ مثل ‪ initializing‬اى ان‬
‫قاعدة البيانات ما زالت تفتح ول يمكن الوصول الى البيانات الحل‬
‫;‪Shutdown‬‬
‫;‪Startup nomount‬‬
‫;‪Alter database mount‬‬
‫;‪Alter database open‬‬
‫سيقول لك ‪ file 1 needs media recovery‬ويكتب تحتة مسار ملف البيانات ماذا تفعل‬
‫اكتب المر التالي‪ ;'recover datafile 'D:\ORACLE\ORADATA\SONA\SYSTEM01.DBF :‬وليكن‬
‫‪ system01‬هو المكتوب‪ ..‬سيصدر اخطاء اخر دنك وراه حتى ينتهى زبعدها افتح قاعدة البيانات‬

‫‪*/‬موضوع اللغة ‪/*NLS_LANG‬‬


‫عند تصطيب قاعدة بيانات اوراكل او حتى اى اداة لوراكل عليك التالى‪:‬‬
‫تهيئة ‪ REGIONAL AND LANGUGE OPTIONS‬ووضع كل ‪ LIST ITEM‬على ‪SAUDIA‬‬
‫‪ARBIA‬‬
‫وذلك فى التاب الول والثالت‬
‫فى التاب الثانى اشر على ‪ CHICKBOXS‬وادخل اسطوانه نظام التشغيل لتحميل ملفات اللغة‬
‫بعد التحميل والتسجيل غير ‪ REGISTRY‬الى ‪American_America.AR8MSWIN1256‬‬
‫كل ذلك جيد ومطلوب والهههههههههم من ذلك انه عند التقاط قاعدة البيانات من خلل الفورم او ‪SQLPLUS‬تجد‬
‫النظام يخرج ول يسجل بمجرد ادخالك لسم المستخدم وكلمة السر والسبب هو انه يوجد ‪ CHARCTERSET‬ل‬
‫يستطيع ‪ DEVELOPER‬بكل ادواته تفسيرها فلذلك يخرج ول حتى يسجل‪................‬حل المشكلة من خلل‬
‫جدول ‪ $PROPS‬الموجود على اليوزر ‪SYS‬‬
‫هذا الجدول كنا ل نعلم عنه شى ولكن علمنا انه كل شي فى موضوع اللغه الخطوات ‪1‬و‪2‬و‪ 3‬مهمين للغاية ولكن اذا اصطدمت‬
‫بانه ل تستطيع حل مشاكل اللغه سجل اول على ‪ SYS‬كالتى ‪CONNECT SYS/SYS@ORAC AS SYSDBA‬‬
‫كما هو معروف‬
‫ثم الستعلم داخل الجدول المذكور كالتى‪:‬‬
‫‪;$SQL> desc PROPS‬‬
‫‪Name‬‬ ‫‪Null? Type‬‬
‫‪-------------------------- -------- -----------------------------------------‬‬
‫‪(NAME‬‬ ‫‪NOT NULL VARCHAR2(30‬‬
‫‪(VALUE$‬‬ ‫‪VARCHAR2(4000‬‬
‫‪(COMMENT$‬‬ ‫‪VARCHAR2(4000‬‬
‫حاول الستعلم كالتى‪:‬‬
‫‪;'select VALUE$ from PROPS$ WHERE NAME='NLS_CHARACTERSET‬‬
‫‪;$Select name,substr(VALUE$,1,20),substr( COMMENT$,1,20) from sys.PROPS‬‬
‫‪$VALUE‬‬
‫‪AR8MSWIN1256‬‬
‫هنا اذا حصل على ‪ AR8MSWIN1256‬فاللغة مضبوطة وال حاول ضبط اللغه داخل هذا الجدول من خلل الجراءات‬
‫التالية‪:‬‬
‫اذا حاولت استخدام التعديل التالى‪:‬‬
‫‪;'UPDATE PROPS$ SET VALUE$='AR8MSWIN1256' WHERE NAME='NLS_CHARACTERSET‬‬
‫‪UPDATE PROPS$ SET VALUE$='AR8MSWIN1256' WHERE‬‬
‫‪;'NAME='NLS_NCHAR_CHARACTERSET‬‬
‫‪;COMMIT‬‬
‫فلن تتمكن من ادخال بيانات‪ ..‬فقط سيعرض البيانات فقط‪...............‬لكن ما الحل؟؟؟؟؟ هنا الحل!!!!!!!!!!!! فى الخطوات التالية‪....‬‬
‫بعد قرائتى لوراكل العرب عن الكسبريس تبين انهم استخدمو هذا الكود لتأهيل الكسبرس ليعمل مع الدفولوبر ولتغيير نظام اللغة لقاعدة‬
‫البيانات والخطوات كالتالى‪:‬‬
‫ابدأ اول بالتسجيل ك‪ sysdba..‬مثل‬
‫‪.connect "AS SYSDBA" in sqlplus‬‬
‫‪;ALTER SYSTEM ENABLE RESTRICTED SESSION‬‬
‫‪;ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0‬‬
‫‪;ALTER SYSTEM SET AQ_TM_PROCESSES=0‬‬
‫‪;ALTER DATABASE CHARACTER SET INTERNAL_USE AR8MSWIN1256‬‬
‫ثم اقفل قاعدة البيانات وافتحها مرة اخرى لتفعيل التعديلت‬
‫الباقى للطلع فقط‬
‫ملحوظه يجب زكرها فى هذا الخصوص‬
‫عند التعامل مع قاعدة بيانات ‪ xe‬فهى تقفل عن طريق المحرر ولكنه ل تفتح اى تقوم بالجراءات التالية‪ ..‬ولكن استطعت حل‬
‫المشكلة عن طريق الجراءات السابقة اما الجراءات التى لم تنفذ فهى‬
‫‪.connect "AS SYSDBA" in sqlplus‬‬
‫‪;SHUTDOWN IMMEDIATE‬‬
‫‪;STARTUP MOUNT‬‬
‫‪;ALTER SYSTEM ENABLE RESTRICTED SESSION‬‬
‫‪;ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0‬‬
‫‪;ALTER SYSTEM SET AQ_TM_PROCESSES=0‬‬
‫‪;ALTER DATABASE OPEN‬‬
‫‪;ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8‬‬
‫‪;SHUTDOWN‬‬
‫‪;STARTUP RESTRICT‬‬
‫‪;SHUTDOWN‬‬
‫‪;STARTUP‬‬
‫بعد ذلك يجب عمل ‪ SHUTDOWN‬للنظام ثم عمل ‪ STARTUP‬للنظام كى يشعر النظام بالتعديلت ويطبقها‬
‫بهذا نستطيع ضبط النظام اللغوى داخل قاعدة بيانات اوراكل بكافة اصداراتها وبالخص‬
‫‪ ORACLE 10G DATABASE EXPRESS ADDITION‬ودمتم‪.......‬‬
‫ملحوظه مهمة جدا بخصوص ‪ xe‬لوحظ ان قاعدة البيانات ‪ xe‬يصاحبها برنامج اتصال يسطب على الكلينت لها‬
‫ولكن لوحظ انه بدون ‪ tnsnames‬ويجب بالتأكيد عمل ‪ tnsname‬لدراج بروتوكول التصال فماذا تفعل علينا التالى‪:‬‬
‫التأكد عن طريق ‪ regedit‬من هوم اوراكل ولكى تعرف الهوم المعتمد يحب اخذه من كى الريجيسترى‪ ..‬ثم اضافة الفولدر‬
‫‪ network‬الموجود على اى قاعدة بيانات اخرى‬
‫ثم بعد ذلك تعديل ملف ‪ tnsname‬ليصف البرتوكول واللياس لقاعدة البيانات‬
‫\*نظام النسخ الحتياطى*‪/‬‬
‫ل تقوم بالنسخ البارد ال فى حالتى)‪ (SHUTDOWN NORMAL/EMMEDIATE‬فقط‪.‬‬
‫ررررر ررررررررر ررررررررر رررررر‬
‫هى عمليه نسخ لى كيان )قاعده بيانات بالكامل‪-‬فضاء جدولى‪-‬ملف بيانات‪-‬جدول واغراضه(‬
‫فى حاله القاعده البيانات بالكامل يقصد منها هو نقل كل الفضاءات الجدوليه والملفات البيانات والمستخدمين الى نفس قاعده‬
‫البيانات التى دخلت اليها باستخدام ‪ EXP SYSTEM/SYSTEM@ORCL1‬اى ‪ ORCL1‬وسيتم نقل كل السكيما فى‬
‫المنقوله والمناظر لها فى السكيما الجديده مثل عندك اسكيما باسم ‪ MARSH‬يجب ان يكون فى قاعده البيانات ‪ORCL1‬‬
‫اسكيما باسم ‪ MARSH‬ايضا وهكذا بالنسبه للباقى ولجميع الغراض مهما كانت حتى الفضاء الجدولى ‪ system‬وعبارته‬
‫المشهوره‬
‫‪......................................Exp system/system@orcl1‬‬
‫ررررر ررررررررر ررررر ررررر‬
‫هى عمليه نسخ لملفات قاعده البيانات فى اثناء توقف قاعده البيانات اى لبد من اصدار المر ‪ (Shutdown normal or (immediate‬وبعدها‬
‫قم بنسخ التى‪:‬‬
‫ملفات البيانات ذات المتداد)‪(dbf‬‬
‫ملفات التحكم ذات المتداد)‪(ctl‬‬
‫ملفات العاده ذات المتداد)‪) (log‬الثلث السابقه موجوده تحت ‪/oradata/orcl1/‬‬
‫ملفا ‪ spfileorcl1, PWDorcl1.ora‬الموجود تحت ‪oracle/database/‬‬
‫وكذلك الفولدارات)‪ (dump‬الموجوده تحت اسم قاعده البيانات تحت الدير ‪ oracle/admin‬والتى تحتوى على ملفات سجل الخطاء‬
‫وغيره‪).‬او بالصح كل الملفات التى فى فولدر ‪ c:\oracle\oradata\orcl‬على اعتبار ان اسم قاعده البيانات ‪()orcl‬‬
‫النسخ الحتياطى المباشر)والقاعده فى حاله الرشفه( وهو المشهور جدا‪.‬‬
‫هذه الطريقه مفضله لنك تقوم بالنسخ خلل عمل قاعده البيانات كليا ولبد من تلبيه الطلبات التاليه‬
‫يوجد حالتى عمل تكون قاعده البيانات فيها تعمل بشكل كلى وهى الحاله العاديه والحاله المأرشفه‪..‬‬
‫فى الحاله العاديه قاعده البيانات تكون فى مود ‪ nonarchive‬والتى ننسخها كما فى النسخ الحتياطى الغير مباشر واذا اردت‬
‫معرفه المود ادخل ب ‪ sys‬ثم اكتب المر التالى )‪(archive log list‬وسيبين لك حاله القاعده ‪.‬‬
‫فى حاله الرشفه تكون قاعده البيانات فى حاله الرشفه وهى ل تختلف كثيرا عن الحاله العاديه ولكن هى الحاله التى من خللها تستطيع النسخ اثناء‬
‫التشغيل‪.‬‬
‫كيفيه النسخ اثناء مود الرشفه‪:‬‬
‫قبل عمليه الرشفه يجب الزاما وحتما وضروره بان تغير بعض المعاملت فى ملف ‪ spfile‬مثل‬
‫‪ 'Log_archive_dest='c:\oracle\oradata\soha‬يحدد هذا المعامل الفولدر الذى سيضع فيه النظام ملف الرشفه مثل‬
‫‪ARC00011.001‬‬
‫‪Log_archive_start=TRUE‬‬
‫‪Log_archive_dest_stat_1=ENABLE‬‬
‫حووول قاعده البيانات الى مود الرشفه بالتالى‪:‬‬
‫‪;Connect sys/sys@orcl1‬‬
‫‪;(Shutdown immediate(or normal‬‬
‫‪;Startup mount orcl1‬‬
‫‪;Alter database archivelog‬‬
‫‪;Alter database open‬‬
‫قيامك بالجراءات السابقه سيجعل قاعده البيانات فى حاله الرشفه‪.‬‬
‫عندئذ يمكنك الن بالقيام بالنسخ للملفات الساسيه لقاعده البيانات ولكنه تختلف بعض الشى عن النسخ الغير مباشر وذلك لن النسخ‬
‫المباشر يجعلك تنسخ ملفات التحكم العامله وليست الموضوعه على القرص ولكن الغير مباشر هو النسخ من القرص بعد توقف قاعده‬
‫البيانات‬
‫يجب ان تعلم جيدا انه عليك نسخ الملفات التاليه‬
‫‪Data Files‬‬
‫‪Control Files‬‬
‫‪Parameter File‬‬
‫‪Password File‬‬
‫‪Redo Logs‬‬
‫‪Archive Logs‬‬
‫نسخ ملفات البيانات كالتى‪:‬‬
‫اصدر اول العباراه التاليه‪:‬‬
‫‪……Connect sys‬‬
‫‪;Alter tablespace system begin backup‬‬
‫وهذه العباره تجعلك تستعرض كل العبارات المطلوبه‬
‫) ‪Select 'alter tablespace '||tablespace_name||' begin backup;' from‬‬
‫‪(;dba_tablespaces‬‬
‫ازهب فى الحال وانسخ ملفات بيانات الفضاءات الجدوليه وملفات ‪ redo‬ايضا الى فولدر مختلف‪....‬‬
‫ولرجاع الفضاءات الجدوليه للعمل العادى استخدم‪..‬‬
‫‪ ;Alter tablespace system end backup‬مثل اذا كان ‪ SYSTEM‬احد الفضاءات الجدوليه‬
‫وهذه العباره تجعلك تستعرض كل العبارات المطلوبه‬
‫‪;Select 'alter tablespace '||tablespace_name||' end backup;' from dba_tablespaces‬‬
‫ملفات سجل الرشيف المقترن‬
‫لتمام ذلك نفذ المر التالى‪:‬‬
‫‪;ALTER SYSTEM SWITCH LOGFILE‬‬
‫هذا المر سيقفل ملف الرشفه استعدادا لنسخه)ولكى تتاكد من ان ملف الرشفه هذا معد للنسخ يجب ان يكون فى حاله ‪active‬‬
‫ولمعرفه ذلك فعل‬
‫; ‪select * from v$log‬‬
‫وسيظهر ان هذا الملف فى حاله ‪ active‬وليس فى حاله اخرى‪.‬‬
‫ملفات التحكم‬
‫لنسخ ملف تحكم عليك القيام بهذا الجراء مع اعتبار كلمه ‪ reuse‬والتى تستبدل الملف القديم بالجديد واذا ل تريد فل تضيفها‬
‫‪;Alter database backup controlfile to 'c:\oracle\soha\conrolfile01.ctl' reuse‬‬
‫ويوجد اجراء اخر وهو اهم من السابق وهو يمكنك من انشاء كود يمكنك من خلل انشاء ثلث نسخ لملف ‪ controlfile‬على‬
‫الفولدر‪.‬‬
‫‪. ; Alter database backup controlfile to trace as 'c:\trace.txt‬‬
‫ملفات ‪ spfileorcl‬والموجود دائما فى فولدر ‪ c:\oracle\database‬ل يلزم له اجراء ال النسخ‬
‫ملفات ‪ pwdorcl‬والموجود دائما فى فولدر ‪ c:\oracle\database‬ل يلزم له اجراء ال النسخ‬
‫عليك نسخ ملفات)‪ (5-1‬المزكوره سابقا الى فولدر المحتوى على ملفات البيانات‪ ..‬كده تنتهى عمليه النسخ‬
‫‪ /////////////////////////////////////////////‬الستعادة ‪/////////////////////////////////////////////////////////////‬‬
‫الستعاده من الملفات المنسوخه)‪‬كامل قاعده البيانات(‬
‫اذا اردت استعاده الملفات المنسوخه ‪ hot‬نفذ التالى‪:‬‬
‫‪Shutdown normal/immediate‬‬
‫انسخ جميع ملفات البيانات بمافيها ‪ redo‬مكان القديمه‬
‫اعمل ثلث نسخ لملف التحكم بدل واحد‪..‬لن ‪ spfile‬يحتوى ثلث نسخ‬
‫انسخ ملف الرشيف الموجود مع الملفات الى الفولدر المعرف فى ‪ spfile‬للمعامل ‪archive_log_dest‬‬
‫انسخ ملفات ‪ spfile‬وملفات ‪ pwd‬المزكوره بالنسخ‬
‫‪;Startup mount‬‬

‫‪;RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL‬‬


‫سياتيك بعض العبارات التى تعبر عن اخطاء اوراكل ل تهتم اضغط ‪ enter‬ثم‪..‬‬
‫‪;Alter database open resetlogs‬‬
‫اذا تمكنت من فتح قاعدة البيانات فان السترجاع يصير كما يجب‪.‬‬
‫ررر ررر ررررررررر ررررررررر فى فتح قاعده البيانات فان عليك باستخدام الحاله الفضل من ذلك وهى‬
‫استعمال ملف ‪ trace‬كالتى‪:‬‬
‫لقد زكرت اننا نسخنا ملف ‪ contolfile‬نسختين نسخه تنفيذيه ونسخه ‪ txt‬فى النسخه ‪ txt‬يوجد اجرائين خد الجراء الول ونظفه من اى‬
‫سطور فارغه ونفذ من عند ‪ startup‬حتى عباره ‪ ; ALTER DATABASE OPEN‬الولى سقوم هو بانشاء ملف ‪contolfile‬‬
‫جديد وفتح قاعده البيانات‬
‫لكن ماذا اذا اردت استرجاع ملف بيانات او فضاء جدولى واحد فقط وقاعده البيانات مفتوحه‪:‬‬
‫لنفرض ان الفضاء الجدولى المراد استعادته هو ‪ system‬عليك بالتالى)ص ‪215‬الكتاب السود(‬
‫‪;Alter tablespace system offline normal‬‬
‫استبدل ملفات البيانات المرتبطه بالفضاء الجدولى ‪ system‬فى هذه الحاله‪.‬‬
‫‪;Set autorecovery on‬‬
‫‪;Alter database recover tablespace system‬‬
‫‪;Alter tablespace system online normal‬‬

‫لتشغيل اوراكل بدون مشاكل مع المنصت عليك بالتالى‪:‬‬

‫اجعل منصت واحد فقط فى ‪ service‬وحزف جميع المنصتات الموجوده باستخدام ‪regedit‬‬
‫حاول جعل ملف ‪ listener.ora‬على الصيغة التاليه‪:‬‬
‫‪= LISTENER‬‬
‫)‪= DESCRIPTION_LIST‬‬
‫)‪= DESCRIPTION‬‬
‫)‪= ADDRESS_LIST‬‬
‫)‪((ADDRESS = (PROTOCOL = TCP)(HOST = tarek2)(PORT = 1521‬‬
‫(‬
‫(‬
‫(‬
‫‪= SID_LIST_LISTENER‬‬
‫)‪= SID_LIST‬‬
‫)‪= SID_DESC‬‬
‫)‪(GLOBAL_DBNAME = orcl1.world‬‬
‫)‪(ORACLE_HOME = C:\oracle‬‬
‫)‪(SID_NAME = orcl1‬‬
‫(‬
‫)‪= SID_DESC‬‬
‫)‪(GLOBAL_DBNAME = orcltaha.world‬‬
‫)‪(ORACLE_HOME = C:\oracle‬‬
‫)‪(SID_NAME = orcltaha‬‬
‫(‬
‫(‬
‫على اعتبار ان الجزء الثانى يجب ان يشمل لكل قاعده بيانات ‪ sid_desc‬مختلف انظر الى السابق جيدا‬
‫اذا ارد عدم تشغيل الكمبيوتر مره اخرى افعل التالى‪:‬‬
‫اذهب الى ‪ dos‬ثم اكتب فى خطوات منفصله‪:‬‬
‫‪lsnrctl‬‬
‫‪stop‬‬
‫‪start‬‬
‫بعد ذلك تاكد ان كل ما فعلته جارى تشغيله وذلك بكتابه عباره‪:‬‬
‫‪status‬‬
‫سيظهر عباره تشغيل الخدمات لقواعد البيانات )تاكد جيدا من ظهور اسماء الخدمات(‬
‫تمت‬
‫اذا اردت تشغيل الكمبيوتر فشغله ولن تحتاج الى الجراءات السابقه فقط تاكد من وجود منصت وشغال‬
‫اذا اذدات المور سوء اذهب الى وشغل التالى ‪oracle\bin\tnslsnr.exe‬‬
‫موضوع تحويل ملفات تقارير اوراكل الى ملفات اكسل‬
‫هذا الموضوع شيق للغايه فانت بعد التحويل ستحصل على ملف ذو امتداد ‪ xls‬كملف اكسل والطريقة كالتى‪:‬‬
‫الحصول على الداه ‪ Rep2excel‬وهى تابعه لوراكل ستجدها فى ‪ our_files‬ويجب ان تضع فولدرها بالكامل على السى لنها تحتاج‬
‫لهذا الفولد )ملحوظه الداة تحتاج الى تسجيل وشراء لن المرفق نسخة تجريبية(‬
‫هذه الداة تحول ملفات ‪ htm‬التى تم توليدها من التقارير ول تتعامل مباشره مع الملفات ذات المتداد ‪) rep‬من الممكن تحويل‬
‫ملفات ‪ rep‬او حتى ‪ rdf‬الى ‪ htm‬مباشرة من خلل الدوس( ‪..‬فقط اكتب هذا الكود على الدوس وسيقوم بتحويل الملف ‪ rep‬او‬
‫حتى ‪ rdf‬الى ‪....htm‬؟‬
‫‪c:\orant\bin\rwrun60.exe report=c:\wer.rep userid=scott/tiger@orac destype=file‬‬
‫‪desformat=html desname=c:\dara.htm batch=yes‬‬
‫بهذا الكود تستطيع تخليق ملف ‪ htm‬مباشرة من ملفات تقارير اوراكل‬
‫بعد ذلك شغل الداة كاتالى اذهب عن طريق الدوس الى موقع الداة فى الفولدر ثم اكتب‪:‬‬
‫‪Start Rep2excel –i:c:\dara.htm –o:c:\nara.xls‬‬
‫اجرى على السى لترى ملف ‪ nara.xls‬قد تم تخليقه شغله ستجد اكسل تعرف عليه)يجب انشاء كود لو اردت استعمال ‪forms‬‬
‫بالمناسبه يوجد دالة فى ‪ plsql‬اسمها ‪ host‬تشغل العبارات على ‪ dos‬مباشرة مثل‬
‫‪)Host‬‬

‫متعلقات الدوس ‪DOS‬‬


‫اذا اردت معرفة الداريف اللى انت واقف علية وليس كل المسار استعمل ‪ %CD%‬فى ملف الباتش‬
‫اذا اردت معرفة مسار فولدر الديسكتوب استعمل ‪ UserProfile%\desktop%‬فى ملف الباتش‬
‫اذا اردت معرفة مسار فولدر الويندوز استعمل ‪ %systemroot%‬فى ملف الباتش ستجد باقى الوامر فى ‪system‬‬
‫‪ parameter‬فى ‪227‬‬
‫"" ل تنسى دائما ان معظم المسارات تحتوى على فراغات وللسيطرة عليها ضع المسار بين‬
‫اذا اردت نسخ ملف من موجه الوامر فى ‪ dos‬الى مكان هدف وكان هذا الملف اصل)قديم( موجود فى الهدف فاستعمل المر‬
‫التالى الذى يمكنك من اجراء المر بدون سؤال هل انت متأكد ؟‪)(:‬راعى وجود‪)(Y/‬وثيقه‪(20/2005‬‬
‫‪copy c:\sara.txt c:\oracle\sara.txt /y‬‬
‫كذلك بالنسبه للحزف وتحريك الملفات من مكان الى اخر‬
‫راعى هنا ان ‪ /q‬وضعت مكان ‪ y/‬فى ‪copy‬السابق‬ ‫‪*.*\del /q c:\oracle\soha‬‬
‫‪move /y c:\oracel\soha\*.* c:\oracle\soha\old_arc‬‬
‫اذا اردت توجيه مخرجات اى امر فى ‪ DOS‬وليكن مثل امر الستعراض ‪ dir‬الى ملف فاستعمل التى‪:‬‬
‫)هذا المر يضع مخرجات ‪ dir‬فى و ينشئ الملف‪ maha‬ولكن اذا كان موجود يزيل‬ ‫‪DIR > C:\MAHA.txt .1‬‬
‫القديم وينشئ جديد(‬
‫)هذا المر ينشئ الملف‪ maha‬ولكن اذا كان موجود يضيف الى القديم البيانات الجديده(‬ ‫‪DIR >> C:\MAHA.txt .2‬‬
‫)يوجه المخرجات مباشره الى الطابعه(‬ ‫‪Dir >prn .3‬‬
‫)هذا المر ل يظهر المخرجات على اى جهه اى ل الى الشاشه ول الى الطابعه ول‬ ‫‪Dir >nul .4‬‬
‫الى ملف(‬
‫المر ‪FOR‬مخصص لمعالجه الملفات والفولدرات فقط* فمثل المر التالى سوف يزيل اى ملفات على ‪ dir‬القل من البايتات‬
‫المعطية مثل)‪(41‬بايت)يجب وضعه فى ملف باتش فايل‬
‫‪(FOR %%F IN (*.*) DO (IF %%~zF LSS 41 DEL %%F‬‬
‫‪(FOR %%F IN (*.*) DO (TYPE %%F‬‬
‫‪(FOR %%F IN (C:\*.*) DO (TYPE %%F‬‬
‫بخصوص ملف الباتش فايل والبارامترات الممره اليه هذا الباتش يشمل الكود التالى‪:‬‬
‫‪Set sara=tarektaha‬‬
‫‪Echo %sara%%1%2‬‬
‫شرح الكود‪:‬هنا عرفت متغير داخلى اسمه‪ sara‬وشحنته ب عباره‬
‫الكلمه ‪ echo‬تطبع المخرجات‬
‫لكى افرغ المتغير ‪ sara‬يجب وضعه بين‪%%‬‬
‫العباره ‪ 1%‬او ‪ 2%‬او ‪ 3%‬وهكذا عباره عن المتغير الول والثانى والثالث عند استدعاء الباتش لذلك عند استدعاء هذا الكود‬
‫‪ sam.bat‬لذلك نتوقع ان تكون المخرجات كالتى‪:‬‬ ‫المعرف مثل فى الملف ‪sam.bat hala ali‬‬
‫‪Tarektahahalaali‬‬
‫عبارة ‪ if‬تكتب بهذا الشكل‬
‫‪if %1==100 ddddddd‬‬
‫و‪ ddddd‬هو المطلوب تنفيذه‬
‫ملف ‪ msg.exe‬يمكنك من ارسال رساله طبق الصل من‪ MessageBox‬فى لغه السى ويجب ان تاخذ الصيغة‬
‫التاليه‪:‬‬
‫‪”Msg.exe * /SERVER:10.2.48.226 “please come to me urgently‬‬
‫لحظ لبد من * وليس ضرورى "" فى الرساله يمكنك حزفه‬
‫برنامج ‪ cmd.exe‬وهو ملف الدوس هذا الملف له متغيرات خطيره جدا فاحيانا عند الضغط عليه على سطح المكتب‬
‫يعطى وميض فقط ول يفتح باستخدام المر ‪ c:\cmd.exe‬فقط ولكن اذا اردت فتح ملف باستخدام هذا المر اكتب‬
‫المر على الصوره التاليه‪c:\cmd.exe /c c:\calc.exe:‬‬
‫او على الصوره التاليه ‪c:\cmd.exe /k c:\calc.exe‬‬
‫ولكن ما الفرق‪....‬؟ الولى تشغل الحاسبه ويخرج بمحرر الدوس‪...‬و الثانيه يشغل الحاسبه ويستمر معك الدوس‬
‫امر ‪ set‬من اوامر الدس التى تعمل داخل ‪ batch file‬فمثل‬
‫‪Set taha=c:\oracle‬‬
‫هنا اشحن المتغير ‪ taha‬بالقيمه ‪ \:c‬ولكى تشير الى المتغير دائما داخل الملف‪ batch‬استخدم العباره ‪%taha%‬‬
‫بخصوص المابنج‪map‬‬
‫لنشاء ماب استعمل الدالة التالية‬
‫‪Subst f: c:\taha‬‬
‫هنا سيمكنك من انشاء درايفر اسمه ‪ f‬علية ملفات هى موجوده حاليا تحت ‪ c:\taha‬ولكنك ستتعامل معها كما لو كانت موجودة حقيقى‬
‫على ‪f‬‬
‫‪ subst f: /D‬بالضبط هنا سيحزف الماب المسمى ‪f‬‬ ‫اذا اردت حزف هذا الماب كل ما عليك هو‬
‫‪Net use z: \\100.116.100.60\lsn /user:administrator 1111‬‬
‫لتعريف طابعة من على جهاز اخر عرف اول ايقونه الوصول الى الطابعه من خلل ‪ printers and faxes‬وللحصول الى توصيل‬
‫فى كل مرة يفتح بها الجهاز المتصل انشئ ملف باتش وضع فيه هذا المر التالى ثم ضع ملف الباتش بحيث يقرأه الجهاز فى كل مرة يعيد‬
‫التشغيل فيها‬
‫‪Net use LPT1: \\100.116.100.60\(tarek1printer‬اسم المشاركة للطابعة وليس اسم الطابعة( ‪user:administrator/‬‬
‫‪1111‬‬
‫‪Net use LPT1: \\100.116.100.60\tarekprnt /user:administrator 1111‬‬
‫‪ Net use LPT1: /delete‬لحزف الوصول‬
‫الموضوع السابق للطابعة ولكن اذا كان موجود ملف مشاركه على السيرفر واردت فى كل مره تفتح فيها الزبون يؤمن التصال بالسير فر‬
‫ماذا تفعل ؟ ضع الكود التالى فى باتش ثم ضعه فى قائمة ‪starttup‬‬
‫‪Net use z: \\100.116.100.27 \fileshare /user:administrator 1111‬‬
‫هذا الكود سيؤمن لك التصال بملف المشاركه الى اسمه ‪ fileshare‬ويضعه ك ماب ‪ Z‬على الكمبيوتر‪.‬‬
‫بالمناسبة اذا اردت فقط ان يتم فتح الوصول الى الجهاز الخر بدون عمل ماب او اى شى استعمل فقط التعبير‪::‬‬
‫‪Net use \\100.116.100.60 /user:administrator 1111‬‬
‫كيفية تجديد الوندوز واستبدال الملفات المعطوبة بملفات جديدة بهذه الطريقة‪:‬‬

‫‪Start‬‬
‫ثم أختيار أمر‬
‫‪Run‬‬
‫ثم تكتب المر‬
‫‪sfc /scannow‬‬
‫سيطلب منك ادخال اسطوانة الكس بى كما بالصورة‬
‫‪.10‬اذا اردت تشغيل صفحة ويب من خلل الدوس اكتب المر التالي‬
‫@‪start www.google.com‬‬

‫متعلقات التعامل مع ‪ CD ROOMS‬والكتابة عليه‬


‫يوجد ملف اسمه ‪ commandburn-setup.exe‬ملف تنفيذى هذا الملف يقوم بععمليات نسخ‪/‬حزف اضافة وجميع العمليات على ‪cd‬‬
‫‪ writer‬فقط صطب البرنامج واجعل الفولدر الساسى للبرنامج داخل فولدر البرنامج الساسى مثل اذا كان البرنامج ‪ medical‬صطب‬
‫البرنامج على الفولدر‪ c:\medical\cd_copy‬وهو فولدر ستجده دائما فى كل البرامج‪)...‬لقراءة ملف المساعدة ادخل الى الفولدر واكتب‬
‫‪?/ cmdburn‬‬
‫اذا اردت حزف جميع محتويات السى دى اكتب المر التالى ‪:‬‬
‫حيث الف هو درايف السى دى روم ‪Cmdburn f: erase /fullerase‬‬
‫اذا اردت نسخ ملف الى السى دى اكتب العبارة التالية‪:‬‬
‫‪cmdburn f: burn /d c:\medical /l taha /erase /eject‬‬
‫العبارة السابقة سيكتب محتويات الفولدر )لحظ ‪ (d/‬الى السى دى وستحزف القديم ثم تخرج السى دى‬
‫‪cmdburn f: burn /f c:\sara.txt /l taha /erase /eject‬‬
‫العبارة السابقة سيكتب الملف )لحظ ‪ (f/‬الى السى دى وستحزف القديم ثم تخرج السى دى‬
‫من المفضل عدم اضافى البارامتر ‪ hide/‬الى العبارات لكى يرى المستخدم عملية الكتابة على السى دى‬
‫متعلقات ‪FTP TRANSFER DATA‬‬
‫من اجمل ما يكون واسهل ما يكون وارخص ما يكون لكى تشغل ‪ FTP‬بين جهازين عليك بالتالى‪:‬‬
‫‪-1‬احد الجهزة سيكون ‪) SERVER‬اسم فقط( شغل التالى من اضافة البرامج‬
‫‪WIZARD WINDOWS COMPANENTS‬‬
‫ثم)‪FILE TRANSFER PROTOCOL(FTP‬‬
‫بعد ذلك سيطلب منك اسطوانة الويندوز طاوعه واكمل حتى ينتهى ‪..‬فى النهاية سينشئ لك فولد بالسم ‪ C:\Inetpub\ftproot‬على ‪C‬‬
‫لكى تتعامل مع السيرفر هذا سيكون هذا المكان هو وجهتك دائما ول غير فمثل اذا اردت نسخ ملف من السيرفر يعنى الملف موجود على‬
‫‪ C:\Inetpub\ftproot‬استعمل المر )‪ ( get tam.txt‬هذا المر سينقل الملف المزكور الى الدرايف ‪ c‬واذا اردت نقله الى فولدر اخر‬
‫عليك تشغيل ‪ ftp‬من داخل هذا الفولد لن مسار الملف ‪ tam.txt‬هو مسار ‪ftp‬‬
‫اذا اردت نقل ملف من الزبون الى السيرفر استعمل المر )‪(put tam.txt‬‬
‫اما اذا اردت نسخ فولدرات واشياء كهذه استعمل اوامر مثل ‪ mget‬و ‪mput‬‬
‫‪-2‬ملفات ‪ batch‬مع ‪ ftp‬كيف تكون المثال التالى افضل مثال ‪ ::‬ضع هذا السكربت فى ملف تكست ثم احفظ ك ‪sam.txt‬‬
‫‪open 10.2.48.226‬‬
‫‪administrator‬‬
‫‪1212‬‬
‫‪get file.txt‬‬
‫‪bye‬‬
‫اذا اردت تشغيل هذا الملف من محرر الدوس انتقل الى الفولدر المراد نسخ الملف اليه ليكن ‪ c:\taha‬ثم اكتب التالى‪::‬‬
‫‪ftp -s:c:\sam.txt‬‬
‫سيتم نقل الملف والخروج الى محرر الدوس وليس الى ‪ ftp‬لحظ ‪ bye‬فى الشفرة‬
‫بالمناسبة الملف ‪ sam.txt‬يمكن ان يكون فى اى مكان فقط حدد المسار‬
‫لكن ماذا اذا استعملنا ‪parameters‬؟؟؟؟؟؟؟؟؟؟؟؟‬
‫لم اجد طريقة لذلك ابدا ال نه يوجد سياسة اخرى هى انشاء ملف ‪ txt‬اثناء التشغيل لحظ الشفرة التالية‪::‬‬
‫بالختصار هى تدخل سطر سطر فى ملف التكست ثم تستدعيه فى السطر ‪ 6‬طريقة جميلة ومبسطة هيا نطبقها‬
‫\‪cd‬‬
‫ينتقل الى الفولدر المراد نسخ الملفات الية ‪cd taha‬‬
‫يحزف ملف التكست القديم ‪del c:\taha\tam.txt‬‬
‫يضع عبارة التصال ‪echo open 10.2.48.226>>c:\taha\tam.txt‬‬
‫يضع اليوزر نيم للسيرفر ‪echo administrator>>c:\taha\tam.txt‬‬
‫يضع الباسوورد ‪echo 1212>>c:\taha\tam.txt‬‬
‫‪echo get med.dmp>>c:\taha\tam.txt‬‬ ‫يضع عبارة النسخ‬
‫ينفز ملف التكست ‪ftp -s:c:\taha\tam.txt‬‬
‫‪ ftp‬يخرج من ‪bye‬‬

‫متعلقات ال ‪(registry(reg.exe‬‬
‫مجموعه المثله التاليه تعطى توضيح شامل لملف نظام التشغيل ‪ reg.exe‬تحت‪) DOS‬مستند رقم ‪(12/2005‬‬
‫بالضافه الى ان عمليتى ‪ SAVE‬و ‪RESTORE‬والتى تعنى تصدير واستيراد مفتاح وتخزينه فى ملف ذو امتداد ‪hiv.‬‬
‫هذا النوع ل يمكنك من رؤيه محتويات الملف مثل سابقه ذو المتداد ‪ REG‬كما يمكنك من تشغيل المر حتى على الرموت‬
‫معلومه‪:‬القسم اليسارى من المحرر يسمى مفاتيح حتى الفرعى منه اسمه مفتاح فرعى‪ ..‬اما القسم الموجود باليمن يسمى‬
‫قيم حيث يحتوى السطر على ثلث اشياء‪:‬اسم القيمة ونوع القيمة والقيمه نفسها‬
‫اذا اردت اضافه قيمه الى مفتاح استعمل التالى‪:‬‬

‫‪REG ADD HKLM\Software\MyCow /v tarek /t REG_Sz /d nada /f‬‬


‫هنا \‪ v‬تعنى اسم القيمه‪ t/..‬تعنى نوع القيمه)‪ REG_Sz‬تعنى انها من النوع ‪ string) ../d‬تعنى القيمه نفسها‪...‬تمكنك‬
‫من الضافه على الموجود ‪. f/‬؟يوجد انواع قيم كثيره ليس محل اهتمام الن‪.....‬‬

‫اذا اردت نسخ قيمه او مفتاح استعمل المر التالى ‪:‬‬


‫‪REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s /f‬‬
‫استعمل ‪ s/‬لنسخ جميع المفاتيح الفرعيه ‪..‬استعمل ‪ f/‬لعدم المطالبه بالزن اذا كان موجود البيان بالسابق‪.‬‬
‫اذا اردت تخزين المفتاح او القيمه الى ملف استعمل المر التالى‪:‬‬
‫‪REG SAVE HKLM\Software\MyCo c:\AppBkUp.hiv /y‬‬
‫اذا اردت استعاده الملف المذكور استعمل المر التالى‪:‬‬

‫‪REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv‬‬


‫اذا اردت الستعلم ومعرفه قيمه معينه لسم القيمه او حتى مفتاج‬
‫‪REG QUERY HKLM\SOFTWARE\SYMNTEC /v dara‬‬
‫السابق يستعلم عن قيمه موجوده فى المفتاح الفرعى ‪ ..sym‬حيث اسم القيمه هى ‪dara‬‬
‫اذا اردت حزف قيمه او مفتاح استعمل البيان التالى‪:‬‬
‫‪REG DELETE HKLM\Software\MyCo\MyApp\Timeout /va /f‬‬
‫يوجد ملف نظام اخر وهو ‪ REGEDIT.EXE‬فاذا اردت استيراد ملف ذو امتداد ‪ REG‬شغل المر التالى‬
‫‪ C>REGEDIT,EXE /S C:\SOHA.REG‬تمكنك ‪ S/‬من قبول العمليه دون سؤال من النظام‬

‫يوجد امر جميل جدا جدا وهو ‪ REGEDIT.EXE‬وتستطيع عمل الكثير مثل‬
‫اذا اردت تصدير مفتاح الى ملف ‪ REG.‬نفذ التالى‬
‫] ‪"REGEDIT.EXE [ /L:system ¦ /R:user‬‬ ‫‪/E‬‬ ‫‪exportfile "registry_key‬‬
‫حيث ‪ registry_key‬مسار المفتاح بالكامل‬
‫اذا اردت استيراد ملف ‪ REG.‬نفذ التالى‬
‫‪REGEDIT.EXE [ /L:system ¦ /R:user ] [ /S ] importfile.REG‬‬
‫حيث ‪ S/‬تعنى استورد بدون اسئلة‬
‫الفيروسات‬
‫ملحوظة ‪::1‬من افضل ما تم بخصوص الفيروسات برنامج الويندوز ‪ msconfig‬من ‪ run‬يمكنك من تشغيل احتياجات الويندوز فقط بدون‬
‫النظر الى برامج بدء التشغيل ومن بينها الفيروسات اكتب ‪ msconfig‬فى الرن ثم ‪ diagnostic startup‬الوبشن الثانى او اذهب الى‬
‫‪ startup tab‬واحزف ما تشاء من قائمة بدء التشغيل واعد تشغيل الكمبيوتر مرة ثانية ثم شغل النتيفيرس ‪------‬بعد ذلك يوجد برنامج‬
‫اسمه ‪ aida23_system_information‬يمكنك من استعراض حجم الزاكرة وكل شى عن الكمبيوتر‬
‫ملحوظة ‪::2‬الملف ‪ gpedit.msc‬هو المسئون عن اظهار ‪task manager‬‬
‫ملحوظة ‪::3‬قابلتنى مشكلة كبيرة ان شركة ما اطفئت الوصول الى تشغيل ‪ regedit‬لنه يوجد قيمة مفتاح على مسار قيمتها‬
‫‪ 1‬ولتشغيل الرجيسترى تكون ‪ 0‬فذهبنا وحزفنا المفتاح بالقيمه الفرعية هكذا‬
‫‪REG delete‬‬
‫‪HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System /v‬‬
‫‪DisableRegistryTools /f‬‬
‫وهكذا تم حزف المفتاح الذى يخزن قيمة الطفاء ويوجد طريق اخرى وهى تغيير القيمى الى ‪0‬‬

‫رررر رررررر رر ررررر ررررررررر‬


‫اذا تم التلعب بابشن الملفات المخفية وايضا ظهرت حروف غريبة عند كليك يمين يوجد ملف باتش يقوم نيابه عنك بتثبيت الريجسترى‬
‫الخاص بالملفات والمجلدات المخفية واصلح الكتابة الملف اسمه ‪ dis_hidden_file.bat‬فقط اضغط غليه‬
‫اذا تم اخفاء ‪ task manager‬ماذا تفعل ؟؟ بعد القضاء على الفايروس شغل ‪ run gpedit.msc‬وفى الشجرة اذهب الى‬
‫…‪User config.. and admin..temp.. and system and ctrl+alt‬‬
‫ثم غير ‪remove task.. to dosable‬‬
‫يوجد ملف جميل جدا لتثبيت وتمكين فتح ‪ regedit‬وهو ملف معمول بالبيذيك واسمه ‪to_enable_registry.vbs‬‬
‫‪-3‬ملحوظة مهمة‪:‬وجدت انه يوجد فيروسات تقوم بتغيير مفات فى الريجسترى لمنع ظهور اعداد الفولدرات ‪ folder option‬وكان الحل‬
‫هو هذا المفتاح ‪::‬‬
‫]‪[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer‬‬
‫]‪[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer‬‬
‫‪Value Name: NoFolderOptions‬‬
‫)‪Data Type: REG_DWORD (DWORD Value‬‬
‫)‪Value Data: (0 = show options, 1 = hide options‬‬
‫ررررررر ‪forms&reports developer‬‬

‫ملحوظة بسيطة ‪:1‬عند عمل جدول فى التقارير وكان فيه حقل اطول من الخر وكان الحل ان تنشئ خط ثم خصائص ثم اختار ‪line‬‬
‫‪ strich with frame‬بعدها اختار البلوك الواجب ان يتمط عليه الخط‬
‫ملحوظه ‪ :2‬عند استخدام الباكتج ‪ win_api_dialog‬عليك اول وضع ملف ‪ d2kwut60.dll‬فى ‪ orant\bin‬هذا بعد اتاتش‬
‫‪d2kwutil.pll‬‬
‫اذا اردت انشاء شورت كت)‪ (short cut‬على ‪ desktop‬مع وجود اسم‬
‫مستخدم وكلمه سر لملفات الفورم والتقارير فاعمل التى‪:‬‬
‫‪ rclick‬على سطح المكتب ثم واصل مع المعالج بعد انشاء اليقونه فعل الخصائص ثم غير كل الهدف مثل المثال التالى هذا مع التقارير‬
‫ويمكن يكون مع النمازج‬
‫‪C:\orant\BIN\RWRUN60.EXE D:\rep_to_khal3.rep pers/appl4@makdb1‬‬
‫بخصوص ‪ developer 9i‬واجهتنى مشكله رساله تظهر بعد تشغيل ‪ start oc4j‬ستظهر رساله عن ‪active x‬ولعلج المشكله‬
‫ازهب الى ‪ internet exp;or‬وكليل يمين ثم اختار ‪ security‬وفيها اضغط على ‪ custom level‬و‪ enable‬لكل عبارات‬
‫‪active x‬‬
‫بخصوص التاريخ على الفورم‪..‬يمكنك وضع التاريخ باستخدام ‪ activex‬واستخدام الداه ‪ picker‬الشهيره ولكن عليك تسجيلها فى النظام‬
‫حيث يوجد ملف ‪ MSCOMCT2.OCX‬الخاص بها على اسطوانه ‪ visualc‬وتعرف باسم ‪Microsoft date and time picker‬‬
‫وتعرف حين تدرج دواله باسم‪. mscomctl2.dtpicker or 2‬يوجد على ‪ ourfiles‬فولدر اسمه_‪ oracle‬عليه ملف ‪dll‬‬
‫وملف ‪fmb‬‬
‫بخصوص الطباعة‬
‫اعدادات الطابعة واخراج تقرير ممتاز على ‪ A4‬بعرض الصفحة اتبع الخطوات التالية‪:‬‬
‫بعد اعداد التقرير على ‪ BUILDER‬اذهب الى ‪ NAVEGATOR‬للبانى ثم قف على التقرير الساسى ثم خصائص‬
‫غير‬
‫‪ UNIT OF MEASUR‬الى ‪ CENTEMETER‬لكى تكون ابعادك كلها بالسنتيمتر‬
‫اذهب الى ‪ system parameters‬واختار ‪ orientation‬ثم مواصفات ثم غير ‪ initial value‬الى‬
‫‪landspace‬‬
‫تحت ‪ LAYOUT MODE‬ثم ‪ MAIN SECTION‬وعليها خصائص غير التى‪WIDTH=29 AND...‬‬
‫‪ HEIGHT=20‬وايضا‬
‫للظهور الجيد للفونت عدله الى ‪ 11‬عند فتح ‪ RUNTIME‬ولطلب الطباعه ادخل الى ‪ PAGE SETUP‬وضع العدادات التالية‪:‬‬
‫ايسر=‪0.1‬‬ ‫ايمن=‪0.35‬‬
‫سفلى=‪ 0.106‬علوى=‪0.1‬‬
‫بخصوص وضع ‪ portrait‬يجب ضبط التقرير يدوى يعنى عليك اقصى عرض)اخر حقل (على قيمة ‪ 20‬ستراها اسفل الصفحة‪.‬‬
‫ملحوظة‪:‬عند رسم مستطيل مثل على ‪ header‬الصفحة ل يظهر ال فى الول ولجعله يظهر دائما على كل الصفحات ازهب الى‬
‫‪ property‬المستطيل ثم غير ‪ print object on‬من ‪ first page‬الى ‪all pages‬‬
‫للحصول على طباعة مضبوطة ‪ A4‬بالطول نفذ التالى‪:‬‬
‫اضبط ‪ edit margin‬حتى يصبح فى اول الصفحة ثم صغره ليصبح عند ‪) 20.19‬قف بالماوس على اخر المارجن(‬
‫ثم حاول ضبط الحقول بداخل المارجن ل اكثر ول اقل‬
‫للحصول على طباعة مضبوطة ‪ A4‬بالعرض نفذ التالى‪:‬‬
‫اضبط ‪ edit margin‬حتى يصبح فى اول الصفحة ثم صغره ليصبح عند ‪) 28.87‬قف بالماوس على اخر المارجن(‬
‫ثم حاول ضبط الحقول بداخل المارجن ل اكثر ول اقل‬
‫تتتتت تتت تتتتتتتت تتتتتتت‬
‫من المعلوم ان هذه الطابعات تطبع وتقف عند المكان التالى للطباعة واذا لم يكن طول الورق مناسب للطول الفتراضى للطابعة فلن‬
‫تقف الطابعة على بداية قطع الورق وهو المكان الواجب ان تقف عندة الطابعة استعدادا للطباعة اذا تم طباعة الورق وكان الفتراضى‬
‫للطباعة غير مناسب مع الورق ماذا تفعل‪........‬؟‬
‫شغل الكمبيوتر ثم ‪ start‬ثم ‪ setting‬ثم ‪printers and faxes‬‬
‫من التولبار اضغط ‪ file‬ثم ‪ server properties‬يوجد فى المربع ‪ list items‬هذه الصناف هى التى تحدد طول وعرض الفرم‬
‫التى ستطبعها الطابعه المهم اذهب الى ‪ … Envelop‬واختار البعاد القريبة من المطلوب ثم اشر عليه ثم تشيك على ‪create a‬‬
‫‪ new form‬هنا سيقوم باضافة فورم جديد بالبعاد السفلية )اضبطها على اختيارك( ولكن ل تغيير اسم الفورم لنه ‪ standard‬حاول‬
‫فقط تغيير البعاد فى اسم الفورم فقط لنك لو غيرت السم سيضيفة ولكن ‪ page setup‬لن تعترف به‬
‫بعد ذلك اذهب الى ايقونه الطابعه ثم علم عليها ثم خصائص تحت التاب )عام( يوجد الزر ‪ printing periferance‬ثم اختار الزر‬
‫‪ advances‬ثم اختار من ‪ paper size‬الفورم الذى طوله ‪ 14‬سم‬
‫وغير اعداداتها الى الفورم الجديد او من داخل تصميم تقرير اوراكل وسلمتك‬
‫معلومة جديدة ونار‪:‬يوجد دالة اسمها ‪ win_api_dialog.select_printer‬هى المسئولة عن اظهار مربع يظهر كل الطابعات‬
‫الموجودة فى الجهاز ولن يتطلب المكتبة ‪ D2kwutil.pll‬ويجب ان يكون الملف ‪ d2kwut60.dll‬تحت ‪ orant\bin‬المهم‬
‫ستحتاج لكى تضع اسم طابعة افتراضية الى ملف دوس اسمه ‪ prnmngr.vbs‬والطريقة هى‪:‬‬
‫"‪cscript c:\marshal\lib_ws\prnmngr.vbs -t –p "epson1300‬‬
‫بعدها سيقوم بجعل الطابعة المذكورة افتراضية‪.‬يوجد مثال حى فى ‪ setuation.fmb‬فى مشروع التأجير‬
‫بخصوص تقرير ‪ master-detail‬يوجد ملحظات‪:‬‬
‫بفرض وجود كود للماستر وكود ديتيل فى حاله ان جدول الماستر ليس له قيمه بدون الديتيل مثل ‪..‬فاننا نتبع التالى‪:‬‬
‫نشغل معالج التقرير ثم نختار ‪ group above‬ثم نعمل على الديتيل ونختار الكود‪ code‬مثل ثم نستمر‪.....‬‬
‫فى صفحه ‪ report editor‬نضغط على‪ sql query‬ثم نكتب استعلم لجلب بيانات الماستر مع اضافة ‪ where‬الى الماستر‬
‫كى نختار كود معين ‪..‬بعد ذلك اضغط على علمه ‪ data link‬ووصل بين كود الماستر الى كود الديتيل‬
‫هنا نستطيع توسيع المنطقه التى بها الكود‪ code‬لتشمل كل حقول الماستر كلها وليس هناك حاجه للربط بين كود الماستر وكود‬
‫الديتيل لنه تم ربطهم ب ‪ data like‬الخط ‪..‬كمل تصميم التقرير كما سبق ولكن يوجد حاله اخرى‪...‬‬
‫هذه الطريقه لم نضع لها اعتبار من قبل حيث ان الحاله السابقه تفترض ان جدول الماستر ليس له قيمه بدون الديتيل ولكن ماذا اذا‬
‫كان الماستر له قيمه توضع فى العتبار مثل مثل الجهزه التى لها ملحقات فلبد من وضع ماستر )الجهزه( وديتيل)الملحقات(‬
‫وسواء يوجد ملحقات او ل يوجد فانه يوجد قيمه للماستر‪...‬ماذا نفعل؟؟؟؟؟؟؟؟؟؟؟‬
‫اتبع الخطوات السابقه من ‪ 1‬حتى ‪ 4‬بعدها‪.....‬‬
‫شغل المعالج‪ report wizer‬فى صفحه اختيار حقول الجروب اضف اليه كود الماستر‬
‫بعد ذلك اضف حقل الكود الى ‪ display‬ثم اكمل المعالج‪..‬‬
‫فى تصميم التقرير )وليس فى المعالج( احزف مسمى الحقل والحقل ‪ code‬التابع ررررررر من التصميم‬
‫لحظ انك لو شغلت المعالج سيعود الكود مره اخرى ‪.....‬وسع المساحه التى بها الكود للماستر لتتسع لكبر عدد من حقول‬
‫الماستر‪.....‬انتهي‬
‫طريقه وضع العبارة التى يجب وضعها فى نموزج معاملت التقرير‬
‫‪select null,null from dual union all‬‬
‫‪select dname,to_char(code) from w_drivers‬‬
‫‪order by 1‬‬
‫يجب ان يكون الحقول المختارة كلها ‪ char‬واذا وجدت حقول ‪ num‬او ‪ date‬تحول الى ‪char‬‬
‫ضع فى العتبار ان اول الحقول المختارة وهنا هو)‪ (dname‬هو الذى سيتم وضعه فى البارامتر‬
‫لبد من ‪union all‬‬
‫اذا اردت الفهرسة على اعتبار الترتيب من ‪ a--z‬يجب وضع عبارة ‪ order by 1‬فهى ستجبر نتائج العبارة الى الترتيب‬
‫موضوع ‪ dlist‬التسلسل فى التقرير ذو المجموعات‬
‫انشئ متغير بارامترى مثل ‪ p_list‬رقمى‬
‫انشئ ‪ r_list‬كما لو كان تسلسل عادى وصفره رقمى‬
‫ضع الكود التالى فى كود ‪r_list‬‬
‫حيث ‪ work_owner‬هو الجروب‬
‫‪begin‬‬
‫;‪if (nvl(:p_list,0)=nvl(:work_owner,0)) then return :r_list+1‬‬
‫;‪else :p_list:=:work_owner;if (:r_list=0) then return 0;else return 1;end if‬‬
‫;‪end if‬‬
‫;‪return 0‬‬
‫;‪end‬‬
‫كيف يمكن الستفادة من المفاتيح الوظيفية ‪ key functions‬فى ‪forms‬‬
‫مبدئيا ل يوجد تريجر يقوم بهذه الوظيفة‪ ..‬بحثت فى ذلك‬
‫لكى توجد وتغير المفاتيح الوظيفية كلها يوجد برنامج فى الدفولوبر يقوم بذلك ولبد منه واسمه ‪oracle terminal‬‬
‫كما يوجد ملف اسمه ‪ fmrusw.res‬وهو الملف المخزن به افعال المفاتيح الوظيفية‬
‫قم اول بفتح ‪ oracle terminal‬من قائمة ابدأ ثم من قوائم الديفولوبر فى البرامج وهو مع ‪project builder‬‬
‫بمجرد فتح البرنامج سيطلب منك الملف المخزن فية افعال المفاتيح الوظيفية اتجه الى ‪c:\orant\bin\forms60\fmrusw.res‬‬
‫هذا هو المسار ‪..‬سيظهر لك مربع ابيض اضغط على ‪ K‬بعدها سيظهر لك مخطط ‪ ..key binding‬اختار ‪ normal‬ثم اضغط على زر‬
‫‪ edit key binding‬الموجود يمينا‪..‬هنا سيظهر المفاتيح والوظيفه المقابلة لها ‪..‬هل تريد جعل المفتاح ‪ F11‬يقوم بالطباعة؟حسنا‪..‬اضغط‬
‫على زر ‪ INSERT ROW‬الموجود يمينا سيأتى لك سطر جديد اضف فيه ‪F11 Print‬‬
‫بعد الجراء اعمل ‪ ok‬بعدها ثم ‪ ok‬مره اخرى‬
‫يوجد زر مثل ماكينه الطحين باللون الخضر اضغط علية وتأكد بان رسال النجاح ظهرت‬
‫بعدها قم ب ‪ file and save‬لحفظ التغييرات فى ملف ‪ fmrusw‬الذى قمت بفتحه من قبل فاكر؟؟‬
‫الخطوة الهم من ذلك انه عندما تريد ان يقوم البرنامج بقدح اجراء ‪ print‬عند الضغط على ‪ f11‬يجب ان تنسخ الملف ‪fmrusw.res‬‬
‫الى المسار ‪ c:\orant\bin\forms60\fmrusw.res‬فى ‪ orant‬على كل الكلينت ودمتم‪.‬‬
‫نحن لم نصل للن الى كيف يمكن تنفيذ طباعة ملف تقرير ؟‬
‫عند الضغط على ‪ F11‬سيتم ظهور شاشة طباعة الصفحه وهو نتيجة تنفيذ المر ‪print‬‬
‫يوجد تريجر وهو ‪ key-print‬هذا التريجر عند فتحه يمنع تنفيذ المر ‪ print‬وتستطيع وضع اى امر مهما كان في الكود بتاعه مثل طباعة‬
‫ملف مباشرة الى الطابعة او حتى عرض اى نموذج‪ .‬ودمتم‪...‬‬
‫متعلقات ‪installation for oracle‬‬
‫اذا لم تستطع تشغيل تحميل اوراكل ويقفل بعد الفتح دائما حاول اذاله كل متعالقات الفولدر مثل)‪ (orant‬واذا كنت محمل قاعده بيانات‬
‫على النظام ولها رجيسترى‪ oracle‬فافعل التالى‪:‬صدر من الرجيسترى ‪ oracle‬ثم احزف ‪ oracle‬من الرجيسترى ثم شغل معالج‬
‫التحميل وفى صفحه انشاء فولدر الدفولوبر مثل اذهب سريعا الى الرجيسترى ورجع ما صدرت بعد الطمئنان على الستيراد واصل مع‬
‫المعالج بقيه تحميل الدفيلوبير‬
‫متعلقات النظام‬
‫اذا اردت تحميل اوراكل على ‪win xp‬عليك اللتزام بالتى‪:‬‬
‫‪ Control panel-regonal option‬حوله كله الى ‪English‬‬

‫متعلقات ‪ODBC‬‬
‫يحتوى شاشة المحرك على ‪: TAB 7‬‬
‫‪ USER DSN‬يوضع فيه الوصلت التى تخص المستخدم الحالى فقط ول تظهر عند المستخدمين الخرين‪.‬‬
‫‪ SYSTEM DSN‬يوضع فيها الوصلت التى تخص النظام ول يصل اليها المستخدمون ال بصلحيات‬
‫‪ File dsn‬يوضع فيه وصلت توضع على صوره ملف على مثل السى ‪ :c‬وهو الفضل لكى يستطيع جميع المستخدمين الوصول اليه‬
‫من ‪ 4‬حتى ‪ tab 7‬مجرد معلومات فقط‬
‫لك كل الختيار فى عمل الوصلت الثلث السابقه وكلها واحد مع الفرق المزكور‪..‬الن سنعمل وصله لوراكل‪..‬‬
‫معنى الوصله انك تعمل اتصال باسكيما فقط‬
‫باستخدام‪ tab user dsn‬اضغط ‪ add‬سيظهر لك قواعد البيانات اختر مثل ‪.…Microsoft odbc for oracle or oracle in‬‬
‫وياريت تستخدم الختيار الثانى لنه متأكد من وجود قاعد البيانات –ثم ‪ finish‬سيظهر مربع حوار اكبر‪..‬‬
‫اكتب فى ال ‪ data sorce name‬اسم الوصله مثل ‪salam‬‬
‫‪ Description‬مجرد كلمات للوصف والهميه‬
‫‪ Tns service name‬اكتب اسم المثال)‪(orcl‬‬
‫‪ Userid‬مثل ‪scott‬‬
‫يمكنك جعل الوصله فقط للقراءه وذلك بتنشيط ‪chick read only conn‬‬
‫اضغط ‪ ok‬لكى تنشئ الوصلة‪.‬‬
‫ستظر الوصله الن فى الصندوق‪.‬‬
‫الن كيف يمكن تصدير جدول فى ‪ access‬الى ‪..oracle‬‬
‫فى البدايه اذهب الى وصف حقول الجدول ثم غير كل الحروف الصغيره مهما كانت الى حروف ‪. CAPITAL‬‬
‫حاول ان تجعل بيانات الجدول ل تحتوى على حروف غير مسموح بها فى اوراكل‬
‫افتح ‪ access‬وثم قف على الجدول المطلوب تصديره ثم كليك يمين واختار ‪ EXPORT‬سيظهر مربع مثل مربع فتح الملف ‪..‬‬
‫من اخر حقل مكتوب فيه ‪ SAVE AS TYPE‬اختار ‪ ODBC DATABASE‬بمجرد ذلك سيظهر مربع حوار يطالبك بادخال اسم‬
‫للجدول فى اوراكل )يجب ان يكون حروف كبيره لو سمحت( بعدها سيظهر حوار خاص بالمحرك به ‪ TAB 2‬حدد اسم الوصله سواء فى‬
‫‪ TAB FILE‬او ‪ TAB MACHINE‬اختار الوصله من اى منهما ثم ‪ OK‬سيظهر لك مربع حوار خاص باوراكل‬
‫ادخل اسم الخدمه مثل ‪ ORCL‬ثم اسم المستخدم ثم كلمه المرور مثل) ‪ (SCOTT/TIGER‬بعدها ‪OK‬‬
‫اذهب الى ‪ ORACLE‬واطمئن على وصول وانشاء الجدول‬
‫اذا ظهر الجدول فى عباره ‪ SELECT ..TAB‬ول تستطيع عمل ‪DESC OR SELECT DATA‬عليه عليك حزفه لنه فاسد ول‬
‫يصلح للتعامل والحل ستجده فى وصف الحقول والواجب ان تكتب بحروف كبيره او فساد فى البيانات‪.‬‬

‫حزمة ‪PS_TOOLS‬و حزمه‬


‫يعمل جميعه على ‪ DOS COMMOND‬سنعطيك معظم اوامره مع ‪OPTIONS‬له‪:‬‬
‫اذا اردت انهاء برنامج موجود على ‪ Remote Computer‬استخدم‪:‬‬
‫‪PSKILL –T \\TAREK2 -U SARA –P TAREK1305 CALC.EXE‬‬
‫يمكنك استبدال اسم الجهاز بال ‪)IP‬ل تستخدم مسار مع اسم الملف لنه يتعامل مع البرامج المحمله فى الزاكره—ولن مثل ملفات ‪FMX‬‬
‫يديرها برنامج مثل ‪ ifrun60.exe‬فاذا كنت فتحت اكثر من ملف ‪fmx‬فلكى تقفلها كلها اقفل فقط ‪( ifrun60.exe‬‬
‫اذا اردت تشغيل ملف ‪ exe‬على ‪ Remote Computer‬استخدم المر التالى)يراعى تحديد المسار هنا(‪:‬‬
‫‪Psexec \\tarek2 –u sara –p tarek1305 -i c:\calc.exe‬‬
‫لحظ هنا _‪ i‬فهى تعنى اظهار البرنامج واذا حزفتها سيشغل لك البرنامج فى الزاكرة فقط‪.‬‬
‫‪Psexec \\tarek2 –u sara –p tarek1305 -i –d c:\calc.exe‬‬
‫وضعنا هنا –‪ d‬لنه فى الدوس يظل المحرر ينتظر قفل البرنامج على الرموت ولكن هنا ل ينتظر‬
‫‪Psexec \\tarek2 –u sara –p tarek1305 -i -d –c calc.exe‬‬
‫هنا وضعنا –‪ c‬يقوم هذا العداد بنسخ مثل البرنامج)‪ (calc.exe‬الى الرموت وعلى اعتبار ان مسار البرنامج هو مسار ‪ psexec‬على‬
‫الجهاز الحالى )ليس الرموت(‬
‫بالمناسبه يمكنك تشغيل ‪ cmd‬للرموت عندك على الجهاز الحالى وتقوم تقريبا بكل شئ شغل المر التالى‪:‬‬
‫‪psexec \\tarek2 –I cmd.exe‬‬
‫سينشأ محرر الدوس ولكن على الرموت افعل ما بدا لك كما لو كنت على الرموت وجالس عليه‪:‬‬
‫اذا استعملت المر الحالى سيجلب لك بيانات الجهاز بالكامل بما فيها البرامج المحمله ‪:‬‬
‫‪Psinfo \\tarek2 –h –d –s‬‬
‫هذا المر يمكنك من تغيير كلمه السر لى جهاز )رموت(‬
‫‪Pspasswd \\TAREK2 -U SARA –P TAREK1305 administrator tarek1305‬‬
‫هذا المر يغير رقم سر الحساب وليس فقط ‪( admin‬حيث ‪ sara‬احد حسابات الرموت ويجاورها رقم السر اما ‪ …adm‬التالى فهو احد‬
‫الحسابات المراد تغيير رقم السر له‬
‫اذا اردت قفل الجهار)رموت( فاستخدم التعبير التالى مع المفاتيح‪:‬‬
‫‪Psshutdown \\tarek2 –u admnistrator –p tarek13051971 -f‬‬
‫‪Psshutdown \\tarek2 –u admnistrator –p tarek13051971 -f or a or c or d or e or h or k or I or m or‬‬
‫‪(n‬‬
‫اذا استعملت هذا المر سيعطى لك اسم الجهاز فهو سيعطيك اسم الجهاز اذا ادخلت الى بى واذا ادخلت اسم الجهاز سيعطيك الى‬
‫بى‬
‫ملحوظه قبل انها ‪ ::::ps‬الحرفين \\ عند استعمالهم داخل كود السى يجب ان يكونو \\\\ مثل عند كتابة \\‪ tarek2‬يجب ان يكتب‬
‫\\\\‪ tarek2‬ذلك فى السى فقط‪.‬‬
‫‪Hostname 100.117.100.60‬‬
‫حزمه ‪ XXCOPY‬تمكنك العباره التاليه من نسخ ملف)فولدر( من جهاز محلى الى جهاز رموت اخر‪..‬‬
‫‪XXCOPY DARA.TXT \\TAREK2\c$\orant /option‬‬
‫لحظ هنا ان ‪$S‬المزكوره تعنى الدرايف ‪ C‬وهذا التعبير لبد منه لكى يتعرف المر على الدرايف‬
‫‪Option is‬‬
.. ‫ لقبول او منع اى اختيارات‬Y/
‫لقبوى او منع جميع الخيارات لكى ل يحتاج المستخدم للضغط على النتر‬.YY/
‫ نسخ جميع الفولدرات الفرعيه‬S/
‫لنسخ حتى الملفات المخفيه‬H/
‫جمع جميع الملفات حتى التى فى الفولدرات الفرعيه تحت فولدر واحد‬SG/
150 ‫<نسخ الملفات التى حجمها اقل من او يساوى‬SZ:-<150/

Swit
Purpose
ch
Also copies system or hidden files H/
Only copies system or hidden files Ho/
Allows read-only files to be overwritten or deleted R/
Back up only new files BN/
/
When <date> is specified, this copies files that were DA:<
changed on or after that date date
<
/
When 'n' is specified, this copies files that were changed on
DB#
or before 'n' days ago
<<n
/
When 'n' is specified, this copies files whose size (in bytes)
SZ:<
'in greater than 'n
-<n
When 'n' is specified, this copies files whose size (in bytes) SZ:-/
'in less than 'n <<n
Copies directories and subdirectories, except empty ones S/
Copies directories and subdirectories, including empty ones E/
Flattens subdirectories, and includes path information in the
SX/
new file names
Shows a progress bar for the copy PB/
Can be used to exclude files during when copying X/
Keeps file attributes the same as in the source directory K/
Updates files already found in the destination folder U/
Gathers files from subdirectories into a single directory SG/
/
Duplicates an entire directory or volume incrementally CLO
NE
Standard backup BU/
Incremental backup BI/

‫ وهو برنامج مدمج مع الوندوز ولستعماله اكتب المر التالى‬taskkill.exe‫بخصوص موضوع مشابة وهو‬

C:\>taskkill /im calc.exe /t /f

calc ‫وهذا بدوره سيقفل برنامج‬

desktop ‫ ررر‬ip ‫ررررر‬

desktop ‫ والمعلومات الخرى للجهاز على‬ip ‫ المتعلق بطباعه‬bginfo ‫بخصوص‬


c ‫ وتخزين الحاله على مكان معرف على‬file—save as ‫يلحظ بانه من الممكن حفظ حاله لبيانات معينه باستخدام‬
..‫ ستلحظ بان النظام فتح ما جهزته فقط للطباعه وليس الفتراضى‬c:> bginfo sara.bgi ‫ وطباعه المر التالى‬doc ‫ثم الزهاب الى‬
(‫)الذى يعرض كل البيانات‬
++c ‫فصائل التصال بقواعد البيانات داخل‬
‫تتتتت ‪DAO‬‬
‫هى الفصائل التى تعتمد على قاعدة بيانات ‪ ACCESS‬فقط وهى اسهل طرق التصال ب اكسس فقط بدون استخدام ‪ ODBC...‬الكود‬
‫التالى موجود فى)*( فى الصفحه المقابله ‪..‬فقط ضع الكود داخل زر وسيتم توصيلك بقاعده البيانات اكسس مباشره ولكن ‪ ..‬اذا انشاءت‬
‫قاعده بيانات اكسس مع اى اصدار وفعلت الكود السابق سيظهر لك خطئين‪:‬‬
‫اول الخطأ ‪ JET‬ومعناه ان محرك التصال الذى تستعمله ‪ DAO‬غير متوافق مع النظام الحالى والحل‪....‬؟‪..‬يوجد ملفى‪EXE‬‬
‫‪ ((DAO35.EXE‬على _‪ OURFILES‬احدهما فيه رقم ‪ 16‬معناه يستعمل فقط على ‪ WIN2000‬والخر ‪ 32‬اى يستعمل على‬
‫‪ WINXP‬والصدارات التاليه‪ ..‬المهم طبقا للويندوز شغل اى من الملفين‪..‬فى البدايه قد يظهر لك مربع حوار يخيرك بين الغلق‬
‫والتجاهل اختار التجاهل لعنصر ‪ DLL‬وسيتم تحميل المحرك المتوافق مع النظام‬
‫ثانيا الخطأ‪ ..…UNRECOGNIZE‬هذا معناه ان قاعده البيانات اكسس اما قديمه جدا او حديثه جدا يعنى ببساطه اعمل التالى‪..‬تأكد‬
‫من من اكسس هو الصدار ‪ (9.0.2720) 2000‬افتح قاعده البيانات ثم اذهب الى ‪ .…UTILITY‬ثم الى تحويل قاعده البيانات ثم‬
‫اضغط على)الى اصدار سابق من قاعده بيانات اكسس( اكتب اسم القاعده الجديده وهو الذى ستعتمد عليه‪..‬فقط‬
‫ملحوظه اذا كان لديك ‪ OFFICE 2003 OR XP‬وتريد السابق ماذا تفعل ؟‬
‫انشئ ملف الكسس بالكامل على اصدار الكسس القديم ‪ 2000‬ثم عدل حسب بند )ثانيا الخطأ‪ (..‬ثم انقل الملف الى فولدر‬
‫البرنامج‪..‬كل الكود المذكور فى المقابل سليم ‪%100‬‬
‫ل تنسى عباره ‪ select‬المذكوره فى عباره عن المؤشر بالضبط كما لو كانت مؤشر فضع فيها كل المطلوب‬
‫اذا اردت ان تعمل مثال فى ‪ visual c‬وتستعمل اعداد ‪ dialog‬فعليك تحرير التى يدويا حتى يدعم البرنامج موضوع التصال بقواعد‬
‫البيانات فى حين ان العدادات غير ‪ dialog‬تدعم ذلك كاحد بنوت المعالج الخطوات هى‪:‬‬
‫انشى تطبيق مؤقت ودعمه ببند ‪ doa‬فى مراحل النشاء للمعالج‬
‫اذهب الى ملف ‪ stdafx.h‬وانسخ من عند ‪ .……ifndef_afx_no_db#‬حتى ‪ end if#‬وانسخهم فى نفس مكان فى المشروع الجديد‬
‫لنه عند استعمال ‪ dialog‬ل يوجد ما يدعم ‪ dao‬هذا عند التصال باستخدام ‪ dao‬فقط(‬
‫فصائل ‪Odatabase‬‬
‫احدى فصائل التصال بقاعدة بيانات اوراكل وتصنف كفصيله مباشره ل تحتاج الى محركات ‪ odbc‬ولتشغيلها عليك التالى‪:‬‬
‫)داخل زر مثل( انظر الكود التالى‪:‬‬
‫‪;()OStartup‬‬
‫‪;("ODatabase odb("haj1305", "tarek", "tarek‬لتعريف قاعده البيانات واللياس لها‬
‫‪;(”ODynaset odyn(odb, "select * from emp‬لتعريف عباره استعلم‬
‫‪;Ovalues ss‬‬
‫هذا النوع)‪ (Ovalues‬من المتغيرات مثله مثل‪ CString‬المشهور ومفيد جدا حيث انه يتكيف مع اى متغير اخر والكود التالى يستخدم‬
‫هذا المتغير فى شحنه مهما كانت نوعيه بارامتر الداله التاليه فمثل ‪ ename‬من النوع الرمزى و ‪ sal‬من النوع العددى‬
‫لذا يصلح معهم هذه الفئه)‪(Ovalues‬‬
‫‪;(Odyn.GetFieldValue(“ename”,&ss‬تمكنك من الحصول على قيمه الحقل فى المتغير الول ووضعه فى المتغير الثانى‬
‫‪.……Odyn.movefirst,next‬‬
‫استعمل دوال ‪ odynaset‬فى الحركه والدراج والتعديل وغيرها فلها اكبر عدد من الدوال ‪.‬‬
‫‪;M_ed=ss‬وذلك لشحن الحقل فى الديلوج بالقيمه ‪ss‬‬
‫‪;()Odb.Close‬لبد منها وال ستستلم رساله من الوندوز تقفل البرنامج‬
‫‪;()Odyn.Close‬لبد منها وال ستستلم رساله من الوندوز تقفل البرنامج‬
‫‪;()ss.colse‬ليست بالضروره ولكنها لتنظيف ‪ovalues‬‬
‫‪;()Oshutdown‬‬
‫لن تتمكن من التصال بقواعد بيانات اوراكل من خلل ‪ VISUAL C++6‬ال بتوفير التى‪:‬‬
‫حمل) ‪ Oracle Windows Interfaces‬وايضا ‪ NET‬للتصال (من اسطوانه ‪ oracle 9I‬ذو الثلث اسطوانات فقط هذا من خلل‬
‫اعداد ‪ COSTOMIZE‬من خلل ‪ ..INSTALLATION‬والغى اى اعداد اخر‪ ..‬قد ل يستمر معك ‪ net‬واذا عملت اتصال سيتصل‪.‬‬
‫اذا لم تحمل هذا العداد ستستلم رساله)‪ ..(specified class not registered in registry‬يوجد مثال اسمه ‪ dirctdb‬فى الفولدر‬
‫الساسى‪.‬‬
‫تغيير ازرار وايقونات ‪visual c++6‬‬
‫يوجد ملف تجريبى على ‪ ourfiles‬اسمه_‪visual_c++_cbutton‬عليه برنامج بالصورص كود كمثال‪.‬كما يوجد اكثر من مثال على‬
‫الزرار على فولدر اسمه ‪ c++_pro‬به جميع امثله الزرار بالضافه الى التحكمات الخرى مثل السليد والبروجرس والشجره الخاصه‬
‫بالملفات على السى درايف واشياء اخرى عظيمه‬
‫الطريقه خطوه بخطوة‪::‬‬
‫اول ‪:::‬ان يكون شكل الزر مخفى على الديلوج ولكن يظهر ايقونه‪:‬‬

‫انشى برنامج تحت السى من النوع الديالوج وانشئ عليه ثلث ازرار لكى نعمل ثلث نمازج‬
‫تحت خصائص كل زر حدد لهم معرفات‪ _ICD‬مثل ‪.. ICD_BUT1,ICD_BUT2,ICD_BUT3‬لحظ اننا لن نتعامل مع‬
‫متغييرات من النوع كنترول للزرار‬
‫يوجد ملفات )‪(H&CPP‬لبد منها هى التى تورث خصائص شكل الزر وليس الخصائص المباشره و سنورد بالتفصيل‪:‬‬
‫الفئه ‪ CbuttonST‬توجد فى الملفات ‪ (BTNST(H&CPP:‬هذه النوعيه تعطى شكل جميل للزر و‬ ‫‪‬‬
‫يعنى انها ل تحتاج الى مكتبه فرأس الملف والجسم للداله معرفات فى)‪(BTNST.H—BTNST.CPP‬ولكن هذه‬
‫الملفات تحتاج الى ملفى اخرين)‪ (H&CPP‬هما ‪BCMENU.H –BCMENU.CPP‬‬
‫ولكى تضيف هذه الملفات الربع الى مشروع الزرار انسخ الملفات تحت فولدر المشروع ثم اختر‬ ‫‪‬‬
‫‪.. project-add to project-files‬ثم اضف الربع ملفات ‪..‬انت الن معك الدوات‬
‫عرف متغير من نوع ‪ CbuttonST‬ليكن ‪ m_but1‬فى فئه الدايلوج‪.‬‬
‫فى فئه ‪cpp‬للديلوج تحت الداله ‪ dodataexchange‬للديلوج ضع العباره‪:‬‬
‫‪(DDX_Control(Pdx,IDC_but1,m_but1‬‬
‫‪ ..‬هذه العباره تورث خصائص الفئه ‪ CbuttonST‬لشكل الزر للزر المشار اليه ب ‪IDC_but1‬‬
‫ولو تلحظ عند الترجمه ان الزر تغير شكله جدا‬
‫ولعطاء الزر ايقون جديد يجب اول فتح ‪ resource view‬ثم ‪ icon‬ثم ‪ import‬واختار بعدها ايقون جيد وغير خصائص‬
‫اليقون الى ‪ IDI_but1‬مثل‬
‫لشحن اليقون الجديد بالزر ضع العبارات التاليه تحت ‪ oninitdialog‬فى فئه الديلوج‪:‬‬
‫‪;(m_but1.SetIcon(IDI_but1‬تحدد شكل اليقون‬
‫‪;(m_but1.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor‬تحدد اللون عند وضع الماوس‬
‫لحظ ان هو متغير تستطيع تغييره فهو فى العاده ياخد القيمه ‪ 30‬واذا اردت اكثر بياضا زد على ‪..........30‬‬
‫ثانيا‪:::‬ان يكون شكل الزر كما لو كان ناتئ وواضح‪:‬‬

‫نفذ مثل السابق ولكن هنا بدل استخدام ملفات ‪ CbuttonST‬سنستعمل ‪ CShadeButtonST‬الموجوده فى ملفى‬
‫‪ (shadebuttonst(h,cpp‬الموجودتان فى الملف المذكور ايضا ل تنسى انها تحتاج ايضا الى الملفى ‪ cexdib‬بنوعيه)‬
‫‪ (h,cpp‬كل هذه الملفات موجوده فى الملف التجريبى‬
‫تحت ‪ oninitdialog‬ضع ثلث عبارات من خللها تستطيع تغيير متغيراتها لتحصل على افضل شكل‪:‬‬
‫‪ ;(m_but2.SetShade(CShadeButtonST::SHS_HARDBUMP‬هذه لتحديد شكل الخيال‬
‫‪;(m_but2.SetIcon(IDI_icon1‬لتحديد شكل اليقون‬
‫‪;(m_but2.SetAlign(CButtonST::ST_ALIGN_VERT‬تحديد مكان تكست الزر‬
‫ملحوظه جميله قوى‪:‬فى داله ‪setshade‬يوجد متغيير واحد ! ولكن فى الصل يوجد ‪ 6‬متغيرات اضافيه انظر المثال ‪cfiledialogst‬‬
‫ثالثا‪:::‬يوجد شكل اخر يعطى مثل شكل ازرار الوندو ز‪:‬‬

‫للفئه ‪ cwinxpbuttonst‬والموجوده فى ملفى ‪ winxpbuttonst‬بنوعيه )‪ (h,cpp‬وتتبع نفس الخطوات السابقه ثم اضف الثلث اسطر‬
‫التاليه الى ‪ :oninitdialog‬كالتى‪:‬‬
‫‪)m_but3.SetIcon(IDI_but1‬‬
‫‪;)m_but3.OffsetColor(CButtonST::BTNST_COLOR_BK_FOCUS, 30‬‬
‫‪;(m_but3.SetRounded(TRUE‬‬
‫رابعا‪:::‬يوجد شكل اخر يعطى شكل رائع الجمال وهى فئه ‪ CkeyboardbuttonST‬والتى لها ملف راس هو‬
‫‪ keyboardbuttonst.h‬ولكن فى وجود ملفى ‪ (BTNST(H&CPP‬كما فى المثال ‪ckeyboardbuttst‬‬
‫تتبع نفس الخطوات كما فى المثله السابقه‬
‫خامسا‪::‬يوجد فئه اسمها ‪ cclockst‬موجود مثال بها تضع ساعه جميله‪.‬‬
‫الخلصه يوجد امثله متكامله فى اسطوانه ‪ ourfiles‬بها شروحات مفصله جدا‬
‫ستلحظ فى النهايه ان كل مجموعه من اول وثانيا وثالثا تحتوى عبارات مختلفه عن الخرى‬
‫خامسا‪:::‬يوجد حالة جميله لكنها تعمل على الشكل التقليدى للزر وهى حاله وضع زر صغيييير على الزر وعند الضغط عليه يستدعى‬
‫‪ menu‬موجود فى ‪ resource‬ستجد هذا المثال فى مثال باسم‪ splitbtn:‬تحت ‪ourfiles‬‬
‫ررررر ‪ skins‬ررر ررررررر ‪++visual c‬‬

‫من ابسط ما يكون تحتاج فقط الى ملف الهيدر ‪ AppFace.h‬وملف المكتبه‪ appface.lib‬وانت تعلم جيدا كيف تضيف هذين الملفين الى‬
‫المشروع يوضع ملف الهيدر تحت فولدر ‪ inclide‬وملف المكتبه تحت فولدر ‪ lib‬ثم من خلل ‪project—addtoproject-addfile‬‬
‫تضيف ملف المكتبه وتعرف ملف الراس فى ملف التطبيق الساسى‬
‫بعد ذلك اضف‬
‫‪;(SkinStart("C:\\test\\skin\\gtclassicex.urf",0,0,1,0,0‬‬
‫فى وظيفه ‪ initial‬ول تنسى وضع ‪ ()SkinRemove‬فى نهاية العمليات‬
‫ملحوظه‪:‬يوجد اكثر من ‪ appface‬كملف هيدر وكمكتبه ولن يعمل ال الموجود فى المثال للمشروع ‪skin_taha‬‬
‫الذى يحتوى على المكتبه السليمه‪.‬بالمناسبه تحت المشروع يوجد فولدر اسمه ‪ skintools‬فية كيف تجرب الجلود وكيف‬
‫تصنعها انا جربت فقط ولم اجرب التصنيع‪.‬‬
‫متعلقات ‪remote desktop‬‬
‫يمكن اعتبار ‪ windows xp,window 2003,windows server 2000‬كخوادم ولكل منهم خصائص‪:‬‬
‫اذا اعتبرت ‪ windows xp‬كخادم)اى نتصل عليه( فسيكون التصال عليه من عميل واحد بخلف‬
‫‪ windows 2003 or windwos server2000‬وعندما تتصل عليه من عميل اخر فى نفس الوقت فسيتم فصل التصال القديم‬
‫ويوصل التصال الثانى‪..‬‬
‫اذا اعتبرت ‪ win 2003,2000‬كخوادم فستتلذذ بالتصال عليه باكثر من مليون عميل فى وقت واحد‪..‬‬
‫الشروط الواجب عملها على كل الجهازين ‪:‬‬
‫يجب على جميع الجهزه تأهيلها بان تعتمد التصال البعيد كالتى‪start—setting—control panel—system :‬‬
‫اختار ‪ remote tab‬ثم نشط ‪ ………allow users to connect remotly to this computers‬هذا بالنسبه للوندوز‬
‫‪xp,2003‬‬
‫الجهاز العميل اذا كان ‪ win 2000‬او اقل من ‪xp‬عليك بالتالى‪:‬‬
‫يجب نسخ فولدر)‪ (win32‬موجود على انظمه ‪ wind xp or 2003‬مساره ‪C:\WINDOWS\system32\clients\tsclient‬‬
‫وليس موجود على الصدارات القل‪..‬بعد نسخه على الجهاز شغل ملف ‪ setup‬بعدها سيظهر ايقونه التصال على سطح المكتب‪.‬‬
‫بخصوص الخوادم فان التصال يكون على مستوى ‪ administrator‬فقط ولكى يكون اتصال‬
‫العملء على مستوى مستخدمين غير ‪ admistrator‬عليك بالتالى‪:‬‬
‫على ايقونه ‪ my computer‬بالماوس يمين ثم ‪ manage‬ثم ‪ local users and groups‬ثم اختار من الشجره‬
‫‪ groups‬ثم فى الصفحه على اليمين دبل كليك على ‪ remote desk top users‬فى صفحه ‪ members‬ادخل‬
‫المستخدمين المطلوب استخدام سطح مكتبه لتصال العميل‪.‬‬
‫انت الن جاهز لعمليه التصال بين العميل والخادم‪.‬‬
‫موضوع تنصيب ‪ php and oracle‬على الباتشى‬
‫اذا لم تضبط ‪ nls_lang‬على قيمة حقيقية وليس ‪ NA‬فلن يعمل ابدا وسيعطى اخطاء‬
‫قبل ان تسطب الباتشي عليك اول ان تتأكد من ان خدمة ‪ iis‬للوندوز غير محملة لنه يجب ان يكون ملقم واحد فقط هو اللى شغال‬
‫عليك ان تعلم ان ‪ apatche‬ل يعرف لغه ‪ php‬ومن خلل الملف المذكور ستتمكن من تمكين الباتشى ليتعرف على اللغه‬
‫لقد لحظت انه لكى تتصل ‪ php‬ب ‪ oracle‬فانه يوجد ‪ php_oci8.dll‬هو المسئول عن كل التصالت ويجب ان يوجد اما‬
‫تحت ‪ system32‬او فى ‪c:\php\ext‬‬
‫ويجب ان تذهب الى الملف ‪ php.ini‬قد ل يوجد بهذا السم فمثل هذا السم يوجد باسم ‪ php.ini-recommended‬زيل ما‬
‫بعد ‪ ini‬ليصبح فقط ‪ php.ini‬على الدوس ول يخدعك تنسيق الملف‬
‫تزيل ; من خلف المتداد اى يجب ان يكون ‪ extension=php_oci8.dll‬بدل من ;‪extension=php_oci8.dll‬‬
‫عليك ايضا ان تحمل معرف اوراكل على هذا السيرفر)المحمل عليه الباتشى(وال كيف سيتعرف دوال ‪ php‬على ‪tnsname‬‬
‫واين موقعه‪ ..‬على العموم تحميل ‪ developer‬كاف على السيرفر وتتاكد جيدا انه يوجد ‪ logon‬من هذا السيرفر على اوراكل‬
‫عند وضعك لكود ‪ php‬داخل صفحة ‪ html‬ل يتم ترجمه الكود السابق ولكى يتم ترجمة الكود السابق تأكد من وجود الثلث عبارات‬
‫التالية فى ملف ‪ httpd.conf‬الموجود فى الباتشى‬
‫‪AddType application/x-httpd-php .php‬‬
‫‪AddType application/x-httpd-php-source .phps‬‬
‫‪AddType application/x-httpd-php .htm .html‬‬
‫ثم احفظ الملف واعد تشغيل الباتشى‬
‫قابلنا بعض المشاكل فى التصال منها ما يتعلق ب ‪ nls_lang‬فيجب ضبط هذا المتغير سواء على اوراكل نفسها او على‬
‫السيرفر المحمل على الناتشى‬
‫ومن اهم المشاكل التى قابلتنى هو يجب عليك عند تعريف اسماء حقول الجداول لوراكل فى كود ‪ php‬ان تكون هذه ااسماء‬
‫بالحرف الكبير ‪ capital‬وايضا عند استعمال الصيغة >?‪ <? ;[php echo $results[" YEAR_CODE"][1‬زيييل كل‬
‫الفراغات الموجوده بين " واسم الحقل‪.‬‬
‫احيانا اذا لم تذكر عبارة ‪ php‬بعد>? يظهر صفحة بيضاء‬
‫من المشاكل ايضا دوختنى انه عليك ان تستخدم العبارات التالية لقفل الستعلم والمؤشر وللعلم يوجد بعض المثلة من النت ل‬
‫تحوى هذه الدوال التى من غيرها ستحصل على رسائل مثل رسائل الوندوز القديمة التى كانت موجوده فى ‪++C‬‬
‫‪;)oci_free_statement($stmt‬‬
‫‪;)oci_close($conn‬‬
‫ما زلنا فى ‪php‬‬
‫الدالة ‪ ociexecute‬هى من اهم دوال ‪ php‬للتصال باوراكل لكنها غامضه جدا عند تنفيذ هذه الدالة سيتم تنفيذ امر‬
‫‪ statement‬سواء استعلم او ادراج سجل او غيره ولكن عند ادراج سجل او حزف سجل فانها بشكل افتراضى سيتم ‪commit‬‬
‫لهذا السجل ولتنفيذ العبارة مع السماح بعدم ‪ commit‬بشكل افتراضى عليك استخدام متغير اخر لها وهما‬
‫‪OCI_DEFAULT‬‬
‫‪(OCI_COMMIT_ON_SUCCESS(default‬‬
‫فاذا استعملت الدالة مع المتغير ‪ OCI_DEFAULT‬ستحصل على ادراج سجل بدون ‪ commit‬اما اذا اردت عمل ‪commit‬‬
‫بعد ذلك‬
‫استخدم ‪ ()OCICommit‬للتثبيت أو‬
‫‪ ()OCIRollback‬للتراجع عن المر‪........................‬‬
‫ما ذلنا فى ‪ php‬كان لدى مشكله فى ‪ putenv('TNS_ADMIN‬فهو مسئول عن تحديد ملف ‪ tnsnames‬والموجود بشكل‬
‫افتراضى تحت ‪ admin‬اوراكل وقد وجدت الحل ‪..‬انه عليك ان تكتبه بالصوره ‪..‬‬
‫‪;("putenv("TNS_ADMIN=c:\sara\dara‬‬
‫حيث يوجد ملف ‪ tnsname‬على الفولدر ‪dara‬‬
‫عليك ان تلحظ ان المسار يجب ان يكون خالى من الحرفين المتتاليين \‪ n‬مثل \‪ network‬الشهيرة فى مسار اوراكل‬
‫امثله على استعمالت ‪putenv‬‬
‫‪;('putenv('ORACLE_SID=kdk_db‬‬
‫‪;('putenv('ORACLE_HOME=x:\oracle8i‬‬
‫‪;('putenv('TNS_ADMIN=x:\oracle8i\network\admin‬‬

‫بخصوص موضوعى)‪:(POST--GET‬‬
‫‪ POST‬من خللها تستطيع منع المتغيرات من الظهور فى العنوان ومن خللها ايضا تستطيع ارسال واستقبال المتغيرات‬
‫المتداولة يعنى‪..‬‬
‫لستخدام ‪POST‬يجب عليك تهيئة الوسم ‪ FORM‬بالعبارة التالية‪:‬‬
‫>‪<"FORM METHOD="POST‬‬
‫كى تعلم المترجم اننا بصدد حالة ‪POST‬‬
‫اذا اردت تحسس ان المستخدم ضغط زر ‪ SUBMIT‬عليك ان تستخدم العبارة التالية‪:‬‬
‫‪ if(isset($_POST['submit']){DO…………….}isset‬واذا غيرت السم غيره ايضا فى ‪ "name="submit‬على فكرة يجب‬
‫عليك وضع اسم للزر مثل‬
‫واذا اردت معرفة ان المستخدم استعمل زر ‪ SUBMIT‬ذو القيمه ‪ TAHA‬مثل استعمل‬
‫‪{……………f ($_POST['submit']=='TAHA'){DO‬لحظ الفرق فى العباره‬
‫‪ GET‬من خللها تستطيع اظهار المتغيرات فى العنوان ومن خللها ايضا تستطيع ارسال واستقبال المتغيرات المتداولة‬
‫يعنى‪..‬‬
‫لستخدام ‪GET‬يجب عليك تهيئة الوسم ‪ FORM‬بالعبارة التالية‪:‬‬
‫>‪<"FORM METHOD="GET‬‬
‫كى تعلم المترجم اننا بصدد حالة ‪GET‬‬
‫اذا اردت تحسس ان المستخدم ضغط زر ‪ SUBMIT‬عليك ان تستخدم العبارة التالية‪:‬‬
‫‪{.……………if(isset($_GET['submit']){DO‬‬
‫واذا اردت معرفة ان المستخدم استعمل زر ‪ SUBMIT‬ذو القيمه ‪ TAHA‬مثل استعمل‬
‫‪{……………if ($_GET['submit']=='TAHA'){DO‬لحظ الفرق فى العباره‬
‫العبارة التالية تجعلك تعيد تفعيل الصفحة باستخدام ‪ get‬ومع متغيرات جديده‬
‫‪;"<echo "<a href=\"$PHP_SELF?photos=10\">(show list below)</a‬‬
‫حيث ‪ photos‬تعتبر متغير معرف فى الكود)التفت الى \ بعد = فى العبارة فهى مهمة جدا‪.‬‬
‫من الملحظات عن الفرق بين ‪ get ,post‬ان ‪ post‬تمرر اى نوع من المتغيرات سواء متغير معرف او ‪ form‬بخلف ‪get‬‬
‫التى ل تمرر ال متغيرات ‪ form‬فقققققققققط‪.‬‬
‫من الملحظات التى سهرتنى الليالى هذا السؤال اذا مررت متغير الى موقع فمثل هذا الكود يمرر الرقم ‪ 89‬الى الموقع‬
‫‪TAMEM_LIST‬‬
‫‪);<echo "<a href=\"tamem_list.php?user_id=89\">(show list below)</a‬خذ فى العتبار كل العلمات‬
‫والشرطات(‬
‫حيث ‪ USER_ID‬مجرد متغير ليس له اى اشارة له داخل ‪ TAMEM_LIST‬والسؤال كيف اصطاده داخل الموقع والجابه باستخدام‬
‫الدالة[" ‪ $_GET["user_id‬هذه هى الدالة الوحيدة للتقاط المتغير من فوق—بالمناسبة انا لم استعمل ‪ action‬فى الفورم وبهذا ستظهر‬
‫المتغيرات فى العنوان‬
‫بالمناسبة اذا استعملت ‪ POST‬فى قزف المتغيرات فيجب اصطيادها فى الصفحه باستعمال ‪POST‬‬
‫ل تنسى طريقة كتابة [" ‪ $_GET["user_id‬يجب ان يكون ‪ user_id‬خط صغير‬

‫موضوع نسخ الملفات من جهاز الزبون الى السيرفر‪‬يوجد ملف اسمه ‪ save_ftomc_toserver.php‬فيه كل التفاصيل‬

‫ملحظه‪:‬ل تستطيع عمل ‪ submit‬اذا ضغطت على ‪ enter‬اذا كان ل يوجد ال حقل تكست واحد وزر ‪ submit‬ولكنه سيعمل ‪submit‬‬
‫اذا احتوت الصفحة على اكثر من تكست‬
‫ملحظه اخرى ل تستطيع عمل ‪ submit‬اذا ضغطت على ‪ enter‬اذا كان زر ‪ submit‬ل يملك اسم مثل ‪ submit‬لن العبارة‬
‫‪ ((['if (isset($_POST['submit‬تفترض ان اسم الزر هو ‪ submit‬ال اذا استعملت اكثر من زر باسماء مختلفة ساعتها ستضطر‬
‫الى استعمال الدالة البديلة التالية ‪{……………f ($_POST['submit']=='TAHA'){DO‬‬

‫موضوع كبير بخصوص المتغيرات داخل ‪html‬‬


‫ل يمكن اعطاء قيمة مبدئية لحقل ضمن ‪ input‬داخل الصفحات ال تحت مظله ‪ javas‬فمثل يوجد ‪ text‬ضمن ‪ input‬ولكى نعطيه قيمة‬
‫مبدئية علينا بالتالى‬
‫>‪<"body onload="javascript:document.form.ctr.value=17‬‬
‫هذا يعنى لبد من استخدام داله ‪ onload‬والتى ل تستعمل ال داخل ‪ body‬كما هو موضح وهذا كافى اما اذا اردت تغيير قيمه حقل‬
‫باستخدام ‪ onclik‬فيجب استخدام مثل الصيغة‬
‫>"‪input type="submit" name="submit3" value="ÓÌá ÊÇáì‬‬
‫‪<"onclick="javascript:document.form.ctr.value=7‬‬
‫ودمتم‪---------------------------‬‬
‫موضوع ‪iis and php‬‬
‫عندما تريد تحميل واعتماد ‪ IIS‬عليك التالى‬
‫يجب ان ل يحتوي السيرفر على اكثر من ملقم حمل ‪ IIS‬على السيرفر واعد تشغيل السيرفر‬
‫اذهب الى ‪ /http://php.iis.net‬هذا الموقع سيمكنك من اعتماد ‪ IIS‬لل ‪ PHP‬ستضطر الى تنصيب ‪ NET.‬وال‪WEB‬‬
‫‪APPLICATION‬‬
‫الرتباطات داخل الصفحة الوورد او الفرنت بيج‪:‬‬
‫غطي العباره التى تريد النتقال اليها‬
‫اضغط على ‪ insert‬من شريط الدوات ثم ‪ bookmark‬اكتب اى ترميز بحيث يكون متغير للمكان‬
‫اذهب الى اعلى الصفحه مثل واكتب اى عباره مثل ‪ tarek taha‬ثم غطيها واذهب الى ‪ insert‬ثم ‪ hyperlink‬على الجانب اليسر‬
‫يوجد بانيل اختار منه ‪ place in document‬ثم اختار المتغير الذى كتبته ‪..‬من هنا عندما تضغط على ‪ tarek taha‬ستنتقل الى‬
‫العبارة المقصودة داخل الصفحة‬
‫موضوع ‪APACHE,ASPX‬‬
‫هذا الموضوع البسيط جدا لكى يتمكن الباتشى من ترجمة صفحات ‪ ASPX‬فقط ‪ ASPX‬وليس ‪ ASP‬يتم التى‬
‫المجلد ‪ D:\_web_isso\apatche_aspx‬به كل ما تحتاجة لهذا الغرض‬
‫تأكد من تشغيل النت جيدا بدون انقطاع‬
‫قم بتنصيب برنامج الباتشى ‪ apache_2.0.63-win32-x86-no_ssl‬والتأكد من ان كل شى سليم وظهور ايقونة التشغيل‬
‫ضروري‬
‫يوجد ملف اسمه ‪ wpilauncher‬اختصارا ل ‪ windows web platform installer2 beta‬وهو المسئول على الجراءات‬
‫القادمة قم بتشغيله‬
‫هذا البرنامج سيقوم بتنصيب ‪ Microsoft .net framework2.0‬استمر معه دائما سيأخذ هذا الجراء حوالى ربع ساعة‬
‫بعدها تأكد بان ‪ Microsoft .net framework2.0‬تم اظهاره فى ‪ add programs‬بدون مشاكل‬
‫يوجد ملف اسمة ‪ mod_aspdotnet-2.0.0‬هذا الملف مسئول عن قيام ‪ apatche‬بتلقيم وترجمة ‪ asp,aspx‬بصورة طبيعية‬
‫تأكد من عدم ظهور اء اخطاء بالمناسبة ظهر خطأ اثناء تحميل هذا الملف ‪ error 2908‬ومعناه ان ان الخطووة رقم ‪ 2‬لم تحمل‬
‫ل يمكنك العتماد على ‪ htdocs‬الدير الرئيسى للباتشى لذا سنقوم بانشاء دير تحت ‪ htdocs‬مباشرة وسنسميه مثل ‪ aspx‬تيمنا‬
‫بامتاد الوراق يمكنك طبعا اختيار اسم أخر ‪..‬الملف ‪ scr.txt‬الموجود فى المجلد ‪ D:\_web_isso\apatche_aspx‬يحتوى على‬
‫كود يجب وضعه فى ‪conf.httpd‬‬
‫بالمناسبة حاول التعرف على هذا الملف افتحه ‪..‬واذا اردت تغيير مجلد اوراق ‪ aspx‬يجب ان تغير اسم المجلد فى ‪conf.httpd‬‬
‫سنرفق ملف ‪ scr_ori.txt‬لن بة الكود الصلى للموضوع للتعرف علية وقراتة بشكل جدا‬
‫كان فى السابق اذا اردت تشغيل اوراق ‪ html‬او حتى ‪ php‬تضعها مباشرة تحت ‪ htdocs‬اما فى حالة اوراق ‪ aspx‬الملقمة من‬
‫الباتشى يجب وضعها فى مجلد خاص والذى سميناه ‪ aspx‬تيمنا فقط بامتدادات الوراق لكن يمكنك اخيار اسم اخر‪.‬‬
‫بالمناسبة اذا اتممت الموضوع وادت التجربة يوجد ملف اسمة ‪ test_asp.aspx‬موجود فى‬
‫‪D:\_web_isso\apatche_aspx‬‬
‫انسخه وضعه تحت ‪ htdocs/aspx‬تحت الباتشى اذا اشتغل الملف اذن كل شى تمام‪..‬‬
‫كيفية ربط الباتشى ب ‪ aspx‬فى موقع تم الحتفاظ بنسخة منه موجودة تحت ‪D:\_web_isso\apatche_aspx‬‬
‫ثم اعد تشغيل الجهاز بالكامل‬
‫لو احتجت أي مساعة فان رابط الجراء هو‬
‫‪http://weblogs.asp.net/israelio/archive/2005/09/11/424852.aspx‬‬
‫الموضوع الخر ربط ‪apache PHP‬‬
‫)المجموعة الكاملة تحت ‪(D:\_web_isso\apatche_aspx‬‬
‫المجلد ‪ php‬موجود تحت ‪ D:\_web_isso\apatche_aspx‬ضعه تحت ‪ \:c‬مباشرة او اذا اردت وضعة فى مكان ما ضعه لكن‬
‫ل تنسى توجيهة داخل الباتشى ضع الكود التالى فى نهاية ‪conf.httpd‬‬
‫"‪ScriptAlias /php/ "c:/php/‬‬
‫‪AddType application/x-httpd-php .php‬‬

‫‪# For PHP 4‬‬


‫"‪Action application/x-httpd-php "/php/php.exe‬‬

‫‪# For PHP 5‬‬


‫"‪Action application/x-httpd-php "/php/php-cgi.exe‬‬

‫‪# specify the directory where php.ini is‬‬


‫‪SetEnv PHPRC C:/php‬‬

‫‪http://www.fuju.org/docs/php-oci8/apache-php-oci8-01.php‬‬
‫ررررر‪php iis ,‬‬
‫عند تشغيل هذا الملقم ل يحتوى افتراضيا على تشغيل صفحات ‪:: php,aspx‬‬
‫‪ 1‬يوجد ملف اسمه ‪ wpilauncher‬اختصارا ل ‪ windows web platform installer2 beta‬وهو المسئول على‬
‫الجراءات القادمة قم بتشغيله‬
‫هذا البرنامج سيقوم بتنصيب ‪ Microsoft .net framework2.0‬استمر معه دائما سيأخذ هذا الجراء حوالى ربع ساعة‬
‫بعدها تأكد بان ‪ Microsoft .net framework2.0‬تم اظهاره فى ‪ add programs‬بدون مشاكل‬
‫‪ 2‬لكى يتم اعتماد وترجمة ‪ aspx‬يحب التى يوجد ملف اسمة ‪ aspnet_regiis.exe‬هذا الملف يأتى دائما مع ‪Microsoft.net‬‬
‫ويكون دائما تحت المجلد ‪framework‬‬
‫المهم اذهب الى المجلد الذي يحتوى الملف وقم بكتابة الملف تحت الدوس بالصورة التالية ‪ aspnet_regiis.exe –i‬احزر ال تكتب‬
‫المر ال تحت ‪framework‬‬
‫بخصوص ‪php‬‬
‫هذا الموقع سيوصلن لتحميل ‪framework‬‬
‫‪http://blogs.iis.net/bills/archive/2006/09/19/How-to-install-PHP-on-IIS7-_2800_RC1_2900_.aspx‬‬
‫واللذي بدورة سيمكن ‪ iis‬من ترجمى ‪php‬‬

‫التصال ب ‪ mysql‬داخل ‪++visual c‬‬


‫يوجد فولد اسمه ‪ include‬على ‪ c:\mysql‬الذى يحوى قاعدة البيانات يوجد به ملفات ‪ h‬مهمه يجب نقلها الى ‪++include visual c‬‬
‫الملف ‪ ((mysql++.lib‬هو ملف المكتبه الرئيسى انا احضرته وسيكون فى المنسوخه واذا لم يوجد يجب ايجاده ووضعه فى ‪ lib‬الفيجوال‬
‫سى تحت الدير ‪lib‬‬
‫يجب ان يشعر المشروع بالملف ‪ lib‬لذا اذهب الى ‪ project‬ثم ‪ add to project‬ثم ‪ file‬واختار ملف المكتبه اللى هو ‪++mysql‬‬
‫هنا جعلنا المشروع يحس بالمكتبة‪.‬‬
‫استعمل الجراءات التاليه للتصال‪:‬‬
‫;)‪MYSQL* conn; conn=mysql_init(NULL‬‬
‫‪;(mysql_real_connect(conn,"tarek1","root","","taha",0,NULL,0‬‬
‫‪;MYSQL_RES* dar‬‬
‫‪;MYSQL_ROW zar‬‬
‫‪;("mysql_query(conn,"select dname from sara‬‬
‫‪;(dar=mysql_store_result(conn‬‬
‫‪//;(zar=mysql_fetch_row(dar//‬‬
‫‪(while((zar=mysql_fetch_row(dar))!=NULL‬‬
‫}‬
‫‪;([m_dname.Format("%s",zar[0‬‬
‫اريد توضيح نقطه هنا انه عندما تسقط الدالى ‪ while‬سجل سيكون بمعلوميه ‪ zar‬وهى تعنى ان ‪ [zar[0:‬الحقل الول‬
‫‪ [Zar[1‬الحقل الثانى من السجل الساقط‬
‫وهكذا‬

‫{‬
‫‪;)UpdateData(FALSE‬‬
‫‪;(mysql_close(conn‬‬
‫{‬
‫ملحوظه‪:‬قابلتنى مشكلة اذا حملت قاعدة البيانات‪ mysql‬على جهاز وعملت وصلت ‪ odbc‬يجب ان تكتب ‪ host‬ك ‪localhost‬‬
‫وليس اسم الكمبيوتر ول حتى ‪ ip‬للكمبيوتر )دوختنى(‬
‫ملحوظة ‪:2‬وجدنا ما كنا نبحث عنه‪ datagrid..‬يوجد شركه اسمها ‪ componentone stodio‬عندها ‪) ocx controls‬يجب‬
‫عمل ‪ setup‬للملف الموجود فى ‪ dbgrid_ocx‬على ‪(ourfiles‬‬
‫بعد النتهاء من التنصيب اعمل مشروع ‪ ++c‬واعمل وصله ‪ odbc‬ثم اضف ‪ ocx‬المسمى‬
‫))‪ microfost ado data control ver6‬لنه اداة التى تربط التطبيق بقاعده البيانات بطريق ‪ odbc‬بعد ذلك اضف ‪ ocx‬التى)‬
‫‪ (True OLE DBGrid 8 Control‬ثم اكمل المراحل التاليه ‪..‬ل تنسى اننا جربنا محاولت اخرى مع ‪ ocx‬اخرى لم تنفع‬
‫انتهى الموضوع‬

‫ررررررر ‪HTML‬‬
‫هذا الوسم يمكنك من كسر نافذة الوندوز المقسمه الى اطارات يعنى اذا كنت تملك نافذة بها ثلث اطارات وكل اطار يعمل بصورة مستقلة‬
‫واردت ان تخرج من هذا التقسيم فلن تستطيع ال بهذا الوسم الذي يستدعى رابط ‪ tfetacos.html‬مثل ويجعله يمل النافذة‬
‫>‪<A HREF="tfetacos.html" TARGET=MAIN>my link</A‬‬
‫هذا الجراء بال ‪ PHP‬يمكنك من فتح ملف مثل ‪ TXT‬وتفريغ محتواه‬
‫>?‪php‬‬
‫‪;("sar=file("newstab.txt$‬‬
‫‪((while(list($line_num,$line)=each($sar‬‬
‫}‬
‫‪;(echo "$line_num" . htmlspecialchars ($line‬‬
‫{‬
‫?<‬
‫يوجد موضوع مربك شوية وهو رررررررر وسنبسطها كالتى افترض ان الكود هو‪:‬‬
‫>‪<"FRAMESET rows="50%,50%‬‬
‫>‪<"FRAME name="fixed1" src="init_fixed.php‬‬
‫>‪<"FRAME name="dynamic1" src="init_dynamic.php‬‬
‫>‪<FRAMESET/‬‬
‫فى معظم الحالت ل يضع ‪ name‬فى الوسم ولكن عندما تريد رابط موجود فى احد الطارات وتريده ان يصب فى الطار الخر يجب ان‬
‫يوجد معرف لكل اطار ال وهو ‪ name‬لذا فان الرابط سيكون على الصورة‪:‬‬
‫>‪<A href="admission.php" target="fixed1">slide 3.</A‬‬
‫هل فهمت‪.......‬؟‬

‫‪Inno Setup Compiler‬‬


‫افضل برنامج تسطيب فية كل شى تقريبا‬
‫اذا اردت اضافى ملفات او فولدرات ففى الخطوة رقم ‪ 4‬تجد مساحة لوضع الملفات والفولدرات ‪..‬بعد وضعها علم عليها ثم اذهب الى زر‬
‫‪ edit‬واختار ‪ custom‬من ‪ dinsty‬لتحديد اين سيتم وضع الملف‪/‬فولدر على الجهاز الخر‬
‫اذا اردت وضع ملف يتم من خلله تشغيل البرنامج مثل )‪ (logon.fmx‬مثل ففى الخطوة رقم ‪ 4‬وفى اول حقل ضع المتداد والملف وهذا‬
‫الملف ممكن يكون تنفيذى او شورتكات )‪ (lnk‬مثل ول تنسى انه يوجد ‪ chickbox‬لوضع الشورتكات على الدسك توب‬
‫عندما تحزف مستخدم ويندوز فان ملفات سطح مكتبه ل يمكن فتحها ابدا ال بهذه الطرق‬
‫‪How To Open Files and Folders which are Access Denied:‬‬
‫‪Follow the step by step procedure given below….‬‬
‫‪For Example:‬‬
‫‪If you are getting Access Denied errors when trying to open folders like‬‬
‫‪Documents and Settings, Application Data, Local settings:‬‬
‫‪Right click on the Folder‬‬
‫‪Select Properties‬‬
‫‪Click on the Security tab‬‬
‫‪Click on the Advanced button‬‬
‫‪Click on the Owner tab‬‬
‫‪Click on the Edit button‬‬
‫‪In the Change owner to box, highlight your account‬‬
‫‪Check Replace owner on subcontainers and objects‬‬
‫‪Click on Apply‬‬
‫‪Click on Yes to replace all permissions‬‬
‫‪Continue to click on OK until you‬‬

‫‪Remote desktop web‬‬


‫موضوع جديد ويشبة الرموت العادى ولكنه يشغل سطح المكتب باستخدام برتوكولت النت‬
‫للتشغيل يحتاج الى اعدادات كثيرة جدا ولكنها فى متناول اليد وفى اسطولنة الويندوز‬
‫‪-1‬باستخدام ‪ window companent‬ومن خلل ‪ (internet information services(iis‬حتى تصل الى ‪remote desktop‬‬
‫‪ web connection‬حاول تنصيبها‬
‫سيتم انشاء مجلد ‪ C:\Inetpub\wwwroot‬سيصبح مثل الموجود فى الباتشى‬
‫على الجهزة الخرى اذا اردت الوصول الى سطح مكتب السيرفر عليك ان تطفى اتصالت خصائص النت‬
‫اكتب التصال على الصورة ‪ http://10.2.48.226/sara1.html‬حيث ان هذا المسار سينظر الى المسار فى السيرفر‬
‫‪ C:\Inetpub\wwwroot‬فقط وشكرا‪.‬‬
‫مشاكل الويندوز‬
‫اذا ضغط ضبل كليك على فولدر لفتحه ولكن يظهر لك صفحة البحث‬
‫احد الحلول‪..‬اعد تشغيل الجهاز ثم اذهب الى المفتاح ‪ Hkey_classes_root\directory\shell‬وعلى الفتراضى ادخل القيمة ‪none‬‬
‫او الحل‪ ::‬ادخل على الدوس وشغل المر التالى)وهو الدق( ‪regsvr32 /I shell32.dll‬‬
‫اذا لم تستطيع عرض الصور باستخدام دبل كليك على اليقونة استعمل المر ‪regsvr32 /I shimgvw.dll‬‬
‫اذا لم تستطيع تشغيل ‪ add network place‬شغل الثلث اوامر التالية‬
‫‪regsvr32 /I netplwiz.dll‬‬
‫‪regsvr32 /I mshtml.dll‬‬
‫‪regsvr32 /I shell32.dll‬‬

‫برنامج تأصيل الويندوز‬


‫شغل البرنامج ‪valid.wg.new‬‬
‫تظهر شاشةبها ‪ 9‬ازرار شغل الزر‪ .genuine validation status‬اذا كان ‪ status‬باللون الحمر هذا يعنى ان الويندوز ليس اصلي‬
‫واذا كان باللون الخضر فهو اصلي ول تعبث بشئ واخرج‬
‫اضغط على الزر ‪ ..…windows xp cd key‬يظهر زرين اضغط على ‪ verfiy‬يظهر لك شاشة زرقاء وهى ‪windows product‬‬
‫‪action‬‬
‫اضغط على ‪ok‬‬
‫نعود للشاشة الرئيسية ونضغط على ‪ rockxp_w4‬تظهر لك شاشة بيضاء اضغط على الزر ‪ I agree‬سيظهر لك ‪ tabs‬فى نفس‬
‫الصفحة اختار التاب ‪ windows key‬اختار من الحقل ‪ software‬الخيار ‪ microsoft windows xp‬بعدها اختار ‪scan‬‬
‫سيظهر لك ‪ product key‬انسخ الحقل الكي ثم اذهب الى ‪ change your key‬وضع فية قيمة الحقل او القيمة‬
‫‪V2C47-MK7JD-3R89F-DK2XW-VPK3J‬‬
‫واعد تشغل الجهاز من الزر ‪ RESTART COMPUTER‬انتهى‪..............‬‬
‫‪Isa server‬‬
‫اول يجب ان يكون نظام التشغيل ‪windows server‬قبل أي شى تأكد من ان الكمبيوتر يعمل علية النت بكفاءه قبل تنصيب اليزا سيرفر‬
‫يجب اى يكون فى الجهاز كرتين شبكة واحد موصول بمودم ‪ dsl‬والخر الى سويتش التوزيع الى الجهزة ‪clients‬‬
‫حاول الوصول الى الدوس واستخدم المر ‪ ipconfig‬ثم احصل على الي بى ثم الماسك ثم الجيت واي واذهب وعرف كارت الشبكة بهذه‬
‫الرقام ثم تأكد باستمرار بان شبكة الكلينت تعمل جيدا بدون انقطاع‬
‫حمل وسطب برنامج ‪windows isa server 2004‬‬
‫اثناء التسطيب وبعد الخطوة التى بها ‪ setup type‬ستجد مربع ابيض وفوقه زر ‪ add‬اضغط عليه ثم اختار الزر ‪select network‬‬
‫‪ adapter‬اشر على الدبتر الزي سيكون شغل الكلينت علية ثم اوك ثم اوك ثم اكمل الخطوات‬
‫حاول تشغيل متصفح النت بعد التسطيب المفروض ال يعمل النت لن الفتراضى بتاعه هو منع جميع التصالت كما سنرى‬
‫بعد النتهاء من التسطيب ازهب الى ‪start programs microsoft isa server –isa server management‬‬
‫اعرض شجرى السيرفر ستجد العداد ‪ firewall policy‬ستجد فية ‪ last default rule‬وهو العداد الفتراضى لليزا بمعنى ان جميع‬
‫النشطة والتصالت الخاصة بالنت فى حالة ‪ deny‬اى ممنوعة‬
‫ولكى نسمح لليزا بالنشاط علينا عكس الحالة السابقة كالتى‪:‬‬
‫اذهب الى ‪ action‬ثم ‪ new‬ثم ‪acc ess rule‬‬
‫سيظهر معالج فى البداية سمى الرول مثل ب ‪ 1‬ثم ‪ next‬ثم اضغط على ‪ allaw‬ثم ‪ next‬ثم ‪ next‬كمان هنا يظهر زر ‪ add‬على اليمين‬
‫اضغط علية اختر ‪ network sets‬ثم ‪ (all networks(and local host‬ثم ‪ add‬ثم ‪ close‬للمربع الظاهر ثم ‪ next‬اضغط على‬
‫‪ add‬على اليمين اختر ‪network sets‬‬
‫واختار ‪ all networks‬ثم ‪ next‬ثم ‪ next‬ثم ‪.. finish‬سيظهر هنا الرول الزى عملته باللون الخضر اضغط اخيرا على الزر ‪apply‬‬
‫لعتماد التعديلت‪...‬‬
‫انت فى هذه الحالة مكنت كل الجهزة للتصال باليزا شغل مره اخرى النت على هذا الكمبيوتر يجب ان يعمل ‪...‬‬
‫واذا لم يعمل تأكد من الرول الذى وضعته جيدا‬
‫الن سنأتى الى اهم نقطة فى العمل وهي كيف نمنع احد ‪ ip‬من التصال بالنت عبر هذا اليزا؟؟؟؟؟‬
‫على اليمن ‪ toolbox‬فى تفريعاتها يوجد ‪ computers‬كليك يمين ثم ‪ new computers‬ستظهر شاشة اكتب رمزا للكمبيوتر وليكن‬
‫‪ comp1‬وفى السفل اكتب ‪ ip‬هذا الكمبيوتر بعد النتهاء سيظهر فى التولبوكس بعد ذلك اذهب الى‬
‫‪ Firewall policy new access roll‬اكتب اسما للرول ثم ‪ deny‬ثم ‪ next‬ثم اختار الزر ‪ add‬تصفح حتى تصل اسم‬
‫الكمبيوتر المزكور ثم ‪ next‬ثم ‪ add‬تصفح حتى تصل الى ‪ network sets‬ثم ‪ ..)all networks‬ثم ‪ next‬ثم ‪ next‬حتى تنتهى ثم‬
‫اضغط ‪.. apply‬‬
‫بذلك سيتم منع دخول هذا الكمبيوتر للنت عن طريق اليزا‪........‬‬
‫مشاكل شجرة التطبيقات‬
‫اذا كان ‪ code‬و ‪ mgr‬لهم نفس القيمة لن يعرض الشجرة‬

You might also like