delphi4arab منتديات دلفي للعرب
إصلاح وضغط قاعدة البيانات MS Access - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6)
+--- قسم : دلفي و التعامل مع قواعد البيانات (https://delphi4arab.net/forum/forumdisplay.php?fid=23)
+--- الموضوع : إصلاح وضغط قاعدة البيانات MS Access (/showthread.php?tid=1465)

الصفحات: 1 2 3


إصلاح وضغط قاعدة البيانات MS Access - bassem_43 - 05-09-2015

السلام عليكم
ارتكبت خطا في كتابة الدالة
لا تغير الدالة CompactAndRepair اتركها على حالها هكدا
PHP كود :
function CompactAndRepair(DB, Password: string) : boolean;
const
  
sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password="%s"';
var
  
v: OLEvariant;
begin { CompactAndRepair }
  
Result := True;
  try
    
v := CreateOLEObject('JRO.JetEngine');
    try
      
v.CompactDatabase(Format(sProvider, [DB, Password]), Format(sProvider, [DB + 'x', Password]));
      if 
FileExists(DB + 'x') then begin
        DeleteFile
(DB);
        
RenameFile(DB + 'x', DB)
      
end;
    finally
      
v := Unassigned
    end
; { try }
  
except
    Result 
:= False
  end
; { try }
end; { CompactAndRepair } 
و تحتها مرر متغيراتك (مسار قاعدة بياناتك وكلمة المرور ان وجدت) الى الدالة كما اعتدنا . هدا الكود يبقى كما هو
PHP كود :
procedure TForm5.Button3Click(Sender: TObject);
begin
DataModule1
.ADOConnection1.Close;
  if 
CompactAndRepair('E:\Projet\gestion commerciale\gestion commerciale\gestion commerciale\gestion commerciale.mdb','') then
    ShowMessage
('database compact successfully');
  
DataModule1.utilisateur.Open;

end; 
ولا تنسى اضافة ComObj الى قائمة uses
بالتوفيق


إصلاح وضغط قاعدة البيانات MS Access - DJILANI - 05-09-2015

أخ باسم نفس المشكل قاعدة بيانات حجمها لم يتغي وكذلك ShowMessage('database compact successfully');
لم تضهر


إصلاح وضغط قاعدة البيانات MS Access - bassem_43 - 05-09-2015

DJILANI كتب :أخ باسم نفس المشكل قاعدة بيانات حجمها لم يتغي وكذلك ShowMessage('database compact successfully');
لم تضهر
تاكد من مسار قاعدة بياناتك هل هو صحيح ؟ لمدا تضع مجلد داخل مجلد ؟ هل هو مقصود
كود :
E:\Projet\gestion commerciale\gestion commerciale\gestion commerciale\gestion commerciale.mdb
كدلك تاكد من اسم قاعدة بياناتك بدقة
كود :
gestion commerciale.mdb
انا جربتها ونجح الامر معي
استعملت دالفي XE5


إصلاح وضغط قاعدة البيانات MS Access - DJILANI - 07-09-2015

bassem_43 كتب :تاكد من مسار قاعدة بياناتك هل هو صحيح ؟ لمدا تضع مجلد داخل مجلد ؟ هل هو مقصود
كود :
E:\Projet\gestion commerciale\gestion commerciale\gestion commerciale\gestion commerciale.mdb
كدلك تاكد من اسم قاعدة بياناتك بدقة
كود :
gestion commerciale.mdb
انا جربتها ونجح الامر معي
استعملت دالفي XE5


شكرا لك أخي تم حل المشكل وقد كان E:\Projet\gestion commerciale\gestion commerciale\gestion commerciale\gestion commerciale.mdb


وقد وضعته مباشرة في E:\Projet\gestion commerciale.mdb


RE: إصلاح وضغط قاعدة البيانات MS Access - wadoud - 16-04-2016

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


RE: إصلاح وضغط قاعدة البيانات MS Access - bassem_43 - 17-04-2016

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


PHP كود :
procedure TForm5.Button3Click(Sender: TObject);
begin
DataModule1
.ADOConnection1.Close;
 
 if CompactAndRepair(ExtractFilePath(Application.ExeName)+'Test.mdb','1230456') then
    ShowMessage
('database compact successfully');
 
 DataModule1.utilisateur.Open;

end; 



RE: إصلاح وضغط قاعدة البيانات MS Access - wadoud - 17-04-2016

أخي لا أستعمل dataModule

DataModule1.utilisateur.Open;

يمكن كتابتها كالتالي

ADOConnection1.Open ;
???


RE: إصلاح وضغط قاعدة البيانات MS Access - bassem_43 - 17-04-2016

نعم يمكن دلك
ADOConnection1.close
ADOConnection1.Open
لكن يفضل استعمال dataModule في مشاريعك ضع عليها جميل جداولك و الاتصال و غيرها للتحكم الاحسن فيها


RE: إصلاح وضغط قاعدة البيانات MS Access - wadoud - 17-04-2016

بارك الله فيك أخي الكريم
سأجرب ثم أعود إن شاء الله.


RE: إصلاح وضغط قاعدة البيانات MS Access - wadoud - 19-04-2016

بارك الله فيك وأحسن إليك أخي الكريم
نجح الأمر والفضل لله. 
أرفقت مثالا لإصلاح قاعدة بيانات أكسس متصلة دناميكيا