delphi4arab منتديات دلفي للعرب

نسخة كاملة : مشكلة في حفظ قاعدة البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2

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

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

كود :
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
لقد تم تجريب الكود لاكن المشكلة لازالت قائمة
يعن قاعدة البيانات لم يتم حفظها بالمجلد archives
الكود يشتغل جيدًا, أنت تجرب البرنامج من داخل مجلد 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


أظن أنه من الأفضل التريث وقراءة الكود والعمل معه قليلاً قبل السؤال
(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


أظن أنه من الأفضل التريث وقراءة الكود والعمل معه قليلاً قبل السؤال
بارك الله فيكم لم انتبه
لكن هناك مشكلة اخرى في الاسترجاع انه لا يتم استبدال القاعدة الحالية بالقاعدة المسترجعة
بارك الله فيكم لقد حلت المشكلة
وكان الخطأ من عندي
اشكركم جميعا على تعاونكم معنا ونسأل المولى عز وجل ان يرزقكم ثواب هذه المساعدات
وان يثقل موازينكم بالحسنات وجمعة مباركة آمــــــــين
الصفحات : 1 2