ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/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 345 by tony, Mon Aug 23 14:22:29 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 = 1;
139 >  FBIntf_Version = '1.3.1';
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 +
800      property MetaData: IMetaData read GetMetaData;
801      property SQLParams: ISQLParams read GetSQLParams;
802      property SQLStatementType: TIBSQLStatementTypes read GetSQLStatementType;
# Line 919 | Line 946 | type
946      function getSize: integer;
947      procedure getRawBytes(var Buffer);
948      function getAsString: AnsiString;
949 <    function getAsInteger: integer;
949 >    function getAsInteger: int64;
950      procedure DecodeIDCluster(var ConnectionType: integer; var DBFileName, DBSiteName: AnsiString);
951      function getAsBytes: TByteArray;
952      function getAsDateTime: TDateTime;
# Line 931 | Line 958 | type
958      function GetCount: integer;
959      function GetItem(index: integer): IDBInfoItem;
960      function Find(ItemType: byte): IDBInfoItem;
961 <    property AsInteger: integer read getAsInteger;
961 >    property AsInteger: int64 read getAsInteger;
962      property AsString: AnsiString read GetAsString;
963      property Count: integer read GetCount;
964      property Items[index: integer]: IDBInfoItem read getItem; default;
# Line 1064 | Line 1091 | type
1091      function CreateBlob(transaction: ITransaction; SubType: integer; CharSetID: cardinal=0; BPB: IBPB=nil): IBlob; overload;
1092      function OpenBlob(transaction: ITransaction; RelationName, ColumnName: AnsiString; BlobID: TISC_QUAD; BPB: IBPB=nil): IBlob; overload;
1093      function OpenBlob(transaction: ITransaction; BlobMetaData: IBlobMetaData; BlobID: TISC_QUAD; BPB: IBPB=nil): IBlob;  overload;
1094 +    function GetInlineBlobLimit: integer;
1095 +    procedure SetInlineBlobLimit(limit: integer);
1096  
1097      {Array - may use to open existing arrays. However, ISQLData.AsArray is preferred}
1098  
# Line 1091 | Line 1120 | type
1120      procedure getFBVersion(version: TStrings);
1121      function HasActivity: boolean;
1122      function HasDecFloatSupport: boolean;
1123 +    function HasBatchMode: boolean;
1124  
1125      {Character Sets}
1126      function HasDefaultCharSet: boolean;
# Line 1187 | Line 1217 | type
1217      function getSize: integer;
1218      procedure getRawBytes(var Buffer);
1219      function getAsString: AnsiString;
1220 <    function getAsInteger: integer;
1220 >    function getAsInteger: int64;
1221      function getAsByte: byte;
1222      function CopyTo(stream: TStream; count: integer): integer;
1223      property AsString: AnsiString read getAsString;
1224 <    property AsInteger: integer read getAsInteger;
1224 >    property AsInteger: int64 read getAsInteger;
1225      property AsByte: byte read getAsByte;
1226    end;
1227  
# Line 1334 | Line 1364 | type
1364     {IB Client Exceptions}
1365     EIBClientError = class(EIBError);
1366  
1367 +   {Used to explicitly report a Batch Buffer overflow}
1368 +   EIBBatchBufferOverflow = class(EIBError);
1369 +
1370   {The Firebird API function is used to access the IFirebirdAPI interface.
1371  
1372   It will load the Firebird Client Library if this is not already loaded and

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines