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

بخصوص إعداد البرنامج لتوزيعه على الزبون

بدأه nansoft في 24 مايو 2009 · 27 رد · 2,935 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السىلام عليكم

إخواني قمت بإعداد برنامج بسيط وإستعملت هنا قاعدة البيانات أكسس و ADO

أردت تثبيته على جهاز الزبون وقد إستخدمت install shield

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

أرجوا منكم توضيح هذا المشكل أو بالأحرى ماهي الملفات الواجب إرفاقها مع البرنامج يحتى يعمل بشكل صحيح في جهاز آخر

بارك الله فيكم

تم تعديل هذه المشاركة بواسطة nansoft في 24 مايو 2009 في 10:32

#2

أكسس فقط

ارجوا ان تضع الرسالة و كود الاتصال بالقاعدة

او اعمل تنفيذ سطر بسطر و قلنا في اي سطر المشكلة .

#3

شكرا أخي على هذا الإهتمام

فيما يخص الرسالة التي تظهر فهي كالآتي

gt557193.jpg

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

تم تعديل هذه المشاركة بواسطة nansoft في 24 مايو 2009 في 12:24

#4

ما قصده الأخ زكيري هو كيف تقوم بتحديد مكان قاعدة البيانات

هل تظهر الرسالة عند بداية تشغيل المشروع أم عند القيام بأحد العمليات ؟

تم تعديل هذه المشاركة بواسطة rober في 24 مايو 2009 في 12:34

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#5

أحدد مكان قاعدة المعطيات بالأداة adoconnection مع إعطاء نوع الموفر microsoft Jet 4.0 OLE DB Provider

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

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

ذلك بسبب أنّ مسار قاعدة البيانات لديك يختلف عن مسار قاعدة البيانات لدى الزبون بعد تنصيب البرنامج... عليك بوضع المسار برمجياً في ال Connection string اي بواسطة الكود وذلك بعد الحصول على مسار التطبيق و من ثم قاعدة البيانات...

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#7

بارك الله فيك أخي

فيما يخص مسار قاعدة المعطيات فهو D:\Positions_statutaires\db

لكن أرجوا إفادتي بالكود إن لم يكن هناك مانع وأين يوضع بالضبط

بارك الله فيكم مرة أخرى

#8

حاول وضع

Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=.\test.mdb

في خاصية ConnectionString للمكون adoconnection

مع مراعاة

1- تغيير test.mdb بإسم ملف قاعدة البيانات

2- أن يكون ملف قاعدة البيانات في نفس مسار الملف التنفيذي

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#9

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

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#10

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

فيما يخص الملف udl أرجوا التوضيح أكثر أقصد طريقة العمل

أرجوا أن يتسع صدركم لي

تم تعديل هذه المشاركة بواسطة nansoft في 24 مايو 2009 في 15:28

#11

أخي الكريم

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

procedure TForm1.Button1Click(Sender: TObject);
begin
  opendialog1.Filter := 'DataBase File|*.mdb';
  if opendialog1.Execute then
  begin
	try
	  adoconnection1.Connected := false;
	  adoconnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source='+opendialog1.FileName;
	  adoconnection1.Connected := true;
	  showmessage('connection is completed');
	except
	on e : exception do
	  showmessage('connection is faild');
	end;
  end;
end;

قمت بإرفاق مثال بإستخدام دلفي 7 للتوضيح أكثر أرجو أن يفيدك

select_database.rar

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#12

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

وبارك الله فيكم مرة أخرى

تم تعديل هذه المشاركة بواسطة nansoft في 24 مايو 2009 في 17:08

#13

لا داعي لأن تقوم بأي شيء بخصوص برنامج الأعداد فقط قم بجعل برنامج الأعداد يقوم بنسخ الملفات و الباقي أثناء عمل المشروع

في المرفق نفس الكود السابق لكن بعد إجراء بعض التعديلات

قم بتشغيل المشروع كما هو

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

و لاحظ ما يحدث

أرجو أن يفيدك هذا المثال أيضاً

select_database.rar

تم تعديل هذه المشاركة بواسطة rober في 24 مايو 2009 في 18:39

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#14

اولا كيف حالك اخي rober ارجوا ان تكون بخير

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

مسار القاعدة

اسم ملف الاكسس

كلمة السر و المستخدم

....

....

ثم تقوم بحفض كل هذه المعلومات في ملف اعدادات INI او XML

وتتم القراء في كل مرة تشغل فيه البرنامجة .

بالتوفبق

#15

الطريقة التي اشرت اليها سهلة اخي الكريم

اولا انشاء ملف TXT عادي ثم سميه ما تريد بلاحقة UDL .*

ليظهر الملف بالشكل التالي

post-112245-1243191807_thumb.jpg

ثم دبل كليك على هذا الملف واختر كما جرت العادة قاعدة البيانات التي تريدها

post-112245-1243191504_thumb.jpg

وما دمت تستعمل اكسس اختر Provider في التويبات ثم اختر Provider=Microsoft.Jet.OLEDB.4.0

ومن التبويب Connection

اختر مسار قاعدة البيانات بالشكل العادي ايضا

post-112245-1243192139_thumb.jpg

وهنا ناتي الي دلفي

في المكون ADOConnection1 نضغط دبل كليك

post-112245-1243195323_thumb.jpg

اختر UseData link File ثم اضغط على Browse

واختر ملف UDL.* الذي انشاته

ومن ثم ضع الملف في جهاز الزبون وحدد قاعدة البيانات من خارج البرنامج

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#16

بارك الله فيكم إخواني على هذه الحلول الرائعة سوف أجرب وأرجع إليكم بالنتيجة

#17

لقد جربت كل الأمثلة ونجحت معي اعرف أني أطلت في إعادة نفس الأسئلة فقط أنا أردت أن تكون العملية كالآتي

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

شكرا لإتساع صدركم معكم

تم تعديل هذه المشاركة بواسطة nansoft في 25 مايو 2009 في 12:28

#18

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

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

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

شكرا

#19
اقتباس
كما يمكنك استعمال طريقه الاخ روبار الذي قال لك ان تضع \. ثم تنسخ القاعدة في نفس مسار الملف التنفيذي .

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

لذلك قمت باستبدالها بوضع المسار كامل باستخدام

extractfilepath(application.exename)

لذلك يمكنك استخدام الكود التالي في ال Load للفورم الرئيسية للبرنامج:

try
	  adoconnection1.Connected := false;
	  adoconnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source='+extractfilepath(application.exename) + 'DBfileName.mdb';
	  adoconnection1.Connected := true;

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#20

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

D:\Positions_statutaires\db..mdp

لكن الزبون لا يملك المسار D

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

السلام عليكم

#21

عذرا لكن لم أفهم المطلوب :blush:

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

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#22

اولا لتعلم ان اغلب البرامج لبدا لها من تسطيب واغلب مسار التسطيب هو C:\Program Files يعني مسار برنامجك بعد التسيطب سيكون :

C:\Program Files\yourApp

اذا بما ان كل الاجهزة تملك المسار C:\program Files فلتقم بالتالي :

انشئ مجلد تحت مسار برنامجك و ليكن مثلا db وهذا يعطي النتيجة التالية :

C:\Program Files \yourApp\db

تضع قاعدة بياناتك في مجلد ال db .

واتبع حل الاخوة .

بعد ذلك اجعل برنامجك يبحث و يتصل بقاعدة البيانات اذا فشل في ايجادها لسبب ان الزبون غير اسم المجلد مثلا يظهر رسالة خطاء بعدم وجود قاعدة البيانات .

--

هناك اخطاء انت لا تتحمل مسؤليتها بل الزبون :

تغيير / حذف / اعادة تسمية المجلد .......

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#23

شكرا جزيلا على هذه الحلول فقد جربت بعد متابعتكم القيمة لي ونجحت معي فعلا اما فيما يخص أخي روبر مسار القاعدة في نفس مسار البرنامج ، تعرفون سبب تساؤلاتي هذه هو أني قرات في إحدى المقالات وهي عبارة على نصاءح للمبرمج تفيد بعدم وضع البرنامج في المسار C لأنه إن حدث مشكل للجهاز سوف تظطر لإعادة التثبيت وتهيئة القرص وبالتالي تفقد البرنامج ومعلوماته ولهذا من الأحسن وضع المسار في D -أو E

و هنا وجدت المشكل الذي طرحته سابقا عندما صممت البرنامج مع وضعه في المسار D وجدت أن الزبون ليس لديه هذا المسار بل المسار E لأن عندما تستعمل BDE فهي تملك خاصية alias التي تمكنك من وضع البرنامج في أي مكان فقلت في نفسي آلا يوجد حل مشابه مع ADO -Access

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

السلام عليكم أخوكم ناسوفت

تم تعديل هذه المشاركة بواسطة nansoft في 26 مايو 2009 في 18:24

#24

الم اقل لك انه هناك اخطاء انت لست مسؤول عنها ومنها اعادة تهيئة الجهاز .

ويجب ان تكون ذكي في التعامل مع الاخطاء .

فيما يخص وضع البرنامج او لواحقه في ال D فهذا انا ضده تماما هناك شئ اخر يمكنك ان تفعله و هو اثناء عملية التثبيت اترك للزبون اختيار مكان التثبيت يعني القرار يعود للمستعمل .

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#25
اقتباس
و هو اثناء عملية التثبيت اترك للزبون اختيار مكان التثبيت يعني القرار يعود للمستعمل .

أو عند فتح البرنامج و عدم قدرته على الاتصال مع قاعدة البيانات تقوم باظهارDialoge لتحديد مسار قاعدة البيانات لتخزنها في ما بعد باستخدام ini files أو Registry او....

هذه المشاركة فيها مثال على ما تريد ايضا

كيف تبني تطبيق قواعد بيانات في دلفي

ابدأ من المشاركة رقم 26 و السلام عليكم...

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

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

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

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

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

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