|
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}
|