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

فتح ملف مخزن بالداتا بيس عن طريق الضغط عليه

مغلق
بدأه jooorj في 11 ديسمبر 2006 · 5 رد · 838 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السؤال كالتالي

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

موقوف من المشاركة لقلة الأدب

============================

#2

1-استخدم ال ado.stream لإسترجاع الملف الى ملف temp

ثم عند النقر عليه استخدم الأداة ole لفتحه

#3

ينصح بتسجيل Format الملف كبيان أيضا في قاعدة البيانات. وفي البرنامج, استرجع البيانات الـ Binary الخاصه بالملف ثم استخدم مثلا BinaryWriter لكتابة الملف في Temp Folder بنفس الامتداد المسجل في قاعدة البيانات. ثم شغل هذا الملف بـ System.Diagnostics.Process ليتم فتحه بالبرنامج المخصص بفتح أمثاله من الملفات.

ولكن, لماذا تقوم بتسجيل ملف كامل في قاعدة البيانات ؟ فيمكن مثلا أن تكتفي بتسجيل عنوانه ( الـ Path ) ثم تسترجعه في البرنامج وتشغله بكلاس Process.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#4

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

موقوف من المشاركة لقلة الأدب

============================

#5

يمكنك ألا تخزن أي شيء على جهاز العميل أيضا بنفس الطريقه. افعل ما ذكرته في ردي السابق ولكن اعد كتابة الملف بـ BinaryWriter في Folder تحدده أنت يكون موجود على السيرفر, واعطي الصلاحيات اللازمه للقراءه والكتابه لهذا الـ Folder ولما يحتويه حتى يستطيع العملاء أو البرامج التي تعمل باسمهم - الوصول اليه من خلال الشبكه. بعد ذلك على السيرفر يمكنك أن تعرف اذا كان تم تعديل الملف أم لا من خلال الـ Attribute التي تسمى Last Modified على ما أذكر. وان كان قد تم تعديله اكتبه مرة أخرى في قاعدة البيانات والا فلا.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#6
اقتباس
يمكنك ألا تخزن أي شيء على جهاز العميل أيضا بنفس الطريقه. افعل ما ذكرته في ردي السابق ولكن اعد كتابة الملف بـ BinaryWriter في Folder تحدده أنت يكون موجود على السيرفر, واعطي الصلاحيات اللازمه للقراءه والكتابه لهذا الـ Folder ولما يحتويه حتى يستطيع العملاء أو البرامج التي تعمل باسمهم - الوصول اليه من خلال الشبكه.

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

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

حقيقي اشكرك اخي معتز شمس وكذلك كل الاخوة الذين شاركوا بالاجابة على تساؤلاتي من أول يوم ، لكن أود إفادتي بطريقة بحيث أجعله يفتح على جهاز العميل فلقد عمدت لعمل مجلد مؤقت على جهاز العميل بدل الشبكة ويحذف بعد كل عملية لكن لا أدري إن كانت هذه الطريقة مثالية أو أن بها خطورة أو أخطاء مستقبلية.... واخيرا أرجو الاطلاع لعى ردي هذا وموافاتي بخبراتكم القيمة :)

موقوف من المشاركة لقلة الأدب

============================

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…