مشكلة مع المسار...
#1
السلام عليكم لقد أتممت إنجاز تطبيق لسطح المكتب لكن صادفتني هذه المشكلة بعد نقله الى جهاز اخر و إليكم صورة رسالة الخطأ و اخرى لخصائص الجهاز المستقبل مع العلم أن أول فورم لهذا التطبيق استعملت فيه firedac لربط قاعدة البيانات اما باقي الفورمات فاستخدمت adoconnection و اللغة المستخدمة هي delphi xe 10 berlin


الملفات المرفقة
.jpg   120369891_706119579979297_138867477607545265_n.jpg (الحجم : 92.82 ك ب / التحميلات : 57)
.jpg   120371753_3381554638547023_9059082219099276097_n.jpg (الحجم : 55.15 ك ب / التحميلات : 47)
[-] كل من 1 user says قال شكرا ل theking على المشاركة المفيدة
  • fars74
الرد
#2
السلام عليكم
ملاحظة: وجود ADO Connection و الـ FireDac Connection متصلين على نفس قاعدة البيانات يعتبر مستخدمين لقاعدة البيانات تشغيل التطبيق مرتين لديك اربع مستخدمين لنفس قاعدة البيانات...
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
[-] كل من 1 user says قال شكرا ل S.FATEH على المشاركة المفيدة
  • theking
الرد
#3
(29-09-2020, 01:02 AM)S.FATEH كتب : السلام عليكم
ملاحظة: وجود ADO Connection و الـ FireDac Connection متصلين على نفس قاعدة البيانات يعتبر مستخدمين لقاعدة البيانات تشغيل التطبيق مرتين لديك اربع مستخدمين لنفس قاعدة البيانات...

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

بنفس الطريقة التي حددت بها المسار في الـ ADO حدد المسار في الـ FireDac ...
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#6
السلام عليكم

المشكل حسب الصورة في FireDac ، وعملية الإتصال بـ ODBC ، غير عملية الإتصال لا تتصل بـ ODBC ، إتصل مباشرة بدون وسيط
الرد
#7
(02-10-2020, 09:10 AM)fars74 كتب : اظن انه اثناء انجاز التطبيق.. الاتصال لم يكن ديناميكي
شكرا للجميع لقد تم حل المشكلة و ذلك بوضع الملف التنفيذي و قاعدة البيانات في نفس المسار الافتراضي الذي تمت  فيه انجاز المشروع
المسار كالاتي D:\َApplication\prg\Win32\Debug
شكرا للجميع  
Heart
الرد
#8
إقتباس :شكرا للجميع لقد تم حل المشكلة و ذلك بوضع الملف التنفيذي و قاعدة البيانات في نفس المسار الافتراضي الذي تمت  فيه انجاز المشروع

المسار كالاتي D:\َApplication\prg\Win32\Debug


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

يمكنك مثلا معرفة مجلد المشروع بالكود التالي

كود :
ExtractFileDir(Application.ExeName)

كود :
ExpandFileName(GetCurrentDir + '\..\..\'); // Current folder ExpandFileName(ExtractFileDir(Application.ExeName) + '\..\..\'); // Exe folder
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • dpc05
الرد
#9
إقتباس :هل ممكن مكان وضع الكود شكرا
الرد
#10
يتم ذلك عن طريق الربط الديناميكي لقاعدة البيانات الخاصة بك

هذا الكود كمثال على ذلك: "يوضع في الحدث On Create" للفورم "Data module"


كود :
procedure Tdm.DataModuleCreate(Sender: TObject); begin try FDConnection.Connected := False; FDConnection.Params.Clear ; FDConnection.Params.DriverID:='MSAcc' ; FDConnection.Params.Database:= 'Database='+ExtractFilePath(Application.ExeName)+'yourdatabase.mdb'; FDConnection.Params.Username := ''; FDConnection.Params.Password := ''; FDConnection.LoginPrompt := False; FDConnection.Params.Add('CharacterSet=utF8'); FDConnection.Open; FDConnection.Connected:=true; Table1.Active:=true; Table2.Active:=true; //ShowMessage('OK'); except ShowMessage('Erreur data base!!!'); end; end; end.

ثم في الاخير يتم تحزيم البرنامج عن طريق InnoSetup compiler

ملاحظة مهة جدا: يجب التعليم على الخاصية "Install for current user only"
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم