delphi7 编写的程序出错
发布网友
发布时间:2022-04-19 09:47
我来回答
共2个回答
热心网友
时间:2023-08-27 10:13
没有安装delphi7的不能运行,安装了的就能运行,这是因为数据库需要delphi自己带的BDE文件。
--Delphi程序员都知道,在数据库应用程序开发完成后,要发布程序需要同时发布BDE(Borland Database Engine),否则会引起错误“A Error occurred while attempingto initilize Borland Database Engine(Error $2109)”。当觉得程序太大而辛辛苦苦精简自己的程序到满意时,却发现BDE管理程序器需要9M之巨,不由感到沮丧,真有点自己的努力被糟蹋的感觉。不过也不必太沮丧,只要肯尝试,还是有办法来精简BDE的。
首先来看看BDE目录中的文件,所有文件确实有近9M大吧。不过有些可能是用不到的,关键文件的作用可参见Bde32.HLP中“Introction to Borland Database Engine”下的“Core BDE Files”,其中列出了BDE的关键文件及其作用,可以以此作为依据来尝试精简BDE驱动程序。下面是各个文件的作用:
一、不可缺少的文件
---- Blw32.dll:语言驱动函数库。
---- Idapi32.dll:BDE基本函数库。
---- Fareast.bll、Usa.bll:远东语言及美国语言驱动程序,对中文软件不可缺少。
---- Idr20009.dll:错误信息库。
二、数据库驱动程序(根据需要选择一个或多个)
---- Idasci32.dll:Ascii文本数据库驱动程序函数库,如果不用Ascii文本数据库,可以不要。
---- Id32.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 provide驱动程序函数库,如果不用TProvider控件,可以不要。
---- Idqbe32.dll:QBE驱动程序函数库,如果不用Query By Example,可以不要。
---- Idsql32.dll:SQL查询驱动程序函数库,如果不用TQuery进行查询,可以不要。
---- Idapi32.cfg:BDE配置文件,如果程序中没有特殊要求,可以不要。也可以在BDE管理器中设置正确后再分发。
四、其它文件(一般不用)
---- BDE32.HLP、BDE32.CNT:BDE帮助文件,可以不要。
---- BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE管理器及帮助文件,如果不会发生要求软件用户自己配置BDE的情况时,可以不要。
---- 其它*.BLL:其它国家和地区的语言驱动程序,可以不要。
---- DataBump.EXE、DataBump.HLP、DataBump.CNT:数据库数据转移工具及帮助文件,可以不要。
---- Localsql.HLP、Localsql.CNT:SQL查询语句帮助文件,可以不要。
---- Sqllnk32.HLP、Sqllnk32.CNT:SQL连接帮助文件,可以不要。
---- 在根据需要选择文件后,还要写注册表文件。这个应该不成问题,可以手工设置,但最好在程序中设置,在发现注册表中没有相应键值时写入,用TRegFile对象用不了几行代码的。需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在):
---- 数据驱动程序所在目录的设置:
---- 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.bll"
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB1="usa.bll"
---- 就这些了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.bll、Usa.bll、Idpdx32.dll六个文件即可。
---- 这些文件可放在任何一个目录,只要在注册表指明即可。OK,BDE由9M多减到不到2M,ZIP一下就700多K了,比原来的应用系统减少了不少吧。
热心网友
时间:2023-08-27 10:13
这个问题有点难了。access一般来说是不用另外装引擎的(用ADO连接的话)。quickrep是delphi自带的报表控件,也是不须要另外打包的。我也用ado+access+quickrep的方式做了四年了,从98到XP的机上用都没出现过问题。
delphi7编译多次才正确
delphi7编译多次才正确原因有:1、程序中存在语法错误:如果程序中存在语法错误,将会导致程序编译失败。在Delphi7中,编译器会在编译时检查代码的语法是否正确,如果存在语法错误,编译器会提示错误信息。因此,需要检查程序中的语法错误并进行修复。2、程序中存在逻辑错误:如果程序中存在逻辑错误,将会导致...
delphi7 编写的程序出错
--- 在根据需要选择文件后,还要写注册表文件。这个应该不成问题,可以手工设置,但最好在程序中设置,在发现注册表中没有相应键值时写入,用TRegFile对象用不了几行代码的。需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在):--- 数据驱动程序所在目录的设置:--- HKEY_LOCAL_MACH...
Delphi7 编辑时出错,求高手解答
目测是这个程序正在运行,打开进程管理器看看有没有,有的话直接结束进程。如果是win10系统,那肯定就是权限问题,可以创建工程后保存到非系统盘,然后编译。
delphi7程序报错Access violation at address 00404348 in module...
你看到是执行到FX:='1'这一行报错,但有可能真正执行的并不是这一行。我发现在delphi7中改过代码之后,会经常出现这样的问题,特别是动态加载bpl或DLL时。你可以重启delphi之后,不要修改任何代码,然后下断点调试,看看是否还在你说的这一行报错。
我用Delphi7 写个记事本,然后就出cannot open file "".系统找不到指定...
你使用OpenDialog打开文件时,它没有得到需要打开的文件名称,所以报错.这个是你的代码问题,你可以修改你的代码,让它避免出现这种情况.(将你的代码贴出来看看...)或者使用try ..except语句避免错误.
delphi7总是报错 [Error] Unit1.pas(103): Identifier redeclared...
虽然我很久没写Delphi了,但是提示信息是 重复定义了变量‘a’,所以看看你程序的上下文是否有重复定义的地方,看看变量的作用域是否重复了,另外,为了养成良好的代码风格,变量名称,尽量用有描述性的语言。例如:columnString
解决运行“Borland Delphi7”中的程序时提示的:[致命错误...
a1_1程序没有完全退出,你在任务管理器中把a1_1进程结束。或重启动计算机。
解决运行“Borland Delphi7”中的程序时提示的:[致命错误...
不能登陆输出文件'C:\Program Files\Borland\Delphi7\Source\a1_1.exe'1.检查这个文件是否正在使用!2.检查这个目录是否是可写
我的delphi7里的Database Desktop错误了,有谁能帮帮我啊!!各路英雄豪...
DELPHI编写的程序在C盘的根目录都会自动产生一个PDOXUSRS.NET文件。这个是Paradox数据库的多用户访问文件,是用来控制记录或文件锁定的。如果出现类似以下错误:Network initialization failed.Permission denied.File:C:\PDOXUSRS.NET Directory:C:\.是因为C盘PDOXUSRS.NET文件损坏了,删除它就可以解决问题,程序...
DELPHI7开发的程序出现EAccessViolation错误是怎么回事啊?
MessageBox(0, '仓库结算单窗体创建错误', '产生严重例外错误', MB_OK + MB_ICONSTOP);MessageBox(0, '费用统计窗体创建错误', '产生严重例外错误', MB_OK + MB_ICONSTOP);MessageBox(0, '结算分单窗体创建错误', '产生严重例外错误', MB_OK + MB_ICONSTOP);把这三个删了,就可以了 ...