مشكلة في حفظ قاعدة البيانات
#11

منذ البداية لم اجرب الكود وذلك دائما يسبب نسيان امور صغيرة...

كود :
copyfile(pchar(sPath+'sbase\teste.ABS'),pchar(Pdir+'\'+ComboBox1.Text+SpinEdit1.text),false);
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#12
لازالت المشكلة قائمة
فاضريت الى رفع المثال للإطلاع والتعديل
[attachment=3932]
الرد
#13
المشكل كان بمكان أخر غير الكود....
عدل ما يلي

كود :
procedure TDM.DataModuleCreate(Sender: TObject); var i:integer; begin  ABSDatabase1.Open;  for i := 0 to ComponentCount-1 do  if( Components[ i ] is TABSTable )then  (Components[ i ] as TABSTable).Open; end; procedure TDM.DataModuleDestroy(Sender: TObject); var i:integer; begin  for i := 0 to ComponentCount-1 do  if( Components[ i ] is TABSTable )then  (Components[ i ] as TABSTable).Close;  ABSDatabase1.Close; end;
وايضا
كود :
procedure TForm1.Button1Click(Sender: TObject); var sPath,Pdir:string; begin  sPath:=ExtractFilePath(ParamStr(0));  Pdir:=sPath+'\Archives';  if not DirectoryExists(Pdir) then CreateDir(Pdir);  DM.OnDestroy(sender);  Sleep(200);  copyfile(pchar(sPath+'sbase\teste.ABS'),pchar(Pdir+'\'+ComboBox1.Text+SpinEdit1.text),false);  DM.OnCreate(sender);  Sleep(500);  showMessage('ok');  Close; end; procedure TForm1.Button2Click(Sender: TObject); var sPath,Pdir:string; begin  sPath:=ExtractFilePath(ParamStr(0));  Pdir:=sPath+'\Archives';  if MessageDlg('إسترجاع',mtWarning,mbOKCancel,0)=mrOK then begin  DM.OnDestroy(sender);  Sleep(200);  copyfile(pchar(Pdir+'\'+ComboBox1.Text+SpinEdit1.text),pchar(sPath+'sBase\Teste.ABS'),false);  Sleep(500);  DM.OnCreate(sender);  ShowMessage('تم');  end else begin  ShowMessage('عذرا');  end; Close; end;
ولا تنسى تغيير Connected الى False للمكون ABSDatabase1
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#14
لقد تم تجريب الكود لاكن المشكلة لازالت قائمة
يعن قاعدة البيانات لم يتم حفظها بالمجلد archives
الرد
#15
الكود يشتغل جيدًا, أنت تجرب البرنامج من داخل مجلد Win32\Debug, في حين مجلد قاعدة البيانات خارج هذين المجلدين, أنقل الملف التنفيذي بجانب المجلد sbase حتى يستطيع النسخ. ألم تنتبه لـ:

كود :
copyfile(pchar(sPath+'sbase\teste.ABS'),pchar(Pdir+'\'+ComboBox1.Text+SpinEdit1.text),false);

؟؟!

كود :
sPath := ExtractFilePath(ParamStr(0)); // --> ..\somefolder\Project1.exe --> ..\somefolder sPath+'sbase\teste.ABS' // ..\somefolder\sbase\test.abs


أظن أنه من الأفضل التريث وقراءة الكود والعمل معه قليلاً قبل السؤال
الرد
#16
(21-02-2019, 10:17 PM)Ben.Ja كتب : الكود يشتغل جيدًا, أنت تجرب البرنامج من داخل مجلد Win32\Debug, في حين مجلد قاعدة البيانات خارج هذين المجلدين, أنقل الملف التنفيذي بجانب المجلد sbase حتى يستطيع النسخ. ألم تنتبه لـ:

كود :
copyfile(pchar(sPath+'sbase\teste.ABS'),pchar(Pdir+'\'+ComboBox1.Text+SpinEdit1.text),false);

؟؟!

كود :
sPath := ExtractFilePath(ParamStr(0)); // --> ..\somefolder\Project1.exe --> ..\somefolder sPath+'sbase\teste.ABS' // ..\somefolder\sbase\test.abs


أظن أنه من الأفضل التريث وقراءة الكود والعمل معه قليلاً قبل السؤال
بارك الله فيكم لم انتبه
لكن هناك مشكلة اخرى في الاسترجاع انه لا يتم استبدال القاعدة الحالية بالقاعدة المسترجعة
الرد
#17
بارك الله فيكم لقد حلت المشكلة
وكان الخطأ من عندي
اشكركم جميعا على تعاونكم معنا ونسأل المولى عز وجل ان يرزقكم ثواب هذه المساعدات
وان يثقل موازينكم بالحسنات وجمعة مباركة آمــــــــين
[-] كل من 2 users say قال شكرا ل medreg على المشاركة المفيدة
  • Ben.Ja, أبو معاذ
الرد


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


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