From: <dav...@us...> - 2010-02-02 23:06:37
|
Revision: 896 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=896&view=rev Author: davidvtaylor Date: 2010-02-02 23:06:30 +0000 (Tue, 02 Feb 2010) Log Message: ----------- * Fix for "Variant or safe array index out of bounds" error in AnyDAC broker. The root cause is the same as QC 46644 - DynArrayFromVariant() fails for empty arrays. Modified Paths: -------------- trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas Modified: trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas =================================================================== --- trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas 2010-01-29 18:28:03 UTC (rev 895) +++ trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas 2010-02-02 23:06:30 UTC (rev 896) @@ -52,7 +52,7 @@ InstantBrokers, InstantMetadata, InstantTypes, uADCompClient, uADStanOption, uADStanParam, uADStanIntf, uADStanConst, uADDAptIntf, uADStanAsync, uADDAptManager, uADCompDataSet - {$IFDEF D10+}, DBCommonTypes{$ENDIF}; + {$IFDEF D10+}, Variants, DBCommonTypes{$ENDIF}; type TInstantAnyDACConnectionDef = class(TInstantRelationalConnectionDef) @@ -714,7 +714,9 @@ ftBlob: // Temporary workaround for AnyDAC blob issue with MSSQL {$IFDEF D12+} - TargetParam.AsBlob := ConvertBlobData(SourceParam.AsBlob); + if (VarArrayHighBound(SourceParam.Value,1) <> -1) then + TargetParam.AsBlob := ConvertBlobData(SourceParam.AsBlob) else + TargetParam.AsBlob := ''; {$ELSE} TargetParam.AsBlob := SourceParam.AsBlob; {$ENDIF} |