Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

База растет как на дрожах!   Найти похожие ветки 

 
O l e g ©   (2004-09-06 04:03) [0]

Когда зайдешь в акцес и нажмешь сжать и восстановить уменьшается в три раза! Можно это делать программно из дельфи?
Я уже начинаю жалеть, что связался с MS Access! Help :-?


 
YurikGL ©   (2004-09-06 07:21) [1]

Посмотри http://delphi.about.com/library/weekly/aa091801a.htm

Яндекс рулит


 
sniknik ©   (2004-09-06 08:46) [2]

> Я уже начинаю жалеть, что связался с MS Access!
меняй на другую но там будет та же фигня (если у базы страничная организация). там весь смысл добавлять пространство страницами (даже если нехватает места записать 1 запись в 1 байт) чтобы после писать по готовому. за счет этого достигается большая скорость записи (не надо изменять размер файла на каждый твой чих (добавление позиции)).


 
O l e g ©   (2004-09-07 01:58) [3]

Менять придется долго! Не хочется как-то!


 
Soft ©   (2004-09-07 22:32) [4]

Procedure CompactDatabase_JRO(DatabaseName:String;DestDatabaseName:String="";Password:String="");
Const
  Provider = "Provider=Microsoft.Jet.OLEDB.4.0;";
Var
 TempName : Array[0..MAX_PATH] of Char; // имя временного файла
 TempPath : String; // путь до него
 Name : String;
 Src,Dest : WideString;
 V : Variant;
begin
  try
      Src := Provider + "Data Source=" + DatabaseName;
      if DestDatabaseName<>"" then
          Name:=DestDatabaseName
      else begin
          // выходная база не указана - используем временный файл
          // получаем путь для временного файла
          TempPath:=ExtractFilePath(DatabaseName);
          if TempPath="" Then TempPath:=GetCurrentDir;
          //получаем имя временного файла
          GetTempFileName(PChar(TempPath),"mdb",0,TempName);
          Name:=StrPas(TempName);
      end;
      DeleteFile(PChar(Name));// этого файла не должно существовать :))
      Dest := Provider + "Data Source=" + Name;
      if Password<>"" then begin
          Src := Src + ";Jet OLEDB:Database Password=" + Password;
          Dest := Dest + ";Jet OLEDB:Database Password=" + Password;
      end;

      V:=CreateOleObject("jro.JetEngine");
      try
          V.CompactDatabase(Src,Dest);// сжимаем
      finally
          V:=0;
      end;
      if DestDatabaseName="" then begin // т.к. выходная база не указана
          DeleteFile(PChar(DatabaseName)); //то удаляем не упакованную базу
          RenameFile(Name,DatabaseName); // и переименовываем упакованную базу
      end;
  except
   // выдаем сообщение об исключительной ситуации
   on E: Exception do ShowMessage(e.message);
  end;
end;



Страницы: 1 вся ветка

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.055 c
14-1095418690
Gorlum
2004-09-17 14:58
2004.10.03
Платные дороги это ещё что, а вот...


14-1094959709
Думкин
2004-09-12 07:28
2004.10.03
С днем рождения! 12 сентября


3-1094369250
3APA3A
2004-09-05 11:27
2004.10.03
Изменение домена


4-1093340929
banderas
2004-08-24 13:48
2004.10.03
флаг SYSTEM а не USER


14-1095364274
Пострадавший
2004-09-16 23:51
2004.10.03
Платные дороги позволят водителями экономить