Главная страница
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.05 c
14-1095079217
marsden
2004-09-13 16:40
2004.10.03
А как войти зарегистрированному пользователю?


1-1094662910
Davinchi
2004-09-08 21:01
2004.10.03
Создание компонента просмотра буфера обмена


1-1095316993
Чайник
2004-09-16 10:43
2004.10.03
Перелив цветов


14-1095187107
stany
2004-09-14 22:38
2004.10.03
XP Pro vs XP Home


1-1095196082
kle[z]a
2004-09-15 01:08
2004.10.03
нестандартные формы