Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  21:00[Войти] | [Зарегистрироваться]
Ответ на вопрос № 18617

Вопросы с аналогичными сообщениями об ошибках:
  • Insufficient disk space (3)

    21-10-2003 16:24
    Ни с того ни с сего при выполнении запросов с большим количеством строк стала выскакивать  ошибка 9475 : $2503 : Insufficient disk space, указывая мне на локальный File: C:\WINNT\TEMP\INMEM000.REM, размер которого в момент ее появления нулевой. На диске C: свободно 16 гигов на сервере тоже постирал все старые таблички с BLOB-полями, локальные настройки BDE не менял. В чем причина?

    ЗЫ Может админ БД что намутил?

    [+] Добавить в избранные вопросы

    Отслеживать ответы на этот вопрос по RSS

    Ответы:


    Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице.
    Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.

    08-02-2010 00:50 | Комментарий к предыдущим ответам
    Спасибо!!! Кто бы мог подумать???!!! 56 гиг делится на 4!!!

    27-10-2006 07:14
    Спасибо, не удержался чтобы не выразить свое восхищение,в программе тоже был такойже глюк, но 1Г "Мусора" помог.

    31-03-2004 12:32
    //////////////////////////////////////////////////////////////////////////////////////
    //
    //    ----- BDE 4GB PATCH -----
    //  Version 1.01
    //
    //
    //
    //  FUNCTION
    //
    //    This unit is a patch for the famous 4Gb BDE Bug.  It is build to fix the
    //    'Insufficient disk space'-error which can occur while using BDE when
    //    the disk free space is near to a multiple of 4Gb.  For more information
    //    please see BDE report# 7089 on Quality Central.
    //
    //  TECH DETAILS
    //
    //    The reason for the error in BDE is aparently a bug in idapi32.dll while
    //    computing free disk space. Idapi32.dll  is using  the api function called
    //    GetDiskFreeSpaceA exported by kernel32.dll.
    //    The solution is to 'patch' GetDiskFreeSpaceA in kernel32.dll for the current
    //    process, every call to this function is redirected to a new routine
    //    (NewGetDiskFreeSpaceA).
    //
    //  USAGE
    //
    //    Just include this unit in your at the top of the uses clause in your project.
    //
    //
    //  2004-02-26
    //  (c) Reinaldo Roberto Yaсez Arrey
    //  Buenos Aires, Argentina
    //  ryaayr@yahoo.com, ryaayr@arnet.com.ar
    //  Any feedback is welcome!
    //
    //  Disclaimer:
    //    The code and text in this unit are not associated with Borland. This unit is
    //    provided "as is"! The author takes no responsibility for use, or misuse, of
    //    this unit. Usage of this code is at your own risk.
    //  License:
    //    You are free to use this unit in any way, but beware that BDE is an
    //    official Borland product, and therefore bound by the terms and conditions of
    //    the Borland product license.
    //
    //////////////////////////////////////////////////////////////////////////////////////
    // Thanks to:
    //          Leonardo Mato & Manuel E. Parma
    //                  for their encouragement to produce good code.
    //////////////////////////////////////////////////////////////////////////////////////
    //
    // History: 2004-03-05    Version 1.01  (Fixes a problem on finalization if using packages)
    //          2004-02-26    Version 1.00  (Created)
    //
    //////////////////////////////////////////////////////////////////////////////////////

    unit FixBDE4GbBug;

    interface

    procedure PatchBDE;

    implementation

    uses Windows;


    type
      TRYPatch = record
        OrgAddr: Pointer;
        OrgBytes: array[0..4] of Byte;
      end;

    // Este metodo nunca lo vi escrito correctamente para contemplar los casos de
    // usar packages o no.
    // Si se utilizan packages HAY que preguntar por el $25FF y patchear el puntero a
    // puntero a puntero
    // Sino, no se patchea absolutamente nada !!!!
    // Ry@2003.10.31
    function RedirectByRY(OldPtr, NewPtr: Pointer): TRYPatch;
    type
      PPtr=^pointer;
      PPPtr=^PPtr;
      TByteArray=array[0..maxint-1] of byte;
      PByteArray=^TByteArray;
    var
      OldProtect,
      Protect  : DWORD;
      p: PByteArray;
    begin
      if PWord(OldPtr)^ = $25FF then
      begin {Es un JMP DWORD PTR [XXXXXXX](=> Esta utilizando Packages)}
        p := OldPtr;
        OldPtr := (PPPtr(@p[2])^)^;
      end;
      VirtualProtect(OldPtr, 5, PAGE_READWRITE, @OldProtect);
      result.OrgAddr := OldPtr;
      result.OrgBytes[0] := PByte(OldPtr)^;
      result.OrgBytes[1] := PByte(Integer(OldPtr) + 1)^;
      result.OrgBytes[2] := PByte(Integer(OldPtr) + 2)^;
      result.OrgBytes[3] := PByte(Integer(OldPtr) + 3)^;
      result.OrgBytes[4] := PByte(Integer(OldPtr) + 4)^;

      PByte(OldPtr)^:= $E9;
      PInteger(Integer(OldPtr)+1)^ := Integer(NewPtr) - Integer(OldPtr) - 5;
      VirtualProtect(OldPtr, 5, OldProtect, @Protect);
      FlushInstructionCache(GetCurrentProcess, OldPtr, 5);
    end;

    procedure RestorePatch(RestorePatch: TRYPatch);
    var
      OldProtect,
      Protect  : DWORD;
      OldPtr: Pointer;
    begin
      OldPtr := RestorePatch.OrgAddr;
      VirtualProtect(OldPtr, 5, PAGE_READWRITE, @OldProtect);
      PByte(OldPtr)^ := RestorePatch.OrgBytes[0];
      PByte(Integer(OldPtr) + 1)^ := RestorePatch.OrgBytes[1];
      PByte(Integer(OldPtr) + 2)^ := RestorePatch.OrgBytes[2];
      PByte(Integer(OldPtr) + 3)^ := RestorePatch.OrgBytes[3];
      PByte(Integer(OldPtr) + 4)^ := RestorePatch.OrgBytes[4];
      VirtualProtect(OldPtr, 5, OldProtect, @Protect);
      FlushInstructionCache(GetCurrentProcess, OldPtr, 5);
    end;


    function NewGetDiskFreeSpaceA(lpPath: LPCTSTR; lpSectorsPerCluster: LPDWORD
    ; lpBytesPerSector: LPDWORD; lpNoFreeClusters: LPDWORD;
    lpTotalNoClusters: LPDWORD): LongBool; stdcall;
    var
      FreeBytesAvailableToCaller, TotalNoBytes,
      TotalNoFreeBytes: ULARGE_INTEGER;

      PFreeBytesAvailableToCaller, PTotalBytes,
      PTotalFreeBytes: PLargeInteger;
    begin
      PFreeBytesAvailableToCaller := @FreeBytesAvailableToCaller;
      PTotalBytes := @TotalNoBytes;
      PTotalFreeBytes := @TotalNoFreeBytes;

      result := GetDiskFreeSpaceEx(lpPath,
        PFreeBytesAvailableToCaller,
        PTotalBytes, PTotalFreeBytes);
      if not result then Exit;

      lpSectorsPerCluster^ := 1;
      lpBytesPerSector^ := 1;

      if (FreeBytesAvailableToCaller.QuadPart > $ffffffff) then
        lpNoFreeClusters^ := $ffffffff
      else
        lpNoFreeClusters^ := FreeBytesAvailableToCaller.QuadPart;
      lpTotalNoClusters^ := $ffffffff;
    end;


    var
      kernel32: HMODULE;
      ProcAddr: Pointer;
      RestoreP: TRYPatch;

    procedure PatchBDE;
    begin
      kernel32 := LoadLibrary('kernel32');
      ProcAddr := GetProcAddress(kernel32, 'GetDiskFreeSpaceA');
      RestoreP := RedirectByRy(ProcAddr, @NewGetDiskFreeSpaceA);
    end;

    procedure UnPatchDBE;
    begin
      {Leave everything as before, just in case...}
      RestorePatch(RestoreP);
      FreeLibrary(kernel32);
    end;


    initialization
      PatchBDE;

    finalization
      UnPatchDBE;

    end.

    31-03-2004 11:51
    URL= http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=21475

    Patch for BDE 'Insufficient disk space' problem. (4Gb multiples Terms: No Special Terms Name: Reinaldo Yanez email: ryaayr@yahoo.com URL: None Summary: Patch for BDE 'Insufficient disk space'-error which can occur while using BDE when the disk free space is near to a multiple of 4Gb. Description: This unit is a patch for the famous 4Gb BDE Bug. It is build to fix the 'Insufficient disk space'-error which can occur while using BDE when the disk free space is near to a multiple of 4Gb. For more information please see BDE report# 7089 on Quality Central.

    The reason for the error in BDE is aparently a bug in idapi32.dll while computing free disk space. Idapi32.dll is using the api function called GetDiskFreeSpaceA exported by kernel32.dll.

    The solution is to 'patch' GetDiskFreeSpaceA in kernel32.dll for the current process, every call to this function is redirected to a new routine (NewGetDiskFreeSpaceA).

    The source code of the patch is included. If you use another programming language (i.e. not Delphi), a precompiled DLL (FIX4GBug.dll) is also included. (If you can compile the included unit, then you do not need to distribute the DLL)

    Product: Delphi (4-7) Fixes Contest: None Uploaded: 25-Feb-04 10:03:08 AM last updated 22-Mar-04 6:44:49 PM

    06-11-2003 10:49
    По всей видимости, BDE отдает размер свободного места на диске в переменной типа INTEGER (32-разрядное) и, при превышении 4Г старшие разряды просто обрезаются и получается только остаток до ближайшего числа, кратного 4Г.

    05-11-2003 14:28
    Я тоже в ШОКЕ :)
    у меня было примерно 20 Гб.
    сунул 1,5 Г "мусора"

    Заработало!!!!!

    22-10-2003 14:45 | Сообщение от автора вопроса
    Я в ШОКЕ 8-(.
    Качнул на диск ~1Гб (стало ~15,8Гб) и все заработало...

    >>Юрий
    Спасибо!

    22-10-2003 10:23
    Не знаю чей это глюк, виндов или BDE, но присутствует такой эффект, когда свободное место на рабочем диске приближается к цифрам, кратным 4Гб. Т.е. около 4Г, 8Г, 16Г и т.д. Попробуй запихнуть на этот диск немножко "мусора" ;), так, чтобы там стало места, ну, скажем, 15Г. Я не удивлюсь, что все заработает. Как с этим бороться не шаманскими методами, увы, не представляю.

    Добавьте свое cообщение

    Вашe имя:  [Войти]
    Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
    контрольный вопрос:
    Вода мокрая или сухая?
    в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
    Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
    Тип сообщения:
    Текст:
    Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Вопросы с аналогичными сообщениями об ошибках:
  • Insufficient disk space (3)


    Страница избранных вопросов Круглого стола.
  •   
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования