delphi4arab منتديات دلفي للعرب
مشكلة في حفظ قاعدة البيانات - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : مشكلة في حفظ قاعدة البيانات (/showthread.php?tid=10053)

الصفحات: 1 2


مشكلة في حفظ قاعدة البيانات - medreg - 16-02-2019

السلام عليكم ورحمة الله تعالى وبركاته
صادفتني مشكلة في حفظ قاعدة اليانات من نوع absolute
كنت استعملها في نسخة الدلفي7 وكانت تعمل بشكل جيد
وعندما استعملتها في نسخة xe8
لا تتم عملية الحفظ وتظهر بانها تمت العملية لكن لا اجد الملف محفوظ
مع العلم ان مسار قاعدة البيانات هو
projrct1\mirnam\sbase\teste.abs
وهذا هو الكود المستعمل
كود :
procedure TRestoreBase.N1Click(Sender: TObject); var Pdir:string; begin RestoreBase.Caption:='حفظ المعطيات'; GroupBox1.Caption:='إختار الشهر والسنة المراد حفظهما'; Pdir:='..\..\sbase\Archives'; CreateDir(Pdir); Sleep(200); if DirectoryExists('sbase\Archives') then begin DM.OnDestroy(sender); copyfile(pchar('teste.ABS'),pchar('sbase\Archives\'+ComboBox1.Text+SpinEdit1.text),false); end else begin ForceDirectories(Pdir); end; DM.OnCreate(sender); Sleep(500); showMessage('تمت عمليةالأرشفة بنجاح'); Close; end;



RE: مشكلة في حفظ قاعدة البيانات - محمد عبد العزيز - 17-02-2019


وعليكم السلام ورحمة الله
جرب تغيير String بAnsiString
شيئ مثل (لم اجرب الكود)

كود :
procedure TRestoreBase.N1Click(Sender: TObject); var Pdir:AnsiString; begin RestoreBase.Caption:='حفظ المعطيات'; GroupBox1.Caption:='إختار الشهر والسنة المراد حفظهما'; Pdir:='..\..\sbase\Archives'; CreateDir(Pdir); Sleep(200); if DirectoryExists('sbase\Archives') then begin DM.OnDestroy(sender); copyfile(pChar('teste.ABS'),pChar('sbase\Archives\'+ComboBox1.Text+SpinEdit1.text),false); end else begin ForceDirectories(Pdir); end; DM.OnCreate(sender); Sleep(500); showMessage('تمت عمليةالأرشفة بنجاح'); Close; end;



RE: مشكلة في حفظ قاعدة البيانات - medreg - 17-02-2019

السلام عليكم انه يشير الى خطأ اثناء compilie وهذا هو الخطأ
[dcc32 Erreur] U_menu.pas(49): E2010 Types incompatibles : 'PWideChar' et 'PAnsiChar'


RE: مشكلة في حفظ قاعدة البيانات - محمد عبد العزيز - 17-02-2019

حسنا
اعد AnsiChar الى pChar
قمت بتعديل الكود فوق



RE: مشكلة في حفظ قاعدة البيانات - medreg - 17-02-2019

لازالت المشكلة كما كانت في الأول

هل هناك طريقة اخرى لعمل نسخة احتياطية لقاعدة البيانات في مجلد اخر
مع العلم ان قاعدة البيانات موضوعة في مجلد داخل مجلد المشروع
للتوضيح :
المجلد الأول اسمه mirnam
وبداخله مجلد المشروع وإسمه project1
ويوجد بداخل مجلد المشروع مجلد اخر المتواجد به قاعدة البيانات واسمه sbase
كما يوجد بايضا داخل مجلد المشروع مجلد اخر والمراد بحفظ النسخة الإختياطية لقاعدة البيانات واسمه Archives
اما بالنسبة لقاعدة البيانات teste.abs ستحمل اسم اخر ناتج عن المكون Combobox1 و المكون spinedit1 اثناء عملية النسخ وتخزن في المجلد Archives


RE: مشكلة في حفظ قاعدة البيانات - Ben.Ja - 18-02-2019

السلام عليكم, أخ medreg, لم توضح جيدًا المسار الذي تعمل معه.
 لم في المرة الأولى
PHP كود :
Pdir:='..\..\sbase\Archives'; 
ثم في الشرط لم تستخدم المتغير pdir, وقارنت بـ:
PHP كود :
'sbase\Archives' 

هل كنت تقصد ب ..\..\, أن تخرج من المجلد win32\debug؟؟
هكذا لن يتحقق الشرط, لأنه دائما يقوم بانشاء المجلد بالرجوع مجلدين للخلف.


أيضًا, CreateDir, لا يمكنها إنشاء أكثر من مجلد, إستعمل ForceDirectories.

جرب هكذا.

كود :
procedure TRestoreBase.N1Click(Sender: TObject); var     Pdir:string;     backupDBname: string; begin     Pdir:='..\..\sbase\Archives\'; //أو 'sbase\Archives\'     backupDBname := ComboBox1.Text + SpinEdit1.text;          RestoreBase.Caption:='حفظ المعطيات';     GroupBox1.Caption:='إختار الشهر والسنة المراد حفظهما';     Sleep(200);          ForceDirectories(Pdir);          if DirectoryExists(Pdir) then     begin         DM.OnDestroy(sender);         if copyfile(pchar('teste.ABS'),pchar(Pdir + backupDBname), false) then         begin             Sleep(500);             ShowMessage('تمت عمليةالأرشفة بنجاح');         end;         DM.OnCreate(sender);     end;     Close; end;



RE: مشكلة في حفظ قاعدة البيانات - محمد عبد العزيز - 18-02-2019


السلام عليكم
افهم مما سبق ان قاعدة البيانات
\mirnam\sbase\teste.abs
المشروع
\mirnam\project1.exe
النسخ الاحتياطية تكون في
\mirnam\sbase\archives
هل هذا صحيح ؟



RE: مشكلة في حفظ قاعدة البيانات - medreg - 18-02-2019

(18-02-2019, 10:34 AM)B.M.AbdelAziZ كتب :
السلام عليكم
افهم مما سبق ان قاعدة البيانات
\mirnam\sbase\teste.abs
المشروع
\mirnam\project1.exe
النسخ الاحتياطية تكون في
\mirnam\sbase\archives
هل هذا صحيح ؟

بل قاعدة البيانات تكون في
Mirnam\Project1\sbase\teste.abs\
المشروع
Mirnam\Project1\project1.exe
النسخ الإحتياطية تكون في
Mirnam\Project1\sbase\archives\
جزاكم الله عنا كل خير


RE: مشكلة في حفظ قاعدة البيانات - محمد عبد العزيز - 19-02-2019

كود :
procedure TRestoreBase.N1Click(Sender: TObject); var sPath,Pdir:string; begin RestoreBase.Caption:='حفظ المعطيات'; GroupBox1.Caption:='إختار الشهر والسنة المراد حفظهما'; sPath:=ExtractFilePath(ParamStr(0)); Pdir:=sPath+'sbase\Archives'; CreateDir(Pdir); Sleep(200); if DirectoryExists(Pdir) then begin DM.OnDestroy(sender); copyfile(pchar(sPath+'teste.ABS'),pchar(Pdir+'\'+ComboBox1.Text+SpinEdit1.text),false); end else begin ForceDirectories(Pdir); end; DM.OnCreate(sender); Sleep(500); showMessage('تمت عمليةالأرشفة بنجاح'); Close; end;



RE: مشكلة في حفظ قاعدة البيانات - medreg - 20-02-2019

(19-02-2019, 08:26 AM)B.M.AbdelAziZ كتب :
كود :
procedure TRestoreBase.N1Click(Sender: TObject); var sPath,Pdir:string; begin RestoreBase.Caption:='حفظ المعطيات'; GroupBox1.Caption:='إختار الشهر والسنة المراد حفظهما'; sPath:=ExtractFilePath(ParamStr(0)); Pdir:=sPath+'sbase\Archives'; CreateDir(Pdir); Sleep(200); if DirectoryExists(Pdir) then begin DM.OnDestroy(sender); copyfile(pchar(sPath+'teste.ABS'),pchar(Pdir+'\'+ComboBox1.Text+SpinEdit1.text),false); end else begin ForceDirectories(Pdir); end; DM.OnCreate(sender); Sleep(500); showMessage('تمت عمليةالأرشفة بنجاح'); Close; end; لازالت المشكلة قائمة بالنسبة لإنشاء المجلد المسمى archives العملية تمام لكن لا يوجد بداخله اي شيئ يعني قاعدة البيانات لم يتم حفظها