E
Edward
Unregistered / Unconfirmed
GUEST, unregistred user!
[]各位大侠:
Hi!
A:
一个软件Delphi6+Paradox,Win98正常,Win97出错
因为我开始时,是在Win98 + Delphi5 +Paradox7 下写的,
在2001年初,有一个客户,因为正版的原因,还在用(English)Win97+(English)Office97,
而他又想用我的软件,其中他又想我从他的一个Access97文件取数据,在做数据处理时,
又要把他的这个Access97文件的相关的记录的一个字段,作True OR False 的改变。
在开始时,我就发觉有一些SQL语句,在他的环境下,没有相应的结果,
例如:
在Win98下,下面的语句OK
with DataModule_CheckSystem.Query_ExecSQL do
begin
close;
with SQL do
begin
Clear;
Add('delete from Arrange where ar_year=_Year and ar_month=_Month and ar_Class=_Class');
end;
ParamByName('p_Year').AsInteger :=L_Year;
ParamByName('p_Month').AsInteger:=L_Month;
ParamByName('p_Class').AsString :=L_Class;
ExecSQL;
end;
在(English)Win97+(English)Office97下,没有相应的结果,
我只好专门在一台电脑,安装了(English)Win97+(English)Office97+ Delphi5
并把这个SQL语句,改写为下面的语句
procedure TForm_Arrange.Record_Deleting;
var
L_Year_d,L_Month_d:integer;
L_Class_d:string;
begin
with Table_Arrange do
begin
while not(Eof) do
begin
first;
if FindKey([L_Year,L_Month,Str_Class_R]) then
begin
L_Year_d :=FieldByName('ar_year').AsInteger;
L_Month_d :=FieldByName('ar_month').AsInteger;
L_Class_d :=FieldByName('ar_Class').AsString;
IF (L_Year_d = L_Year) and (L_Month_d = L_Month) and (L_Class_d = L_Class) then
begin
delete;
end;
end
else
exit;
end;
end;
end;
就是这样,勉强通过,他用了半年。
问题是,在2001.07
我在我的电脑上 (Win98 + Delphi5),把Delphi5升级为Delphi6,
又忘记了他的电脑环境,就直接在Win98 + Delphi6把这软件,作了
一些修改,并把 *.exe 给他用,结果,就出错,
但这些错,并没有规律,如应是True的,它可能是True, 也可能是False.
?????????????????????
?????????????????????
问题:
我不想再专门在一台电脑,安装(English)Win97+(English)Office97+ (Delphi5 OR Delphi6)
而专门为他写软件,
1.
我可否用简单的方法,把在Win98 + Delphi6下,写的软件,
在(English)Win97+(English)Office97下,也可用
2.
软件出错,是因为ODBC和BDE的版本?
3.
把他的ODBC升级为和我的一样的版本,并把他电脑上的BDE(Delphi5的),
升级为和我的(Delphi6的)一样的版本,
不知把他的ODBC升级,是否会对他的原有的其他的软件,有何影响?
他电脑上的BDE是Delphi5的版本,因为当初我给他的安装程序是Delphi5的版本,
安装程序不到6M,
而我现在的Delphi6的版本安装程序29.5M,BDE 19M
4.
升级BDE的方法,把C:/CheckSystem 整个目录备份,卸载这个软件,
执行这个软件的Delphi6版本的安装程序,
是这样吗?
5.
有何更好的解决方法?
B:
一个软件Delphi6+Paradox,Win98正常,WinNT4.0出错
这个问题不了了之了,因为它执行后,曾出现
The instruction at "0x77f88a87" referenced memory at "0x00000018".
The memory could not be "read".
因为WinNT4.0是新装的,当时没有在意
后来实在没有办法,把WinNT4.0重装,再执行时通过
痛苦啊,白白浪费3天时间
谢谢各位大侠
祝福中秋佳节快乐,月圆人圆事事圆满。!!!
Thanks !!!
Edward
2001.10.05
edward168@163.com
edward168@21cn.com
Hi!
A:
一个软件Delphi6+Paradox,Win98正常,Win97出错
因为我开始时,是在Win98 + Delphi5 +Paradox7 下写的,
在2001年初,有一个客户,因为正版的原因,还在用(English)Win97+(English)Office97,
而他又想用我的软件,其中他又想我从他的一个Access97文件取数据,在做数据处理时,
又要把他的这个Access97文件的相关的记录的一个字段,作True OR False 的改变。
在开始时,我就发觉有一些SQL语句,在他的环境下,没有相应的结果,
例如:
在Win98下,下面的语句OK
with DataModule_CheckSystem.Query_ExecSQL do
begin
close;
with SQL do
begin
Clear;
Add('delete from Arrange where ar_year=_Year and ar_month=_Month and ar_Class=_Class');
end;
ParamByName('p_Year').AsInteger :=L_Year;
ParamByName('p_Month').AsInteger:=L_Month;
ParamByName('p_Class').AsString :=L_Class;
ExecSQL;
end;
在(English)Win97+(English)Office97下,没有相应的结果,
我只好专门在一台电脑,安装了(English)Win97+(English)Office97+ Delphi5
并把这个SQL语句,改写为下面的语句
procedure TForm_Arrange.Record_Deleting;
var
L_Year_d,L_Month_d:integer;
L_Class_d:string;
begin
with Table_Arrange do
begin
while not(Eof) do
begin
first;
if FindKey([L_Year,L_Month,Str_Class_R]) then
begin
L_Year_d :=FieldByName('ar_year').AsInteger;
L_Month_d :=FieldByName('ar_month').AsInteger;
L_Class_d :=FieldByName('ar_Class').AsString;
IF (L_Year_d = L_Year) and (L_Month_d = L_Month) and (L_Class_d = L_Class) then
begin
delete;
end;
end
else
exit;
end;
end;
end;
就是这样,勉强通过,他用了半年。
问题是,在2001.07
我在我的电脑上 (Win98 + Delphi5),把Delphi5升级为Delphi6,
又忘记了他的电脑环境,就直接在Win98 + Delphi6把这软件,作了
一些修改,并把 *.exe 给他用,结果,就出错,
但这些错,并没有规律,如应是True的,它可能是True, 也可能是False.
?????????????????????
?????????????????????
问题:
我不想再专门在一台电脑,安装(English)Win97+(English)Office97+ (Delphi5 OR Delphi6)
而专门为他写软件,
1.
我可否用简单的方法,把在Win98 + Delphi6下,写的软件,
在(English)Win97+(English)Office97下,也可用
2.
软件出错,是因为ODBC和BDE的版本?
3.
把他的ODBC升级为和我的一样的版本,并把他电脑上的BDE(Delphi5的),
升级为和我的(Delphi6的)一样的版本,
不知把他的ODBC升级,是否会对他的原有的其他的软件,有何影响?
他电脑上的BDE是Delphi5的版本,因为当初我给他的安装程序是Delphi5的版本,
安装程序不到6M,
而我现在的Delphi6的版本安装程序29.5M,BDE 19M
4.
升级BDE的方法,把C:/CheckSystem 整个目录备份,卸载这个软件,
执行这个软件的Delphi6版本的安装程序,
是这样吗?
5.
有何更好的解决方法?
B:
一个软件Delphi6+Paradox,Win98正常,WinNT4.0出错
这个问题不了了之了,因为它执行后,曾出现
The instruction at "0x77f88a87" referenced memory at "0x00000018".
The memory could not be "read".
因为WinNT4.0是新装的,当时没有在意
后来实在没有办法,把WinNT4.0重装,再执行时通过
痛苦啊,白白浪费3天时间
谢谢各位大侠
祝福中秋佳节快乐,月圆人圆事事圆满。!!!
Thanks !!!
Edward
2001.10.05
edward168@163.com
edward168@21cn.com