ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/journaling/fbintf/client/2.5/FB25Statement.pas
(Generate patch)

Comparing ibx/branches/journaling/fbintf/client/2.5/FB25Statement.pas (file contents):
Revision 362 by tony, Tue Dec 7 13:27:39 2021 UTC vs.
Revision 363 by tony, Tue Dec 7 13:30:05 2021 UTC

# Line 123 | Line 123 | type
123      FStatement: TFB25Statement;
124      FFirebird25ClientAPI: TFB25ClientAPI;
125      FBlob: IBlob;             {Cache references}
126    FArray: IArray;
126      FNullIndicator: short;
127      FOwnsSQLData: boolean;
128      FBlobMetaData: IBlobMetaData;
# Line 159 | Line 158 | type
158      constructor Create(aParent: TIBXSQLDA; aIndex: integer);
159      procedure FreeSQLData;
160      procedure RowChange; override;
161 <    function GetAsArray(Array_ID: TISC_QUAD): IArray; override;
161 >    function GetAsArray: IArray; override;
162      function GetAsBlob(Blob_ID: TISC_QUAD; BPB: IBPB): IBlob; override;
163      function GetArrayMetaData: IArrayMetaData; override;
164      function GetBlobMetaData: IBlobMetaData; override;
# Line 193 | Line 192 | type
192    public
193      constructor Create(aStatement: TFB25Statement);
194      destructor Destroy; override;
195 +    function CanChangeMetaData: boolean; override;
196      function CheckStatementStatus(Request: TStatementStatus): boolean; override;
197      function ColumnsInUseCount: integer; override;
198      function GetTransaction: TFB25Transaction; virtual;
# Line 264 | Line 264 | type
264    protected
265      procedure CheckHandle; override;
266      procedure GetDsqlInfo(info_request: byte; buffer: ISQLInfoResults); override;
267 +    function GetStatementIntf: IStatement; override;
268      procedure InternalPrepare(CursorName: AnsiString=''); override;
269      function InternalExecute(aTransaction: ITransaction): IResults; override;
270      function InternalOpenCursor(aTransaction: ITransaction; Scrollable: boolean): IResultSet; override;
# Line 429 | Line 430 | begin
430    Result := FBlobMetaData;
431   end;
432  
433 < function TIBXSQLVAR.GetAsArray(Array_ID: TISC_QUAD): IArray;
433 > function TIBXSQLVAR.GetAsArray: IArray;
434   begin
435    if SQLType <> SQL_ARRAY then
436      IBError(ibxeInvalidDataConversion,[nil]);
# Line 438 | Line 439 | begin
439      Result := nil
440    else
441    begin
442 <    if FArray = nil then
443 <      FArray := TFB25Array.Create(FStatement.GetAttachment as TFB25Attachment,
442 >    if FArrayIntf = nil then
443 >      FArrayIntf := TFB25Array.Create(FStatement.GetAttachment as TFB25Attachment,
444                                    TIBXSQLDA(Parent).GetTransaction,
445 <                                  GetArrayMetaData,Array_ID);
446 <    Result := FArray;
445 >                                  GetArrayMetaData,PISC_QUAD(SQLData)^);
446 >    Result := FArrayIntf;
447    end;
448   end;
449  
# Line 614 | Line 615 | procedure TIBXSQLVAR.RowChange;
615   begin
616    inherited RowChange;
617    FBlob := nil;
617  FArray := nil;
618   end;
619  
620  
# Line 796 | Line 796 | begin
796    inherited Destroy;
797   end;
798  
799 + function TIBXSQLDA.CanChangeMetaData: boolean;
800 + begin
801 +  Result := true;
802 + end;
803 +
804   function TIBXSQLDA.CheckStatementStatus(Request: TStatementStatus): boolean;
805   begin
806    Result := false;
# Line 975 | Line 980 | begin
980      IBDatabaseError;
981   end;
982  
983 + function TFB25Statement.GetStatementIntf: IStatement;
984 + begin
985 +  Result := self;
986 + end;
987 +
988   procedure TFB25Statement.InternalPrepare(CursorName: AnsiString);
989   var
990    GUID: TGUID;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines