الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

خطوات ربط ملف Word بجدول ثم عرضه من الفورم

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاتة .
هذا مثال مبسط عن كيفية استخدام الـbfile datatype لخزن رابط الملف ولذي سوف يتم عرضه عن طريق الدفلوبر .

الخطوات :
1- انشاء جدول يحوي BFILE Column

create table my_doc (no number , my_doc bfile);


2- تعريف virtual directory للـ physical directory

Create directory 'my_doc' as 'd:\temp';


لاحظ انك قمت بتعريف virtual directory باسم my_doc يشير الى الـphysical directory المسمى d:\temp
على اعتبار ان الملفات الي سوف يتم ربطها بالسجل موجوده في المسار d:\temp
3- الان نقوم بإضافة سجلين للجدول

insert into my_doc values (1,bfilename('my_doc','w1.doc'));
insert into my_doc values (2,bfilename('my_doc','w2.doc'));


وفي المثالين السابقين قمنا بربط ملفي وورد
ملاحظة
سوف يتم خزن مسار واسم الملف فقط وليس الملف , وهذه طريقة افضل من عملية خزن الملف في الجدول لانه سوف يؤثر على اداء البرنامج .
4- الان نصمم function في الداتابيز لاسترجاع اسم الملف مع الـمسار

create or replace function get_name_path(p_no number) return varchar2 
is
  Result varchar2(2000);
  Lob_loc         BFILE;
  DirAlias_name   VARCHAR2(200);
  File_name       VARCHAR2(200);
  P_d             VARCHAR2(200);
BEGIN
  SELECT my_doc INTO Lob_loc 
  FROM my_doc 
  WHERE no = p_no;
  DBMS_LOB.FILEGETNAME(Lob_loc, DirAlias_name, File_name);
  Select directory_path into p_d
 from all_directories
 where upper(directory_name)=upper(DirAlias_name);
  result:=P_d ||'\'||file_name;
  return(Result);
exception 
         when no_data_found then 
              return null;   
end get_name_path;



5- الان انشاء block لهذا الجدول مع الاخذ بعين الاعتبار ان نوع الحقل للـcolumn BFILE هو text item
في الtrigger المسمى when-new-record-instance ضع الكود التالي

:my_doc.my_doc:=GET_NAME_PATH(:MY_DOC.NO);


6- في الـtrigger المسمى WHEN-MOUSE-DOUBLECLICK ضع الكود التالي

DECLARE
 ConvID  PLS_INTEGER;
BEGIN
  ConvID := DDE.App_Begin('D:\Program Files\Microsoft Office2000\Office\WINWORD.exe '|| Get_name_path(:my_doc.no),DDE.APP_MODE_MAXIMIZED	);
END;



ملاحظة
غير المسار التالي

D:\Program Files\Microsoft Office2000\Office\WINWORD.exe 


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

BFILE_EXAMPLE.zip

  • الردود 25
  • المشاهدات 14.9k
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

بتاريخ:

مشكور و جزاك الله الف خير

بتاريخ:

شكرا جزيلا لك على المعلومات المفيدة...

بتاريخ:

السلام عليكم
موضوع مميز وإلى الأمام أخي خالد :D :D
تحياتي

بتاريخ:

ممتاز جدا جزاكم الله خير الجزاء

بتاريخ:

مشكور اخ خالد على هذه المعلومات المهمة ,,,,,,,

تحياتي / ammar_pro

بتاريخ:

طريقة جميله فعلا

  • بعد 8 شهور...
بتاريخ:

احسنت اخ خالد وجزاك الله خير الجزاء
طريقة جميلة وكود قيم تستحق التقدير عليه

بتاريخ:

الأخ العزيز/خالد
- ذكرت أن الحقل من النوع Bfile سيستخدم في حفظ مسار الصورة فقط الا يكفى استخدام حقل من النوع Varchar2 لهذا الغرض وتصبح العملية أسهل بكثير؟
- هل هذا كل صفات الحقل من النوع Bfile في التعامل مع الملفات الثنائية.
- كيف يمكن وضع المستندات المراد الإتصال بها وهي موجودة بأماكن مختلفة على الجهاز في الدليل الذي حددته (copy_file).
وشكرا لكم

  • بعد 3 أسابيع...
بتاريخ:

شكراً على هذا البرنامج

ولكن عندي سؤال اريد ان اخزن على السيرفر كل الملفات الوورد او اي ملفات مثل
FMX لكي يتسنى لكل مستخدمين البرنامج تنزيل آخر تحديث ل FMX

يعني اريد ان اتخلص من SHARING

  • بعد 2 سنة...
بتاريخ:

مشكور اخي وجزاك الله خير الجزاء

بتاريخ:

مشكور اخي على هذا البرنامج لكن الرابط لا يعمل

بتاريخ:

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

بتاريخ:

لم يتم تحميل المف ارجو من الاخوة الذين حملوة ارسالة وجزاكم الله خيرا
[email protected]

بتاريخ:

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

بتاريخ:

مشكور اخي الكريم ولكن في حالة وجود الملف بصيغة .txt هل استطيع تطبيق نفس الكود على ملف text file
شكرا
تحياتي

  • بعد 3 أسابيع...
بتاريخ:

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

  • بعد 4 شهور...
بتاريخ:

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

  • بعد 7 شهور...
بتاريخ:

هنالك طريقة سهلة لربط ملف وورد من خارج الداتا بيز
وانا كنت بفكر فيها الى ان وجد الحل

اولا الخطوة الاولى انشاء عمود فى الجدول المراد عرض الوورد فيه
مثلا جدول الموظفين بفرض ان لكل موظف ملف وورد خاص به يحمل معلومات عن الموظف
انشاء حقل فقط للمسار
بفرض ان رقم الموظف هو رقم الملف فى المسار المعين
كتابة تريقر فقط لادراج المسار فى الحقل
:item.file_name:=GET_FILE_NAME(File_Filter=>'all(*.*)|*.*|');
وكتابة تريقر اخر لعرض ملف الوورد

when_butoum_pressed
Declare
filename varchar2(30);
Begin if :my_block.my_item  is not null then
host('d:\Program Files\Microsoft Office\Office11\winword.exe '
||:my_block.my_item);
else message('áÇ ÊæÌÏ ØÑíÞÉ ÊÍáíá ááãÓÊÍÖÑ');
	message ('áÇ ÊæÌÏ ØÑíÞÉ ÊÍáíá ááãÓÊÍÖÑ');
	end if;
end;

  • بعد 8 شهور...
بتاريخ:



ياشباب محتاجين مساعدة الموضوع مهم لي بدرجة كبيرة ولا اعرف اين الخطا في الفورم عند تنفيذه لاصححه

بتاريخ:

ارجوكم يا شباب الموضوع مهم لي ولا اعرف ماذا افعل

ارجوا تنفيذ الفورم ومعرفة اين الخطا

وكيف اكون Create directory 'my_doc' as 'd:\temp

  • بعد 8 شهور...
بتاريخ:

بصراحة مجهود رائع جدا

بتاريخ:

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

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.