Версия для печати


Методы лечения некоторых ошибок BDE
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=1075

Eugene Zhilkin
дата публикации 19-10-2004 15:24

Методы лечения некоторых ошибок BDE

Думаю многие сталкивались с непонятными ошибками БДЕ, которые возникали эпизодически и далеко не на любом компьютере.

Ниже приведено несколько ошибок с известными мне методами лечения. А для справки - TI2751 стащенный с Борланда (Ограничения БДЕ).



1. BDE Errors: $2501, $210D, $2104

Получаем ошибку BDE $2501 "Insufficient memory for this operation" А также для случаев
Попробуйте увеличить параметр SHAREDMEMSIZE в BDE Admin (SYSTEM | INIT).
См. также ограничения BDE (TI2751) и FAQ (FAQ329B.txt, BDE FAQ # 664) на сайте borland.com:
Источники:

Попробуйте изменить параметр SHAREDMEMLOCATION в BDE Admin в зависимости от используемой операционной системы.
Подробности настройки параметра см. в BDEADMIN.HLP
Источник:

Попробуйте увеличить параметры MEMSIZE и SHAREDMEMSIZE.
См. BDE FAQ # 669
Источник:


2. BDE Error: BDE Initialization failed $2A04 (Operation not applicable)

Далее - только одна из возможных причин, причем очень редкая, но интересная. Причина до конца не исследована. Возможно, что необходимым условием для появления ошибки является указание в параметре NET DIR (в параметрах драйвера Парадокса) сетевого каталога на файл-сервере (см. далее).

Скорее всего, вызвано совместной ошибкой БДЕ и Microsoft, связанной с внедрением новых технологий блокировок файлов в новых ОС Microsoft.

Проявляется тогда, когда на клиентских машинах установлены новые операционки (напр, Windows 2000), а в качестве файл-сервера (где лежит запускаемый модуль, использующий БДЕ) - старая (NT 4) либо Samba/Linux. Рекомендация - перенести файл-сервер на MS Windows 2000 Server.

См. http://support.microsoft.com/default.aspx?scid=kb;en-us;224992

3. Invalid Blob Handle in Record Buffer

Увеличить параметр BLOBS TO CACHE и/или BLOB SIZE в соответствующем алиасе (или драйвере) в BDE

4. BDE Error $000F

Ошибка BDE 000F обычно сигнализирует о том, что для менеджеру памяти не хватило этой самой памяти для выделения под буфер (при получении записей от сервера), хотя могут быть и иные причины.

Увеличение параметра SHAREDMEMSIZE в BDE может помочь решить данную проблему.

Источник см. http://community.borland.com/article/0,1410,10307,00.html См. также п.1

5. Unable to initialize Borland Database Engine

И опять же - см. SHAREDMEMSIZE и SHAREDMEMLOCATION (см. в п.1). Кроме того, могут проявиться ограничения BDE (см. ниже)



Ограничения БДЕ источник - http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=12538

Technical Information Document (TI2751) Some current internal limits of BDE
Product: BDE Version: All Platform: Windows 3.1, Windows 95, Windows NT

Below are the maximum limits for some common BDE objects. If you find you cannot reach these limits or are getting an out of memory error, increasing your SHAREDMEMSIZE in BDE Config to 4096 or more should allow you to reach these limits. If available, also set the MEMSIZE setting to 24 in all cases.

General BDE Limitations

			
48		Clients in system			
32		Sessions per client (3.5 and earlier, 16 Bit, 32 Bit)			
256		Session per client (4.0, 32 Bit)			
32		Open databases per session (3.5 and earlier, 16 Bit, 32 Bit)			
2048		Open databases per session (4.0, 32 Bit)			
32		Loaded drivers			
64		Sessions in system (3.5 and earlier, 16 Bit, 32 Bit)			
12288		Sessions in system (4.0, 32 Bit)			
4000		Cursors per session			
16		Entries in error stack			
8		Table types per driver			
16		Field types per driver			
8		Index types per driver			
48K		Size of configuration (IDAPI.CFG) file			
64K		Max size of SQL statement (RequestLive=False)			
4K		Max size of SQL statement (RequestLive=True)			
6K		Max size of SQL statement (RequestLive=True) (BDE 4.01 and greater)			
16K		Record buffer size (SQL and ODBC)			
31		Table and field name size in characters			
64		Stored procedure name size in characters			
16		Fields in key			
3		File extension size in characters			
260		Table name length in characters (some servers might have other limits)			
260		Path and file name length in characters			
260		Index name length (including pseudo-indexes)			
204		Setting for MEMSIZE in BDE Administrator	

Paradox Limitations

			
127	Tables open per system				
254	Tables open per system (BDE 4.01 and greater)				
64	Record locks on one table (16Bit) per session				
255	Record locks on one table (32Bit) per session				
255	Records in transactions on a table (32 Bit)				
512	Open physical files (DB, PX, MB, X??, Y??, VAL, TV)				
1024	Open physical files (DB, PX, MB, X??, Y??, VAL, TV) (BDE 4.01 and greater)				
300	Users in one PDOXUSRS.NET file				
255	Number of fields per table				
255	Size of character fields				
2	Billion records in a table				
2	Billion bytes in .DB (Table) file				
10800	Bytes per record for indexed tables				
32750	Bytes per record for non-indexed tables				
127	Number of secondary indexes per table				
16	Number of fields in an index				
255	Concurrent users per table				
256	Megabytes of data per BLOb field				
100	Passwords per session				
15	Password length				
63	Passwords per table				
159	Fields with validity checks (32 Bit)				
63	Fields with validity checks (16 Bit)	

dBASE 5.x and earlier / FoxPro Limitations

	
32	Sessions containing a cursor to a table 	
256	Open dBASE tables per system (16 Bit)	
350	Open dBASE tables per system (BDE 3.0 - 4.0, 32 Bit)	
512	Open dBASE tables per system (BDE 4.01, 32 Bit) (BDE 4.01 and greater)	
100	Record locks on one dBASE table (16 and 32 Bit)	
100	Records in transactions on a dBASE table (32 Bit)	
1	Billion records in a table	
2	Billion bytes in .DBF (Table) file	
4000	Size in bytes per record (dBASE 4)	
32767	Size in bytes per record (dBASE for Windows)	
255	Number of fields per table (dBASE 4)	
1024	Number of fields per table (dBASE for Windows)	
47	Number of index tags per .MDX file	
254	Size of character fields	
10	Open master indexes (.MDX) per table	
220	Key expression length in characters