安装BDE
在交付数据库应用程序时,必须同时在运行应用程序的机器上安装BDE,Delphi 本身包含可再安装的BDE,在准备数据库应用程序安装盘时,同时从Delphi中复制一份BDE 到最终用户的机器中,BDE中包含访问多种数据库系统的驱动程序,为了节省磁盘空间,在安装BDE时,可以只安装应用程序必须的驱动程序,例如,如果我们的应用程序只需要访问dBASE数据库文件,那么在安装BDE时,只需安装dBASE的驱动程序就行了。要访问Paradox数据库,BDE至少需要500KB的磁盘空间。BDE主要包括下列文件,请参看DEPLOY.TXT文件。
表13.5 BDE中主要包括的文件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
文 件 名 说 明
──────────────────────────────────
IDAPI01.DLL BDE应用程序接口动态连接库
IDBAT01.DLL BDE Batch应用动态连接库
IDQRY01.DLL BDE查询动态连接库
IDASCI01.DLL BDE ASCII码驱动程序
IDPDX01.DLL BDE Paradox数据库驱动程序
IDDBAS01.DLL BDE dBASE数据库驱动程序
IDR10009.DLL BDE 资源库
ILD01.DLL 语言驱动程序
IDODBC01.DLL BDE的ODBC驱动程序
ODBC.NEW Microsoft ODBC驱动程序管理器(Version2.0)
ODBCINST.NEW Microsoft ODBC驱动程序安装程序(Version2.0)
TUTILITY.DLL BDE应用工具库
BDECFG.EXE BDE配置工具
BDECFG.HLP BDE配置工具帮助文件
IDAPI.CFG BDE(IDAPI)配置文件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
安装BDE可以采用与安装Delphi相同的方法,在Windows环境中运行Delphi的安装程序setup.EXE,此时,Delphi显示Delphi Installation对话框
为我们只须安装BDE,所以只要选择Borland Database Engine检查框,如果应用程序要处理SQL数据库服务器上的数据,还必须要选择SQL Links 检查框, 以便安装 SQL Links。单击Continue按纽,完成BDE的安装。
如果没有Delphi安装盘,我们也可以手工安装BDE , 从现有机器上的 BDE 目录(或IDAPI目录)中拷贝所有的文件到用户机器上的BDE目录中,并在用户的Win.INI 文件的结尾处增加下列语句:
[IDAPI]
DLLPATH=C:/DELPHI/IDAPI
CONFIGFILE01=C:\DELPHI\IDAPI.CFG
然后在Windows的Program Manager中为IDAPICFG.EXE起动图标。
语言驱动程序的安装
BDE可以为应用程序提供不同的语言支持,语言驱动程序可以在配置Paradox,dBASE数据库时装入,对于服务器上的数据库可以在IDAPI.CFG 文件中说明相应的语言驱动程序,语言驱动程序在C:\DELPHI\IDAPI\LANGDRV子目录下(驱动器名与Delphi安装的磁盘有关),是带有扩展名为.LD的文件。如果正确安装了语言驱动程序,在Windows的WIN.INI 文件中包含下列
(缺省情况下):
[Borland Language Drivers]
LDpath=C:/dELPHI\IDAPI\LANGDRV
用InstallShield制作数据库应用系统的安装程序
Delphi具有强大的数据库应用程序开发功能,其Client/Sever版本可以开发一般的单机数据库应用系统、普通Client/Sever应用系统直至基于Web的多层应用,其中自然离不开Borland数据库引擎(BDE)的功劳。不过在没有安装过Delphi程序的计算机上运行数据库程序时,必须同时分发庞大的BDE文件,Borland建议用户用Delphi附带的InstallShield制作安装程序来解决这些问
。但怎样选择BDE文件才能使自己的安装程序更加精炼呢?我首先介绍一下其中几个必须的文件:
Idapi32.dll:BDE基本
库
Blw32.dll:语言驱动函数库
Idr20009.dll:错误信息库
Fareast.bll:远东语言驱动程序
Usa.bll:美国语言驱动程序
以下文件为根据需要可选:
如用Paradox,则应选择:Idpdx32.dll
如用Dbase,则应选择:Iddbas32.dll
如用Access,则应选择:Iddao32.dll
如用Ascii,则应选择:Idasci32.dll
如用TBatchMove,则应选择:Idbat32.dll
如用Data Repostitory,则应选择:Iddr32.dll
如用ODBC,则应选择:Idodbc32.dll
如用BDE DataSet Provider DLL,则应选择:Idprov32.dll
如用SQL查询,则应选择:Idsql32.dll
下面我们就以用InstallShield来制作一个Paradox数据库应用系统的安装程序为例:
1.启动程序设置有关文件目录路径,进入Setup Checklist;
2.在Set the Visual Design中设置程序名、程序目录、安装程序主窗口等;
3.在Specify Components and Files中设置Groups and Files项,在Program Files中加入用户的所有程序文件和数据库表文件,以及下列文件:Idbat32.dll、Usa.btl、Idapi.cfg、Charset.cvb、Bantam.dll、BLW32.dll、Idapi32.dll、Fareast.btl、Idpdx32.dll、Idr20009.dll、Idsql32.dll(以上文件必须含目录路径);
4.在Dialog Boxes中设置所需安装对话框;
5.在Make Registry Changes中设置Keys项,在HKEY_LOCAL_MACHINE中加入software\borland\blw32和software\borland\database engine两项,并且在blw32值中加入
“Blapipath ‘以上文件目录’”、“LOCALE_LIB0 ‘以上文件目录’\Fareast.bll”和“LOCALE_LIB1 ‘以上文件目录’\Usa.bll”,在database engine值中加入“Dllpath ‘以上文件目录’”、“Configfile01 ‘以上文件目录’\Idapi.cfg”;
6.在Specify Folder and Icons中根据实际要求设置有关项目;
7.在Run Disk Builder中设置安装盘的有关信息;
8.最后进行Test the Installation和Create Distribution Media即可完成安装程序的制作。
Delphi与BDE
由于人们在借助于Delphi 5中的BDE来开发数据库应用程序时,经常会出现一些莫名其妙的错误,故而导致了BDE的使用越来越受到冷遇,而相应的其它一些变通方法,譬如:利用ADO控件或利用一些第三方所提供的专用控件Diamond,则愈加受到追捧。但作为与Delphi一起绑定分发的BDE毕竟有着其独特的优势,只要我们真正地弄清楚BDE的工作原理,那么它还是能够为我们提供很好的服务的。
Delphi数据库应用的最大奥秘在于它的独特的数据库引擎BDE(Borland Database Engine),它使我们的程序编写更为方便,移植起来也十方便,可适应从客户/服务器模式到分布式网络计算,如果再充分利用Windows的多线程、COM、CORBA、MTS等机制,将会开发出更为美妙的东西来。Delphi主要是通过数据库引擎BDE来处理数据的。BDE实际上是由几个DLL模块组成的,它们分别负责处理一些数据库的相关工作。所有数据库存取使用的例程,均需要通过BDE来处理。BDE是Delphi数据库功能的枢纽部分,是连接应用程序和数据库的桥梁。Delphi可以通过BDE来控制读取本地数据库,Delphi自带的Xbase和Paradox无须安装,这对于开发原型或小型系统极为有益。对于远端的数据库系统,BDE则通过SQL Links或开放数据连接ODBC Drivers(Open Database Connectivity Driver)来存取数据库的内容。
BDE的初始化过程
如果在您的机器上装有其它版本或重复的BDE,那么BDE是按照下列的搜索顺序来载入BDE的DLL文件Idapi32.dll的,具体顺序如下:
1、搜索当前目录(该目录也许与应用程序的起动目录有所不同);如果没有找到该文件,将继续:
2、搜索注册表中BDE路径所对应的条目,HKEY_LOCAL_MACHINE/ SOFTWARE/
Borland/Database Engine/ DLLPATH/xxxxx ;如果没有找到该文件,将继续:
3、按照装载库文件的先后顺序来进行搜索:
1) 搜索应用程序的当前起动目录;如果没有找到该文件,将继续:
2) 搜索System目录;如果没有找到该文件,将继续:
3) 搜索Windows目录;如果没有找到该文件,将继续:
4) 搜索PATH环境参数中所设置的路径。
装载驱动程序的DLL文件的先后顺序除了第一步的搜索路径要换为Idapi32.dll这个文件被载入的目录之外,其它基本跟上面一样。
注:在某种情况下,从应用程序的当前起动目录中载入与BDE相关的DLL文件,是很有用的,因为用这种方法可以防止其它使用BDE的程序也同时运行;如果真的出现这种情况,将会发生初始化失败的错误信息:DBIERR_MULTIPLEIDAPI。
为DLL文件准备的共享内存装载地址
BDE预留了某些首选的内存地址以供它的一些DLL文件使用。在大多数情况下,如果DLL文件不能被载入那些首选的内存地址,那么系统将会自动地将它们载入其它内存地址。然而下面的这些DLL文件在所有使用BDE的应用程序中必须被载入特定的首选地址;本地的BDE驱动程序预留了下列地址:
BDE DLLs 地址:
IDAPI32.DLL 0x4BDE0000
IDPDX32.DLL 0x4CDE0000
IDDBAS32.DLL 0x4DDE0000
IDASCI32.DLL 0x4EDE0000
如果这些地址已经被其它应用程序所占用了,那么相应的BDE DLL文件就不会被载入,从而产生出错信息;这些出错信息具体如下:
1、如果相应的地址空间已经被占用,从而导致文件Idapi32.dll不能被载入,那么系统将返回DBIERR_CANTLOADIDAPI这条出错信息。
2、如果由于某种冲突,从而导致了任何一个共享驱动程序不能被载入,那么将返回带有该驱动程序名称的DBIERR_CANTLOADLIBRARY出错信息。
SQL驱动程序是不被共享的,故不需要固定的载入地址。
根据上述两条出错信息的发生机制,我们可以很容易理解下面的这个现象:
当我们利用InstallShield来制作应用程序的安装盘时,我们已经将所需要的诸如:与应用程序本身有关的文件和与BDE相关的文件,全部打包完毕,并且已确保了相关设置的正确性。然后去那些已经装有BDE的机器上进行该应用程序的安装,经常会碰到这条出错信息:
An error occurred while attempting to initialize the Borland Database Engine (error $2109)。
产生这条出错信息的主要原因是:由于这台机器上以前由于安装其它程序的需要,已经装有BDE了;而现在如果你的这个应用程序在该台机器上进行安装的时候,它若发现该台机器上已经装有相同版本的BDE,那么它将会默认地不安装本来已经打包好的BDE,而采用该台机器上已经安装好的BDE,从而导致了上述的那个初始化错误。
为了解决上面那个问题,可以采用下面的两种方法中的一种:
一、 重新安装该应用程序,并在程序安装的过程中设置”Install BDE”选项处于选中状态。
二、 手工删除先前已经装好的BDE,然后再重新安装该应用程序。
至于如何手工删除先前已经装好的BDE,具体可以分为以下三个步骤来进行:
1、删除BDE目录中的所有文件。大多数情况下,该目录的路径是:C:Program FilesBorlandCommon FilesBDE,一旦BDE目录中的文件全部被删除后,你也可以将该BDE文件夹本身删去。
2、确保当前控制面板没有被打开,然后从C:WindowsSystem目录中删除BDEADMIN.CPL;这样做的目的是将控制面板中的BDE Administrator图标删除。
3、使用RegEdit将注册表中BDE的两个注册主键删去:
HKEY_LOCAL_MACHINESOFTWAREBorlandBLW32和
HKEY_LOCAL_MACHINESOFTWAREBorlandDatabase Engine。
多重初始化和退出机制
可以在同一进程里多次调用DbiInit,但是每一次对DbiInit的调用都必须有相对应的DbiExit紧随其后。
错误恢复方法
当发生一个致命的应用程序错误的时候,建议使用DbiExit来彻底地关掉BDE。
当发生一个致命的BDE错误的时候,建议关掉所有正在使用BDE的应用程序。
安装BDE 修改注册表
2009-11-20 16:58
BDE需要的东西:
idpdx32.dll
idapi.dll
blw32.dll
idsql32.dll
idapiinst.dll
idbat32.dll
idr20009.dll
idapi32.cfg
bantam.dll
usa.btl
usa.btl
fareast.dll
charset.cvb
idapi.cnf
必需的注册表项目包括:
1. BDE动态连接库文件位置设置
Key : "HKEY_LOCAL_MACHINE\Software\Borland\Database Engine"
Item : "DLLPATH"
Value : BDE动态连接库文件所在位置,如"C:\Program Files\Borland\Common
Files\BDE"
(打开"C:\Program Files\Borland\Common Files\BDE\BDE32.hlp",
查找"Core Files"即可了解BDE各动态连接库文件的作用)
2. BDE语言驱动文件路径设置
Key : "HKEY_LOCAL_MACHINE\Software\Borland\BLW32"
Item : "BLAPIPATH"
Value : BDE语言驱动文件所在路径,如"C:\Program Files\Borland\Common Fi
les\BDE"
(BDE语言驱动就是那些*.BLL文件)
3. 指定可用的BDE语言驱动文件
Key : "HKEY_LOCAL_MACHINE\Software\Borland\BLW32"
Item : "LOCALE_LIB#" (#表示数字, 如"LOCALE_LIB1"、"LOCALE_LIB3"等)
Value : 指定各BDE语言驱动文件,如"C:\Program Files\Borland\Common File
s\BDE\USA.BLL"
(一般必需的语言驱动文件有"USA.BLL","EUROPE.BLL"和"FAREAST.BLL",为保险
起
见,建议将所有语言驱动都设置上。
Delphi 运行时错误信息表
错误信息形式为: Run-time error nnn at xxxx; 其中nnn是运行时的错误编号; xxxx是运行时的错误地址.
编号 说明
I/O错误: (编号100-149)
100 磁盘读错误,若要对超过格式文件尾进行读取时
101 磁盘写错误,若磁盘满时,由CloseFile,Write,Writeln或Flush
102 没有指定文件,若文件变量没有由Assign或AssignFile赋值,由Reset, Rewrite,Append,Rename和Erase报告
103 文件没有打开,若文件未打开,由CloseFile,Read,Write,Seek,Eof, FilePos,FileSize,Flush,BlockRead或BlockWrite报告
104 输入文件未打开,由Read,Readln,Eof,Eoln,SeekEof或SeekEoln报告有关输入的文
105 输出文件未打开,由Write和Writeln报告有关文本文件没有用Console应用程序生成
106 无效的数据格式,由Read或Readln报告从文本文件读取的数据格式不正确
致命错误: (编号200-255)
200 被零除
201 范围检查错误
202 栈上溢
203 栈上溢错误
204 无效的指针操作
205 浮点上溢
206 浮点下溢
207 无效的浮点操作
215 算术上溢错误
216 存取非法
217 控制-C
218 授权指令
219 无效的TYPECAST
220 无效的变体TYPECAST
221 无效的变体操作
222 没有变体方法调用DISPATCHER
223 不能建立变体数组
224 变体不包含数组
225 变体数组边界错误
226 TLS初始化错误
操作系统错误
1899L 不能生成端点映射数据库
1752L 不能执行操作
1751L 入口点非法
1753L 端点映射中没有更多可用的端点
5L 存取非法
1331L 帐号当前不能用,因此不能登录
1793L 用户帐号过期
1327L 用户名是有效的,但一些限制不能验明用户
57L 网络适配器硬件错误
1379L 指定的别名已存在
1344L 分配用于更新的内存块不足
85L 本地设备名已在使用
183L 试图建立已存在的文件
1074L 系统当前正以最新最好的配置运行
7L 存储控制块被破坏
534L 运算结果超出32位
174L 文件系统不支持锁定类型的原子变化
199L 操作系统不能运行这一程序
160L 传递给DosExecPgm的参数串不正确
22L 设备不能识别的命令
1361L 安全描述符不在要求的格式
66L 网络资源类型不正确
1200L 指定的设备名无效
119L 系统不支持请求的命令
10L 环境不正确
193L %1不是有效的基于Windows的应用程序
11L 企图装载不正确格式的程序
1346L 指定的模拟级无效或没有提供要求的模拟级
1340L 试图建立继承的ACL或没有继承的ACE
24L 程序指定的命令长度不正确
1365L 登录段与要求的操作状态不一致
67L 网络名找不到
58L 指定的服务器不能执行请求的命令
53L 网络路径没有找到
161L 指定的路径名无效
230L 管道状态无效
1206L 网络连接协议被损坏
1204L 指定的网络提供者名无效
60L 远程适配器不兼容
159L 线程ID地址不正确
1349L 符号对象类型不当
20L 系统不能找到指定的设备
2202L 指定的用户名无效
1348L 请求的确定信息类是无效的
1009L 配置记录数据库被破坏
1010L 配置记录密钥无效
1102L 遇到磁带头或分区
1076L 当前引导已接受为最新的控制设置
109L 管道结束
111L 文件名太长
1111L I/O总线重新设置
170L 请求的资源在使用
142L 此时系统不能执行JOIN或SUBST
120L 输入的API只能在Windows/NT模式下工作
1003L 由于一些原因不能完成的功能
173L 锁定请求对提供撤消区未解决
266L 不能使用
1407L 不能找到Windows类
1368L 表示要试图通过命名管道的模拟还没有读取
82L 不能生成目录或文件
1205L 不能打开网络连接协议
1351L 没有联系的域控制器或在域内对象被保护,因此不能存取必要信息
1310L 委托组不能禁止
1347L 试图打开匿名的符号,匿名级的符号不能打开
1011L 配置记录密钥不能打开
1012L 配置记录密钥不能读取
1013L 配置记录密钥不能写
1021L 试图在易变的父关键字下建立稳定的子关键字
129L 应用程序%1不能在Windows模式下运行
1436L 子窗口不能有菜单
1059L 指定子循环服务从属
1410L 类已存在
1411L 类不存在
1412L 类仍在打开的窗口中
1418L 线程没有打开的剪切板
1201L 设备当前没有连接,但要记住连接
1421L 没有找到控制ID
1121L 由于超时已到,一系列的I/O操作完成
23L 数据错误
16L 目录不能删除
1065L 指定的数据库不存在
1425L 传递给ReleaseDC的无效HDC
1051L 终止控制已送到其他独立运行服务的服务中
1435L 不能破坏其他线程产生的对象
55L 指定的网络资源不再有效
1202L 试图记住先前记住的设备
2404L 设备由激活的进程在使用,不能断开连接
1107L 当装载磁带时,找不到磁带的分区信息
145L 目录非空
144L 目录不是根目录的子目录
130L 试图使用文件句柄来打开磁盘操作
267L 目录名无效
157L 段已丢失,不能锁定
107L 由于没有插入交换磁盘,程序终止
1393L 磁盘结构损坏,不能在读取
112L 磁盘上没有足够的空间
1127L 即使重试,存取硬盘也失败
1126L 在存取硬盘时,即使重试,存取校准操作也失败
1128L 即使磁盘控制器重新设置,存取硬盘也失败
1114L DLL初始化例程失败
1356L 指定的域已存在
1357L 在该版本中试图超出每个服务器域的限制
1810L 指定域的名字或安全ID与该域的受托信息不一致
108L 磁盘在使用或被其他进程锁定
1221L 工作族或域名已被网络上的其他计算机使用
52L 网络上存在重名
1078L 名字已在作服务器名或服务显示名使用
196L 操作系统不能运行这一应用程序
994L 对EA的存取非法
276L 在安装文件系统上的EA文件被损坏
255L EA不一致
277L 在安装文件系统的EA文件上的EA表用完
275L EA不适合在缓冲区中
282L 安装文件系统不支持扩展属性
1100L 在操作中出现磁带尾部标志
203L 系统不能找到输入的环境选项
1129L 遇到磁带的物理尾部
1501L 没有打开的日志文件事件,因此事件登录服务没有启动
1503L 在读取之间事件日志文件已改变
1500L Eventlog登录文件之一破坏
1064L 在处理控制请求时出现意外
101L 专门信号被其他进程所拥有
192L 操作系统不能运行%1
1208L 出现扩展错误
83L INT24失败
1063L 服务进程不能连接到服务控制器
1392L 文件或目录被损坏,不能在读取
80L 文件存在
1006L 文件卷已变化,因此打开的文件不再有效
2L 系统不能找到指定的文件
1101L 磁带存取达到文件标志
206L 文件名或后缀太长
1125L 软盘控制器返回与登记不一致的结果
1122L 在软盘上没有找到ID地址标志
1123L 软盘扇区ID域与软盘控制器道地址不匹配
1124L 软盘控制器报告出现不能由软驱识别的错误
1007L 请求的操作在全屏幕模式不能执行
31L 连接到系统上的设备不正常
1360L 通配存取类型包含在存取屏蔽中
1429L 该异常分支只能为全局设置
1318L 指定的组已存在
39L 磁盘满
38L 到达文件末
1428L 没有模块处理,不能设置非局部的异常处理
1431L 异常分支没有安装
1409L 热键已登记
1419L 热键没有登记
1441L 所有的DeferWindowsPosHWND必须具有相同的父
1324L 在更新口令时,该返回状态表示新口令中包含不允许的值
202L 操作系统不能运行%1
122L 传递给系统调用的数据区太小
1358L 由于灾难性的介质错误或磁盘数据结构破坏引起请求的操作不能完成
1383L LSA数据库内部不一致
1359L SAM遇到内部数据库不一致的错误,可防止SAM的进一步操作
1800L 指定的优先级无效
1448L 滚动条范围大于0x7FFF
1338L 安全描述符结构无效
198L 操作系统不能运行%1
180L 系统检测到不正确的段号
1799L 指定的分隔符文件无效
1352L SAM服务器状态错误,不能完成期望的操作
1057L 帐号名无效或不存在
1052L 对该服务请求的控制无效
1071L 指定的服务数据锁定无效
1213L 指定的服务名格式无效
1215L 指定的共享名格式不正确
1449L SHOWWINDOWS命令无效
1337L SID结构无效
209L 公布的信号不正确
1439L 参数无效
189L 操作系统不能运行%1
188L 操作系统不能运行%1
1335L 子权限值无效
114L 目标内部文件标识符不正确
1444L 线程ID无效
1784L 提供的用户缓冲区对请求操作失效
118L 写后验证开关参数值不正确
1400L 窗口处理无效
1329L 用户帐号限制,不能从源工作站登录
1117L 由于I/O设备错误,请求不能完成
996L 重叠的IO时间不在发信号状态
997L 重叠的IO操作在处理中
197L 操作系统当前不能配置来运行应用程序
1119L 不能打开与其它设备共享IRQ的设备,至少有一使用该IRQ的其他设备已打开
147L 没有足够的可用资源来处理这一命令
133L 由于驱动器已包含连接,JOIN或SUBST命令不能使用
134L 试图在已连接的驱动器上使用JOIN或SUBST命令
146L 指定的路径正在用替换
149L 试图替代先前已替代的驱动器目录
135L 试图在已替代的驱动器上使用JOIN或SUBST命令
194L 操作系统不能运行%1
138L 系统试图替代已替代的目录
140L 系统试图替代已替代的目录
1430L 日常异常处理已安装
1018L 在有删除标志的登记键上非法操作
1020L 试图在已有子键或值的登记键建立符号连接
154L 输入的卷标超过11个字符的限制,前11个字符写在磁盘上,其余字符自动删除
1322L 请求的操作被禁止或删除最新的其余管理员帐号
1434L 该列表框不支持制表符
1416L 列表符ID没有找到
1390L 试图修改用户口令,但没有提供要求的LM口令
1303L 联接局部RPC,要求用户话路密钥
167L 试图锁定文件失败的区域
33L 由于其他进程已锁定部分文件,该文件不能被进程存取
212L 端锁定,因此不能重新分配
1502L 事件登录文件已满
1326L 由于用户名或验证信息不正确,试图登录无效
1380L 请求登录的类型(如网络,服务等)没有被目标系统授权
1366L 登录话路ID已在使用
1363L 试图启动新的话路管理程序或用已在使用的LSA登录话路
1385L 请求登录的类型(如网络,服务等)没有授权
1334L 没有更多可分配的LUID
164L 在系统中不能生成更多的线程
1110L 驱动器中的介质已改变
1378L 指定的帐号名不是别名的成员
1320L 指定的用户帐号已在指定的组帐号中或由于组中有成员,不能删除
1377L 指定的帐号名不是别名的成员
1321L 指定的用户帐号不是指定组帐号的成员
1374L 由于组是基本组,因此成员不能从该组中删除
208L 取决文件名符号*或?输入不正确或指定的全局文件符号更多
126L 不能找到指定的模块
234L 需要更多的数据
1120L 一系列的I/O操作被其他写到串口的操作完成
317L 系统不能找到消息号为0x%1的消息
131L 试图在超出文件头的位置移动文件指针
215L 不能嵌套调用LoadModule
1792L 试图登录,但网络登录服务没有启动
88L 网络写失败
64L 指定的网络名不再有效
65L 网络存取非法
54L 网络在忙
6118L 该工作组的服务器列表当前不可用
232L 管道在进程中关闭
1104L 在磁带存取中,到达数据标志尾部
1309L 试图由当前不在模拟客户的线程上操作模拟符号
1391L ACL不包含可继承的组件
1019L 系统不能分配记录文件要求的空间
1807L 使用的帐号在内域受托帐号中,使用正常的帐号或远程用户帐号来存取该服务器
1809L 使用的帐号在服务器受托帐号中,使用正常的帐号或远程用户帐号来存取该服务
?/td>
1311L 当前没有可用的登录服务器来服务登录请求
1808L 使用的帐号在工作站受托帐号中,使用正常的帐号或远程用户帐号来存取该服务
?/td>
1112L 由于驱动器中没有介质,磁带查询失败
18L 没有更多的文件
259L 没有更多的可用数据
113L 没有更多的可用内部文件标识符
1203L 没有网络提供者接收给定的路径
2138L 没有网络或网络未启动
89L 此时系统不能启动另一进程
1302L 对该帐号没有指定限额
1447L 窗口不能有滚动条
1350L 试图对没有安全性的对象操作
1116L 由于没有关机在处理中,试图放弃关机失败
205L 在命令子树中没有进程有信号句柄
62L 在服务器上存储等待打印文件的空间不足
1376L 指定的别名不存在
1355L 指定的域不存在
1319L 指定的组不存在
1312L 指定的登录话路不存在,可能已终止
1387L 不存在的新成员不能添加到别名中
1364L 指定的验证包未知
1313L 指定的特权不存在
1317L 指定的用户不存在
1437L 窗口不能具有系统菜单
1008L 试图引用不存在的符号
1786L 工作站没有受托秘密
1787L 域控制器对该工作站没有帐号
1113L 对目标多字节代码页存在的Unicode字符没有映射
1394L 对指定的登录话路没有用户话路密钥
125L 磁盘没有卷标
1417L 没有找到通配符
998L 对内存位置的无效存取
1445L 用非MDI子窗口调用DefMDIChildProc
1332L 映射的信息没有转变
1300L 不是所有权限赋给调用者
1442L 窗口不是子窗口
2250L 网络连接不存在
1207L 不能枚举非容器
26L 指定的磁盘不能存取
8L 没有足够的空间处理该命令
1130L 没有足够的空间处理该命令服务器
136L 系统试图删除没有连接的驱动器
158L 段已锁定
1362L 请求的动作只受登录进程的限制,调用进程没有登记为登录进程
288L 试图释放不被调用者拥有的互斥法
21L 驱动器没有准备好
1017L 系统试图装载或恢复文件到登记中,但指定的文件格式不正确
17L 系统不能将文件移动到不同的驱动器上
137L 系统试图删除没有替代的驱动器
50L 不支持网络请求
1022L 改变请求正在完成,信息没有返回在调用者的缓冲区.调用者现在需要模拟文件,
哉业剿 龅男薷?/td>
1386L 没有提供必要的NT交叉保密口令而试图以安全帐号管理员改变用户口令
1304L WindowsNT的口令太复杂,无法将其转换为Windows的网络口令(该口令返回NULL字
?
110L 系统不能打开指定的设备或文件
2401L 有打开文件或请求在连接期
995L 由于线程退出或应用程序请求,I/O操作放弃
28L 打印机没有纸
84L 处理该请求没有足够的空间
14L 处理该操作没有足够的空间
1105L 磁带没有分区
1330L 用户帐号的口令已到期
1325L 在更新口令,该状态表示违反一些口令更新规则
148L 指定的路径现在不能用
3L 系统不能找到指定的路径
231L 所有的管道实体在忙
535L 在管道的另一端有进程
536L 等待进程打开管道的另一端
233L 在管道的另一端没有进程
1446L 下拉式菜单已激活
1131L 已检测到潜在的僵局条件
63L 要打印的等待文件被删除
1802L 打印机已存在
1795L 指定的打印驱动程序已安装
61L 打印队列已满
1415L 使用局部的DIALOG窗口字
1314L 请求的权限客户机没有
127L 指定的过程没有找到
1067L 进程突然终止
30L 系统不能从指定的驱动器读取
72L 指定的打印机或磁盘驱动器已暂停
1794L 重定向器在使用,不能卸载
1015L 登记文件的文件结构或文件的内存印象系统损坏或文件不能恢复
1016L 登记初始化I/O操作有不可恢复的错误,登记不能完成读,写等操作
1014L 包含系统登记数据的文件之一已恢复成功
201L 操作系统不能运行%1
51L 远程计算机不可用
1220L 试图建立LAN管理服务器话路,但已建立了很多
71L 网络请求不接受
1816L 处理该命令没有足够的定额
1812L 指定的图象文件不包含资源部分
1815L 指定的资源语言ID在图象文件中找不到
1814L 指定的资源名在图象文件中找不到
1813L 指定的资源类型在图象文件中找不到
1306L 两个版本级不兼容
207L 2环堆栈在使用
200L 代码段不能大于等于64KB
1370L 在登记事务委托中出现错误
1369L 登记子树的事务状态与请求的操作不兼容
143L 系统不能替代相同的驱动器或目录
1440L 屏幕已锁定
1382L 秘密的长度超出允许的最大长度
27L 驱动器没有找到请求的扇区
25L 驱动器不能找到磁盘上指定的区域和道
132L 文件指针不能设置在指定的设备或文件上
102L 信号设置不能关闭
187L 指定的系统信号名没有找到
105L 该信号的先前物主关系已终止
121L 信号超时期已到
106L 在驱动器1中插入磁盘
1118L 串行设备没有初始化,串行设备没有安装
1341L GUID分配服务器此时禁止
1811L 服务器在使用中,不能卸载
1342L 此时允许GUID分配服务器
1056L 服务实体已在运行
1061L 服务在此时不能接受控制消息
1055L 服务数据库锁定
1075L 从属服务不存在或已做删除标志
1068L 从属服务或组启动失败
1058L 指定服务禁止,不能启动
1060L 指定作为安装的服务不存在
1073L 指定的服务已存在
1069L 由于登录失败,服务不能启动
1072L 指定的服务已做删除标志
1077L 引导后没有启动的服务已启动
1054L 不能产生该服务的线程
1062L 服务没有启动
1053L 服务对启动没有响应或及时地控制请求
1066L 服务已返回一服务指定错误代码
1070L 在启动后,服务挂在启动等待状态
1219L 提供的证
与已有证书集冲突
1433L LB_SETCOUNT发送到非缓慢的列表框
1103L 磁带存取达到设置标志
36L 打开的共享文件太多
70L 远程服务暂停或在启动的过程中
32L 由于文件被其他进程使用,该进程则不能存取
1115L 系统关闭在处理中
162L 信号已暂挂
156L 接受进程拒绝信号
1301L 要映射的一些信息没有传送
1371L 试图在与内置帐号不兼容的SAM帐号上操作
1372L 请求的操作不能在指定的组上执行,由于它的内置的特殊组
1373L 请求的操作不能在指定的用户上执行,由于它的内置的特殊组
1001L 递归太深,堆栈溢出
141L 系统试图SUBST一驱动器到已替代驱动器的目录
139L 系统试图替代一驱动器到已替代驱动器的目录
0L 操作成功的完成
999L 存取分页的文件错误
150L 系统追踪的信息不在指定的CONFIG.SYS文件中或追踪不允许
210L 信号句柄没有设置
1406L CreateWindows失败,建立WS_CHILD类的顶级窗口
1375L 试图建立作为基本使用的符号,但该符号已在使用.一次只能有一个基本的符号
56L 已达到网络BIOS命令限制
1384L 在试图登录中,用户的安全堆集太多的安全ID
1333L 请求的LUD数不能在单个的分配中分配
214L 太多的动态连接模块连接到该程序中或动态模块中
152L 已设置太多的信号
68L 超出局域网网卡的名字限制
4L 系统不能打开该文件
298L 给信号太多的邮件
1381L 在单个系统中可存储的最大秘密数超出
103L 信号不能重新设置
100L 不能建立另一系统信号
69L 网络BIOS话路超出
1389L 指定太多的SID
155L 不能建立另一线程
1790L 网络登录失败
1788L 在主域与受托域之间的受托关系失败
1789L 在工作站与主域之间的受托关系失败
1108L 试图锁定缺少弹出介质的机构
1109L 卸载介质失败
59L 出现意外的网络错误
1796L 指定的处理器未知
1798L 打印处理器未知
1797L 打印驱动器未知
1305L 遇到或指定的版本对服务来说未知
1785L 磁盘介质不能辨认,可能是未格式化
1005L 卷不包含识别文件系统
1316L 指定的用户已存在
240L 话路取消
128L 没有等待的子进程
1423L 窗口不是一命令框
1420L 窗口不是一有效的对话框
1408L 无效的窗口,属于其他的线程
29L 系统不能写到指定的驱动器
19L 介质写保护
34L 驱动器中错误的磁盘,将%2(卷系列号%3)插入到驱动器%1中
1323L 在更新口令时,该状态表示提供的口令值不正确
-1L 无效的输入句柄
-2L 无效的输入句柄
-7L 输入参数超出范围
-5L LZFile文件结构内存不足
-6L 不正确的全局句柄
-3L 损坏的压缩文件结构
-4L 输出文件空间不足
-8L 不能识别的压缩算法
0L 没有错误
1768L 在服务器中出现编址错误
1713L 服务器已在听从
1711L 对象UUID已登记
1746L 连接不包含鉴别信息
1726L 远程过程调用失败
1727L 远程过程调用失败,不能执行
1791L 远程过程调用已在该线程处理中
1764L 不支持请求的操作
1720L 不能生成端点
1740L 端点重复
1760L 入口已存在
1761L 入口没有找到
1769L 在服务器上的浮点操作被零除
1771L 在服务器上出现浮点上溢
1770L 在服务器上出现浮点下溢
1898L 组成员没有找到
1755L 入口名不完善
1759L 界面没有找到
1766L 在RPC中出现内部错误
1749L 安全上下文无效
1702L 连接句柄无效
1734L 数组边界无效
1706L 端点格式无效
1736L 名称语法无效
1707L 网络地址无效
1724L 网络选项无效
1900L 对象通用唯一标识符为空
1704L RPC协议序列无效
1700L 字符串连接无效
1705L 字符串UUID失效
1733L 标志无效
1709L 超时值无效
1756L 版本选项无效
1742L 调用的最大数太小
1762L 命名服务不可用
1718L 没有连接
1725L 在该线程中没有远程过程调用
1765L 允许的模拟没有安全上下文可用
1708L 没有找到端点
1735L 连接不包含入口点名
1806L 没有足够的连接
1757L 没有足够的成员
1719L 没有协议序列
1714L 没有登记的协议序列
1715L 服务器没有听从
1710L 对象UUID没有找到
1721L 没有足够的资源完成该操作
1745L 过程号超出范围
1728L 出现RPC协议错误
1744L RPC协议序列没有找到
1703L 不支持RPC协议序列
1731L 服务器没有足够的内存完成该操作
1723L 服务器太忙,不能完成该操作
1722L 服务器不可用
1743L 字符串太长
1712L 类型UUID已登记
1748L 未知的鉴别级
1747L 未知的鉴别服务
1741L 未知的鉴别类型
1750L 未知的授权服务
1717L 未知的界面
1716L 未知的管理类型
1737L 不支持命令语法
1730L 服务器不支持转换语法
1732L 不支持类型UUID
1739L 没有可用于构造UUID的网络地址
1701L 连接处理为不正确的类型
1767L 服务器试图做整数被零除
1783L 存根接收到不正确的数据
1782L 字节计算太小
1781L 枚举值超界
1772L 用于自动处理连接的可用服务器已用完
1780L 空引用指针传递到存根
1779L 存根不能得到调用句柄
1773L 由DCERPCCHARTRANS指定的文件不能打开
1774L 包含字符转换表的文件小于512KB
1777L 在调用中上下文处理改变
1776L 上下文句柄与任何已知的不匹配
1778L 传递给远程调用的连接句柄不匹配
1775L 空的上下句柄作为参数传递
Delphi 运行时错误信息表(2)
2008年04月03日 星期四 17:29
1311L
当前没有可用的登录服务器来服务登录请求
1808L
使用的帐号在工作站受托帐号中,使用正常的帐号或远程用户帐号来存取该服务
?/td>
1112L
由于驱动器中没有介质,磁带查询失败
18L
没有更多的文件
259L
没有更多的可用数据
113L
没有更多的可用内部文件标识符
1203L
没有网络提供者接收给定的路径
2138L
没有网络或网络未启动
89L
此时系统不能启动另一进程
1302L
对该帐号没有指定限额
1447L
窗口不能有滚动条
1350L
试图对没有安全性的对象操作
1116L
由于没有关机在处理中,试图放弃关机失败
205L
在命令子树中没有进程有信号句柄
62L
在服务器上存储等待打印文件的空间不足
1376L
指定的别名不存在
1355L
指定的域不存在
1319L
指定的组不存在
1312L
指定的登录话路不存在,可能已终止
1387L
不存在的新成员不能添加到别名中
1364L
指定的验证包未知
1313L
指定的特权不存在
1317L
指定的用户不存在
1437L
窗口不能具有系统菜单
1008L
试图引用不存在的符号
1786L
工作站没有受托秘密
1787L
域控制器对该工作站没有帐号
1113L
对目标多字节代码页存在的Unicode字符没有映射
1394L
对指定的登录话路没有用户话路密钥
125L
磁盘没有卷标
1417L
没有找到通配符
998L
对内存位置的无效存取
1445L
用非MDI子窗口调用DefMDIChildProc
1332L
映射的信息没有转变
1300L
不是所有权限赋给调用者
1442L
窗口不是子窗口
2250L
网络连接不存在
1207L
不能枚举非容器
26L
指定的磁盘不能存取
8L
没有足够的空间处理该命令
1130L
没有足够的空间处理该命令服务器
136L
系统试图删除没有连接的驱动器
158L
段已锁定
1362L
请求的动作只受登录进程的限制,调用进程没有登记为登录进程
288L
试图释放不被调用者拥有的互斥法
21L
驱动器没有准备好
1017L
系统试图装载或恢复文件到登记中,但指定的文件格式不正确
17L
系统不能将文件移动到不同的驱动器上
137L
系统试图删除没有替代的驱动器
50L
不支持网络请求
1022L
改变请求正在完成,信息没有返回在调用者的缓冲区.调用者现在需要模拟文件,
哉业剿 龅男薷?/td>
1386L
没有提供必要的NT交叉保密口令而试图以安全帐号管理员改变用户口令
1304L
WindowsNT的口令太复杂,无法将其转换为Windows的网络口令(该口令返回NULL字
?
110L
系统不能打开指定的设备或文件
2401L
有打开文件或请求在连接期
995L
由于线程退出或应用程序请求,I/O操作放弃
28L
打印机没有纸
84L
处理该请求没有足够的空间
14L
处理该操作没有足够的空间
1105L
磁带没有分区
1330L
用户帐号的口令已到期
1325L
在更新口令,该状态表示违反一些口令更新规则
148L
指定的路径现在不能用
3L
系统不能找到指定的路径
231L
所有的管道实体在忙
535L
在管道的另一端有进程
536L
等待进程打开管道的另一端
233L
在管道的另一端没有进程
1446L
下拉式菜单已激活
1131L
已检测到潜在的僵局条件
63L
要打印的等待文件被删除
1802L
打印机已存在
1795L
指定的打印驱动程序已安装
61L
打印队列已满
1415L
使用局部的DIALOG窗口字
1314L
请求的权限客户机没有
127L
指定的过程没有找到
1067L
进程突然终止
30L
系统不能从指定的驱动器读取
72L
指定的打印机或磁盘驱动器已暂停
1794L
重定向器在使用,不能卸载
1015L
登记文件的文件结构或文件的内存印象系统损坏或文件不能恢复
1016L
登记初始化I/O操作有不可恢复的错误,登记不能完成读,写等操作
1014L
包含系统登记数据的文件之一已恢复成功
201L
操作系统不能运行%1
51L
远程计算机不可用
1220L
试图建立LAN管理服务器话路,但已建立了很多
71L
网络请求不接受
1816L
处理该命令没有足够的定额
1812L
指定的图象文件不包含资源部分
1815L
指定的资源语言ID在图象文件中找不到
1814L
指定的资源名在图象文件中找不到
1813L
指定的资源类型在图象文件中找不到
1306L
两个版本级不兼容
207L
2环堆栈在使用
200L
代码段不能大于等于64KB
1370L
在登记事务委托中出现错误
1369L
登记子树的事务状态与请求的操作不兼容
143L
系统不能替代相同的驱动器或目录
1440L
屏幕已锁定
1382L
秘密的长度超出允许的最大长度
27L
驱动器没有找到请求的扇区
25L
驱动器不能找到磁盘上指定的区域和道
132L
文件指针不能设置在指定的设备或文件上
102L
信号设置不能关闭
187L
指定的系统信号名没有找到
105L
该信号的先前物主关系已终止
121L
信号超时期已到
106L
在驱动器1中插入磁盘
1118L
串行设备没有初始化,串行设备没有安装
1341L
GUID分配服务器此时禁止
1811L
服务器在使用中,不能卸载
1342L
此时允许GUID分配服务器
1056L
服务实体已在运行
1061L
服务在此时不能接受控制消息
1055L
服务数据库锁定
1075L
从属服务不存在或已做删除标志
1068L
从属服务或组启动失败
1058L
指定服务禁止,不能启动
1060L
指定作为安装的服务不存在
1073L
指定的服务已存在
1069L
由于登录失败,服务不能启动
1072L
指定的服务已做删除标志
1077L
引导后没有启动的服务已启动
1054L
不能产生该服务的线程
1062L
服务没有启动
1053L
服务对启动没有响应或及时地控制请求
1066L
服务已返回一服务指定错误代码
1070L
在启动后,服务挂在启动等待状态
1219L
提供的证书与已有证书集冲突
1433L
LB_SETCOUNT发送到非缓慢的列表框
1103L
磁带存取达到设置标志
36L
打开的共享文件太多
70L
远程服务暂停或在启动的过程中
32L
由于文件被其他进程使用,该进程则不能存取
1115L
系统关闭在处理中
162L
信号已暂挂
156L
接受进程拒绝信号
1301L
要映射的一些信息没有传送
1371L
试图在与内置帐号不兼容的SAM帐号上操作
1372L
请求的操作不能在指定的组上执行,由于它的内置的特殊组
1373L
请求的操作不能在指定的用户上执行,由于它的内置的特殊组
1001L
递归太深,堆栈溢出
141L
系统试图SUBST一驱动器到已替代驱动器的目录
139L
系统试图替代一驱动器到已替代驱动器的目录
0L
操作成功的完成
999L
存取分页的文件错误
150L
系统追踪的信息不在指定的CONFIG.SYS文件中或追踪不允许
210L
信号句柄没有设置
1406L
CreateWindows失败,建立WS_CHILD类的顶级窗口
1375L
试图建立作为基本使用的符号,但该符号已在使用.一次只能有一个基本的符号
56L
已达到网络BIOS命令限制
1384L
在试图登录中,用户的安全堆集太多的安全ID
1333L
请求的LUD数不能在单个的分配中分配
214L
太多的动态连接模块连接到该程序中或动态模块中
152L
已设置太多的信号
68L
超出局域网网卡的名字限制
4L
系统不能打开该文件
298L
给信号太多的邮件
1381L
在单个系统中可存储的最大秘密数超出
103L
信号不能重新设置
100L
不能建立另一系统信号
69L
网络BIOS话路超出
1389L
指定太多的SID
155L
不能建立另一线程
1790L
网络登录失败
1788L
在主域与受托域之间的受托关系失败
1789L
在工作站与主域之间的受托关系失败
1108L
试图锁定缺少弹出介质的机构
1109L
卸载介质失败
59L
出现意外的网络错误
1796L
指定的处理器未知
1798L
打印处理器未知
1797L
打印驱动器未知
1305L
遇到或指定的版本对服务来说未知
1785L
磁盘介质不能辨认,可能是未格式化
1005L
卷不包含识别文件系统
1316L
指定的用户已存在
240L
话路取消
128L
没有等待的子进程
1423L
窗口不是一命令框
1420L
窗口不是一有效的对话框
1408L
无效的窗口,属于其他的线程
29L
系统不能写到指定的驱动器
19L
介质写保护
34L
驱动器中错误的磁盘,将%2(卷系列号%3)插入到驱动器%1中
1323L
在更新口令时,该状态表示提供的口令值不正确
-1L
无效的输入句柄
-2L
无效的输入句柄
-7L
输入参数超出范围
-5L
LZFile文件结构内存不足
-6L
不正确的全局句柄
-3L
损坏的压缩文件结构
-4L
输出文件空间不足
-8L
不能识别的压缩算法
0L
没有错误
1768L
在服务器中出现编址错误
1713L
服务器已在听从
1711L
对象UUID已登记
1746L
连接不包含鉴别信息
1726L
远程过程调用失败
1727L
远程过程调用失败,不能执行
1791L
远程过程调用已在该线程处理中
1764L
不支持请求的操作
1720L
不能生成端点
1740L
端点重复
1760L
入口已存在
1761L
入口没有找到
1769L
在服务器上的浮点操作被零除
1771L
在服务器上出现浮点上溢
1770L
在服务器上出现浮点下溢
1898L
组成员没有找到
1755L
入口名不完善
1759L
界面没有找到
1766L
在RPC中出现内部错误
1749L
安全上下文无效
1702L
连接句柄无效
1734L
数组边界无效
1706L
端点格式无效
1736L
名称语法无效
1707L
网络地址无效
1724L
网络选项无效
1900L
对象通用唯一标识符为空
1704L
RPC协议序列无效
1700L
字符串连接无效
1705L
字符串UUID失效
1733L
标志无效
1709L
超时值无效
1756L
版本选项无效
1742L
调用的最大数太小
1762L
命名服务不可用
1718L
没有连接
1725L
在该线程中没有远程过程调用
1765L
允许的模拟没有安全上下文可用
1708L
没有找到端点
1735L
连接不包含入口点名
1806L
没有足够的连接
1757L
没有足够的成员
1719L
没有协议序列
1714L
没有登记的协议序列
1715L
服务器没有听从
1710L
对象UUID没有找到
1721L
没有足够的资源完成该操作
1745L
过程号超出范围
1728L
出现RPC协议错误
1744L
RPC协议序列没有找到
1703L
不支持RPC协议序列
1731L
服务器没有足够的内存完成该操作
1723L
服务器太忙,不能完成该操作
1722L
服务器不可用
1743L
字符串太长
1712L
类型UUID已登记
1748L
未知的鉴别级
1747L
未知的鉴别服务
1741L
未知的鉴别类型
1750L
未知的授权服务
1717L
未知的界面
1716L
未知的管理类型
1737L
不支持命令语法
1730L
服务器不支持转换语法
1732L
不支持类型UUID
1739L
没有可用于构造UUID的网络地址
1701L
连接处理为不正确的类型
1767L
服务器试图做整数被零除
1783L
存根接收到不正确的数据
1782L
字节计算太小
1781L
枚举值超界
1772L
用于自动处理连接的可用服务器已用完
1780L
空引用指针传递到存根
1779L
存根不能得到调用句柄
1773L
由DCERPCCHARTRANS指定的文件不能打开
1774L
包含字符转换表的文件小于512KB
1777L
在调用中上下文处理改变
1776L
上下文句柄与任何已知的不匹配
1778L
传递给远程调用的连接句柄不匹配
1775L
空的上下句柄作为参数传递
InstallShield Express for delphi制作安装程序定制BDE引擎
2007-08-08 17:34
使用Delphi编写数据库程序,在发布程序的同时还需要发布BDE(Borland Database Engine),但BDE占用空间较大,如Delphi5就有17.4M之多,远比一般的程序本身要大。实际上,有些文件根本用不上,所以我们可以在发布时用Delphi附带的InstallShield Express for delphi制作安装程序来定制BDE引擎,这样就可以达到为我们的数据库应用程序“减肥”的目的。
下面介绍BDE引擎的各关键文件的作用,我们以此作为精简BDE驱动程序的依据:
一、不可缺少的文件
Blw32.dll:语言驱动函数库。
Idapi32.dll:BDE基本函数库。
Fareast.btl、Usa.btl:远东语言及美国语言驱动程序,对中文软件不可缺少。
Idr20009.dll:错误信息库。
二、数据库驱动程序(根据需要选择一个或多个)
Idasci32.dll:Ascii文本数据库驱动程序函数库,如果不用Ascii文本数据库,可以不要。
Iddao32.dll:Access数据库驱动程序函数库,如果不用Access数据库,可以不要。
Iddbas32.dll:dBase数据库驱动程序函数库,如果不用dBase数据库,可以不要。
Idodbc32.dll:ODBC数据库驱动程序函数库,如果不用ODBC数据库,可以不要。
Idpdx32.dll:Paradox数据库驱动程序函数库,如果不用Paradox数据库,可以不要。
三、其它驱动程序和配置文件(根据需要选择一个或多个)
Idbat32.dll:批操作驱动程序函数库,如果不用TBatchMove控件或DbiBatchMove类函数,可以不要。
Iddr32.dll:Data Repository驱动程序函数库,如果不用Data Repository功能,可以不要。
Idprov32.dll:BDE DataSet provider驱动程序函数库,如果不用TProvider控件,可以不要。
Idqbe32.dll:QBE驱动程序函数库,如果不用Query By Example,可以不要。
Idsql32.dll:SQL查询驱动程序函数库,如果不用TQuery进行查询,可以不要。
Idapi32.cfg:BDE配置文件,如果程序中没有特殊要求,可以不要。也可以在BDE管理器中设置正确后再分发。
四、其它文件(一般不用)
其它的*.BTL:其它国家和地区的语言驱动程序,可以不要。
BDE32.HLP、BDE32.CNT:BDE帮助文件,可以不要。
BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE管理器及帮助文件,如果不会发生要求软件用户自己配置BDE的情况时,可以不要。
DataBump.EXE、DataBump.HLP、DataBump.CNT:数据库数据转移工具及帮助文件,可以不要。
Localsql.HLP、Localsql.CNT:SQL查询语句帮助文件,可以不要。
Sqllnk32.HLP、Sqllnk32.CNT:SQL连接帮助文件,可以不要。
根据需要选择文件后,还要写注册表文件。需要设置的注册表键值有:
数据驱动程序所在目录的设置:
HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\DLLPATH(字符串值)
语言驱动程序所在目录的设置:
HKEY_LOCAL_MACHINE\Software \Borland\BLW32\BLAPIPATH(字符串值)
语言驱动程序文件名:
HKEY_LOCAL_MACHINE\ Software\Borland\BLW32\LOCALE_LIB#(字符串值) 其中#为编号,按顺序为0、1、2、3......如:
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB0="fareasst.btl"
HKEY_LOCAL_MACHINE\Software\Borland \BLW32\LOCALE_LIB1="usa.btl"
做完这些就足够了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.btl、Usa.btl、Idpdx32.dll六个文件即可。这些文件可放在任何一个目录,只要在注册表指明即可。BDE由17.4M减到1.48M,压缩一下就只有几百K了,这使程序大为减小。
下面我们就以用InstallShield Express for Delphi5.0来制作一个Paradox数据库应用系统的安装程序为例:
1. 启动InstallShield Express for Delphi5.0程序;
2. 设置New project对话框中有关文件目录路径,3. 然后进入Setup Checklist;
4. 在Set the Visual Design中设置程序名5. 、程序目录、安装程序主窗口等信息;
6. 在Specify Installshield objects for delphi5 中设置General Options,7. 选择BDE数据库引擎;
8. 在Specify Components and Files中设置Groups and Files项,9. 在Program Files中加入用户的所有程序文件和数据库表文件,10. 在BDE/IDAPI Files中删除除Idbat32.dll、Usa.btl、Idapi.cfg、Charset.cvb、Bantam.dll、BLW32.dll、Idapi32.dll、Fareast.btl、Idpdx32.dll、Idr20009.dll、Idsql32.dll以外的文件;
11. 在Dialog Boxes中设置所需安装对话框;
12. 在Make Registry Changes中设置Keys项,
13. 在HKEY_LOCAL_MACHINE中加入software\borland\blw32和software\borland\database engine两项,
14. 并且在blw32的值中加入 “Blapipath ‘以上文件路径’”、“LOCALE_LIB0 ‘以上文件路径’\Fareast.dll”和“LOCALE_LIB1 ‘以上文件路径’\Usa.dll”,
15. 在database engine值中加入“Dllpath ‘以上文件路径’”、“Configfile01 ‘以上文件路径’\Idapi.cfg”;
16. 在Specify Folder and Icons中根据实际要求设置有关项目;
17. 在Run Disk Builder中设置安装盘的有关信息;
18. 最后进行Test the Installation和Create Distribution Media即可完成安装程序的制作。
安装BDE 修改注册表
2009-11-20 16:58
BDE需要的东西:
idpdx32.dll
idapi.dll
blw32.dll
idsql32.dll
idapiinst.dll
idbat32.dll
idr20009.dll
idapi32.cfg
bantam.dll
usa.btl
usa.btl
fareast.dll
charset.cvb
idapi.cnf
必需的注册表项目包括:
1. BDE动态连接库文件位置设置
Key : "HKEY_LOCAL_MACHINE\Software\Borland\Database Engine"
Item : "DLLPATH"
Value : BDE动态连接库文件所在位置,如"C:\Program Files\Borland\Common
Files\BDE"
(打开"C:\Program Files\Borland\Common Files\BDE\BDE32.hlp",
查找"Core Files"即可了解BDE各动态连接库文件的作用)
2. BDE语言驱动文件路径设置
Key : "HKEY_LOCAL_MACHINE\Software\Borland\BLW32"
Item : "BLAPIPATH"
Value : BDE语言驱动文件所在路径,如"C:\Program Files\Borland\Common Fi
les\BDE"
(BDE语言驱动就是那些*.BLL文件)
3. 指定可用的BDE语言驱动文件
Key : "HKEY_LOCAL_MACHINE\Software\Borland\BLW32"
Item : "LOCALE_LIB#" (#表示数字, 如"LOCALE_LIB1"、"LOCALE_LIB3"等)
Value : 指定各BDE语言驱动文件,如"C:\Program Files\Borland\Common File
s\BDE\USA.BLL"
(一般必需的语言驱动文件有"USA.BLL","EUROPE.BLL"和"FAREAST.BLL",为保险
起
见,建议将所有语言驱动都设置上。
Delphi 运行时错误信息表
错误信息形式为: Run-time error nnn at xxxx; 其中nnn是运行时的错误编号; xxxx是运行时的错误地址.
编号 说明
I/O错误: (编号100-149)
100 磁盘读错误,若要对超过格式文件尾进行读取时
101 磁盘写错误,若磁盘满时,由CloseFile,Write,Writeln或Flush报告
102 没有指定文件,若文件变量没有由Assign或AssignFile赋值,由Reset, Rewrite,Append,Rename和Erase报告
103 文件没有打开,若文件未打开,由CloseFile,Read,Write,Seek,Eof, FilePos,FileSize,Flush,BlockRead或BlockWrite报告
104 输入文件未打开,由Read,Readln,Eof,Eoln,SeekEof或SeekEoln报告有关输入的文
105 输出文件未打开,由Write和Writeln报告有关文本文件没有用Console应用程序生成
106 无效的数据格式,由Read或Readln报告从文本文件读取的数据格式不正确
致命错误: (编号200-255)
200 被零除
201 范围检查错误
202 栈上溢
203 栈上溢错误
204 无效的指针操作
205 浮点上溢
206 浮点下溢
207 无效的浮点操作
215 算术上溢错误
216 存取非法
217 控制-C
218 授权指令
219 无效的TYPECAST
220 无效的变体TYPECAST
221 无效的变体操作
222 没有变体方法调用DISPATCHER
223 不能建立变体数组
224 变体不包含数组
225 变体数组边界错误
226 TLS初始化错误
操作系统错误
1899L 不能生成端点映射数据库
1752L 不能执行操作
1751L 入口点非法
1753L 端点映射中没有更多可用的端点
5L 存取非法
1331L 帐号当前不能用,因此不能登录
1793L 用户帐号过期
1327L 用户名是有效的,但一些限制不能验明用户
57L 网络适配器硬件错误
1379L 指定的别名已存在
1344L 分配用于更新的内存块不足
85L 本地设备名已在使用
183L 试图建立已存在的文件
1074L 系统当前正以最新最好的配置运行
7L 存储控制块被破坏
534L 运算结果超出32位
174L 文件系统不支持锁定类型的原子变化
199L 操作系统不能运行这一程序
160L 传递给DosExecPgm的参数串不正确
22L 设备不能识别的命令
1361L 安全描述符不在要求的格式
66L 网络资源类型不正确
1200L 指定的设备名无效
119L 系统不支持请求的命令
10L 环境不正确
193L %1不是有效的基于Windows的应用程序
11L 企图装载不正确格式的程序
1346L 指定的模拟级无效或没有提供要求的模拟级
1340L 试图建立继承的ACL或没有继承的ACE
24L 程序指定的命令长度不正确
1365L 登录段与要求的操作状态不一致
67L 网络名找不到
58L 指定的服务器不能执行请求的命令
53L 网络路径没有找到
161L 指定的路径名无效
230L 管道状态无效
1206L 网络连接协议被损坏
1204L 指定的网络提供者名无效
60L 远程适配器不兼容
159L 线程ID地址不正确
1349L 符号对象类型不当
20L 系统不能找到指定的设备
2202L 指定的用户名无效
1348L 请求的确定信息类是无效的
1009L 配置记录数据库被破坏
1010L 配置记录密钥无效
1102L 遇到磁带头或分区
1076L 当前引导已接受为最新的控制设置
109L 管道结束
111L 文件名太长
1111L I/O总线重新设置
170L 请求的资源在使用
142L 此时系统不能执行JOIN或SUBST
120L 输入的API只能在Windows/NT模式下工作
1003L 由于一些原因不能完成的功能
173L 锁定请求对提供撤消区未解决
266L 不能使用
1407L 不能找到Windows类
1368L 表示要试图通过命名管道的模拟还没有读取
82L 不能生成目录或文件
1205L 不能打开网络连接协议
1351L 没有联系的域控制器或在域内对象被保护,因此不能存取必要信息
1310L 委托组不能禁止
1347L 试图打开匿名的符号,匿名级的符号不能打开
1011L 配置记录密钥不能打开
1012L 配置记录密钥不能读取
1013L 配置记录密钥不能写
1021L 试图在易变的父关键字下建立稳定的子关键字
129L 应用程序%1不能在Windows模式下运行
1436L 子窗口不能有菜单
1059L 指定子循环服务从属
1410L 类已存在
1411L 类不存在
1412L 类仍在打开的窗口中
1418L 线程没有打开的剪切板
1201L 设备当前没有连接,但要记住连接
1421L 没有找到控制ID
1121L 由于超时已到,一系列的I/O操作完成
23L 数据错误
16L 目录不能删除
1065L 指定的数据库不存在
1425L 传递给ReleaseDC的无效HDC
1051L 终止控制已送到其他独立运行服务的服务中
1435L 不能破坏其他线程产生的对象
55L 指定的网络资源不再有效
1202L 试图记住先前记住的设备
2404L 设备由激活的进程在使用,不能断开连接
1107L 当装载磁带时,找不到磁带的分区信息
145L 目录非空
144L 目录不是根目录的子目录
130L 试图使用文件句柄来打开磁盘操作
267L 目录名无效
157L 段已丢失,不能锁定
107L 由于没有插入交换磁盘,程序终止
1393L 磁盘结构损坏,不能在读取
112L 磁盘上没有足够的空间
1127L 即使重试,存取硬盘也失败
1126L 在存取硬盘时,即使重试,存取校准操作也失败
1128L 即使磁盘控制器重新设置,存取硬盘也失败
1114L DLL初始化例程失败
1356L 指定的域已存在
1357L 在该版本中试图超出每个服务器域的限制
1810L 指定域的名字或安全ID与该域的受托信息不一致
108L 磁盘在使用或被其他进程锁定
1221L 工作族或域名已被网络上的其他计算机使用
52L 网络上存在重名
1078L 名字已在作服务器名或服务显示名使用
196L 操作系统不能运行这一应用程序
994L 对EA的存取非法
276L 在安装文件系统上的EA文件被损坏
255L EA不一致
277L 在安装文件系统的EA文件上的EA表用完
275L EA不适合在缓冲区中
282L 安装文件系统不支持扩展属性
1100L 在操作中出现磁带尾部标志
203L 系统不能找到输入的环境选项
1129L 遇到磁带的物理尾部
1501L 没有打开的日志文件事件,因此事件登录服务没有启动
1503L 在读取之间事件日志文件已改变
1500L Eventlog登录文件之一破坏
1064L 在处理控制请求时出现意外
101L 专门信号被其他进程所拥有
192L 操作系统不能运行%1
1208L 出现扩展错误
83L INT24失败
1063L 服务进程不能连接到服务控制器
1392L 文件或目录被损坏,不能在读取
80L 文件存在
1006L 文件卷已变化,因此打开的文件不再有效
2L 系统不能找到指定的文件
1101L 磁带存取达到文件标志
206L 文件名或后缀太长
1125L 软盘控制器返回与登记不一致的结果
1122L 在软盘上没有找到ID地址标志
1123L 软盘扇区ID域与软盘控制器道地址不匹配
1124L 软盘控制器报告出现不能由软驱识别的错误
1007L 请求的操作在全屏幕模式不能执行
31L 连接到系统上的设备不正常
1360L 通配存取类型包含在存取屏蔽中
1429L 该异常分支只能为全局设置
1318L 指定的组已存在
39L 磁盘满
38L 到达文件末
1428L 没有模块处理,不能设置非局部的异常处理
1431L 异常分支没有安装
1409L 热键已登记
1419L 热键没有登记
1441L 所有的DeferWindowsPosHWND必须具有相同的父
1324L 在更新口令时,该返回状态表示新口令中包含不允许的值
202L 操作系统不能运行%1
122L 传递给系统调用的数据区太小
1358L 由于灾难性的介质错误或磁盘数据结构破坏引起请求的操作不能完成
1383L LSA数据库内部不一致
1359L SAM遇到内部数据库不一致的错误,可防止SAM的进一步操作
1800L 指定的优先级无效
1448L 滚动条范围大于0x7FFF
1338L 安全描述符结构无效
198L 操作系统不能运行%1
180L 系统检测到不正确的段号
1799L 指定的分隔符文件无效
1352L SAM服务器状态错误,不能完成期望的操作
1057L 帐号名无效或不存在
1052L 对该服务请求的控制无效
1071L 指定的服务数据锁定无效
1213L 指定的服务名格式无效
1215L 指定的共享名格式不正确
1449L SHOWWINDOWS命令无效
1337L SID结构无效
209L 公布的信号不正确
1439L 参数无效
189L 操作系统不能运行%1
188L 操作系统不能运行%1
1335L 子权限值无效
114L 目标内部文件标识符不正确
1444L 线程ID无效
1784L 提供的用户缓冲区对请求操作失效
118L 写后验证开关参数值不正确
1400L 窗口处理无效
1329L 用户帐号限制,不能从源工作站登录
1117L 由于I/O设备错误,请求不能完成
996L 重叠的IO时间不在发信号状态
997L 重叠的IO操作在处理中
197L 操作系统当前不能配置来运行应用程序
1119L 不能打开与其它设备共享IRQ的设备,至少有一使用该IRQ的其他设备已打开
147L 没有足够的可用资源来处理这一命令
133L 由于驱动器已包含连接,JOIN或SUBST命令不能使用
134L 试图在已连接的驱动器上使用JOIN或SUBST命令
146L 指定的路径正在用替换
149L 试图替代先前已替代的驱动器目录
135L 试图在已替代的驱动器上使用JOIN或SUBST命令
194L 操作系统不能运行%1
138L 系统试图替代已替代的目录
140L 系统试图替代已替代的目录
1430L 日常异常处理已安装
1018L 在有删除标志的登记键上非法操作
1020L 试图在已有子键或值的登记键建立符号连接
154L 输入的卷标超过11个字符的限制,前11个字符写在磁盘上,其余字符自动删除
1322L 请求的操作被禁止或删除最新的其余管理员帐号
1434L 该列表框不支持制表符
1416L 列表符ID没有找到
1390L 试图修改用户口令,但没有提供要求的LM口令
1303L 联接局部RPC,要求用户话路密钥
167L 试图锁定文件失败的区域
33L 由于其他进程已锁定部分文件,该文件不能被进程存取
212L 端锁定,因此不能重新分配
1502L 事件登录文件已满
1326L 由于用户名或验证信息不正确,试图登录无效
1380L 请求登录的类型(如网络,服务等)没有被目标系统授权
1366L 登录话路ID已在使用
1363L 试图启动新的话路管理程序或用已在使用的LSA登录话路
1385L 请求登录的类型(如网络,服务等)没有授权
1334L 没有更多可分配的LUID
164L 在系统中不能生成更多的线程
1110L 驱动器中的介质已改变
1378L 指定的帐号名不是别名的成员
1320L 指定的用户帐号已在指定的组帐号中或由于组中有成员,不能删除
1377L 指定的帐号名不是别名的成员
1321L 指定的用户帐号不是指定组帐号的成员
1374L 由于组是基本组,因此成员不能从该组中删除
208L 取决文件名符号*或?输入不正确或指定的全局文件符号更多
126L 不能找到指定的模块
234L 需要更多的数据
1120L 一系列的I/O操作被其他写到串口的操作完成
317L 系统不能找到消息号为0x%1的消息
131L 试图在超出文件头的位置移动文件指针
215L 不能嵌套调用LoadModule
1792L 试图登录,但网络登录服务没有启动
88L 网络写失败
64L 指定的网络名不再有效