v2.50.21 ParamByName().AsLargeInt broken

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for InterBase & Firebird in Delphi and C++Builder
Post Reply
Wade
Posts: 31
Joined: Sun 03 Jan 2010 06:04

v2.50.21 ParamByName().AsLargeInt broken

Post by Wade » Sat 20 Mar 2010 01:55

Any value greater than MaxInt is truncated, hence AsLargeInt on params fails to return the correct row (select) or stores rubbish (insert, update)

dbexp.pas:

function TCRSQLCommand.setParamDescValue(...): SQLResult;
var
s: string;
sa: AnsiString;
i: integer;
i64: integer;
...

This is the mistake... it should be:

i64: Int64;

otherwise the value is trashed here (about 160 lines later):

dtInt64, dtBcd, dtFMTBcd:
begin
if (dt = dtInt64) and FSQLConnection.FEnableLargeint then begin
i64 := PInt64(pBuffer)^;
ParamDesc.SetValue(i64);
end

Dimon
Devart Team
Posts: 2910
Joined: Mon 05 Mar 2007 16:32

Post by Dimon » Mon 22 Mar 2010 11:41

Thank you for information. We have reproduced this problem and fixed it. This fix will be included in the next DbxIda build.

Wade
Posts: 31
Joined: Sun 03 Jan 2010 06:04

Post by Wade » Wed 24 Mar 2010 18:44

Timeframe?

Dimon
Devart Team
Posts: 2910
Joined: Mon 05 Mar 2007 16:32

Post by Dimon » Thu 25 Mar 2010 13:35

New build of DbxIda version 2.50.22 is available for download now.

Post Reply