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

نسخة كاملة : إصلاح وضغط قاعدة البيانات MS Access
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
السلام عليكم
ارتكبت خطا في كتابة الدالة
لا تغير الدالة 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
بالتوفيق
أخ باسم نفس المشكل قاعدة بيانات حجمها لم يتغي وكذلك ShowMessage('database compact successfully');
لم تضهر
DJILANI كتب :أخ باسم نفس المشكل قاعدة بيانات حجمها لم يتغي وكذلك ShowMessage('database compact successfully');
لم تضهر
تاكد من مسار قاعدة بياناتك هل هو صحيح ؟ لمدا تضع مجلد داخل مجلد ؟ هل هو مقصود
كود :
E:\Projet\gestion commerciale\gestion commerciale\gestion commerciale\gestion commerciale.mdb
كدلك تاكد من اسم قاعدة بياناتك بدقة
كود :
gestion commerciale.mdb
انا جربتها ونجح الامر معي
استعملت دالفي XE5
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
السلام عليكم
إخوتي وإذا كان الإتصال دينامكيا بقاعدة البيانات كيف يكون كود المسار في هذه الحالة بارك الله فيكم؟
و عليكم السلام
ان كان الاتصال ديناميكيا فدع الدالة فوق كما هي و غير مسار قاعدة البيانات  كما يلي


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; 
أخي لا أستعمل dataModule

DataModule1.utilisateur.Open;

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

ADOConnection1.Open ;
???
نعم يمكن دلك
ADOConnection1.close
ADOConnection1.Open
لكن يفضل استعمال dataModule في مشاريعك ضع عليها جميل جداولك و الاتصال و غيرها للتحكم الاحسن فيها
بارك الله فيك أخي الكريم
سأجرب ثم أعود إن شاء الله.
بارك الله فيك وأحسن إليك أخي الكريم
نجح الأمر والفضل لله. 
أرفقت مثالا لإصلاح قاعدة بيانات أكسس متصلة دناميكيا
الصفحات : 1 2 3