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

كيفية التعرف على مسار قاعدة البيانات بتغير مكان الملف التنفيذي عند عمل setup للبرنامج

مغلق
بدأه Visual Studio في 27 ديسمبر 2006 · 12 رد · 4,197 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي برنامج به قاعدة بيانات كبيرة الحجم وأريد عمل setup للبرنامج بحيث أن الملف التنفيذي سيكون مساره كالآتي :

C:\program files\books\book.exe

وأريد أن يتعرف الملف التنفيذي على مسار قاعدة البيانات تلقائيا

وللتوضيح أكثر أقول :

لنفرض أن مجلد البرنامج اسمه Books وبداخله قاعدة البيانات واسمها Data وملف Setup

فعدما يقوم المستخدم بعمل setup للبرنامج فإن الملف التنفيذي سيكون مساره مثلا C:\program files\books\book.exe

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

فأريد من البرنامج عند تسطيبه أن يتعرف على مكان قاعدة البيانات تلقائيا ويحفظها مثلا في ملف text مع مسار الملف التنفيذي كما أراه في كثير من الأسطوانات حيث يمكنك أحيانا أن تنزلها على أي مكان على الهارد وبعدها تقوم بعمل setup فتجد الملف التنفيذي يتعرف على مكان قاعدة البيانات مباشرة

ملاحظة : لا يقول لي أحد ضع قاعدة البيانات في app path فكل هذا أعرفه جيدا لكن حالتي هذه مختلفة فانا لا أريد أن أضعها في نفس مسار الملف التنفيذي لأنها كبيرة الحجم جدا وبالتالي فإرفاقها مع setup ليس حسنا

من يتكرم ويضع لنا الحل ؟

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

تم تعديل هذه المشاركة بواسطة محمد زغلول في 27 ديسمبر 2006 في 21:54

#2

اخي محمد زغلول

الحقيقة لم اعمل هكذا مشروع، وأعتقد الحل سيكون في الكومن دايلوق

تحدد مسار القاعدة منة وسيتم حفظها حتى يتم تغيير موقع القاعدة بالأمكان أيضاً تحديد المسار الجديد وحفظة وهلمجره

أتمنا أن أكون وفقت في الأجابة ... تحياتي للجميع

#3
محمدvb كتب:
اخي محمد زغلول

الحقيقة لم اعمل هكذا مشروع، وأعتقد الحل سيكون في الكومن دايلوق

تحدد مسار القاعدة منة وسيتم حفظها حتى يتم تغيير موقع القاعدة بالأمكان أيضاً تحديد المسار الجديد وحفظة وهلمجره

أتمنا أن أكون وفقت في الأجابة ... تحياتي للجميع

أخي الكريم

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

وكما قلت هذه الطريقة والله أعلم تعتمد على وجود ملف text ينزل مع setup في program files ويكون به مسار قاعدة البيانات , لكن كيف أعمل هذا الأمر , هذا هو الإشكال ؟!!!

أرجو من الإخوة أن يساعدوني

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

#5

أليس هذا ما تقصده:

App.Path

??? :unsure:

-------------

تعديل: اسف لم أقرأ موضوعك حتى النهاية انسى الرد :lol:

تم تعديل هذه المشاركة بواسطة sBForum في 31 ديسمبر 2006 في 03:44

#7

سم الله الرحمن الرحيم

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

ببساطه لو انت شغال بالداتا متكتبش المسار لما تختار databasenameثلا لو قاعدة البيانات أسمها db1

أكتب فى databasename = db1.mdb ولو انت شغال بالداو او الادو مش هتظهر معاك المشكه لان الربط كله بالكود

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

ولو كنت فهمته صح جرب ولو فيه مشكله كلمنى

سبحان الله وبحمده سبحان الله العظيم

s.gif

#8

أخي محمد زغلول ما تطلبة ليس صعباً ولكن سيكلفك تعب كثير وإحتمال ينتج عنه ( خطأ فادح )....

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

ملاحظة سوف ينتج بطء في البرنامج عند التحميل بسبب الكود!

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

لنفرض تغير مسار قاعدة البيانات فلن يجدها في مسارها المحفوظ..

سيتطلب الأمر جعل الكود يعمل في كل مره يتم تشغيل البرنامج فيها فهنا سوف أقول عظم الله أجرك في برنامجك سيصبح بطئ جداً على حسب حجم الدرايفات التي سيبحث فيها..

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

فلنفرض أن برنامجك للصيدلة والمستشفيات مثلاً ووجد قاعدة بيانات بنفس الأسم لبنشر سيارات وبيع زيوت الفرامل أرأيت كبر حجم المشكلة التي ستنتج...

أخي محمد زغلول دع قاعدة البيانات في مسار البرنامج علشان خاطري.... تحياتي للجميع

تم تعديل هذه المشاركة بواسطة محمدvb في 3 يناير 2007 في 22:18

#9

أخي الكريم يمكن تفادي هذي المشكلة عند إنشاء الـsetup للبرنامج. فإذا كنت تستخدم برنامج Package & Deployment Wizard الذي يأتي مع الفيجوال بيسك 6 يمكنك اختيار الملفات المطلوب إضافتها و تحديد موقعها على الجهاز الذي سيتم تثبيت البرنامج عليه.

#10

اخى العزيز

المستخدم لن يحتاج للتنقل بال برنامج فالبرنامج يوجد فى مكان التسطيب ويمكنه ان ياخذ Short Cut ويضعها اين يشاء ..فمثلا هل الانتى فيرس على الديسك توب بتلاقى قاعدة البيانات اللى بيبحث طبقا لها موجودة بجواره :D

لا فهو موجود معها فى مكان السيت اب والاختصار يوول اليه من اى مكان

تم تعديل هذه المشاركة بواسطة FemTo في 4 يناير 2007 في 02:44

مدونة مهندس ميكانيكى

“Any fool can make things bigger, more complex, and more violent”

#11

بسيطة جدا وحلها عندي باذن الله

ابحث عن هالبرنامج

innosetup

وابحث عن شرح له

وبعدها قم بعمل ما تريده على هذا البرنامج

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

مـــبــــــرمـــــــج Asp.Net

لــخدمـ الـــبرمـــجـــة ـــــــات

يــــــــــرجــــى الاضــــافــــــة

Mr.Asp@Hotmail.Com

#12
moslem_12002 كتب:
سم الله الرحمن الرحيم

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

ببساطه لو انت شغال بالداتا متكتبش المسار لما تختار databasenameثلا لو قاعدة البيانات أسمها db1

أكتب فى databasename = db1.mdb ولو انت شغال بالداو او الادو مش هتظهر معاك المشكه لان الربط كله بالكود

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

ولو كنت فهمته صح جرب ولو فيه مشكله كلمنى

أخي الكريم moslem_12002

أشكرك على مشاركتك لكن هذا بعيد عما أريده ولو دققت النظر في سؤالي ربما استوعبت الأمر أكثر

محمدvb كتب:
أخي محمد زغلول ما تطلبة ليس صعباً ولكن سيكلفك تعب كثير وإحتمال ينتج عنه ( خطأ فادح )....

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

ملاحظة سوف ينتج بطء في البرنامج عند التحميل بسبب الكود!

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

لنفرض تغير مسار قاعدة البيانات فلن يجدها في مسارها المحفوظ..

سيتطلب الأمر جعل الكود يعمل في كل مره يتم تشغيل البرنامج فيها فهنا سوف أقول عظم الله أجرك في برنامجك سيصبح بطئ جداً على حسب حجم الدرايفات التي سيبحث فيها..

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

فلنفرض أن برنامجك للصيدلة والمستشفيات مثلاً ووجد قاعدة بيانات بنفس الأسم لبنشر سيارات وبيع زيوت الفرامل أرأيت كبر حجم المشكلة التي ستنتج...

أخي محمد زغلول دع قاعدة البيانات في مسار البرنامج علشان خاطري.... تحياتي للجميع

أخي الكريم محمد vb

لا يمكنني أن أجعل قاعدة البيانات في نفس المسار لأن قاعدة البيانات كما قلت كبيرة الحجم , كما أن المستخدم ربما يدخل بيانات فيها أو يحذف منها فلو جعلتها في مسار البرنامج على C , فبإذن الله لو قام بعمل فورمات للجهاز سيضيع ما فعله في قاعدة البيانات وسيظل يدعو على

aldowsary كتب:
أخي الكريم يمكن تفادي هذي المشكلة عند إنشاء الـsetup للبرنامج. فإذا كنت تستخدم برنامج Package & Deployment Wizard الذي يأتي مع الفيجوال بيسك 6 يمكنك اختيار الملفات المطلوب إضافتها و تحديد موقعها على الجهاز الذي سيتم تثبيت البرنامج عليه.

أخي الكريم aldowsary

موضع قاعدة البيانات سيختلف من جهاز لآخر بمعنى

لو أني جعلت موضع قاعدة البيانات أثناء عمل الست أب كالآتي :

D:\books\data.mdb

فماذا لو قام المستخدم بوضع البرنامج على الدرايف E أو F مثلا ؟

بالطبع سيختلف المسار

وبالتالي هذه الطريقة لا تنفع

FemTo كتب:
اخى العزيز

المستخدم لن يحتاج للتنقل بال برنامج فالبرنامج يوجد فى مكان التسطيب ويمكنه ان ياخذ Short Cut ويضعها اين يشاء ..فمثلا هل الانتى فيرس على الديسك توب بتلاقى قاعدة البيانات اللى بيبحث طبقا لها موجودة بجواره :D

لا فهو موجود معها فى مكان السيت اب والاختصار يوول اليه من اى مكان

أخي الكريم FemTo

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

محـ جمال مـد كتب:
بسيطة جدا وحلها عندي باذن الله

ابحث عن هالبرنامج

innosetup

وابحث عن شرح له

وبعدها قم بعمل ما تريده على هذا البرنامج

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

أخي الكريم محـ جمال مـد

أذكر أني استعملت هذا البرنامج منذ فترة وطبعا لم يؤدي الغرض لأن المشكلة هي في تعريف الملف التنفيذي (طبعا عند التسطيب) بمسار قاعدة البيانات أينما كانت على الهارد

إخواني الكرام

أرجو أن تقرؤا مشاركتي جيدا حتى تفهموا مرادي جيدا

وجزى الله خيرا كل من حاول مساعدتي

تم تعديل هذه المشاركة بواسطة محمد زغلول في 5 يناير 2007 في 22:42

#13

السلام عليكم

فكره :

يوضع ملف نصي يبرمج بحيث يمكن انشاؤه اذا لم يكن موجود

يوضع فورم خاص بالحصول على قاعدة البيانات

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

اذا وجد قاعدة البيانات

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

طبعا عند التشغيل اذا كان الملف الذي يحتوي على قاعدة البيانات غير موجود لا يمكن تفعيل اي شي عدا شاشة الحصول على مكان القاعده

ويفترض ان ترشد العميل الى ان قاعدة بيانات البرنامج محفوظه في الدليل الفلاني ......

ارجو ان اكون اوضحت الفكره

انا عامل برنامج زي كذا لكن الى الان ما انتهى ....ربما تكون الفكره صح او غلط وبالتأكيد توجد افكار وحلول اخرى ...

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

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

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

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

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

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

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