134 |
|
const |
135 |
|
{Interface version information} |
136 |
|
FBIntf_Major = 1; |
137 |
< |
FBIntf_Minor = 2; |
138 |
< |
FBIntf_Release = 1; |
139 |
< |
FBIntf_Version = '1.2.1'; |
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} |
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 |
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; |
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 |
|
} |
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; |
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; |
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; |
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; |
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 |
|
|
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; |
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 |
|
|
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 |