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

Comparing ibx/trunk/fbintf/IB.pas (file contents):
Revision 315 by tony, Thu Feb 25 11:56:36 2021 UTC vs.
Revision 347 by tony, Mon Sep 20 22:08:20 2021 UTC

# Line 134 | Line 134 | uses
134   const
135    {Interface version information}
136    FBIntf_Major = 1;
137 <  FBIntf_Minor = 2;
138 <  FBIntf_Release = 0;
139 <  FBIntf_Version = '1.2.0';
137 >  FBIntf_Minor = 3;
138 >  FBIntf_Release = 2;
139 >  FBIntf_Version = '1.3.2';
140  
141   const
142    {DPB, TPB and SPB Parameter Block Name Prefixes}
# Line 263 | Line 263 | type
263  
264    IParameterBlockWithTypeNames<_IItem> = interface(IParameterBlock<_IItem>)
265      function AddByTypeName(ParamTypeName: AnsiString): _IItem;
266 <    function GetDPBParamTypeName(ParamType: byte): Ansistring;
266 >    function GetDPBParamTypeName(ParamType: byte): Ansistring; deprecated 'Use Get ParamTypeName';
267 >    function GetParamTypeName(ParamType: byte): Ansistring;
268    end;
269  
270    {IParameterBlockItem is not used on its own but instead provides a base type for
# Line 300 | Line 301 | type
301  
302     TIBDataBaseErrorMessages   = set of TIBDataBaseErrorMessage;
303  
304 +   TStatusCode = long;
305 +
306    IStatus = interface
307      ['{34167722-af38-4831-b08a-93162d58ede3}']
308 <    function GetIBErrorCode: Long;
309 <    function Getsqlcode: Long;
308 >    function GetIBErrorCode: TStatusCode;
309 >    function Getsqlcode: TStatusCode;
310      function GetMessage: AnsiString;
311      function CheckStatusVector(ErrorCodes: array of TFBStatusCode): Boolean;
312      function GetIBDataBaseErrorMessages: TIBDataBaseErrorMessages;
# Line 747 | Line 750 | type
750  
751    TPerfCounters = array[TPerfStats] of Int64;
752  
753 +  {Batch Query Execution Support}
754 +
755 +  TBatchCompletionState = (bcExecuteFailed, bcSuccessNoInfo, bcNoMoreErrors);
756 +
757 +  IBatchCompletion = interface
758 +  ['{9bc3d49d-16d9-4606-94e5-ee987103ad92}']
759 +    function getTotalProcessed: cardinal;
760 +    function getState(updateNo: cardinal): TBatchCompletionState;
761 +    function getStatusMessage(updateNo: cardinal): AnsiString;
762 +    function getUpdated: integer;
763 +    function getErrorStatus(var RowNo: integer; var status: IStatus): boolean;
764 +    end;
765 +
766    {The IStatement interface provides access to an SQL Statement once it has been
767     initially prepared. The interface is returned from the IAttachment interface.
768     }
# Line 758 | Line 774 | type
774      function GetPlan: AnsiString;
775      function GetRowsAffected(var SelectCount, InsertCount, UpdateCount, DeleteCount: integer): boolean;
776      function GetSQLStatementType: TIBSQLStatementTypes;
777 +    function GetSQLStatementTypeName: AnsiString;
778      function GetSQLText: AnsiString;
779      function GetProcessedSQLText: AnsiString;
780      function GetSQLDialect: integer;
781      function IsPrepared: boolean;
782 +    function HasBatchMode: boolean;
783 +    function IsInBatchMode: boolean;
784      procedure Prepare(aTransaction: ITransaction=nil);
785      function Execute(aTransaction: ITransaction=nil): IResults;
786      function OpenCursor(aTransaction: ITransaction=nil): IResultSet;
# Line 770 | Line 789 | type
789      procedure SetRetainInterfaces(aValue: boolean);
790      procedure EnableStatistics(aValue: boolean);
791      function GetPerfStatistics(var stats: TPerfCounters): boolean;
792 +    {IBatch interface support}
793 +    procedure AddToBatch;
794 +    function ExecuteBatch(aTransaction: ITransaction=nil): IBatchCompletion;
795 +    procedure CancelBatch;
796 +    function GetBatchCompletion: IBatchCompletion;
797 +    function GetBatchRowLimit: integer;
798 +    procedure SetBatchRowLimit(aLimit: integer);
799 +    {Stale Reference Check}
800 +    procedure SetStaleReferenceChecks(Enable:boolean); {default true}
801 +    function GetStaleReferenceChecks: boolean;
802 +
803      property MetaData: IMetaData read GetMetaData;
804      property SQLParams: ISQLParams read GetSQLParams;
805      property SQLStatementType: TIBSQLStatementTypes read GetSQLStatementType;
# Line 919 | Line 949 | type
949      function getSize: integer;
950      procedure getRawBytes(var Buffer);
951      function getAsString: AnsiString;
952 <    function getAsInteger: integer;
952 >    function getAsInteger: int64;
953      procedure DecodeIDCluster(var ConnectionType: integer; var DBFileName, DBSiteName: AnsiString);
954      function getAsBytes: TByteArray;
955      function getAsDateTime: TDateTime;
# Line 931 | Line 961 | type
961      function GetCount: integer;
962      function GetItem(index: integer): IDBInfoItem;
963      function Find(ItemType: byte): IDBInfoItem;
964 <    property AsInteger: integer read getAsInteger;
964 >    property AsInteger: int64 read getAsInteger;
965      property AsString: AnsiString read GetAsString;
966      property Count: integer read GetCount;
967      property Items[index: integer]: IDBInfoItem read getItem; default;
# Line 1064 | Line 1094 | type
1094      function CreateBlob(transaction: ITransaction; SubType: integer; CharSetID: cardinal=0; BPB: IBPB=nil): IBlob; overload;
1095      function OpenBlob(transaction: ITransaction; RelationName, ColumnName: AnsiString; BlobID: TISC_QUAD; BPB: IBPB=nil): IBlob; overload;
1096      function OpenBlob(transaction: ITransaction; BlobMetaData: IBlobMetaData; BlobID: TISC_QUAD; BPB: IBPB=nil): IBlob;  overload;
1097 +    function GetInlineBlobLimit: integer;
1098 +    procedure SetInlineBlobLimit(limit: integer);
1099  
1100      {Array - may use to open existing arrays. However, ISQLData.AsArray is preferred}
1101  
# Line 1091 | Line 1123 | type
1123      procedure getFBVersion(version: TStrings);
1124      function HasActivity: boolean;
1125      function HasDecFloatSupport: boolean;
1126 +    function HasBatchMode: boolean;
1127  
1128      {Character Sets}
1129      function HasDefaultCharSet: boolean;
# Line 1187 | Line 1220 | type
1220      function getSize: integer;
1221      procedure getRawBytes(var Buffer);
1222      function getAsString: AnsiString;
1223 <    function getAsInteger: integer;
1223 >    function getAsInteger: int64;
1224      function getAsByte: byte;
1225      function CopyTo(stream: TStream; count: integer): integer;
1226      property AsString: AnsiString read getAsString;
1227 <    property AsInteger: integer read getAsInteger;
1227 >    property AsInteger: int64 read getAsInteger;
1228      property AsByte: byte read getAsByte;
1229    end;
1230  
# Line 1334 | Line 1367 | type
1367     {IB Client Exceptions}
1368     EIBClientError = class(EIBError);
1369  
1370 +   {Used to explicitly report a Batch Buffer overflow}
1371 +   EIBBatchBufferOverflow = class(EIBError);
1372 +
1373   {The Firebird API function is used to access the IFirebirdAPI interface.
1374  
1375   It will load the Firebird Client Library if this is not already loaded and

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines