|
BDE Error 000F means the buffer manager run out of memory.
Theoretically lots of things might cause this error. Increasing the BDE SHAREDMEMSIZE parameter in BDE Admin may solve the problem, or just delay the error from occuring. In general, when this error occurs you must do less of something to make the error not occur.
$2109 : Cannot load IDAPI32.DLL.
(1) the Path does not point to the BDE directory,
(2) IDAPIxx.DLL is damaged or is opened in non-shared mode by another program
(3) the BDE is not installed or has been damaged.
(2) _might_ happen if you install the BDE but don't reboot, or perhaps if there's a virus in the system. If (3), reinstalling the BDE should fix this
解决方法:
1、 是否已安装BDE,安装以后是否已经重启
2、 检查注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\DLLPATH”目录下是否有IDAPI32.DLL,与正常的文件比较是否被损坏。
3、 修改IDAPI32.DLL的文件名,如果不能修改的话,重新启动计算机
$2501 : Insufficient memory for this operation.
Perhaps something in your new version is using the memory address that the BDE is trying to use.
解决方法:
在BDE Administrator程序中调整“System\Init”项目中的SharedMemSize属性,默认此属性的设置为2M字节,对于稍复杂一点的数据库应用而言实在是太小了(对比ORACLE或者SQL Server则动辄是几十M的内存占用),所以请调整此属性为合适值。同时注意要调整MemSize属性,保证SharedMemSize不大于MemSize属性。
"Index is out of date" ($2F02) or "Blob has been modified" ($3302)
Problem: A table has become corrupted.
Solution: There are several known situations that can cause this to happen. Here are some of the more popular causes:
1) Set LOCAL SHARE to TRUE on all workstations.
2) Make sure the application sets the Session.PrivateDir property to a local directory (not shared).
3) Make sure all workstations point to the same shared directory for the NET DIR setting (Session.NetFileDir).
4) Disable Opportunistic Locking on Windows NT/2000 workstations and file servers. Click here for more info.
5) If any system on the network is running Windows 95 and has an older version of VREDIR.VXD (4.00.1113 or 4.00.1114) update that workstation. Check out this MSKB article for an update to VREDIR.VXD.
6) Make sure your application properly closes all files before terminating.
7) Try making NetBEUI your default networking protocol on all workstations.
To repair your tables, you can download the Borland Table Repair Utility and rebuild your tables. You can also repair your tables if you have a copy of Paradox installed by using its built-in Table Repair facility.
Read Borland Technical Information Document TI3342 for more information about this error and its causes.
"Directory is controlled by another .NET file" ($2C06)
Problem #1: The application terminated abnormally and left .LCK and .NET files floating around.
Solution #1: Close all BDE applications and search for and delete the following files at the file server and all workstations: PDOXUSRS.NET, PDOXUSRS.LCK, PARADOX.LCK
Problem #2: Multiple workstations accessing the same table are referencing the NET DIR differently.
Solution #2: The NET DIR (in BDEADMIN or your application's NetFileDir parameter) should be configured using the exact same path (only the drive letter may differ) to reference the NET DIR on all workstations. Using UNC for the path may help with consistency and thus help resolve this error. Read Borland Technical Article TI247B for more information about proper configuration of the BDE in a networked environment.
"Table is Full" ($2507)
Problem: A table has exceeded one of the internal BDE or Paradox file limits.
Solution: You have probably hit the limit on the number of blocks that a Paradox table can contain (65535 blocks). In order to store additional records in the file, you'll need to increase the table's block size to allow each block to hold more records. Read this Borland Technical Information Document for more information about this error, its causes, and solutions. To read more about the limitations of Paradox files and the BDE, see Borland Technical Information Document TII59B
"Insufficient memory for this operation" ($2501)
Problem: Your application (or another BDE application) has exhausted the memory available to the BDE.
Solution:
1) Close all BDE applications.
3) Run BDEADMIN.EXE and click on the Configuration tab.
4) There should be an item in the treeview on the left side called "Configuration". If it's not expanded, expand it.
5) Next, expand the System entry below it. Under System, select INIT.
6) In the right-side window, find the entry called "SHAREDMEMSIZE". Change this value to 4096.
7) Next, click on the word "Object" in the main window's menu bar, and select Apply.
8) Answer "OK" to the confirmation to "Save all edits...".
You can now try to start your application again. If you still have trouble running the application and you are running Windows NT or Windows 2000, follow the same instructions above, but this time leave the SHAREDMEMSIZE property at 4096, and change the SHAREDMEMLOCATION property to "0x5BDE". Then apply the changes as before, and retry your application. If you still receive the same error, try changing SHAREDMEMSIZE to 8192. If the error continues to persist, you can also try "0x6BDE" for SHAREDMEMLOCATION. If the error still continues to persist, you can also try other values for SHAREDMEMLOCATION. (See solution for error $210D below.)
"Shared memory conflict ($210D)
Problem: The BDE is trying to use a location in memory that is already in use by the operating system or another application.
Solution:
1) Close all BDE applications.
2) Find the program BDEADMIN.EXE. This is usually in a directory somewhere under "\Program Files\Borland...".
3) Run BDEADMIN.EXE and click on the Configuration tab.
4) There should be an item in the treeview on the left side called "Configuration". If it's not expanded, expand it.
5) Next, expand the System entry below it. Under System, select INIT.
6) In the right-side window, find the entry called "SHAREDMEMLOCATION". Change this value to 5BDE.
7) Next, click on the word "Object" in the main window's menu bar, and select Apply.
8) Answer "OK" to the confirmation to "Save all edits...".
Other values that may also help solve this issue on NT or Windows 2000 are: 1000, 7000, and 7F00. If none of these values resolve the issue, you may try 2000, 3000, 4000, etc. or any values in between the specified ranges below for each operating system:
Windows 95/98: SHAREDMEMLOCATION = 9000 to FFFF
Windows NT/2000: SHAREDMEMLOCATION = 1000 to 7F00
It has also been reported by some users that removing or disabling the driver for a sound card on Windows NT can resolve the issue as well, but normally just "relocating" the BDE's memory pool using the SHAREDMEMLOCATION setting will suffice.
"Lock file has grown too large" ($2517)
Problem: There are several causes for this error.
Solution: The most common cause of this error is having the table you are accessing located in the same directory as the executable itself. Also set the NetFileDir and PrivateDir properties (of the Session object) to point to different directories. The PrivateDir property should be a directory on the local system's hard drive for maximum performance and stability. Read this Borland Technical Information Document for more information about this error, its causes, and solutions.
"Too many open files.You may to increase MAXFILEHANDLE limit in IDAPI configuration"
BDE的最大打开文件数目默认为48,在系统中如果多连接几个数据集,可能会出现此错误。
增大BDE数据库文件连接,即可解决此问题,请按照下列步骤进行:
1、“开始”-“设置”-“控制面板”中执行“BDE Administrators”。
2、选择左边选项卡的“Configuration”。
3、展开树型结构“Configuration\SYSTEM\INIT”。
4、在右边列表中修改“MAXFILEHANDLES”项到适当值,如128;
5、保存退出设置以后,重新启动应用程序。 |
|