BDE3.0, BDE4.0 application compatibility.
Our customers have some pre-existing applications using
Delphi1 and Delphi2.
We would prefer to code in Delphi3 to take advantage of
its new features.
Problem is that Delphi3's BDE (4.0) will not coexist with
Delphi2's BDE (3.5). And you can't run Delphi3 software
with the older version of the BDE.
This problem becomes serious when one tries to use
previously existing Delphi2.0 software with the newer
version(4.0) of the BDE.
Problem1:
qry.SQL.Add('SELECT MyMemoFld '+
'FROM MyTable '+
'WHERE IntID='+
StrToInt(MyIntID));
qry.FieldByName('MyMemoFld').Value := mmoMySimpleMemo.Text;
The above statement in a Delphi2 program works fine
with Delphi2's BDE(3.5). It also works fine in a
Delphi3 program with Delphi3's BDE(4.0). But try and
run the Delphi2 program with the Delphi3 BDE in place
and you will get:
EDBEngineError - field is not a BLOB.
The above example did work with BDE(4.0) when I changed
the SQL to `select *'.
Problem2:
INSERT INTO UNIQUETBL
(UNIQUEID)
SELECT MyIntID FROM MYOTHERTBL
Where UNIQUETBL.UNIQUEID IS CHAR(32) and
MYOTHERTBL.MYINTID IS INT
EDBEngineError - type mismatch in expression.
The above actually worked with Delphi2's BDE.
Both examples were done using Delphi2, BDE4.0, and Paradox
Driver version 1.0.
Both tasks above can be accomplished in a Delphi2 program
with the Delphi3 BDE by programming changes and/or by porting
the application to Delphi3.
My nightmare is having something like the above happen to a
customer using someone else's accounting package written in
BC or Delphi2 when they install our warehouse module in
Delphi3 and then call us up because their other programs
no longer work.
Either there needs to be a way to have 2 independent versions
of the BDE coexist, like 16bit BDE and 32bit BDE
(non-trivial I am sure) or newer versions of the BDE need to
be completely compatible with older versions, bugs and all.
I would be very interested in hearing if anyone else has
encountered this problem or has a solution.
David Holland
----------------------------------------------------------------------
Any opinions expressed are my own.