Problem in D2006 from D7



Hi to all,

We have a D7 program that has been built in D2006.
We have found that in D2006, a section of the code that queries an access
database is not returning the correct data. A column which should be an
integer is given as 1.234....E-607 and I get errors saying 0.0 is not a
timestamp.

I created a demo app using the same code which interacts with the access
table but there I CANNOT reproduce the problem.

When I debug my original app in D2006, there seems to be a problem when I
open a client dataSet.
The stack dump I have is :

FMTBcd.CurrToBCD(595,???,32,???)
DB.TDataSet.DataConvert($244AE80,$12EC9C,$24E3E28,True)
ADODB.CurrToBuffer(595)
ADODB.VarToBuffer
ADODB.TCustomADODataSet.GetFieldData($244AE80,$24E3E28,True)
ADODB.TCustomADODataSet.GetFieldData(???,???)
ADODB.TCustomADODataSet.GetFieldData(???,???)
Provider.TDataPacketWriter.PutField($1F0A248)
Provider.TDataPacketWriter.WriteDataSet($1F081A0,((1, $1E10210, $1F081A0,
10, False, False, (Provider.TDataPacketWriter.PutWideStringField,$2570330),
1, nil), (2, $1E10120, $1F081A0, 30, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 2, nil), (3,
$244AC60, $1F081A0, 8, False, False,
(Provider.TDataPacketWriter.PutField,$2570330), 3, nil), (4, $1E10030,
$1F081A0, 8, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 4, nil), (5,
$1E108A0, $1F081A0, 24, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 5, nil), (6,
$1E106C0, $1F081A0, 38, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 6, nil), (7,
$244AE80, $1F081A0, 34, False, False,
(Provider.TDataPacketWriter.PutField,$2570330), 7, nil), (8, $1E105D0,
$1F081A0, 100, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 8, nil), (9,
$1E104E0, $1F081A0, 100, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 9, nil), (10,
$1E10990, $1F081A0, 100, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 10, nil), (11,
$1E10A80, $1F081A0, 100, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 11, nil), (12,
$1E10B70, $1F081A0, 100, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 12, nil), (13,
$1E10C60, $1F081A0, 100, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 13, nil), (14,
$1E10D50, $1F081A0, 30, False, False,
(Provider.TDataPacketWriter.PutWideStringField,$2570330), 14, nil), (15,
$1E10E40, $1F081A0, 8, False, False,
(Provider.TDataPacketWriter.PutField,$2570330), 15, nil)),2147483647)
Provider.TDataPacketWriter.GetDataPacket($5C69E0,-1,Unassigned)
Provider.TDataSetProvider.CreateDataPacket([grMetaData],[poUseQuoteChar],-1,Unassigned)
Provider.TBaseProvider.InternalGetRecords(???,???,[grMetaData],'',Null)
Provider.TDataSetProvider.InternalGetRecords(-1,-1,???,'',Null)
Provider.TCustomProvider.DoGetRecords(-1,-1,1,'',Null,Unassigned)
Provider.TCustomProvider.GetRecords(???,-1,1,'',Null,Unassigned)
Provider.TLocalAppServer.AS_GetRecords('',-1,-1,1,'',Null,Unassigned)
DBClient.TCustomClientDataSet.DoGetRecords(-1,-1,1,'',Null)
DBClient.TCustomClientDataSet.OpenCursor(False)
DB.TDataSet.SetActive(???)
DB.TDataSet.Open
BabelClasses.TADOCursor.FillClientDataSet
BabelClasses.TCustomCursor.ReadData
ViewSQLDataFrmUnit.TViewSQLDataFrm.FormShow(???)
Forms.TCustomForm.DoShow

Like I mentioned above all works fine in my demo app (which is built in
D2006) but not in the original app.

Any clues on what is going on and why does it go in FMTBcd?

Sham.


.