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

دروس حول WebUtil و استخداماتها

مثبّترائج
بدأه م. حسام فيصل في 24 مايو 2006 · 45 رد · 54,447 مشاهدة · في قسم Oracle Forms
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

سأبدأ بإذن الله بمجموعة من الدروس الاختصاصية التي تتناول Oracle Forms 10g و سأبدها بعون الله بهذا الدرس الذي سيكون حول سيكون حول WebUtil و كيقية تثبيتها و التعامل معها و قد وضعته رغم زحمة الامتحانات بسبب رغبة عدد كبير من الأعضاء لمعرفة إمكانيات هذه الأداة و سأقسم الدرس إلى حوالي ثلاثة أجزاء لكي لا يمل القارئ ... و أرجو أن تكون الردود عبارة عن أسئلة فقط و ليس عبارات الشكر للإفادة ...

و سنبدأ بعونه تعالى :

ما هو 3Tier :

مع ظهور oracle forms 9i و ما بعد أطلت علينا أوراكل بنمط جديد أسمته 3tier أو السلسلة :

oracle Server (قاعدة البيانات ) ------ Application Server (الجهاز الذي نضع عليه برامجنا )---Cleint (المستخدم  )

أي أن أيام developer 6i قد ولت إلى غير رجعة ... فحينها لم نكن نحتاج إلى ثلاثة مكونات و إنما كان يكفي تثبيت Oracle Server على الجهاز الرئيسي و Oracle Forms Run Time على جهاز client و انتهت المشكلة و اصبح لدينا برنامج يعمل بكفاءة عالية ... و لكن الأمور أختلفت الآن و السبب أن أوراكل أرادت تخفيف الضغط عن جهاز السيرفر الذي يحوي القاعدة و السبب أن جميع مستخدمي Oracle Forms و مستخدمي القاعدة بشكل أساسي (pl sql ---sql – Database Administration ( سينفذون أعمالهم على oracle Server و هذا ما يؤدي إلى ضغط كبير على المخدم و يؤدي في حالات كثير إلى عملية إختناق بسبب كثر ة الطلبات ... إضافة إلى ذلك أنه في الماضي كنا نضطر إلى تنصيب أوراكل client و Oracle Forms Runtime في كل جهاز عميل client و هذه مصيبة كبيرة لأنه لو أردات أوراكل للـ Oracle Forms أن يكون مستقبلاً من أقوى أدوات برامج الويب Internet Application لوجب على كل مستخدم تثبيت ما سبق على جهازه <_< .....

إذا من الأسباب السابقة توجهت أوراكل إلى ما يسمى oracle Application Server لكي يكون المنصة التي نقوم بعملية نشر deploy لبرامجنا .fmx و عندها لن نضطر إلى تثبيت أي شيء على جهاز العميل سوى مستعرض الانترنت الداعم لتطبيقات الجافا و تطبيق صغير يدعى jInitiator ( جافا انشياتور ) لا يتجاوز حجمه 7.00 ميغا بكل بساطة :unsure: !!!!!!!!!!!!!!

إذن لنوجز الكلام : لكي يكون لدينا تطبيق يعمل يجب علينا مايلي :

1- تثبيت أوراكل سيرفر ( القاعدة )

2- تثبيت Application Server

3- تثبيت مستعرض انترنت (مثل متصفح ويندوز العظيم IE ) بالإضافة لــ jInitiator >>>

أعلم الآن أن الرسائل سوف تهطل علي كالمطر و ردود الاستهجان و إلخ :angry: .... و السبب : أن الجميع سيقول : إنني أعمل حالياً على Oracle froms و تطبيقاتي تعمل بشكل ممتاز و لم أحتج لكل " الزعبلات" التي تحدثت عنها سابقاً :blink: ؟؟؟؟

و الرد : أن أوركل حتى لا تتعب المبرمج بعملية أنه كلما قام بتعديل على برنامجه يجب عليه تحميله على application server ثم تجربته (و هذه عملية متعبة ) قامت بكل بساطة بتضمين جزء من Application Server مع تنصيب Oracle Developer Suite أي انك و بدون أن تدري قد أصبح لديك Oracle Application Server (بالمعنى الموجز ) مثبت على جهازك .....

إذاً ما الحاجة إلى WebUtil :

بسبب البنية السابقة إذاً لم يعد المبرمج فعلياً يتعامل مع client و إنما أصبح تعامله مع Application Server أي لو كان لدينا تطبيق يقوم بالقراءة من ملف فإننا في 6i كنا نقرأ من جهاز الكلاينت أما في 10g فإننا نقرأ من جهاز Application Server !!!!!!!!!!

عندها توجهت أوراكل إلى تنبيه مبرمجي Forms إلى ضرورة استخدام JavaBean في تعاملهم مع client و بالتاي ستضطر إلى استخدام java أو مكونات component جاهزة لتنفيذ ما تريد .. و هذا ما أثار موجة غضب المبرمجين الذي لا يعلمون شيئاً عنjava و بدأ التذمر و اضحاً في منتديات أوراكل مما حدا oracle إلى إصدار أداة جديدة قامت بتسميتها بـ WebUtil .....

إذاً :

WebUtil هي أداة تسمح بعملية تنفيذ أوامر مباشرة على جهاز client دون أن يضطر المبرمج إلى كتابة حرف واحد من java ... تتألف من صفوف جافا و أغراض فورم و pl/sql Api ....

إن WebUtil لا تنصب تلقائياً مع أوراكل ديفيلوبر و إنا يجب تنصيبها منفصلة ... معلومات عن تحميلها و كيفية تنصيبها نجدها على الرابط التالي :

http://otn.oracle.com/products/forms/htdoc...til/webutil.htm

ما الذي تقدمه WebUtil :

1- قراءة و كتابة الملفات على جهاز client .. مع إمكانية استعراض الملفات من جهاز الكلاينت

2- نقل الملفات بين الكلاينت – Application Server ----- Database ..

3- قراءة متحولات الكلاينت (مثل قيم Registry ) ..

4- التوافقية مع برامج C أي تنفيذها على جهاز client ..

5- تنفيذ أوامر نظام على جهاز client ( طبعاً ليس عمليات format !!!!!! حتى لا يفكر أحد بالإختراق و الأذى) ...

6- التعامل مع مستعرض الانترنت كمثال إظهار رسائل على المستعرض ...

و إذا لم تجد حاجتك فعندها أنت مضطر لكتابة جافا ....

الجزء الثاني سيكون حول تثبيت WebUtil و شرح مكوناتها ..... بالتوفيق للجميع ..

#2

اولا شكرا يا على هذا البداع

ولكن هل من الممكن ان استخدم WebUtil 9i

ثاني انا مبرمج في الجافا وعندي خليفية بسيط network java هل من ممكن انستفيد منها في oracle

ثالثا وهل من الممكن انتشرح برنامج بسيط عن client server بمعنى كيف اكتب الكود .

وشكرا يااخي

#3

لا ييوجد ما يسمى webutil 9i و إنما الإصدار الوحيد هو WEbUtil 1.0.4 (آب 2005 ) ...

يمكن أن تستفيد جزيئاً من معلوماتك في الجافا بأن تستخدم javaBean و ذلك بأن تكتب كود الجافا الذي تريد ثم تنفذ عملية compile لتظهر ملفات .class ثم تضمنها داخل javaBean .. و لكن أنصحك بقراءة Reference الخاص بكتابة java المتوافقة مع أوراكل Forms .....

بالنسبة إلى طلبك فسأقوم بإذنه تعالى بتخصيص دروس حول كيفية كتابة هذه الأكواد ...

بالتوفيق

تم تعديل هذه المشاركة بواسطة informat في 25 مايو 2006 في 10:50

#4

السلام عليكم ووفقكم الله بما تحبون وترضون

اخي العزيز انتظر منك المزيد اجلكم الله اريد عملية التثبيت بالتفصيل

اخوك حقي الساعدي

#5

عفوا اخوي informtion

قصدي هل استطيع استخدام خصية WebUtil مع oracle forms 9i بدلان من oracle forms 10i

#6

طبعاً أخي يمكنك استخدام webutil مع forms 9i وهي بالأصل قد تم إصدارها من أجله ..

عذراً من الجميع لتأخري في الدرس و السبب هو دراستي (لدي فحص نهار الأربعاء القادم ) و لكن سأضع الدروس كاملة إن شاء الله في نهاية الأسبوع الحالي على أقصى تقدير

تم تعديل هذه المشاركة بواسطة informat في 29 مايو 2006 في 00:13

#7

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

اين ابداعك يا اخي ارجو ان تكون بخير انا انتظرك

حقي الساعدي

#8

أهلاُ أخي حقي .. و الدرس إن شاء الله يوم السبت

#9

عذراً على التأخر في الدرس و السبب هو الإمتحانات التي انتهت الخميس و للأسف لم تكن بالمستوى المرجو :( ...

على كل حال :

الجزء الثاني :

تركيب Webutil :

تعد عملية التركيب من أصعب ما واجهت في عمليات التركيب في لغات البرمجة كاملة و ما فاجئني حقاً هو غموض manual الذي يأتي مع webutil و أخطائه العديدة ... و بعض جهد جهيد و عمل متواصل و سؤال هنا و هناك حتى فكت طلاسم التركيب و تم الأمر و فعلاً فإن استخدام هذه الأداة ينسيك كل ما عانيته في عملية التركيب لإنها تتيح لك مجالاً واسعاً للإستفادة من قوة Developer Suite 10g and 9i .....

و لنبدأ :

يمكنك تركيب webutil سواء على application server الذي ستقوم بعملية deploy لبرنامج عليك أو عملية التركيب على Developer من أجل التجربة و التركيب على الإثنين متماثل في الخطوات ..

أولاً : عليك تحميل webutil من هنا :

http://www.oracle.com/technology/software/...webutil_106.zip

ثانياً عليك تحميل ملف jacob :

http://prdownloads.sourceforge.net/jacob-p...ct/jacob_18.zip.

و سنرى عمله بعد قليل بإذن الله ...

بعد التحميل و فك الضغط ستجد ليدك مجلدين : webutil106 و Jacob ...

و لنبدأ هذه العملية الطويلة و المملة فعلاً :

1- انسخ مجلد webutil الموجود داخل webutil106 إلى المسار DeveloperHome\forms90 ..

2- انسخ الملف jacob.dll إلىالمسار السابق و الملف jabcob.jar داخل oraclehome\forms90 \java .. كلا الملفين تجدهما في الملف المضغوط jabcob ...

3- داخل المجلد webutil106\java ستجد الملف frmwebutil.jar انسخه إلى المجلد DeveloperHome\forms90\java ..

4- داخل الملف Developer\j2ee\DevSuite\application-deployments\forms\forms90web قم بإضافة التالي :

<virtual-directory virtual-path="/webutil" real-path="D:\oracle\product\10.1.0\Developer\forms90\webutil" />
 لا تنسى أن تستبدل المسار بالمسار الموجود لديك

5-داخل الملف Developer\ forms90\ server\server\formsweb.cfg يوجد مايسمى [default] ( و هي القيم الإفتراضية التي تهم التطبيق و التي تحدثنا عنها في مشاركات سابقة ) قم بإضافة مايلي :

archive_jini=f90all_jinit.jar,frmwebutil.jar,jacob.jar
archive=f90all.jar

و قم بإضافة :

[webutil]
WebUtilLogging=off
WebUtilLoggingDetail=normal
WebUtilErrorMode=Alert
WebUtilDispatchMonitorInterval=5
WebUtilTrustInternal=true
WebUtilMaxTransferSize=16384
baseHTMLjinitiator=webutiljini.htm
baseHTMLjpi=webutiljpi.htm
baseHTML=webutilbase.htm
archive_jini=frmall_jinit.jar
WebUtilArchive=frmwebutil.jar,jacob.jar,f90all.jar
archive=frmwebutil.jar,f90all.jar
lookAndFeel=oracle

5- افتح الملف developer\forms90\server\default.env

قم بإضافة :

FORMS_PATH=D:\oracle\product\10.1.0\Developer\forms90;D:\oracle\product\10.1.0\Developer\forms90\webutil
WEBUTIL_CONFIG=D:\oracle\product\10.1.0\Developer\forms90\server\webutil.cfg

و ستجد في نفس الملف CLASSPATH قم بإضافة ما يلي إليه :

;D:\oracle\product\10.1.0\Developer\forms90\java\jacob.jar;D:\oracle\product\10.1.0\Developer\jdk\jre\lib\rt.jar;D:\oracle\product\10.1.0\Developer\forms90\java\frmall.jar;D:\oracle\product\10.1.0\Developer\forms90\java\frmwebutil.jar;

استيدل سطر path بما يلي :

PATH=d:\oracle\product\10.1.0\Developer\jdk\bin;d:\oracle\product\10.1.0\Developer\jdk\jre\bin\classic;d:\oracle\product\10.1.0\Developer\jdk\jre\bin; d:\oracle\product\10.1.0\Developer\jdk\jre\bin\client;d:\oracle\product\10.1.0\Developer\jlib;d:\oracle\product\10.1.0\Developer\bin;d:\oracle\product\10.1.0\Developer\jre\1.4.2\bin\client;d:\oracle\product\10.1.0\Developer\jre\1.4.2\bin;
d:\oracle\product\10.1.0\Developer\bin;d:\oracle\product\10.1.0\Developer\jdk\jre\bin\client

ملا حظة هامة جداً : لا تنسى استبدال المسارات الموجودة بالمسار الذي لديك ...

6-افتح الملف devloper\forms90\server\webutil.cfg و قم بإضافة ما يلي إلى نهاية الملف :

transfer.database.enabled=TRUE
transfer.appsrv.enabled=TRUE

7 - ستجد الآن ملف sign_webutil.bat ( دفعي ) داخل مجلد webutil قم بتنفيذه بالشكل :

أ – من run في القائمة start اكتب cmd ثم Enter ..

ب- انتقل إلى المسار الذي يحوي الملف السابق ثم اكتب :

 sign_webutil.bat DeveloperHome\forms\java\frmwebutil.jar
 sign_webutil.bat DeveloperHome\forms\java\jacob.jar 
 لا تنسى استبدال المسار ..

و يستخدم الملف السابق من أجل تسجيل jacob و webutil.jar ..

8 - و أخيراً : آخر خطوة و هي إنشاء packages التي تساعد في عملية التعامل مع القاعدة من ناحية التحميل و التخزين داخل القاعدة ...إلخ ( سنتعرف عليه في الدروس اللاحقة بإذن الله ) ...

لديك خيارين لإنشاء الحزمة :

1- إما إنشاءها على مستخدم وحيد و بالتالي ستضطر إلى استعما حسابه في كل برنامج تقوم بتنفيذه ...

2- أو أن تنشأها على حساب جديد (لنسميه webutilowner ) ثم نقوم بمنح الصلاحيات لتنفيذ الحزم للجميع أي public ....

المهم قم بتنفيذ الخيار الذي تريد و بذلك بتنفيذ الملف create_webutil_db.sql الموجود داخل المجلد webutil106 ...

و بهذا اكتملت عملية التركيب كاملة أما التاكد من صحة التركيب و التمارين ففي الدرس القادم بإذنه تعالى ...

تم تعديل هذه المشاركة بواسطة informat في 25 يونيو 2006 في 03:33

#10

إعذروني على ضغط الدروس حيث كنت أخطط أن أخصص جزءاً من الوقت بعد عملية التركيب حتى أتأكد من كون الجميع قد أتم العملية بنجاح و لكني اليوم متحمس ( بعد تأهل ألمانيا ) لذلك قررت أن أضع الدرس :

بعد انتهاء مارتون التركيب سوف نبدأ الآن بمثال بسيط حول webutil لنستطلع إمكانيات هذه الأداة المميزة :

1- من القائمة file اختر new ثم form ...

2- إضغط على attached library ثم زر + لإضافة مكتبة webutil.pll التي تجدها داخل المجلد webutil106 و عندما تظهر رسالة "هل تريد إزالة المسار " إختر لا

3- من القائمة file اختر open ثم قم بفتح webutil.olb ستجدها في object libraries .. اضغط بالزر الأيمن و اختر object library فتظهر نافذة .. قم بسحب webutil من النافذة إلى object library داخل module فتظهر رسالة اختر منها subclass ..

الخطوات الثلاثة السابقة يجب أن تنفذها كل مرة تقوم بإنشاء تطبيق يستخدم webutil ..

4 – اضف زر إلى module و قم بتسميته " أظهر معلومات الأداة التي عقدتني في تركيبها " ....

5- في الtrigger : when-button-pressed الذي انشأته على الزر السابق قم بإضافة الكود التالي :

show_webutil_information (TRUE);

ووظيفة هذا الكود هو إظهار معلومات حول إصدار webutil المثبت حالياً ...

6- قم بتشغيل Run للفورم ثم إضغط على الزر لتر النتيجة

7- أغلق Browser ..

و بذلك انتهى أول مثال لنا ....

أرأيتم كيف المثال كان بسيطاً ؟؟؟ و سنرى الأمثلة المقبلة التي ستكون بإذن الله في غاية البساطة ... و إني أنتظر استفساراتكم و أتمنى ألا أجد عبارات الشكر فقط و إنما عبارات المشاركة الفعالة التي ستجعلني متحمساً في إضافة الدرس المقبل ..

الدرس القادم سيكون حول تحميل ملف من جهاز client إلى السيرفر حيث سنسمح للمستخدم بالإستعراض لملف من جهازه ثم نقوم بتحميله إلينا ....

و السلام عليكم

#11

مرحبا

إنتظرتك كثير لكي استفيدمنك من هذا الدروس ولكن انا مبتدء با oracle المهم انا عندي

oracle developer 9i

ولكن واجهة مشكلة اني لم اجد هذا المسارات التي ذكرتها وأمل ان تساعدني في هذا الموضوع

وشكرا

- انسخ مجلد webutil الموجود داخل webutil106 إلى المسار DeveloperHome\forms90 ..

2- انسخ الملف jacob.dll إلىالمسار السابق و الملف jabcob.jar داخل oraclehome\forms90 \java .. كلا الملفين تجدهما في الملف المضغوط jabcob ...

3- داخل المجلد webutil106\java ستجد الملف frmwebutil.jar انسخه إلى المجلد DeveloperHome\forms90\java ..

4- داخل الملف Developer\j2ee\DevSuite\application-deployments\forms\forms90web

#12

أخي في جميع المسسارات التي ذكرتها :

DEveloperHome أو DEveloper أقصد بها المسار الذي قمت بتنصيب Developer عليه فمثلاً في الدرس تجد d:\oracle\product\10.1.0\Developer و هو المسار الذي قمت بتنصيب developer داخله ...

#13

انا نفذت كل الي انت قلتوا بس يوجد مشكله ظهرت عندما فتحت الشاشه

انه لا يجد jvm.dll

ثم عطاني هذه الرساله

.messagemanager.key confail bundle oracle.forms

.engine.runformbundle exception java.lang

illegalargumentexception:unknown format type at

ارجو الرد لاني نفسي اشغلها

علما باني اشتغل على 10g

#14

الاخ العزيز : شكراً لك

لكن اين الملف webutil.cfg

وشكراً

#15

بارك الله فيك ووفقك الله

سوف اجرب ذلك وارد اليك

#16

ملا حظة مهمة للأخوة : الطريقة التي ذكرنها تطبق على devloper 9i في حالة developer 10g استبدل f90all.jar بــfrmall.jar

تم تعديل هذه المشاركة بواسطة informat في 27 يونيو 2006 في 17:44

#17

بالنسبة إلى ملف webutil.cfg تجده في مجلد webutil106\server ..

بالنسبة إلى ملف jvm.dll فتوجد مشكلة لديك ولا أستطيع الآن أن احددها لك

تم تعديل هذه المشاركة بواسطة informat في 27 يونيو 2006 في 18:04

#18

هل تمت عملاية التركيب مع الجميع بنجاح ؟؟؟ لكي أقوم بوضع المثال التالي ....

#19

الاخ العزيز : شكراً لك ولكن يا ريت لو تعيد الشرح بالصور لكان افضل واحسن

وشكراً

#20

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

سنعتمد اليوم على :

1- فتح نافذة للإستعراض من ملف المستخدم :

CLIENT_GET_FILE_NAME(Directory name , file name ,  File Filter , Message , Dialog Type , select file );

حيث :

Directory name : اسم المجلد الإفتراضي الذي سيظهر مباشرة ( قيمته الإفتراضية هي مجلد المستخدم ) .

File Name : اسم الملف الذي سيتم تحديده بشكل إفتراضي ,

File Filter : ما هي الملفات التي نريد من المستخدم تحديدها فقط . أي إذا كنا نريد من المستخدم تحديد ملف صورة : ' Gif File |*.gif| JPG Files | *.jpg | ' .

Message : و هو اسم النافذة التي ستظهر .

Dialog Type : و هو نوع النافذة : إما فتح ملف open_file أو حفظ ملف save_file .

Select File : يعني هل نريد من المستخدم تحديد ملف أو مجلد بأكمله . إذا وضعنا True فإنه يسمح بتحديد ملف واحد أما إذا وضعنا False فإنه يستطيع تحديد مجلد بأكمله ..

مثال : لإستعراض ملف صورة :

 
CIENT_GET_FILE_NAME('','','Gif Files |*.gif| ' , 'Please Select a File ' , open_file , True);

2- قراءة ملف الصورة من جهاز المستخدم :

 CLIENT_IMAGE.READ_IMAGE_FILE(file_name , file_type , item_id  or item_name );

حيث :

1- File_name : المسار الكامل للملف الذي نود قراته .

2- file_type : نوع الملف و يجب أن يكون من الأنواع التالية : BMP , CALS , GIF, JFIF , JPG , PICT , RAS, TIFF .

3- item_id و هو الرقم الفريد الذي يعطيه Oracle Forms ل Image_item عندما نضعه على Form .. يمكنك و ضع اسم image_item بدلاً عن ذلك الرقم ..

التطبيق :

1- نفذ جميع الخطوات التي تحدثنا عنها في الدرس الماضي من حيث إنشاء form جديد و ووضع Webutil .. إلخ .

2- ضع زراً على الفورم و لنسمه upload_picture ، و ضع أيضاً image item على الفورم و سمه Client_picture و إجعل الإثنين داخل Control Block و سمه photo ..

3- في حدث الضغط على الزر upload_picture :

declare
	v_file varchar2(250):=	CLIENT_GET_FILE_NAME('','','gif Files | *.gif|JPG |*.JPG|' , 'Select a file to upload ' , open_file , True); 
	image_id ITEM:=FIND_ITEM('photo.client_image'); 
begin 
	 CLIENT_IMAGE.READ_IMAGE_FILE(v_file , '', image_id); 
end;

إذا وجدت تفاعلاً أكبر فإني سأضع بإذن الله تطبيقاً يشرح التعامل مع ole2 ... بالتوفيق للجميع

تم تعديل هذه المشاركة بواسطة informat في 19 يوليو 2006 في 02:08

#21

تطبيقنا اليوم سيكون حول كتابة file Text على جهاز الكلاينت و هذا الملف هو عبارة عن ملف bat أي دفعي و سنقوم بتنفيذه على جهاز الكلاينت أيضاً :

سنعتمد اليوم على :

1- الحزمة CLIENT_TEXT_IO : و هي الحزمة التي نستطيع إستخدامها لكتابة و حتى قراءة ملفات نصية موجودة على جهاز الكلاينت .

2- الإجرائية CLIENT_HOST و هي الإجرائية التي نستطيع تنفيذ أوامر على جهاز الكلاينت و هي نوع الأوامر التي يتم تطبيقها بواسطة محرر الأوامر Command Prompt .

سأذكر التطبيق الآن ثم سأقوم بشرحه :

declare
   our_folder_path varchar2(50) :='c:\temp'; 
	output_file CLIENT_TEXT_IO.FILE_TYPE; 
begin
	output_file  :=CLIENT_TEXT_IO.FOPEN(our_folder_path || '\myfile.bat','w'); 
	CLIENT_TEXT_IO.PUT_LINE( output_file , 'echo   Hi From webutil in the server  .. it is soo easy to write a file on you computer , soo be carefaul .I will see what on	you c drive : ' ); 
	 CLIENT_TEXT_IO.PUT_LINE( output_file , 'dir  c:' ); 
CLIENT_TEXT_IO.FCLOSE(output_file); 
CLIENT_HOST('cmd /c ' || our_folder_path ||'\myfile.bat' ); 
end;

الآن :

1- our_folder_path هو مسار المجلد الذي نريد وضع الملف داخله .

2- output_file : هو متحول من النمط المعرف FILE_TYPE الموجود داخل الحزمة CLIENT_TEXT_IO و هو مقبض الملف الذي سنتعامل معه في عملية الكتابة .

3-الإجرائية put_line من الحزمة CLIENT_TEXT : و هي مخصصة للكتابة على الملف و تأخذ وسيطين : مقبض الملف و العبارة التي نريد كتابتها على الملف .

4-FCLOSE : من إسمها لإغلاق الملف .

آمل أن يكون التطبيق واضحاً و أن يستفيد الجميع من أفكاره ..

تم تعديل هذه المشاركة بواسطة informat في 21 يوليو 2006 في 04:30

#22

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

السيد informat جزاك الله كل خير

فعلا انا نفذت هذة الطريقة و نجحت و لكن عندما اعمل trigger for push button

Declare

X Varchar2(255);

Begin

x := CLIENT_WIN_API_ENVIRONMENT.Get_Windows_Username;

message(x);message(x);

End;

و عندما اعمل رن للفورم و اختار البوتون يعطينى

FRM-40734 INTERNAL ERROR: PL/SQL ERROR OCCURREND

مع العلم انى عملت COMPILE

لل WEBUTIL.PLL

و تمت العملية بنجاح

فهل ممكن مساعدتك جزاك الله كل خير

#23

أهلاً بك أخي WindMan و أرحب بمشاركتك الأولى ...

الخطأ كم يظهر بالرسالة هو خطأ داخلي و السبب أن function الذي تستعمله لا يعمل كما يجب و لم يرجع فيمة إلى x و عندما طلبت إظهار قيمة x ( الفارغة أصلاً ) أدى ذلك إلى الخطأ ...

يمكنك أخي أن تستخدم الكود التالي إذا اردت إظهار اسم مستخدم النظام :

x:=webutil_clientinfo.get_user_name;

و هو تابع أفضل ... إذا أردت معلومات عن الكلاينت يمكنك استخدام الحزمة webutil_clientinfo بدلاً عن CLIENT_WIN_API_ENVIRONMENT بحيث يمكنك الاستفادة من الإجرائيات التالية :

webutil_clientinfo.get_user_name;
  webutil_clientinfo.get_ip_address;
  webutil_clientinfo.get_host_name;
   webutil_clientinfo.get_operating_system;
   webutil_clientinfo.get_java_version;
   webutil_clientinfo.get_path_separator;
   webutil_clientinfo.get_file_separator;
   webutil_clientinfo.get_language;
   webutil_clientinfo.get_time_zone;
  webutil_clientinfo.get_date_time;

بالتوفيق

#24

شكرا لك يأخي

#25

السلام عليكم

جزاك الله خيرا

أنا طبقت الخطوات كلها ولكن عند التنفيذ يكون المستعرض ثقيل ويظل يحمل ولكن بدون فائدة ما في نتيجة

وعملت compile للمكتبة ولكن تعطي أخطاء

وانا عندي oracle9i ,developer 9i

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