--- ibx/branches/journaling/fbintf/client/3.0/FB30Statement.pas 2021/12/07 13:27:39 362 +++ ibx/branches/journaling/fbintf/client/3.0/FB30Statement.pas 2021/12/07 13:30:05 363 @@ -88,7 +88,6 @@ type FStatement: TFB30Statement; FFirebird30ClientAPI: TFB30ClientAPI; FBlob: IBlob; {Cache references} - FArray: IArray; FNullIndicator: short; FOwnsSQLData: boolean; FBlobMetaData: IBlobMetaData; @@ -141,7 +140,7 @@ type procedure ColumnSQLDataInit; procedure RowChange; override; procedure FreeSQLData; - function GetAsArray(Array_ID: TISC_QUAD): IArray; override; + function GetAsArray: IArray; override; function GetAsBlob(Blob_ID: TISC_QUAD; BPB: IBPB): IBlob; override; function GetArrayMetaData: IArrayMetaData; override; function GetBlobMetaData: IBlobMetaData; override; @@ -290,6 +289,7 @@ type procedure CheckHandle; override; procedure CheckBatchModeAvailable; procedure GetDSQLInfo(info_request: byte; buffer: ISQLInfoResults); override; + function GetStatementIntf: IStatement; override; procedure InternalPrepare(CursorName: AnsiString=''); override; function InternalExecute(aTransaction: ITransaction): IResults; override; function InternalOpenCursor(aTransaction: ITransaction; Scrollable: boolean @@ -750,7 +750,6 @@ procedure TIBXSQLVAR.RowChange; begin inherited; FBlob := nil; - FArray := nil; end; procedure TIBXSQLVAR.FreeSQLData; @@ -761,7 +760,7 @@ begin FOwnsSQLData := true; end; -function TIBXSQLVAR.GetAsArray(Array_ID: TISC_QUAD): IArray; +function TIBXSQLVAR.GetAsArray: IArray; begin if SQLType <> SQL_ARRAY then IBError(ibxeInvalidDataConversion,[nil]); @@ -770,11 +769,11 @@ begin Result := nil else begin - if FArray = nil then - FArray := TFB30Array.Create(FStatement.GetAttachment as TFB30Attachment, + if FArrayIntf = nil then + FArrayIntf := TFB30Array.Create(FStatement.GetAttachment as TFB30Attachment, TIBXSQLDA(Parent).GetTransaction, - GetArrayMetaData,Array_ID); - Result := FArray; + GetArrayMetaData,PISC_QUAD(SQLData)^); + Result := FArrayIntf; end; end; @@ -1143,7 +1142,7 @@ begin else FSQLNullIndicator := nil; FBlob := nil; - FArray := nil; + FArrayIntf := nil; end; end; SetUniqueRelationName; @@ -1325,6 +1324,11 @@ begin end; end; +function TFB30Statement.GetStatementIntf: IStatement; +begin + Result := self; +end; + procedure TFB30Statement.InternalPrepare(CursorName: AnsiString); var GUID : TGUID; begin