ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/fbintf/client/3.0/firebird/Firebird.pas
(Generate patch)

Comparing ibx/trunk/fbintf/client/3.0/firebird/Firebird.pas (file contents):
Revision 314 by tony, Wed Mar 14 12:48:51 2018 UTC vs.
Revision 315 by tony, Thu Feb 25 11:56:36 2021 UTC

# Line 1 | Line 1
1   { This file was autogenerated by cloop - Cross Language Object Oriented Programming }
2  
3 < {Note that for use with IBX, type PISC_QUAD is used instead of ISC_QUADPtr. TISC_QUAD is
3 > { This file was autogenerated by cloop - Cross Language Object Oriented Programming }
4 >
5 >
6 > {Note that for use with IBX, type TISC_QUAD is used instead of ISC_QUAD. TISC_QUAD is
7   sourced from unit IB
8  
9 < Use of FBException is now condition and not used for IBX.
9 > Common types moved to IBExternals.
10 >
11 > Use of FBException is now conditional and not used for IBX.
12  
13   constants removed and imported separately into IB.pas
14 +
15 + Commented out:
16 +
17 + function fb_get_master_interface : IMaster; cdecl; external 'fbclient';
18 +
19 + This is not an appropriate external function declaration for a dynamic link library and only applies to a static library.
20 +
21 + When testing with FPC, if this line was not commented out, a linker error occurs when trying to link with the debug heap
22 + manager (needed for testing for memory leaks).
23   }
24  
25 < unit Firebird;
26 < {$IFDEF MSWINDOWS}
13 < {$DEFINE WINDOWS}
25 > {$IFDEF MSWINDOWS}
26 > {$DEFINE WINDOWS}
27   {$ENDIF}
28  
29   {$IFDEF FPC}
# Line 18 | Line 31 | unit Firebird;
31   {$OBJECTCHECKS OFF}
32   {$ENDIF}
33  
34 + unit Firebird;
35 +
36   interface
37  
38 < uses Classes, SysUtils, IB, DB;
38 > uses Classes, SysUtils, IB, IBExternals;
39  
40   type
41   {$IFNDEF FPC}
42          QWord = UInt64;
43   {$ENDIF}
44  
30 { $DEFINE USEFBEXCEPTION}
31
45          IVersioned = class;
46          IReferenceCounted = class;
47          IDisposable = class;
# Line 52 | Line 65 | type
65          IMetadataBuilder = class;
66          IResultSet = class;
67          IStatement = class;
68 +        IBatch = class;
69 +        IBatchCompletionState = class;
70 +        IReplicator = class;
71          IRequest = class;
72          IEvents = class;
73          IAttachment = class;
# Line 72 | Line 88 | type
88          IListUsers = class;
89          ILogonInfo = class;
90          IManagement = class;
91 +        IAuthBlock = class;
92          IWireCryptPlugin = class;
93          ICryptKeyCallback = class;
94          IKeyHolderPlugin = class;
95 +        IDbCryptInfo = class;
96          IDbCryptPlugin = class;
97          IExternalContext = class;
98          IExternalResultSet = class;
# Line 112 | Line 130 | type
130          IUdrProcedureFactory = class;
131          IUdrTriggerFactory = class;
132          IUdrPlugin = class;
133 +        IDecFloat16 = class;
134 +        IDecFloat34 = class;
135 +        IInt128 = class;
136 +        IReplicatedField = class;
137 +        IReplicatedRecord = class;
138 +        IReplicatedTransaction = class;
139 +        IReplicatedSession = class;
140  
141 <        FbException = class(EDatabaseError)
141 >        FbException = class(Exception)
142          public
143                  constructor create(status: IStatus); virtual;
144                  destructor Destroy(); override;
# Line 127 | Line 152 | type
152                  status: IStatus;
153          end;
154  
155 <        ISC_DATE = Integer;
156 <        ISC_TIME = Integer;
155 >        isc_tr_handle = ^Integer;
156 >        isc_stmt_handle = ^Integer;
157  
158          ntrace_relation_t = Integer;
159          TraceCounts = Record
# Line 153 | Line 178 | type
178          BooleanPtr = ^Boolean;
179          BytePtr = ^Byte;
180          CardinalPtr = ^Cardinal;
181 +        FB_DEC16Ptr = ^FB_DEC16;
182 +        FB_DEC34Ptr = ^FB_DEC34;
183 +        FB_I128Ptr = ^FB_I128;
184          IKeyHolderPluginPtr = ^IKeyHolderPlugin;
185 +        ISC_QUADPtr = ^TISC_QUAD;
186 +        ISC_TIMESTAMP_TZPtr = ^ISC_TIMESTAMP_TZ;
187 +        ISC_TIMESTAMP_TZ_EXPtr = ^ISC_TIMESTAMP_TZ_EX;
188 +        ISC_TIME_TZPtr = ^ISC_TIME_TZ;
189 +        ISC_TIME_TZ_EXPtr = ^ISC_TIME_TZ_EX;
190          Int64Ptr = ^Int64;
191 +        IntegerPtr = ^Integer;
192          NativeIntPtr = ^NativeInt;
193          PerformanceInfoPtr = ^PerformanceInfo;
194          dscPtr = ^dsc;
# Line 202 | Line 236 | type
236          IFirebirdConf_asIntegerPtr = function(this: IFirebirdConf; key: Cardinal): Int64; cdecl;
237          IFirebirdConf_asStringPtr = function(this: IFirebirdConf; key: Cardinal): PAnsiChar; cdecl;
238          IFirebirdConf_asBooleanPtr = function(this: IFirebirdConf; key: Cardinal): Boolean; cdecl;
239 +        IFirebirdConf_getVersionPtr = function(this: IFirebirdConf; status: IStatus): Cardinal; cdecl;
240          IPluginConfig_getConfigFileNamePtr = function(this: IPluginConfig): PAnsiChar; cdecl;
241          IPluginConfig_getDefaultConfigPtr = function(this: IPluginConfig; status: IStatus): IConfig; cdecl;
242          IPluginConfig_getFirebirdConfPtr = function(this: IPluginConfig; status: IStatus): IFirebirdConf; cdecl;
243          IPluginConfig_setReleaseDelayPtr = procedure(this: IPluginConfig; status: IStatus; microSeconds: QWord); cdecl;
244          IPluginFactory_createPluginPtr = function(this: IPluginFactory; status: IStatus; factoryParameter: IPluginConfig): IPluginBase; cdecl;
245          IPluginModule_doCleanPtr = procedure(this: IPluginModule); cdecl;
246 +        IPluginModule_threadDetachPtr = procedure(this: IPluginModule); cdecl;
247          IPluginManager_registerPluginFactoryPtr = procedure(this: IPluginManager; pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory); cdecl;
248          IPluginManager_registerModulePtr = procedure(this: IPluginManager; cleanup: IPluginModule); cdecl;
249          IPluginManager_unregisterModulePtr = procedure(this: IPluginManager; cleanup: IPluginModule); cdecl;
# Line 224 | Line 260 | type
260          IConfigManager_getPluginConfigPtr = function(this: IConfigManager; configuredPlugin: PAnsiChar): IConfig; cdecl;
261          IConfigManager_getInstallDirectoryPtr = function(this: IConfigManager): PAnsiChar; cdecl;
262          IConfigManager_getRootDirectoryPtr = function(this: IConfigManager): PAnsiChar; cdecl;
263 +        IConfigManager_getDefaultSecurityDbPtr = function(this: IConfigManager): PAnsiChar; cdecl;
264          IEventCallback_eventCallbackFunctionPtr = procedure(this: IEventCallback; length: Cardinal; events: BytePtr); cdecl;
265          IBlob_getInfoPtr = procedure(this: IBlob; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
266          IBlob_getSegmentPtr = function(this: IBlob; status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer; cdecl;
# Line 256 | Line 293 | type
293          IMessageMetadata_getNullOffsetPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
294          IMessageMetadata_getBuilderPtr = function(this: IMessageMetadata; status: IStatus): IMetadataBuilder; cdecl;
295          IMessageMetadata_getMessageLengthPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
296 +        IMessageMetadata_getAlignmentPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
297 +        IMessageMetadata_getAlignedLengthPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
298          IMetadataBuilder_setTypePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; type_: Cardinal); cdecl;
299          IMetadataBuilder_setSubTypePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; subType: Integer); cdecl;
300          IMetadataBuilder_setLengthPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; length: Cardinal); cdecl;
301          IMetadataBuilder_setCharSetPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; charSet: Cardinal); cdecl;
302 <        IMetadataBuilder_setScalePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; scale: integer); cdecl;
302 >        IMetadataBuilder_setScalePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; scale: Integer); cdecl;
303          IMetadataBuilder_truncatePtr = procedure(this: IMetadataBuilder; status: IStatus; count: Cardinal); cdecl;
304          IMetadataBuilder_moveNameToIndexPtr = procedure(this: IMetadataBuilder; status: IStatus; name: PAnsiChar; index: Cardinal); cdecl;
305          IMetadataBuilder_removePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal); cdecl;
306          IMetadataBuilder_addFieldPtr = function(this: IMetadataBuilder; status: IStatus): Cardinal; cdecl;
307          IMetadataBuilder_getMetadataPtr = function(this: IMetadataBuilder; status: IStatus): IMessageMetadata; cdecl;
308 +        IMetadataBuilder_setFieldPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; field: PAnsiChar); cdecl;
309 +        IMetadataBuilder_setRelationPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; relation: PAnsiChar); cdecl;
310 +        IMetadataBuilder_setOwnerPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; owner: PAnsiChar); cdecl;
311 +        IMetadataBuilder_setAliasPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; alias: PAnsiChar); cdecl;
312          IResultSet_fetchNextPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
313          IResultSet_fetchPriorPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
314          IResultSet_fetchFirstPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
# Line 288 | Line 331 | type
331          IStatement_setCursorNamePtr = procedure(this: IStatement; status: IStatus; name: PAnsiChar); cdecl;
332          IStatement_freePtr = procedure(this: IStatement; status: IStatus); cdecl;
333          IStatement_getFlagsPtr = function(this: IStatement; status: IStatus): Cardinal; cdecl;
334 <        IRequest_receivePtr = procedure(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
335 <        IRequest_sendPtr = procedure(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
334 >        IStatement_getTimeoutPtr = function(this: IStatement; status: IStatus): Cardinal; cdecl;
335 >        IStatement_setTimeoutPtr = procedure(this: IStatement; status: IStatus; timeOut: Cardinal); cdecl;
336 >        IStatement_createBatchPtr = function(this: IStatement; status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; cdecl;
337 >        IBatch_addPtr = procedure(this: IBatch; status: IStatus; count: Cardinal; inBuffer: Pointer); cdecl;
338 >        IBatch_addBlobPtr = procedure(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr); cdecl;
339 >        IBatch_appendBlobDataPtr = procedure(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer); cdecl;
340 >        IBatch_addBlobStreamPtr = procedure(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer); cdecl;
341 >        IBatch_registerBlobPtr = procedure(this: IBatch; status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr); cdecl;
342 >        IBatch_executePtr = function(this: IBatch; status: IStatus; transaction: ITransaction): IBatchCompletionState; cdecl;
343 >        IBatch_cancelPtr = procedure(this: IBatch; status: IStatus); cdecl;
344 >        IBatch_getBlobAlignmentPtr = function(this: IBatch; status: IStatus): Cardinal; cdecl;
345 >        IBatch_getMetadataPtr = function(this: IBatch; status: IStatus): IMessageMetadata; cdecl;
346 >        IBatch_setDefaultBpbPtr = procedure(this: IBatch; status: IStatus; parLength: Cardinal; par: BytePtr); cdecl;
347 >        IBatchCompletionState_getSizePtr = function(this: IBatchCompletionState; status: IStatus): Cardinal; cdecl;
348 >        IBatchCompletionState_getStatePtr = function(this: IBatchCompletionState; status: IStatus; pos: Cardinal): Integer; cdecl;
349 >        IBatchCompletionState_findErrorPtr = function(this: IBatchCompletionState; status: IStatus; pos: Cardinal): Cardinal; cdecl;
350 >        IBatchCompletionState_getStatusPtr = procedure(this: IBatchCompletionState; status: IStatus; to_: IStatus; pos: Cardinal); cdecl;
351 >        IReplicator_processPtr = procedure(this: IReplicator; status: IStatus; length: Cardinal; data: BytePtr); cdecl;
352 >        IReplicator_closePtr = procedure(this: IReplicator; status: IStatus); cdecl;
353 >        IRequest_receivePtr = procedure(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
354 >        IRequest_sendPtr = procedure(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
355          IRequest_getInfoPtr = procedure(this: IRequest; status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
356          IRequest_startPtr = procedure(this: IRequest; status: IStatus; tra: ITransaction; level: Integer); cdecl;
357 <        IRequest_startAndSendPtr = procedure(this: IRequest; status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
357 >        IRequest_startAndSendPtr = procedure(this: IRequest; status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
358          IRequest_unwindPtr = procedure(this: IRequest; status: IStatus; level: Integer); cdecl;
359          IRequest_freePtr = procedure(this: IRequest; status: IStatus); cdecl;
360          IEvents_cancelPtr = procedure(this: IEvents; status: IStatus); cdecl;
# Line 301 | Line 363 | type
363          IAttachment_reconnectTransactionPtr = function(this: IAttachment; status: IStatus; length: Cardinal; id: BytePtr): ITransaction; cdecl;
364          IAttachment_compileRequestPtr = function(this: IAttachment; status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest; cdecl;
365          IAttachment_transactRequestPtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr); cdecl;
366 <        IAttachment_createBlobPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
367 <        IAttachment_openBlobPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
368 <        IAttachment_getSlicePtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; cdecl;
369 <        IAttachment_putSlicePtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); cdecl;
366 >        IAttachment_createBlobPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
367 >        IAttachment_openBlobPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
368 >        IAttachment_getSlicePtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; cdecl;
369 >        IAttachment_putSlicePtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); cdecl;
370          IAttachment_executeDynPtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr); cdecl;
371          IAttachment_preparePtr = function(this: IAttachment; status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement; cdecl;
372          IAttachment_executePtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; cdecl;
# Line 314 | Line 376 | type
376          IAttachment_pingPtr = procedure(this: IAttachment; status: IStatus); cdecl;
377          IAttachment_detachPtr = procedure(this: IAttachment; status: IStatus); cdecl;
378          IAttachment_dropDatabasePtr = procedure(this: IAttachment; status: IStatus); cdecl;
379 +        IAttachment_getIdleTimeoutPtr = function(this: IAttachment; status: IStatus): Cardinal; cdecl;
380 +        IAttachment_setIdleTimeoutPtr = procedure(this: IAttachment; status: IStatus; timeOut: Cardinal); cdecl;
381 +        IAttachment_getStatementTimeoutPtr = function(this: IAttachment; status: IStatus): Cardinal; cdecl;
382 +        IAttachment_setStatementTimeoutPtr = procedure(this: IAttachment; status: IStatus; timeOut: Cardinal); cdecl;
383 +        IAttachment_createBatchPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; cdecl;
384 +        IAttachment_createReplicatorPtr = function(this: IAttachment; status: IStatus): IReplicator; cdecl;
385          IService_detachPtr = procedure(this: IService; status: IStatus); cdecl;
386          IService_queryPtr = procedure(this: IService; status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
387          IService_startPtr = procedure(this: IService; status: IStatus; spbLength: Cardinal; spb: BytePtr); cdecl;
# Line 340 | Line 408 | type
408          IClientBlock_getDataPtr = function(this: IClientBlock; length: CardinalPtr): BytePtr; cdecl;
409          IClientBlock_putDataPtr = procedure(this: IClientBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
410          IClientBlock_newKeyPtr = function(this: IClientBlock; status: IStatus): ICryptKey; cdecl;
411 +        IClientBlock_getAuthBlockPtr = function(this: IClientBlock; status: IStatus): IAuthBlock; cdecl;
412          IServer_authenticatePtr = function(this: IServer; status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer; cdecl;
413 +        IServer_setDbCryptCallbackPtr = procedure(this: IServer; status: IStatus; cryptCallback: ICryptKeyCallback); cdecl;
414          IClient_authenticatePtr = function(this: IClient; status: IStatus; cBlock: IClientBlock): Integer; cdecl;
415          IUserField_enteredPtr = function(this: IUserField): Integer; cdecl;
416          IUserField_specifiedPtr = function(this: IUserField): Integer; cdecl;
# Line 366 | Line 436 | type
436          ILogonInfo_networkProtocolPtr = function(this: ILogonInfo): PAnsiChar; cdecl;
437          ILogonInfo_remoteAddressPtr = function(this: ILogonInfo): PAnsiChar; cdecl;
438          ILogonInfo_authBlockPtr = function(this: ILogonInfo; length: CardinalPtr): BytePtr; cdecl;
439 +        ILogonInfo_attachmentPtr = function(this: ILogonInfo; status: IStatus): IAttachment; cdecl;
440 +        ILogonInfo_transactionPtr = function(this: ILogonInfo; status: IStatus): ITransaction; cdecl;
441          IManagement_startPtr = procedure(this: IManagement; status: IStatus; logonInfo: ILogonInfo); cdecl;
442          IManagement_executePtr = function(this: IManagement; status: IStatus; user: IUser; callback: IListUsers): Integer; cdecl;
443          IManagement_commitPtr = procedure(this: IManagement; status: IStatus); cdecl;
444          IManagement_rollbackPtr = procedure(this: IManagement; status: IStatus); cdecl;
445 +        IAuthBlock_getTypePtr = function(this: IAuthBlock): PAnsiChar; cdecl;
446 +        IAuthBlock_getNamePtr = function(this: IAuthBlock): PAnsiChar; cdecl;
447 +        IAuthBlock_getPluginPtr = function(this: IAuthBlock): PAnsiChar; cdecl;
448 +        IAuthBlock_getSecurityDbPtr = function(this: IAuthBlock): PAnsiChar; cdecl;
449 +        IAuthBlock_getOriginalPluginPtr = function(this: IAuthBlock): PAnsiChar; cdecl;
450 +        IAuthBlock_nextPtr = function(this: IAuthBlock; status: IStatus): Boolean; cdecl;
451 +        IAuthBlock_firstPtr = function(this: IAuthBlock; status: IStatus): Boolean; cdecl;
452          IWireCryptPlugin_getKnownTypesPtr = function(this: IWireCryptPlugin; status: IStatus): PAnsiChar; cdecl;
453          IWireCryptPlugin_setKeyPtr = procedure(this: IWireCryptPlugin; status: IStatus; key: ICryptKey); cdecl;
454          IWireCryptPlugin_encryptPtr = procedure(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
455          IWireCryptPlugin_decryptPtr = procedure(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
456 +        IWireCryptPlugin_getSpecificDataPtr = function(this: IWireCryptPlugin; status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr; cdecl;
457 +        IWireCryptPlugin_setSpecificDataPtr = procedure(this: IWireCryptPlugin; status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr); cdecl;
458          ICryptKeyCallback_callbackPtr = function(this: ICryptKeyCallback; dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal; cdecl;
459          IKeyHolderPlugin_keyCallbackPtr = function(this: IKeyHolderPlugin; status: IStatus; callback: ICryptKeyCallback): Integer; cdecl;
460          IKeyHolderPlugin_keyHandlePtr = function(this: IKeyHolderPlugin; status: IStatus; keyName: PAnsiChar): ICryptKeyCallback; cdecl;
461 +        IKeyHolderPlugin_useOnlyOwnKeysPtr = function(this: IKeyHolderPlugin; status: IStatus): Boolean; cdecl;
462 +        IKeyHolderPlugin_chainHandlePtr = function(this: IKeyHolderPlugin; status: IStatus): ICryptKeyCallback; cdecl;
463 +        IDbCryptInfo_getDatabaseFullPathPtr = function(this: IDbCryptInfo; status: IStatus): PAnsiChar; cdecl;
464          IDbCryptPlugin_setKeyPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar); cdecl;
465          IDbCryptPlugin_encryptPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
466          IDbCryptPlugin_decryptPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
467 +        IDbCryptPlugin_setInfoPtr = procedure(this: IDbCryptPlugin; status: IStatus; info: IDbCryptInfo); cdecl;
468          IExternalContext_getMasterPtr = function(this: IExternalContext): IMaster; cdecl;
469          IExternalContext_getEnginePtr = function(this: IExternalContext; status: IStatus): IExternalEngine; cdecl;
470          IExternalContext_getAttachmentPtr = function(this: IExternalContext; status: IStatus): IAttachment; cdecl;
# Line 417 | Line 502 | type
502          ITimerControl_stopPtr = procedure(this: ITimerControl; status: IStatus; timer: ITimer); cdecl;
503          IVersionCallback_callbackPtr = procedure(this: IVersionCallback; status: IStatus; text: PAnsiChar); cdecl;
504          IUtil_getFbVersionPtr = procedure(this: IUtil; status: IStatus; att: IAttachment; callback: IVersionCallback); cdecl;
505 <        IUtil_loadBlobPtr = procedure(this: IUtil; status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
506 <        IUtil_dumpBlobPtr = procedure(this: IUtil; status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
505 >        IUtil_loadBlobPtr = procedure(this: IUtil; status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
506 >        IUtil_dumpBlobPtr = procedure(this: IUtil; status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
507          IUtil_getPerfCountersPtr = procedure(this: IUtil; status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr); cdecl;
508          IUtil_executeCreateDatabasePtr = function(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
509          IUtil_decodeDatePtr = procedure(this: IUtil; date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr); cdecl;
# Line 429 | Line 514 | type
514          IUtil_getClientVersionPtr = function(this: IUtil): Cardinal; cdecl;
515          IUtil_getXpbBuilderPtr = function(this: IUtil; status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder; cdecl;
516          IUtil_setOffsetsPtr = function(this: IUtil; status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal; cdecl;
517 +        IUtil_getDecFloat16Ptr = function(this: IUtil; status: IStatus): IDecFloat16; cdecl;
518 +        IUtil_getDecFloat34Ptr = function(this: IUtil; status: IStatus): IDecFloat34; cdecl;
519 +        IUtil_decodeTimeTzPtr = procedure(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
520 +        IUtil_decodeTimeStampTzPtr = procedure(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
521 +        IUtil_encodeTimeTzPtr = procedure(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); cdecl;
522 +        IUtil_encodeTimeStampTzPtr = procedure(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); cdecl;
523 +        IUtil_getInt128Ptr = function(this: IUtil; status: IStatus): IInt128; cdecl;
524 +        IUtil_decodeTimeTzExPtr = procedure(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
525 +        IUtil_decodeTimeStampTzExPtr = procedure(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
526          IOffsetsCallback_setOffsetPtr = procedure(this: IOffsetsCallback; status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal); cdecl;
527          IXpbBuilder_clearPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
528          IXpbBuilder_removeCurrentPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
# Line 466 | Line 560 | type
560          ITraceTransaction_getWaitPtr = function(this: ITraceTransaction): Integer; cdecl;
561          ITraceTransaction_getIsolationPtr = function(this: ITraceTransaction): Cardinal; cdecl;
562          ITraceTransaction_getPerfPtr = function(this: ITraceTransaction): PerformanceInfoPtr; cdecl;
563 +        ITraceTransaction_getInitialIDPtr = function(this: ITraceTransaction): Int64; cdecl;
564 +        ITraceTransaction_getPreviousIDPtr = function(this: ITraceTransaction): Int64; cdecl;
565          ITraceParams_getCountPtr = function(this: ITraceParams): Cardinal; cdecl;
566          ITraceParams_getParamPtr = function(this: ITraceParams; idx: Cardinal): dscPtr; cdecl;
567 +        ITraceParams_getTextUTF8Ptr = function(this: ITraceParams; status: IStatus; idx: Cardinal): PAnsiChar; cdecl;
568          ITraceStatement_getStmtIDPtr = function(this: ITraceStatement): Int64; cdecl;
569          ITraceStatement_getPerfPtr = function(this: ITraceStatement): PerformanceInfoPtr; cdecl;
570          ITraceSQLStatement_getTextPtr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
# Line 509 | Line 606 | type
606          ITraceSweepInfo_getNextPtr = function(this: ITraceSweepInfo): Int64; cdecl;
607          ITraceSweepInfo_getPerfPtr = function(this: ITraceSweepInfo): PerformanceInfoPtr; cdecl;
608          ITraceLogWriter_writePtr = function(this: ITraceLogWriter; buf: Pointer; size: Cardinal): Cardinal; cdecl;
609 +        ITraceLogWriter_write_sPtr = function(this: ITraceLogWriter; status: IStatus; buf: Pointer; size: Cardinal): Cardinal; cdecl;
610          ITraceInitInfo_getConfigTextPtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
611          ITraceInitInfo_getTraceSessionIDPtr = function(this: ITraceInitInfo): Integer; cdecl;
612          ITraceInitInfo_getTraceSessionNamePtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
# Line 549 | Line 647 | type
647          IUdrPlugin_registerFunctionPtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory); cdecl;
648          IUdrPlugin_registerProcedurePtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory); cdecl;
649          IUdrPlugin_registerTriggerPtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory); cdecl;
650 +        IDecFloat16_toBcdPtr = procedure(this: IDecFloat16; from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); cdecl;
651 +        IDecFloat16_toStringPtr = procedure(this: IDecFloat16; status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
652 +        IDecFloat16_fromBcdPtr = procedure(this: IDecFloat16; sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr); cdecl;
653 +        IDecFloat16_fromStringPtr = procedure(this: IDecFloat16; status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr); cdecl;
654 +        IDecFloat34_toBcdPtr = procedure(this: IDecFloat34; from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); cdecl;
655 +        IDecFloat34_toStringPtr = procedure(this: IDecFloat34; status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
656 +        IDecFloat34_fromBcdPtr = procedure(this: IDecFloat34; sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr); cdecl;
657 +        IDecFloat34_fromStringPtr = procedure(this: IDecFloat34; status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr); cdecl;
658 +        IInt128_toStringPtr = procedure(this: IInt128; status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
659 +        IInt128_fromStringPtr = procedure(this: IInt128; status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr); cdecl;
660 +        IReplicatedField_getNamePtr = function(this: IReplicatedField): PAnsiChar; cdecl;
661 +        IReplicatedField_getTypePtr = function(this: IReplicatedField): Cardinal; cdecl;
662 +        IReplicatedField_getSubTypePtr = function(this: IReplicatedField): Integer; cdecl;
663 +        IReplicatedField_getScalePtr = function(this: IReplicatedField): Integer; cdecl;
664 +        IReplicatedField_getLengthPtr = function(this: IReplicatedField): Cardinal; cdecl;
665 +        IReplicatedField_getCharSetPtr = function(this: IReplicatedField): Cardinal; cdecl;
666 +        IReplicatedField_getDataPtr = function(this: IReplicatedField): Pointer; cdecl;
667 +        IReplicatedRecord_getCountPtr = function(this: IReplicatedRecord): Cardinal; cdecl;
668 +        IReplicatedRecord_getFieldPtr = function(this: IReplicatedRecord; index: Cardinal): IReplicatedField; cdecl;
669 +        IReplicatedRecord_getRawLengthPtr = function(this: IReplicatedRecord): Cardinal; cdecl;
670 +        IReplicatedRecord_getRawDataPtr = function(this: IReplicatedRecord): BytePtr; cdecl;
671 +        IReplicatedTransaction_preparePtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
672 +        IReplicatedTransaction_commitPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
673 +        IReplicatedTransaction_rollbackPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
674 +        IReplicatedTransaction_startSavepointPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
675 +        IReplicatedTransaction_releaseSavepointPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
676 +        IReplicatedTransaction_rollbackSavepointPtr = procedure(this: IReplicatedTransaction; status: IStatus); cdecl;
677 +        IReplicatedTransaction_insertRecordPtr = procedure(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); cdecl;
678 +        IReplicatedTransaction_updateRecordPtr = procedure(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord); cdecl;
679 +        IReplicatedTransaction_deleteRecordPtr = procedure(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); cdecl;
680 +        IReplicatedTransaction_executeSqlPtr = procedure(this: IReplicatedTransaction; status: IStatus; sql: PAnsiChar); cdecl;
681 +        IReplicatedTransaction_executeSqlIntlPtr = procedure(this: IReplicatedTransaction; status: IStatus; charset: Cardinal; sql: PAnsiChar); cdecl;
682 +        IReplicatedSession_setAttachmentPtr = procedure(this: IReplicatedSession; attachment: IAttachment); cdecl;
683 +        IReplicatedSession_startTransactionPtr = function(this: IReplicatedSession; status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction; cdecl;
684 +        IReplicatedSession_cleanupTransactionPtr = procedure(this: IReplicatedSession; status: IStatus; number: Int64); cdecl;
685 +        IReplicatedSession_setSequencePtr = procedure(this: IReplicatedSession; status: IStatus; name: PAnsiChar; value: Int64); cdecl;
686  
687          VersionedVTable = class
688                  version: NativeInt;
# Line 557 | Line 691 | type
691          IVersioned = class
692                  vTable: VersionedVTable;
693  
694 <                const VERSION = 0;
694 >                const VERSION = 1;
695  
696          end;
697  
# Line 590 | Line 724 | type
724          end;
725  
726          IDisposable = class(IVersioned)
727 <                const VERSION = 1;
727 >                const VERSION = 2;
728  
729                  procedure dispose();
730          end;
# Line 614 | Line 748 | type
748          end;
749  
750          IStatus = class(IDisposable)
751 <                const VERSION = 10;
752 <                const STATE_WARNINGS = Cardinal(1);
753 <                const STATE_ERRORS = Cardinal(2);
751 >                const VERSION = 3;
752 >                const STATE_WARNINGS = Cardinal($1);
753 >                const STATE_ERRORS = Cardinal($2);
754                  const RESULT_ERROR = Integer(-1);
755                  const RESULT_OK = Integer(0);
756                  const RESULT_NO_DATA = Integer(1);
# Line 664 | Line 798 | type
798          end;
799  
800          IMaster = class(IVersioned)
801 <                const VERSION = 12;
801 >                const VERSION = 2;
802  
803                  function getStatus(): IStatus;
804                  function getDispatcher(): IProvider;
# Line 703 | Line 837 | type
837          end;
838  
839          IPluginBase = class(IReferenceCounted)
840 <                const VERSION = 4;
840 >                const VERSION = 3;
841  
842                  procedure setOwner(r: IReferenceCounted);
843                  function getOwner(): IReferenceCounted;
# Line 727 | Line 861 | type
861          end;
862  
863          IPluginSet = class(IReferenceCounted)
864 <                const VERSION = 7;
864 >                const VERSION = 3;
865  
866                  function getName(): PAnsiChar;
867                  function getModuleName(): PAnsiChar;
# Line 757 | Line 891 | type
891          end;
892  
893          IConfigEntry = class(IReferenceCounted)
894 <                const VERSION = 7;
894 >                const VERSION = 3;
895  
896                  function getName(): PAnsiChar;
897                  function getValue(): PAnsiChar;
# Line 785 | Line 919 | type
919          end;
920  
921          IConfig = class(IReferenceCounted)
922 <                const VERSION = 5;
922 >                const VERSION = 3;
923  
924                  function find(status: IStatus; name: PAnsiChar): IConfigEntry;
925                  function findValue(status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry;
# Line 807 | Line 941 | type
941                  asInteger: IFirebirdConf_asIntegerPtr;
942                  asString: IFirebirdConf_asStringPtr;
943                  asBoolean: IFirebirdConf_asBooleanPtr;
944 +                getVersion: IFirebirdConf_getVersionPtr;
945          end;
946  
947          IFirebirdConf = class(IReferenceCounted)
948 <                const VERSION = 6;
948 >                const VERSION = 4;
949  
950                  function getKey(name: PAnsiChar): Cardinal;
951                  function asInteger(key: Cardinal): Int64;
952                  function asString(key: Cardinal): PAnsiChar;
953                  function asBoolean(key: Cardinal): Boolean;
954 +                function getVersion(status: IStatus): Cardinal;
955          end;
956  
957          IFirebirdConfImpl = class(IFirebirdConf)
# Line 827 | Line 963 | type
963                  function asInteger(key: Cardinal): Int64; virtual; abstract;
964                  function asString(key: Cardinal): PAnsiChar; virtual; abstract;
965                  function asBoolean(key: Cardinal): Boolean; virtual; abstract;
966 +                function getVersion(status: IStatus): Cardinal; virtual; abstract;
967          end;
968  
969          PluginConfigVTable = class(ReferenceCountedVTable)
# Line 837 | Line 974 | type
974          end;
975  
976          IPluginConfig = class(IReferenceCounted)
977 <                const VERSION = 6;
977 >                const VERSION = 3;
978  
979                  function getConfigFileName(): PAnsiChar;
980                  function getDefaultConfig(status: IStatus): IConfig;
# Line 861 | Line 998 | type
998          end;
999  
1000          IPluginFactory = class(IVersioned)
1001 <                const VERSION = 1;
1001 >                const VERSION = 2;
1002  
1003                  function createPlugin(status: IStatus; factoryParameter: IPluginConfig): IPluginBase;
1004          end;
# Line 874 | Line 1011 | type
1011  
1012          PluginModuleVTable = class(VersionedVTable)
1013                  doClean: IPluginModule_doCleanPtr;
1014 +                threadDetach: IPluginModule_threadDetachPtr;
1015          end;
1016  
1017          IPluginModule = class(IVersioned)
1018 <                const VERSION = 1;
1018 >                const VERSION = 3;
1019  
1020                  procedure doClean();
1021 +                procedure threadDetach();
1022          end;
1023  
1024          IPluginModuleImpl = class(IPluginModule)
1025                  constructor create;
1026  
1027                  procedure doClean(); virtual; abstract;
1028 +                procedure threadDetach(); virtual; abstract;
1029          end;
1030  
1031          PluginManagerVTable = class(VersionedVTable)
# Line 898 | Line 1038 | type
1038          end;
1039  
1040          IPluginManager = class(IVersioned)
1041 <                const VERSION = 6;
1041 >                const VERSION = 2;
1042                  const TYPE_PROVIDER = Cardinal(1);
1043                  const TYPE_FIRST_NON_LIB = Cardinal(2);
1044                  const TYPE_AUTH_SERVER = Cardinal(3);
# Line 909 | Line 1049 | type
1049                  const TYPE_WIRE_CRYPT = Cardinal(8);
1050                  const TYPE_DB_CRYPT = Cardinal(9);
1051                  const TYPE_KEY_HOLDER = Cardinal(10);
1052 <                const TYPE_COUNT = Cardinal(11);
1052 >                const TYPE_REPLICATOR = Cardinal(11);
1053 >                const TYPE_COUNT = Cardinal(12);
1054  
1055                  procedure registerPluginFactory(pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory);
1056                  procedure registerModule(cleanup: IPluginModule);
# Line 938 | Line 1079 | type
1079          end;
1080  
1081          ICryptKey = class(IVersioned)
1082 <                const VERSION = 4;
1082 >                const VERSION = 2;
1083  
1084                  procedure setSymmetric(status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer);
1085                  procedure setAsymmetric(status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer);
# Line 962 | Line 1103 | type
1103                  getPluginConfig: IConfigManager_getPluginConfigPtr;
1104                  getInstallDirectory: IConfigManager_getInstallDirectoryPtr;
1105                  getRootDirectory: IConfigManager_getRootDirectoryPtr;
1106 +                getDefaultSecurityDb: IConfigManager_getDefaultSecurityDbPtr;
1107          end;
1108  
1109          IConfigManager = class(IVersioned)
1110 <                const VERSION = 6;
1110 >                const VERSION = 3;
1111                  const DIR_BIN = Cardinal(0);
1112                  const DIR_SBIN = Cardinal(1);
1113                  const DIR_CONF = Cardinal(2);
# Line 983 | Line 1125 | type
1125                  const DIR_LOG = Cardinal(14);
1126                  const DIR_GUARD = Cardinal(15);
1127                  const DIR_PLUGINS = Cardinal(16);
1128 <                const DIR_COUNT = Cardinal(17);
1128 >                const DIR_TZDATA = Cardinal(17);
1129 >                const DIR_COUNT = Cardinal(18);
1130  
1131                  function getDirectory(code: Cardinal): PAnsiChar;
1132                  function getFirebirdConf(): IFirebirdConf;
# Line 991 | Line 1134 | type
1134                  function getPluginConfig(configuredPlugin: PAnsiChar): IConfig;
1135                  function getInstallDirectory(): PAnsiChar;
1136                  function getRootDirectory(): PAnsiChar;
1137 +                function getDefaultSecurityDb(): PAnsiChar;
1138          end;
1139  
1140          IConfigManagerImpl = class(IConfigManager)
# Line 1002 | Line 1146 | type
1146                  function getPluginConfig(configuredPlugin: PAnsiChar): IConfig; virtual; abstract;
1147                  function getInstallDirectory(): PAnsiChar; virtual; abstract;
1148                  function getRootDirectory(): PAnsiChar; virtual; abstract;
1149 +                function getDefaultSecurityDb(): PAnsiChar; virtual; abstract;
1150          end;
1151  
1152          EventCallbackVTable = class(ReferenceCountedVTable)
# Line 1032 | Line 1177 | type
1177          end;
1178  
1179          IBlob = class(IReferenceCounted)
1180 <                const VERSION = 8;
1180 >                const VERSION = 3;
1181  
1182                  procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1183                  function getSegment(status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer;
# Line 1069 | Line 1214 | type
1214          end;
1215  
1216          ITransaction = class(IReferenceCounted)
1217 <                const VERSION = 12;
1217 >                const VERSION = 3;
1218  
1219                  procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1220                  procedure prepare(status: IStatus; msgLength: Cardinal; message: BytePtr);
# Line 1116 | Line 1261 | type
1261                  getNullOffset: IMessageMetadata_getNullOffsetPtr;
1262                  getBuilder: IMessageMetadata_getBuilderPtr;
1263                  getMessageLength: IMessageMetadata_getMessageLengthPtr;
1264 +                getAlignment: IMessageMetadata_getAlignmentPtr;
1265 +                getAlignedLength: IMessageMetadata_getAlignedLengthPtr;
1266          end;
1267  
1268          IMessageMetadata = class(IReferenceCounted)
1269 <                const VERSION = 17;
1269 >                const VERSION = 4;
1270  
1271                  function getCount(status: IStatus): Cardinal;
1272                  function getField(status: IStatus; index: Cardinal): PAnsiChar;
# Line 1136 | Line 1283 | type
1283                  function getNullOffset(status: IStatus; index: Cardinal): Cardinal;
1284                  function getBuilder(status: IStatus): IMetadataBuilder;
1285                  function getMessageLength(status: IStatus): Cardinal;
1286 +                function getAlignment(status: IStatus): Cardinal;
1287 +                function getAlignedLength(status: IStatus): Cardinal;
1288          end;
1289  
1290          IMessageMetadataImpl = class(IMessageMetadata)
# Line 1158 | Line 1307 | type
1307                  function getNullOffset(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1308                  function getBuilder(status: IStatus): IMetadataBuilder; virtual; abstract;
1309                  function getMessageLength(status: IStatus): Cardinal; virtual; abstract;
1310 +                function getAlignment(status: IStatus): Cardinal; virtual; abstract;
1311 +                function getAlignedLength(status: IStatus): Cardinal; virtual; abstract;
1312          end;
1313  
1314          MetadataBuilderVTable = class(ReferenceCountedVTable)
# Line 1171 | Line 1322 | type
1322                  remove: IMetadataBuilder_removePtr;
1323                  addField: IMetadataBuilder_addFieldPtr;
1324                  getMetadata: IMetadataBuilder_getMetadataPtr;
1325 +                setField: IMetadataBuilder_setFieldPtr;
1326 +                setRelation: IMetadataBuilder_setRelationPtr;
1327 +                setOwner: IMetadataBuilder_setOwnerPtr;
1328 +                setAlias: IMetadataBuilder_setAliasPtr;
1329          end;
1330  
1331          IMetadataBuilder = class(IReferenceCounted)
1332 <                const VERSION = 12;
1332 >                const VERSION = 4;
1333  
1334                  procedure setType(status: IStatus; index: Cardinal; type_: Cardinal);
1335                  procedure setSubType(status: IStatus; index: Cardinal; subType: Integer);
1336                  procedure setLength(status: IStatus; index: Cardinal; length: Cardinal);
1337                  procedure setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal);
1338 <                procedure setScale(status: IStatus; index: Cardinal; scale: integer);
1338 >                procedure setScale(status: IStatus; index: Cardinal; scale: Integer);
1339                  procedure truncate(status: IStatus; count: Cardinal);
1340                  procedure moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal);
1341                  procedure remove(status: IStatus; index: Cardinal);
1342                  function addField(status: IStatus): Cardinal;
1343                  function getMetadata(status: IStatus): IMessageMetadata;
1344 +                procedure setField(status: IStatus; index: Cardinal; field: PAnsiChar);
1345 +                procedure setRelation(status: IStatus; index: Cardinal; relation: PAnsiChar);
1346 +                procedure setOwner(status: IStatus; index: Cardinal; owner: PAnsiChar);
1347 +                procedure setAlias(status: IStatus; index: Cardinal; alias: PAnsiChar);
1348          end;
1349  
1350          IMetadataBuilderImpl = class(IMetadataBuilder)
# Line 1197 | Line 1356 | type
1356                  procedure setSubType(status: IStatus; index: Cardinal; subType: Integer); virtual; abstract;
1357                  procedure setLength(status: IStatus; index: Cardinal; length: Cardinal); virtual; abstract;
1358                  procedure setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal); virtual; abstract;
1359 <                procedure setScale(status: IStatus; index: Cardinal; scale: integer); virtual; abstract;
1359 >                procedure setScale(status: IStatus; index: Cardinal; scale: Integer); virtual; abstract;
1360                  procedure truncate(status: IStatus; count: Cardinal); virtual; abstract;
1361                  procedure moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal); virtual; abstract;
1362                  procedure remove(status: IStatus; index: Cardinal); virtual; abstract;
1363                  function addField(status: IStatus): Cardinal; virtual; abstract;
1364                  function getMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1365 +                procedure setField(status: IStatus; index: Cardinal; field: PAnsiChar); virtual; abstract;
1366 +                procedure setRelation(status: IStatus; index: Cardinal; relation: PAnsiChar); virtual; abstract;
1367 +                procedure setOwner(status: IStatus; index: Cardinal; owner: PAnsiChar); virtual; abstract;
1368 +                procedure setAlias(status: IStatus; index: Cardinal; alias: PAnsiChar); virtual; abstract;
1369          end;
1370  
1371          ResultSetVTable = class(ReferenceCountedVTable)
# Line 1220 | Line 1383 | type
1383          end;
1384  
1385          IResultSet = class(IReferenceCounted)
1386 <                const VERSION = 13;
1386 >                const VERSION = 3;
1387  
1388                  function fetchNext(status: IStatus; message: Pointer): Integer;
1389                  function fetchPrior(status: IStatus; message: Pointer): Integer;
# Line 1265 | Line 1428 | type
1428                  setCursorName: IStatement_setCursorNamePtr;
1429                  free: IStatement_freePtr;
1430                  getFlags: IStatement_getFlagsPtr;
1431 +                getTimeout: IStatement_getTimeoutPtr;
1432 +                setTimeout: IStatement_setTimeoutPtr;
1433 +                createBatch: IStatement_createBatchPtr;
1434          end;
1435  
1436          IStatement = class(IReferenceCounted)
1437 <                const VERSION = 13;
1438 <                const PREPARE_PREFETCH_NONE = Cardinal(0);
1439 <                const PREPARE_PREFETCH_TYPE = Cardinal(1);
1440 <                const PREPARE_PREFETCH_INPUT_PARAMETERS = Cardinal(2);
1441 <                const PREPARE_PREFETCH_OUTPUT_PARAMETERS = Cardinal(4);
1442 <                const PREPARE_PREFETCH_LEGACY_PLAN = Cardinal(8);
1443 <                const PREPARE_PREFETCH_DETAILED_PLAN = Cardinal(16);
1444 <                const PREPARE_PREFETCH_AFFECTED_RECORDS = Cardinal(32);
1445 <                const PREPARE_PREFETCH_FLAGS = Cardinal(64);
1437 >                const VERSION = 4;
1438 >                const PREPARE_PREFETCH_NONE = Cardinal($0);
1439 >                const PREPARE_PREFETCH_TYPE = Cardinal($1);
1440 >                const PREPARE_PREFETCH_INPUT_PARAMETERS = Cardinal($2);
1441 >                const PREPARE_PREFETCH_OUTPUT_PARAMETERS = Cardinal($4);
1442 >                const PREPARE_PREFETCH_LEGACY_PLAN = Cardinal($8);
1443 >                const PREPARE_PREFETCH_DETAILED_PLAN = Cardinal($10);
1444 >                const PREPARE_PREFETCH_AFFECTED_RECORDS = Cardinal($20);
1445 >                const PREPARE_PREFETCH_FLAGS = Cardinal($40);
1446                  const PREPARE_PREFETCH_METADATA = Cardinal(IStatement.PREPARE_PREFETCH_TYPE or IStatement.PREPARE_PREFETCH_FLAGS or IStatement.PREPARE_PREFETCH_INPUT_PARAMETERS or IStatement.PREPARE_PREFETCH_OUTPUT_PARAMETERS);
1447                  const PREPARE_PREFETCH_ALL = Cardinal(IStatement.PREPARE_PREFETCH_METADATA or IStatement.PREPARE_PREFETCH_LEGACY_PLAN or IStatement.PREPARE_PREFETCH_DETAILED_PLAN or IStatement.PREPARE_PREFETCH_AFFECTED_RECORDS);
1448 <                const FLAG_HAS_CURSOR = Cardinal(1);
1449 <                const FLAG_REPEAT_EXECUTE = Cardinal(2);
1450 <                const CURSOR_TYPE_SCROLLABLE = Cardinal(1);
1448 >                const FLAG_HAS_CURSOR = Cardinal($1);
1449 >                const FLAG_REPEAT_EXECUTE = Cardinal($2);
1450 >                const CURSOR_TYPE_SCROLLABLE = Cardinal($1);
1451  
1452                  procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1453                  function getType(status: IStatus): Cardinal;
# Line 1294 | Line 1460 | type
1460                  procedure setCursorName(status: IStatus; name: PAnsiChar);
1461                  procedure free(status: IStatus);
1462                  function getFlags(status: IStatus): Cardinal;
1463 +                function getTimeout(status: IStatus): Cardinal;
1464 +                procedure setTimeout(status: IStatus; timeOut: Cardinal);
1465 +                function createBatch(status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch;
1466          end;
1467  
1468          IStatementImpl = class(IStatement)
# Line 1312 | Line 1481 | type
1481                  procedure setCursorName(status: IStatus; name: PAnsiChar); virtual; abstract;
1482                  procedure free(status: IStatus); virtual; abstract;
1483                  function getFlags(status: IStatus): Cardinal; virtual; abstract;
1484 +                function getTimeout(status: IStatus): Cardinal; virtual; abstract;
1485 +                procedure setTimeout(status: IStatus; timeOut: Cardinal); virtual; abstract;
1486 +                function createBatch(status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; virtual; abstract;
1487 +        end;
1488 +
1489 +        BatchVTable = class(ReferenceCountedVTable)
1490 +                add: IBatch_addPtr;
1491 +                addBlob: IBatch_addBlobPtr;
1492 +                appendBlobData: IBatch_appendBlobDataPtr;
1493 +                addBlobStream: IBatch_addBlobStreamPtr;
1494 +                registerBlob: IBatch_registerBlobPtr;
1495 +                execute: IBatch_executePtr;
1496 +                cancel: IBatch_cancelPtr;
1497 +                getBlobAlignment: IBatch_getBlobAlignmentPtr;
1498 +                getMetadata: IBatch_getMetadataPtr;
1499 +                setDefaultBpb: IBatch_setDefaultBpbPtr;
1500 +        end;
1501 +
1502 +        IBatch = class(IReferenceCounted)
1503 +                const VERSION = 3;
1504 +                const VERSION1 = Byte(1);
1505 +                const TAG_MULTIERROR = Byte(1);
1506 +                const TAG_RECORD_COUNTS = Byte(2);
1507 +                const TAG_BUFFER_BYTES_SIZE = Byte(3);
1508 +                const TAG_BLOB_POLICY = Byte(4);
1509 +                const TAG_DETAILED_ERRORS = Byte(5);
1510 +                const BLOB_NONE = Byte(0);
1511 +                const BLOB_ID_ENGINE = Byte(1);
1512 +                const BLOB_ID_USER = Byte(2);
1513 +                const BLOB_STREAM = Byte(3);
1514 +                const BLOB_SEGHDR_ALIGN = Cardinal(2);
1515 +
1516 +                procedure add(status: IStatus; count: Cardinal; inBuffer: Pointer);
1517 +                procedure addBlob(status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr);
1518 +                procedure appendBlobData(status: IStatus; length: Cardinal; inBuffer: Pointer);
1519 +                procedure addBlobStream(status: IStatus; length: Cardinal; inBuffer: Pointer);
1520 +                procedure registerBlob(status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr);
1521 +                function execute(status: IStatus; transaction: ITransaction): IBatchCompletionState;
1522 +                procedure cancel(status: IStatus);
1523 +                function getBlobAlignment(status: IStatus): Cardinal;
1524 +                function getMetadata(status: IStatus): IMessageMetadata;
1525 +                procedure setDefaultBpb(status: IStatus; parLength: Cardinal; par: BytePtr);
1526 +        end;
1527 +
1528 +        IBatchImpl = class(IBatch)
1529 +                constructor create;
1530 +
1531 +                procedure addRef(); virtual; abstract;
1532 +                function release(): Integer; virtual; abstract;
1533 +                procedure add(status: IStatus; count: Cardinal; inBuffer: Pointer); virtual; abstract;
1534 +                procedure addBlob(status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr); virtual; abstract;
1535 +                procedure appendBlobData(status: IStatus; length: Cardinal; inBuffer: Pointer); virtual; abstract;
1536 +                procedure addBlobStream(status: IStatus; length: Cardinal; inBuffer: Pointer); virtual; abstract;
1537 +                procedure registerBlob(status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr); virtual; abstract;
1538 +                function execute(status: IStatus; transaction: ITransaction): IBatchCompletionState; virtual; abstract;
1539 +                procedure cancel(status: IStatus); virtual; abstract;
1540 +                function getBlobAlignment(status: IStatus): Cardinal; virtual; abstract;
1541 +                function getMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1542 +                procedure setDefaultBpb(status: IStatus; parLength: Cardinal; par: BytePtr); virtual; abstract;
1543 +        end;
1544 +
1545 +        BatchCompletionStateVTable = class(DisposableVTable)
1546 +                getSize: IBatchCompletionState_getSizePtr;
1547 +                getState: IBatchCompletionState_getStatePtr;
1548 +                findError: IBatchCompletionState_findErrorPtr;
1549 +                getStatus: IBatchCompletionState_getStatusPtr;
1550 +        end;
1551 +
1552 +        IBatchCompletionState = class(IDisposable)
1553 +                const VERSION = 3;
1554 +                const EXECUTE_FAILED = Integer(-1);
1555 +                const SUCCESS_NO_INFO = Integer(-2);
1556 +                const NO_MORE_ERRORS = Cardinal($ffffffff);
1557 +
1558 +                function getSize(status: IStatus): Cardinal;
1559 +                function getState(status: IStatus; pos: Cardinal): Integer;
1560 +                function findError(status: IStatus; pos: Cardinal): Cardinal;
1561 +                procedure getStatus(status: IStatus; to_: IStatus; pos: Cardinal);
1562 +        end;
1563 +
1564 +        IBatchCompletionStateImpl = class(IBatchCompletionState)
1565 +                constructor create;
1566 +
1567 +                procedure dispose(); virtual; abstract;
1568 +                function getSize(status: IStatus): Cardinal; virtual; abstract;
1569 +                function getState(status: IStatus; pos: Cardinal): Integer; virtual; abstract;
1570 +                function findError(status: IStatus; pos: Cardinal): Cardinal; virtual; abstract;
1571 +                procedure getStatus(status: IStatus; to_: IStatus; pos: Cardinal); virtual; abstract;
1572 +        end;
1573 +
1574 +        ReplicatorVTable = class(ReferenceCountedVTable)
1575 +                process: IReplicator_processPtr;
1576 +                close: IReplicator_closePtr;
1577 +        end;
1578 +
1579 +        IReplicator = class(IReferenceCounted)
1580 +                const VERSION = 3;
1581 +
1582 +                procedure process(status: IStatus; length: Cardinal; data: BytePtr);
1583 +                procedure close(status: IStatus);
1584 +        end;
1585 +
1586 +        IReplicatorImpl = class(IReplicator)
1587 +                constructor create;
1588 +
1589 +                procedure addRef(); virtual; abstract;
1590 +                function release(): Integer; virtual; abstract;
1591 +                procedure process(status: IStatus; length: Cardinal; data: BytePtr); virtual; abstract;
1592 +                procedure close(status: IStatus); virtual; abstract;
1593          end;
1594  
1595          RequestVTable = class(ReferenceCountedVTable)
# Line 1325 | Line 1603 | type
1603          end;
1604  
1605          IRequest = class(IReferenceCounted)
1606 <                const VERSION = 9;
1606 >                const VERSION = 3;
1607  
1608 <                procedure receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
1609 <                procedure send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
1608 >                procedure receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
1609 >                procedure send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
1610                  procedure getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1611                  procedure start(status: IStatus; tra: ITransaction; level: Integer);
1612 <                procedure startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
1612 >                procedure startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
1613                  procedure unwind(status: IStatus; level: Integer);
1614                  procedure free(status: IStatus);
1615          end;
# Line 1341 | Line 1619 | type
1619  
1620                  procedure addRef(); virtual; abstract;
1621                  function release(): Integer; virtual; abstract;
1622 <                procedure receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); virtual; abstract;
1623 <                procedure send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); virtual; abstract;
1622 >                procedure receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); virtual; abstract;
1623 >                procedure send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); virtual; abstract;
1624                  procedure getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1625                  procedure start(status: IStatus; tra: ITransaction; level: Integer); virtual; abstract;
1626 <                procedure startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); virtual; abstract;
1626 >                procedure startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); virtual; abstract;
1627                  procedure unwind(status: IStatus; level: Integer); virtual; abstract;
1628                  procedure free(status: IStatus); virtual; abstract;
1629          end;
# Line 1387 | Line 1665 | type
1665                  ping: IAttachment_pingPtr;
1666                  detach: IAttachment_detachPtr;
1667                  dropDatabase: IAttachment_dropDatabasePtr;
1668 +                getIdleTimeout: IAttachment_getIdleTimeoutPtr;
1669 +                setIdleTimeout: IAttachment_setIdleTimeoutPtr;
1670 +                getStatementTimeout: IAttachment_getStatementTimeoutPtr;
1671 +                setStatementTimeout: IAttachment_setStatementTimeoutPtr;
1672 +                createBatch: IAttachment_createBatchPtr;
1673 +                createReplicator: IAttachment_createReplicatorPtr;
1674          end;
1675  
1676          IAttachment = class(IReferenceCounted)
1677 <                const VERSION = 20;
1677 >                const VERSION = 4;
1678  
1679                  procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1680                  function startTransaction(status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction;
1681                  function reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction;
1682                  function compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest;
1683                  procedure transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr);
1684 <                function createBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob;
1685 <                function openBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob;
1686 <                function getSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer;
1687 <                procedure putSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr);
1684 >                function createBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob;
1685 >                function openBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob;
1686 >                function getSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer;
1687 >                procedure putSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr);
1688                  procedure executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr);
1689                  function prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement;
1690                  function execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
# Line 1410 | Line 1694 | type
1694                  procedure ping(status: IStatus);
1695                  procedure detach(status: IStatus);
1696                  procedure dropDatabase(status: IStatus);
1697 +                function getIdleTimeout(status: IStatus): Cardinal;
1698 +                procedure setIdleTimeout(status: IStatus; timeOut: Cardinal);
1699 +                function getStatementTimeout(status: IStatus): Cardinal;
1700 +                procedure setStatementTimeout(status: IStatus; timeOut: Cardinal);
1701 +                function createBatch(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch;
1702 +                function createReplicator(status: IStatus): IReplicator;
1703          end;
1704  
1705          IAttachmentImpl = class(IAttachment)
# Line 1422 | Line 1712 | type
1712                  function reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction; virtual; abstract;
1713                  function compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest; virtual; abstract;
1714                  procedure transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr); virtual; abstract;
1715 <                function createBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; virtual; abstract;
1716 <                function openBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; virtual; abstract;
1717 <                function getSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; virtual; abstract;
1718 <                procedure putSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); virtual; abstract;
1715 >                function createBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; virtual; abstract;
1716 >                function openBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; virtual; abstract;
1717 >                function getSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; virtual; abstract;
1718 >                procedure putSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); virtual; abstract;
1719                  procedure executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr); virtual; abstract;
1720                  function prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement; virtual; abstract;
1721                  function execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; virtual; abstract;
# Line 1435 | Line 1725 | type
1725                  procedure ping(status: IStatus); virtual; abstract;
1726                  procedure detach(status: IStatus); virtual; abstract;
1727                  procedure dropDatabase(status: IStatus); virtual; abstract;
1728 +                function getIdleTimeout(status: IStatus): Cardinal; virtual; abstract;
1729 +                procedure setIdleTimeout(status: IStatus; timeOut: Cardinal); virtual; abstract;
1730 +                function getStatementTimeout(status: IStatus): Cardinal; virtual; abstract;
1731 +                procedure setStatementTimeout(status: IStatus; timeOut: Cardinal); virtual; abstract;
1732 +                function createBatch(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; virtual; abstract;
1733 +                function createReplicator(status: IStatus): IReplicator; virtual; abstract;
1734          end;
1735  
1736          ServiceVTable = class(ReferenceCountedVTable)
# Line 1444 | Line 1740 | type
1740          end;
1741  
1742          IService = class(IReferenceCounted)
1743 <                const VERSION = 5;
1743 >                const VERSION = 3;
1744  
1745                  procedure detach(status: IStatus);
1746                  procedure query(status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
# Line 1470 | Line 1766 | type
1766          end;
1767  
1768          IProvider = class(IPluginBase)
1769 <                const VERSION = 9;
1769 >                const VERSION = 4;
1770  
1771                  function attachDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
1772                  function createDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
# Line 1500 | Line 1796 | type
1796          end;
1797  
1798          IDtcStart = class(IDisposable)
1799 <                const VERSION = 4;
1799 >                const VERSION = 3;
1800  
1801                  procedure addAttachment(status: IStatus; att: IAttachment);
1802                  procedure addWithTpb(status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr);
# Line 1564 | Line 1860 | type
1860          end;
1861  
1862          IWriter = class(IVersioned)
1863 <                const VERSION = 4;
1863 >                const VERSION = 2;
1864  
1865                  procedure reset();
1866                  procedure add(status: IStatus; name: PAnsiChar);
# Line 1589 | Line 1885 | type
1885          end;
1886  
1887          IServerBlock = class(IVersioned)
1888 <                const VERSION = 4;
1888 >                const VERSION = 2;
1889  
1890                  function getLogin(): PAnsiChar;
1891                  function getData(length: CardinalPtr): BytePtr;
# Line 1612 | Line 1908 | type
1908                  getData: IClientBlock_getDataPtr;
1909                  putData: IClientBlock_putDataPtr;
1910                  newKey: IClientBlock_newKeyPtr;
1911 +                getAuthBlock: IClientBlock_getAuthBlockPtr;
1912          end;
1913  
1914          IClientBlock = class(IReferenceCounted)
1915 <                const VERSION = 7;
1915 >                const VERSION = 4;
1916  
1917                  function getLogin(): PAnsiChar;
1918                  function getPassword(): PAnsiChar;
1919                  function getData(length: CardinalPtr): BytePtr;
1920                  procedure putData(status: IStatus; length: Cardinal; data: Pointer);
1921                  function newKey(status: IStatus): ICryptKey;
1922 +                function getAuthBlock(status: IStatus): IAuthBlock;
1923          end;
1924  
1925          IClientBlockImpl = class(IClientBlock)
# Line 1634 | Line 1932 | type
1932                  function getData(length: CardinalPtr): BytePtr; virtual; abstract;
1933                  procedure putData(status: IStatus; length: Cardinal; data: Pointer); virtual; abstract;
1934                  function newKey(status: IStatus): ICryptKey; virtual; abstract;
1935 +                function getAuthBlock(status: IStatus): IAuthBlock; virtual; abstract;
1936          end;
1937  
1938          ServerVTable = class(AuthVTable)
1939                  authenticate: IServer_authenticatePtr;
1940 +                setDbCryptCallback: IServer_setDbCryptCallbackPtr;
1941          end;
1942  
1943          IServer = class(IAuth)
1944 <                const VERSION = 5;
1944 >                const VERSION = 6;
1945  
1946                  function authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer;
1947 +                procedure setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
1948          end;
1949  
1950          IServerImpl = class(IServer)
# Line 1654 | Line 1955 | type
1955                  procedure setOwner(r: IReferenceCounted); virtual; abstract;
1956                  function getOwner(): IReferenceCounted; virtual; abstract;
1957                  function authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer; virtual; abstract;
1958 +                procedure setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback); virtual; abstract;
1959          end;
1960  
1961          ClientVTable = class(AuthVTable)
# Line 1683 | Line 1985 | type
1985          end;
1986  
1987          IUserField = class(IVersioned)
1988 <                const VERSION = 3;
1988 >                const VERSION = 2;
1989  
1990                  function entered(): Integer;
1991                  function specified(): Integer;
# Line 1704 | Line 2006 | type
2006          end;
2007  
2008          ICharUserField = class(IUserField)
2009 <                const VERSION = 5;
2009 >                const VERSION = 3;
2010  
2011                  function get(): PAnsiChar;
2012                  procedure set_(status: IStatus; newValue: PAnsiChar);
# Line 1726 | Line 2028 | type
2028          end;
2029  
2030          IIntUserField = class(IUserField)
2031 <                const VERSION = 5;
2031 >                const VERSION = 3;
2032  
2033                  function get(): Integer;
2034                  procedure set_(status: IStatus; newValue: Integer);
# Line 1757 | Line 2059 | type
2059          end;
2060  
2061          IUser = class(IVersioned)
2062 <                const VERSION = 11;
2062 >                const VERSION = 2;
2063                  const OP_USER_ADD = Cardinal(1);
2064                  const OP_USER_MODIFY = Cardinal(2);
2065                  const OP_USER_DELETE = Cardinal(3);
# Line 1799 | Line 2101 | type
2101          end;
2102  
2103          IListUsers = class(IVersioned)
2104 <                const VERSION = 1;
2104 >                const VERSION = 2;
2105  
2106                  procedure list(status: IStatus; user: IUser);
2107          end;
# Line 1816 | Line 2118 | type
2118                  networkProtocol: ILogonInfo_networkProtocolPtr;
2119                  remoteAddress: ILogonInfo_remoteAddressPtr;
2120                  authBlock: ILogonInfo_authBlockPtr;
2121 +                attachment: ILogonInfo_attachmentPtr;
2122 +                transaction: ILogonInfo_transactionPtr;
2123          end;
2124  
2125          ILogonInfo = class(IVersioned)
2126 <                const VERSION = 5;
2126 >                const VERSION = 3;
2127  
2128                  function name(): PAnsiChar;
2129                  function role(): PAnsiChar;
2130                  function networkProtocol(): PAnsiChar;
2131                  function remoteAddress(): PAnsiChar;
2132                  function authBlock(length: CardinalPtr): BytePtr;
2133 +                function attachment(status: IStatus): IAttachment;
2134 +                function transaction(status: IStatus): ITransaction;
2135          end;
2136  
2137          ILogonInfoImpl = class(ILogonInfo)
# Line 1836 | Line 2142 | type
2142                  function networkProtocol(): PAnsiChar; virtual; abstract;
2143                  function remoteAddress(): PAnsiChar; virtual; abstract;
2144                  function authBlock(length: CardinalPtr): BytePtr; virtual; abstract;
2145 +                function attachment(status: IStatus): IAttachment; virtual; abstract;
2146 +                function transaction(status: IStatus): ITransaction; virtual; abstract;
2147          end;
2148  
2149          ManagementVTable = class(PluginBaseVTable)
# Line 1846 | Line 2154 | type
2154          end;
2155  
2156          IManagement = class(IPluginBase)
2157 <                const VERSION = 8;
2157 >                const VERSION = 4;
2158  
2159                  procedure start(status: IStatus; logonInfo: ILogonInfo);
2160                  function execute(status: IStatus; user: IUser; callback: IListUsers): Integer;
# Line 1867 | Line 2175 | type
2175                  procedure rollback(status: IStatus); virtual; abstract;
2176          end;
2177  
2178 +        AuthBlockVTable = class(VersionedVTable)
2179 +                getType: IAuthBlock_getTypePtr;
2180 +                getName: IAuthBlock_getNamePtr;
2181 +                getPlugin: IAuthBlock_getPluginPtr;
2182 +                getSecurityDb: IAuthBlock_getSecurityDbPtr;
2183 +                getOriginalPlugin: IAuthBlock_getOriginalPluginPtr;
2184 +                next: IAuthBlock_nextPtr;
2185 +                first: IAuthBlock_firstPtr;
2186 +        end;
2187 +
2188 +        IAuthBlock = class(IVersioned)
2189 +                const VERSION = 2;
2190 +
2191 +                function getType(): PAnsiChar;
2192 +                function getName(): PAnsiChar;
2193 +                function getPlugin(): PAnsiChar;
2194 +                function getSecurityDb(): PAnsiChar;
2195 +                function getOriginalPlugin(): PAnsiChar;
2196 +                function next(status: IStatus): Boolean;
2197 +                function first(status: IStatus): Boolean;
2198 +        end;
2199 +
2200 +        IAuthBlockImpl = class(IAuthBlock)
2201 +                constructor create;
2202 +
2203 +                function getType(): PAnsiChar; virtual; abstract;
2204 +                function getName(): PAnsiChar; virtual; abstract;
2205 +                function getPlugin(): PAnsiChar; virtual; abstract;
2206 +                function getSecurityDb(): PAnsiChar; virtual; abstract;
2207 +                function getOriginalPlugin(): PAnsiChar; virtual; abstract;
2208 +                function next(status: IStatus): Boolean; virtual; abstract;
2209 +                function first(status: IStatus): Boolean; virtual; abstract;
2210 +        end;
2211 +
2212          WireCryptPluginVTable = class(PluginBaseVTable)
2213                  getKnownTypes: IWireCryptPlugin_getKnownTypesPtr;
2214                  setKey: IWireCryptPlugin_setKeyPtr;
2215                  encrypt: IWireCryptPlugin_encryptPtr;
2216                  decrypt: IWireCryptPlugin_decryptPtr;
2217 +                getSpecificData: IWireCryptPlugin_getSpecificDataPtr;
2218 +                setSpecificData: IWireCryptPlugin_setSpecificDataPtr;
2219          end;
2220  
2221          IWireCryptPlugin = class(IPluginBase)
2222 <                const VERSION = 8;
2222 >                const VERSION = 5;
2223  
2224                  function getKnownTypes(status: IStatus): PAnsiChar;
2225                  procedure setKey(status: IStatus; key: ICryptKey);
2226                  procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
2227                  procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
2228 +                function getSpecificData(status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr;
2229 +                procedure setSpecificData(status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr);
2230          end;
2231  
2232          IWireCryptPluginImpl = class(IWireCryptPlugin)
# Line 1894 | Line 2240 | type
2240                  procedure setKey(status: IStatus; key: ICryptKey); virtual; abstract;
2241                  procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
2242                  procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
2243 +                function getSpecificData(status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr; virtual; abstract;
2244 +                procedure setSpecificData(status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr); virtual; abstract;
2245          end;
2246  
2247          CryptKeyCallbackVTable = class(VersionedVTable)
# Line 1901 | Line 2249 | type
2249          end;
2250  
2251          ICryptKeyCallback = class(IVersioned)
2252 <                const VERSION = 1;
2252 >                const VERSION = 2;
2253  
2254                  function callback(dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal;
2255          end;
# Line 1915 | Line 2263 | type
2263          KeyHolderPluginVTable = class(PluginBaseVTable)
2264                  keyCallback: IKeyHolderPlugin_keyCallbackPtr;
2265                  keyHandle: IKeyHolderPlugin_keyHandlePtr;
2266 +                useOnlyOwnKeys: IKeyHolderPlugin_useOnlyOwnKeysPtr;
2267 +                chainHandle: IKeyHolderPlugin_chainHandlePtr;
2268          end;
2269  
2270          IKeyHolderPlugin = class(IPluginBase)
2271 <                const VERSION = 6;
2271 >                const VERSION = 5;
2272  
2273                  function keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer;
2274                  function keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback;
2275 +                function useOnlyOwnKeys(status: IStatus): Boolean;
2276 +                function chainHandle(status: IStatus): ICryptKeyCallback;
2277          end;
2278  
2279          IKeyHolderPluginImpl = class(IKeyHolderPlugin)
# Line 1933 | Line 2285 | type
2285                  function getOwner(): IReferenceCounted; virtual; abstract;
2286                  function keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer; virtual; abstract;
2287                  function keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback; virtual; abstract;
2288 +                function useOnlyOwnKeys(status: IStatus): Boolean; virtual; abstract;
2289 +                function chainHandle(status: IStatus): ICryptKeyCallback; virtual; abstract;
2290 +        end;
2291 +
2292 +        DbCryptInfoVTable = class(ReferenceCountedVTable)
2293 +                getDatabaseFullPath: IDbCryptInfo_getDatabaseFullPathPtr;
2294 +        end;
2295 +
2296 +        IDbCryptInfo = class(IReferenceCounted)
2297 +                const VERSION = 3;
2298 +
2299 +                function getDatabaseFullPath(status: IStatus): PAnsiChar;
2300 +        end;
2301 +
2302 +        IDbCryptInfoImpl = class(IDbCryptInfo)
2303 +                constructor create;
2304 +
2305 +                procedure addRef(); virtual; abstract;
2306 +                function release(): Integer; virtual; abstract;
2307 +                function getDatabaseFullPath(status: IStatus): PAnsiChar; virtual; abstract;
2308          end;
2309  
2310          DbCryptPluginVTable = class(PluginBaseVTable)
2311                  setKey: IDbCryptPlugin_setKeyPtr;
2312                  encrypt: IDbCryptPlugin_encryptPtr;
2313                  decrypt: IDbCryptPlugin_decryptPtr;
2314 +                setInfo: IDbCryptPlugin_setInfoPtr;
2315          end;
2316  
2317          IDbCryptPlugin = class(IPluginBase)
2318 <                const VERSION = 7;
2318 >                const VERSION = 5;
2319  
2320                  procedure setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar);
2321                  procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
2322                  procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
2323 +                procedure setInfo(status: IStatus; info: IDbCryptInfo);
2324          end;
2325  
2326          IDbCryptPluginImpl = class(IDbCryptPlugin)
# Line 1959 | Line 2333 | type
2333                  procedure setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar); virtual; abstract;
2334                  procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
2335                  procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
2336 +                procedure setInfo(status: IStatus; info: IDbCryptInfo); virtual; abstract;
2337          end;
2338  
2339          ExternalContextVTable = class(VersionedVTable)
# Line 1975 | Line 2350 | type
2350          end;
2351  
2352          IExternalContext = class(IVersioned)
2353 <                const VERSION = 10;
2353 >                const VERSION = 2;
2354  
2355                  function getMaster(): IMaster;
2356                  function getEngine(status: IStatus): IExternalEngine;
# Line 2009 | Line 2384 | type
2384          end;
2385  
2386          IExternalResultSet = class(IDisposable)
2387 <                const VERSION = 2;
2387 >                const VERSION = 3;
2388  
2389                  function fetch(status: IStatus): Boolean;
2390          end;
# Line 2106 | Line 2481 | type
2481          end;
2482  
2483          IRoutineMetadata = class(IVersioned)
2484 <                const VERSION = 9;
2484 >                const VERSION = 2;
2485  
2486                  function getPackage(status: IStatus): PAnsiChar;
2487                  function getName(status: IStatus): PAnsiChar;
# Line 2143 | Line 2518 | type
2518          end;
2519  
2520          IExternalEngine = class(IPluginBase)
2521 <                const VERSION = 10;
2521 >                const VERSION = 4;
2522  
2523                  procedure open(status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal);
2524                  procedure openAttachment(status: IStatus; context: IExternalContext);
# Line 2210 | Line 2585 | type
2585          end;
2586  
2587          IVersionCallback = class(IVersioned)
2588 <                const VERSION = 1;
2588 >                const VERSION = 2;
2589  
2590                  procedure callback(status: IStatus; text: PAnsiChar);
2591          end;
# Line 2235 | Line 2610 | type
2610                  getClientVersion: IUtil_getClientVersionPtr;
2611                  getXpbBuilder: IUtil_getXpbBuilderPtr;
2612                  setOffsets: IUtil_setOffsetsPtr;
2613 +                getDecFloat16: IUtil_getDecFloat16Ptr;
2614 +                getDecFloat34: IUtil_getDecFloat34Ptr;
2615 +                decodeTimeTz: IUtil_decodeTimeTzPtr;
2616 +                decodeTimeStampTz: IUtil_decodeTimeStampTzPtr;
2617 +                encodeTimeTz: IUtil_encodeTimeTzPtr;
2618 +                encodeTimeStampTz: IUtil_encodeTimeStampTzPtr;
2619 +                getInt128: IUtil_getInt128Ptr;
2620 +                decodeTimeTzEx: IUtil_decodeTimeTzExPtr;
2621 +                decodeTimeStampTzEx: IUtil_decodeTimeStampTzExPtr;
2622          end;
2623  
2624          IUtil = class(IVersioned)
2625 <                const VERSION = 13;
2625 >                const VERSION = 4;
2626  
2627                  procedure getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback);
2628 <                procedure loadBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
2629 <                procedure dumpBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
2628 >                procedure loadBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
2629 >                procedure dumpBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
2630                  procedure getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr);
2631                  function executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment;
2632                  procedure decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr);
# Line 2253 | Line 2637 | type
2637                  function getClientVersion(): Cardinal;
2638                  function getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder;
2639                  function setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal;
2640 +                function getDecFloat16(status: IStatus): IDecFloat16;
2641 +                function getDecFloat34(status: IStatus): IDecFloat34;
2642 +                procedure decodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2643 +                procedure decodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2644 +                procedure encodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar);
2645 +                procedure encodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar);
2646 +                function getInt128(status: IStatus): IInt128;
2647 +                procedure decodeTimeTzEx(status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2648 +                procedure decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
2649          end;
2650  
2651          IUtilImpl = class(IUtil)
2652                  constructor create;
2653  
2654                  procedure getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback); virtual; abstract;
2655 <                procedure loadBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); virtual; abstract;
2656 <                procedure dumpBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); virtual; abstract;
2655 >                procedure loadBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); virtual; abstract;
2656 >                procedure dumpBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); virtual; abstract;
2657                  procedure getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr); virtual; abstract;
2658                  function executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment; virtual; abstract;
2659                  procedure decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr); virtual; abstract;
# Line 2271 | Line 2664 | type
2664                  function getClientVersion(): Cardinal; virtual; abstract;
2665                  function getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder; virtual; abstract;
2666                  function setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal; virtual; abstract;
2667 +                function getDecFloat16(status: IStatus): IDecFloat16; virtual; abstract;
2668 +                function getDecFloat34(status: IStatus): IDecFloat34; virtual; abstract;
2669 +                procedure decodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2670 +                procedure decodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2671 +                procedure encodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); virtual; abstract;
2672 +                procedure encodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); virtual; abstract;
2673 +                function getInt128(status: IStatus): IInt128; virtual; abstract;
2674 +                procedure decodeTimeTzEx(status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2675 +                procedure decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); virtual; abstract;
2676          end;
2677  
2678          OffsetsCallbackVTable = class(VersionedVTable)
# Line 2278 | Line 2680 | type
2680          end;
2681  
2682          IOffsetsCallback = class(IVersioned)
2683 <                const VERSION = 1;
2683 >                const VERSION = 2;
2684  
2685                  procedure setOffset(status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal);
2686          end;
# Line 2313 | Line 2715 | type
2715          end;
2716  
2717          IXpbBuilder = class(IDisposable)
2718 <                const VERSION = 21;
2718 >                const VERSION = 3;
2719                  const DPB = Cardinal(1);
2720                  const SPB_ATTACH = Cardinal(2);
2721                  const SPB_START = Cardinal(3);
2722                  const TPB = Cardinal(4);
2723 +                const BATCH = Cardinal(5);
2724 +                const BPB = Cardinal(6);
2725 +                const SPB_SEND = Cardinal(7);
2726 +                const SPB_RECEIVE = Cardinal(8);
2727 +                const SPB_RESPONSE = Cardinal(9);
2728  
2729                  procedure clear(status: IStatus);
2730                  procedure removeCurrent(status: IStatus);
# Line 2380 | Line 2787 | type
2787          end;
2788  
2789          ITraceConnection = class(IVersioned)
2790 <                const VERSION = 9;
2790 >                const VERSION = 2;
2791                  const KIND_DATABASE = Cardinal(1);
2792                  const KIND_SERVICE = Cardinal(2);
2793  
# Line 2415 | Line 2822 | type
2822          end;
2823  
2824          ITraceDatabaseConnection = class(ITraceConnection)
2825 <                const VERSION = 11;
2825 >                const VERSION = 3;
2826  
2827                  function getConnectionID(): Int64;
2828                  function getDatabaseName(): PAnsiChar;
# Line 2443 | Line 2850 | type
2850                  getWait: ITraceTransaction_getWaitPtr;
2851                  getIsolation: ITraceTransaction_getIsolationPtr;
2852                  getPerf: ITraceTransaction_getPerfPtr;
2853 +                getInitialID: ITraceTransaction_getInitialIDPtr;
2854 +                getPreviousID: ITraceTransaction_getPreviousIDPtr;
2855          end;
2856  
2857          ITraceTransaction = class(IVersioned)
2858 <                const VERSION = 5;
2858 >                const VERSION = 3;
2859                  const ISOLATION_CONSISTENCY = Cardinal(1);
2860                  const ISOLATION_CONCURRENCY = Cardinal(2);
2861                  const ISOLATION_READ_COMMITTED_RECVER = Cardinal(3);
2862                  const ISOLATION_READ_COMMITTED_NORECVER = Cardinal(4);
2863 +                const ISOLATION_READ_COMMITTED_READ_CONSISTENCY = Cardinal(5);
2864  
2865                  function getTransactionID(): Int64;
2866                  function getReadOnly(): Boolean;
2867                  function getWait(): Integer;
2868                  function getIsolation(): Cardinal;
2869                  function getPerf(): PerformanceInfoPtr;
2870 +                function getInitialID(): Int64;
2871 +                function getPreviousID(): Int64;
2872          end;
2873  
2874          ITraceTransactionImpl = class(ITraceTransaction)
# Line 2467 | Line 2879 | type
2879                  function getWait(): Integer; virtual; abstract;
2880                  function getIsolation(): Cardinal; virtual; abstract;
2881                  function getPerf(): PerformanceInfoPtr; virtual; abstract;
2882 +                function getInitialID(): Int64; virtual; abstract;
2883 +                function getPreviousID(): Int64; virtual; abstract;
2884          end;
2885  
2886          TraceParamsVTable = class(VersionedVTable)
2887                  getCount: ITraceParams_getCountPtr;
2888                  getParam: ITraceParams_getParamPtr;
2889 +                getTextUTF8: ITraceParams_getTextUTF8Ptr;
2890          end;
2891  
2892          ITraceParams = class(IVersioned)
2893 <                const VERSION = 2;
2893 >                const VERSION = 3;
2894  
2895                  function getCount(): Cardinal;
2896                  function getParam(idx: Cardinal): dscPtr;
2897 +                function getTextUTF8(status: IStatus; idx: Cardinal): PAnsiChar;
2898          end;
2899  
2900          ITraceParamsImpl = class(ITraceParams)
# Line 2486 | Line 2902 | type
2902  
2903                  function getCount(): Cardinal; virtual; abstract;
2904                  function getParam(idx: Cardinal): dscPtr; virtual; abstract;
2905 +                function getTextUTF8(status: IStatus; idx: Cardinal): PAnsiChar; virtual; abstract;
2906          end;
2907  
2908          TraceStatementVTable = class(VersionedVTable)
# Line 2516 | Line 2933 | type
2933          end;
2934  
2935          ITraceSQLStatement = class(ITraceStatement)
2936 <                const VERSION = 7;
2936 >                const VERSION = 3;
2937  
2938                  function getText(): PAnsiChar;
2939                  function getPlan(): PAnsiChar;
# Line 2544 | Line 2961 | type
2961          end;
2962  
2963          ITraceBLRStatement = class(ITraceStatement)
2964 <                const VERSION = 5;
2964 >                const VERSION = 3;
2965  
2966                  function getData(): BytePtr;
2967                  function getDataLength(): Cardinal;
# Line 2568 | Line 2985 | type
2985          end;
2986  
2987          ITraceDYNRequest = class(IVersioned)
2988 <                const VERSION = 3;
2988 >                const VERSION = 2;
2989  
2990                  function getData(): BytePtr;
2991                  function getDataLength(): Cardinal;
# Line 2590 | Line 3007 | type
3007          end;
3008  
3009          ITraceContextVariable = class(IVersioned)
3010 <                const VERSION = 3;
3010 >                const VERSION = 2;
3011  
3012                  function getNameSpace(): PAnsiChar;
3013                  function getVarName(): PAnsiChar;
# Line 2612 | Line 3029 | type
3029          end;
3030  
3031          ITraceProcedure = class(IVersioned)
3032 <                const VERSION = 3;
3032 >                const VERSION = 2;
3033  
3034                  function getProcName(): PAnsiChar;
3035                  function getInputs(): ITraceParams;
# Line 2635 | Line 3052 | type
3052          end;
3053  
3054          ITraceFunction = class(IVersioned)
3055 <                const VERSION = 4;
3055 >                const VERSION = 2;
3056  
3057                  function getFuncName(): PAnsiChar;
3058                  function getInputs(): ITraceParams;
# Line 2661 | Line 3078 | type
3078          end;
3079  
3080          ITraceTrigger = class(IVersioned)
3081 <                const VERSION = 5;
3081 >                const VERSION = 2;
3082                  const TYPE_ALL = Cardinal(0);
3083                  const TYPE_BEFORE = Cardinal(1);
3084                  const TYPE_AFTER = Cardinal(2);
# Line 2690 | Line 3107 | type
3107          end;
3108  
3109          ITraceServiceConnection = class(ITraceConnection)
3110 <                const VERSION = 12;
3110 >                const VERSION = 3;
3111  
3112                  function getServiceID(): Pointer;
3113                  function getServiceMgr(): PAnsiChar;
# Line 2722 | Line 3139 | type
3139          end;
3140  
3141          ITraceStatusVector = class(IVersioned)
3142 <                const VERSION = 4;
3142 >                const VERSION = 2;
3143  
3144                  function hasError(): Boolean;
3145                  function hasWarning(): Boolean;
# Line 2748 | Line 3165 | type
3165          end;
3166  
3167          ITraceSweepInfo = class(IVersioned)
3168 <                const VERSION = 5;
3168 >                const VERSION = 2;
3169  
3170                  function getOIT(): Int64;
3171                  function getOST(): Int64;
# Line 2769 | Line 3186 | type
3186  
3187          TraceLogWriterVTable = class(ReferenceCountedVTable)
3188                  write: ITraceLogWriter_writePtr;
3189 +                write_s: ITraceLogWriter_write_sPtr;
3190          end;
3191  
3192          ITraceLogWriter = class(IReferenceCounted)
3193 <                const VERSION = 3;
3193 >                const VERSION = 4;
3194  
3195                  function write(buf: Pointer; size: Cardinal): Cardinal;
3196 +                function write_s(status: IStatus; buf: Pointer; size: Cardinal): Cardinal;
3197          end;
3198  
3199          ITraceLogWriterImpl = class(ITraceLogWriter)
# Line 2783 | Line 3202 | type
3202                  procedure addRef(); virtual; abstract;
3203                  function release(): Integer; virtual; abstract;
3204                  function write(buf: Pointer; size: Cardinal): Cardinal; virtual; abstract;
3205 +                function write_s(status: IStatus; buf: Pointer; size: Cardinal): Cardinal; virtual; abstract;
3206          end;
3207  
3208          TraceInitInfoVTable = class(VersionedVTable)
# Line 2796 | Line 3216 | type
3216          end;
3217  
3218          ITraceInitInfo = class(IVersioned)
3219 <                const VERSION = 7;
3219 >                const VERSION = 2;
3220  
3221                  function getConfigText(): PAnsiChar;
3222                  function getTraceSessionID(): Integer;
# Line 2844 | Line 3264 | type
3264          end;
3265  
3266          ITracePlugin = class(IReferenceCounted)
3267 <                const VERSION = 23;
3267 >                const VERSION = 3;
3268                  const RESULT_SUCCESS = Cardinal(0);
3269                  const RESULT_FAILED = Cardinal(1);
3270                  const RESULT_UNAUTHORIZED = Cardinal(2);
# Line 2910 | Line 3330 | type
3330          end;
3331  
3332          ITraceFactory = class(IPluginBase)
3333 <                const VERSION = 6;
3333 >                const VERSION = 4;
3334                  const TRACE_EVENT_ATTACH = Cardinal(0);
3335                  const TRACE_EVENT_DETACH = Cardinal(1);
3336                  const TRACE_EVENT_TRANSACTION_START = Cardinal(2);
# Line 3016 | Line 3436 | type
3436          end;
3437  
3438          IUdrPlugin = class(IVersioned)
3439 <                const VERSION = 4;
3439 >                const VERSION = 2;
3440  
3441                  function getMaster(): IMaster;
3442                  procedure registerFunction(status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory);
# Line 3033 | Line 3453 | type
3453                  procedure registerTrigger(status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory); virtual; abstract;
3454          end;
3455  
3456 < //      function fb_get_master_interface : IMaster; cdecl; external 'fbclient';
3456 >        DecFloat16VTable = class(VersionedVTable)
3457 >                toBcd: IDecFloat16_toBcdPtr;
3458 >                toString: IDecFloat16_toStringPtr;
3459 >                fromBcd: IDecFloat16_fromBcdPtr;
3460 >                fromString: IDecFloat16_fromStringPtr;
3461 >        end;
3462 >
3463 >        IDecFloat16 = class(IVersioned)
3464 >                const VERSION = 2;
3465 >                const BCD_SIZE = Cardinal(16);
3466 >                const STRING_SIZE = Cardinal(24);
3467 >
3468 >                procedure toBcd(from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr);
3469 >                procedure toString(status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar);
3470 >                procedure fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr);
3471 >                procedure fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr);
3472 >        end;
3473 >
3474 >        IDecFloat16Impl = class(IDecFloat16)
3475 >                constructor create;
3476 >
3477 >                procedure toBcd(from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); virtual; abstract;
3478 >                procedure toString(status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar); virtual; abstract;
3479 >                procedure fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr); virtual; abstract;
3480 >                procedure fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr); virtual; abstract;
3481 >        end;
3482 >
3483 >        DecFloat34VTable = class(VersionedVTable)
3484 >                toBcd: IDecFloat34_toBcdPtr;
3485 >                toString: IDecFloat34_toStringPtr;
3486 >                fromBcd: IDecFloat34_fromBcdPtr;
3487 >                fromString: IDecFloat34_fromStringPtr;
3488 >        end;
3489 >
3490 >        IDecFloat34 = class(IVersioned)
3491 >                const VERSION = 2;
3492 >                const BCD_SIZE = Cardinal(34);
3493 >                const STRING_SIZE = Cardinal(43);
3494 >
3495 >                procedure toBcd(from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr);
3496 >                procedure toString(status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar);
3497 >                procedure fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr);
3498 >                procedure fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr);
3499 >        end;
3500 >
3501 >        IDecFloat34Impl = class(IDecFloat34)
3502 >                constructor create;
3503 >
3504 >                procedure toBcd(from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); virtual; abstract;
3505 >                procedure toString(status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar); virtual; abstract;
3506 >                procedure fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr); virtual; abstract;
3507 >                procedure fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr); virtual; abstract;
3508 >        end;
3509 >
3510 >        Int128VTable = class(VersionedVTable)
3511 >                toString: IInt128_toStringPtr;
3512 >                fromString: IInt128_fromStringPtr;
3513 >        end;
3514 >
3515 >        IInt128 = class(IVersioned)
3516 >                const VERSION = 2;
3517 >                const STRING_SIZE = Cardinal(46);
3518 >
3519 >                procedure toString(status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar);
3520 >                procedure fromString(status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr);
3521 >        end;
3522 >
3523 >        IInt128Impl = class(IInt128)
3524 >                constructor create;
3525 >
3526 >                procedure toString(status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar); virtual; abstract;
3527 >                procedure fromString(status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr); virtual; abstract;
3528 >        end;
3529 >
3530 >        ReplicatedFieldVTable = class(VersionedVTable)
3531 >                getName: IReplicatedField_getNamePtr;
3532 >                getType: IReplicatedField_getTypePtr;
3533 >                getSubType: IReplicatedField_getSubTypePtr;
3534 >                getScale: IReplicatedField_getScalePtr;
3535 >                getLength: IReplicatedField_getLengthPtr;
3536 >                getCharSet: IReplicatedField_getCharSetPtr;
3537 >                getData: IReplicatedField_getDataPtr;
3538 >        end;
3539 >
3540 >        IReplicatedField = class(IVersioned)
3541 >                const VERSION = 2;
3542 >
3543 >                function getName(): PAnsiChar;
3544 >                function getType(): Cardinal;
3545 >                function getSubType(): Integer;
3546 >                function getScale(): Integer;
3547 >                function getLength(): Cardinal;
3548 >                function getCharSet(): Cardinal;
3549 >                function getData(): Pointer;
3550 >        end;
3551 >
3552 >        IReplicatedFieldImpl = class(IReplicatedField)
3553 >                constructor create;
3554 >
3555 >                function getName(): PAnsiChar; virtual; abstract;
3556 >                function getType(): Cardinal; virtual; abstract;
3557 >                function getSubType(): Integer; virtual; abstract;
3558 >                function getScale(): Integer; virtual; abstract;
3559 >                function getLength(): Cardinal; virtual; abstract;
3560 >                function getCharSet(): Cardinal; virtual; abstract;
3561 >                function getData(): Pointer; virtual; abstract;
3562 >        end;
3563 >
3564 >        ReplicatedRecordVTable = class(VersionedVTable)
3565 >                getCount: IReplicatedRecord_getCountPtr;
3566 >                getField: IReplicatedRecord_getFieldPtr;
3567 >                getRawLength: IReplicatedRecord_getRawLengthPtr;
3568 >                getRawData: IReplicatedRecord_getRawDataPtr;
3569 >        end;
3570 >
3571 >        IReplicatedRecord = class(IVersioned)
3572 >                const VERSION = 2;
3573 >
3574 >                function getCount(): Cardinal;
3575 >                function getField(index: Cardinal): IReplicatedField;
3576 >                function getRawLength(): Cardinal;
3577 >                function getRawData(): BytePtr;
3578 >        end;
3579 >
3580 >        IReplicatedRecordImpl = class(IReplicatedRecord)
3581 >                constructor create;
3582 >
3583 >                function getCount(): Cardinal; virtual; abstract;
3584 >                function getField(index: Cardinal): IReplicatedField; virtual; abstract;
3585 >                function getRawLength(): Cardinal; virtual; abstract;
3586 >                function getRawData(): BytePtr; virtual; abstract;
3587 >        end;
3588 >
3589 >        ReplicatedTransactionVTable = class(DisposableVTable)
3590 >                prepare: IReplicatedTransaction_preparePtr;
3591 >                commit: IReplicatedTransaction_commitPtr;
3592 >                rollback: IReplicatedTransaction_rollbackPtr;
3593 >                startSavepoint: IReplicatedTransaction_startSavepointPtr;
3594 >                releaseSavepoint: IReplicatedTransaction_releaseSavepointPtr;
3595 >                rollbackSavepoint: IReplicatedTransaction_rollbackSavepointPtr;
3596 >                insertRecord: IReplicatedTransaction_insertRecordPtr;
3597 >                updateRecord: IReplicatedTransaction_updateRecordPtr;
3598 >                deleteRecord: IReplicatedTransaction_deleteRecordPtr;
3599 >                executeSql: IReplicatedTransaction_executeSqlPtr;
3600 >                executeSqlIntl: IReplicatedTransaction_executeSqlIntlPtr;
3601 >        end;
3602 >
3603 >        IReplicatedTransaction = class(IDisposable)
3604 >                const VERSION = 3;
3605 >
3606 >                procedure prepare(status: IStatus);
3607 >                procedure commit(status: IStatus);
3608 >                procedure rollback(status: IStatus);
3609 >                procedure startSavepoint(status: IStatus);
3610 >                procedure releaseSavepoint(status: IStatus);
3611 >                procedure rollbackSavepoint(status: IStatus);
3612 >                procedure insertRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord);
3613 >                procedure updateRecord(status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord);
3614 >                procedure deleteRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord);
3615 >                procedure executeSql(status: IStatus; sql: PAnsiChar);
3616 >                procedure executeSqlIntl(status: IStatus; charset: Cardinal; sql: PAnsiChar);
3617 >        end;
3618 >
3619 >        IReplicatedTransactionImpl = class(IReplicatedTransaction)
3620 >                constructor create;
3621 >
3622 >                procedure dispose(); virtual; abstract;
3623 >                procedure prepare(status: IStatus); virtual; abstract;
3624 >                procedure commit(status: IStatus); virtual; abstract;
3625 >                procedure rollback(status: IStatus); virtual; abstract;
3626 >                procedure startSavepoint(status: IStatus); virtual; abstract;
3627 >                procedure releaseSavepoint(status: IStatus); virtual; abstract;
3628 >                procedure rollbackSavepoint(status: IStatus); virtual; abstract;
3629 >                procedure insertRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); virtual; abstract;
3630 >                procedure updateRecord(status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord); virtual; abstract;
3631 >                procedure deleteRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); virtual; abstract;
3632 >                procedure executeSql(status: IStatus; sql: PAnsiChar); virtual; abstract;
3633 >                procedure executeSqlIntl(status: IStatus; charset: Cardinal; sql: PAnsiChar); virtual; abstract;
3634 >        end;
3635 >
3636 >        ReplicatedSessionVTable = class(PluginBaseVTable)
3637 >                setAttachment: IReplicatedSession_setAttachmentPtr;
3638 >                startTransaction: IReplicatedSession_startTransactionPtr;
3639 >                cleanupTransaction: IReplicatedSession_cleanupTransactionPtr;
3640 >                setSequence: IReplicatedSession_setSequencePtr;
3641 >        end;
3642 >
3643 >        IReplicatedSession = class(IPluginBase)
3644 >                const VERSION = 4;
3645 >
3646 >                procedure setAttachment(attachment: IAttachment);
3647 >                function startTransaction(status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction;
3648 >                procedure cleanupTransaction(status: IStatus; number: Int64);
3649 >                procedure setSequence(status: IStatus; name: PAnsiChar; value: Int64);
3650 >        end;
3651 >
3652 >        IReplicatedSessionImpl = class(IReplicatedSession)
3653 >                constructor create;
3654 >
3655 >                procedure addRef(); virtual; abstract;
3656 >                function release(): Integer; virtual; abstract;
3657 >                procedure setOwner(r: IReferenceCounted); virtual; abstract;
3658 >                function getOwner(): IReferenceCounted; virtual; abstract;
3659 >                procedure setAttachment(attachment: IAttachment); virtual; abstract;
3660 >                function startTransaction(status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction; virtual; abstract;
3661 >                procedure cleanupTransaction(status: IStatus; number: Int64); virtual; abstract;
3662 >                procedure setSequence(status: IStatus; name: PAnsiChar; value: Int64); virtual; abstract;
3663 >        end;
3664 >
3665 > {       function fb_get_master_interface : IMaster; cdecl; external 'fbclient';}
3666  
3038 const
3039 {       isc_dpb_version1 = byte(1);
3040        isc_dpb_version2 = byte(2);
3041        isc_dpb_cdd_pathname = byte(1);
3042        isc_dpb_allocation = byte(2);
3043        isc_dpb_journal = byte(3);
3044        isc_dpb_page_size = byte(4);
3045        isc_dpb_num_buffers = byte(5);
3046        isc_dpb_buffer_length = byte(6);
3047        isc_dpb_debug = byte(7);
3048        isc_dpb_garbage_collect = byte(8);
3049        isc_dpb_verify = byte(9);
3050        isc_dpb_sweep = byte(10);
3051        isc_dpb_enable_journal = byte(11);
3052        isc_dpb_disable_journal = byte(12);
3053        isc_dpb_dbkey_scope = byte(13);
3054        isc_dpb_number_of_users = byte(14);
3055        isc_dpb_trace = byte(15);
3056        isc_dpb_no_garbage_collect = byte(16);
3057        isc_dpb_damaged = byte(17);
3058        isc_dpb_license = byte(18);
3059        isc_dpb_sys_user_name = byte(19);
3060        isc_dpb_encrypt_key = byte(20);
3061        isc_dpb_activate_shadow = byte(21);
3062        isc_dpb_sweep_interval = byte(22);
3063        isc_dpb_delete_shadow = byte(23);
3064        isc_dpb_force_write = byte(24);
3065        isc_dpb_begin_log = byte(25);
3066        isc_dpb_quit_log = byte(26);
3067        isc_dpb_no_reserve = byte(27);
3068        isc_dpb_user_name = byte(28);
3069        isc_dpb_password = byte(29);
3070        isc_dpb_password_enc = byte(30);
3071        isc_dpb_sys_user_name_enc = byte(31);
3072        isc_dpb_interp = byte(32);
3073        isc_dpb_online_dump = byte(33);
3074        isc_dpb_old_file_size = byte(34);
3075        isc_dpb_old_num_files = byte(35);
3076        isc_dpb_old_file = byte(36);
3077        isc_dpb_old_start_page = byte(37);
3078        isc_dpb_old_start_seqno = byte(38);
3079        isc_dpb_old_start_file = byte(39);
3080        isc_dpb_drop_walfile = byte(40);
3081        isc_dpb_old_dump_id = byte(41);
3082        isc_dpb_wal_backup_dir = byte(42);
3083        isc_dpb_wal_chkptlen = byte(43);
3084        isc_dpb_wal_numbufs = byte(44);
3085        isc_dpb_wal_bufsize = byte(45);
3086        isc_dpb_wal_grp_cmt_wait = byte(46);
3087        isc_dpb_lc_messages = byte(47);
3088        isc_dpb_lc_ctype = byte(48);
3089        isc_dpb_cache_manager = byte(49);
3090        isc_dpb_shutdown = byte(50);
3091        isc_dpb_online = byte(51);
3092        isc_dpb_shutdown_delay = byte(52);
3093        isc_dpb_reserved = byte(53);
3094        isc_dpb_overwrite = byte(54);
3095        isc_dpb_sec_attach = byte(55);
3096        isc_dpb_disable_wal = byte(56);
3097        isc_dpb_connect_timeout = byte(57);
3098        isc_dpb_dummy_packet_interval = byte(58);
3099        isc_dpb_gbak_attach = byte(59);
3100        isc_dpb_sql_role_name = byte(60);
3101        isc_dpb_set_page_buffers = byte(61);
3102        isc_dpb_working_directory = byte(62);
3103        isc_dpb_sql_dialect = byte(63);
3104        isc_dpb_set_db_readonly = byte(64);
3105        isc_dpb_set_db_sql_dialect = byte(65);
3106        isc_dpb_gfix_attach = byte(66);
3107        isc_dpb_gstat_attach = byte(67);
3108        isc_dpb_set_db_charset = byte(68);
3109        isc_dpb_gsec_attach = byte(69);
3110        isc_dpb_address_path = byte(70);
3111        isc_dpb_process_id = byte(71);
3112        isc_dpb_no_db_triggers = byte(72);
3113        isc_dpb_trusted_auth = byte(73);
3114        isc_dpb_process_name = byte(74);
3115        isc_dpb_trusted_role = byte(75);
3116        isc_dpb_org_filename = byte(76);
3117        isc_dpb_utf8_filename = byte(77);
3118        isc_dpb_ext_call_depth = byte(78);
3119        isc_dpb_auth_block = byte(79);
3120        isc_dpb_client_version = byte(80);
3121        isc_dpb_remote_protocol = byte(81);
3122        isc_dpb_host_name = byte(82);
3123        isc_dpb_os_user = byte(83);
3124        isc_dpb_specific_auth_data = byte(84);
3125        isc_dpb_auth_plugin_list = byte(85);
3126        isc_dpb_auth_plugin_name = byte(86);
3127        isc_dpb_config = byte(87);
3128        isc_dpb_nolinger = byte(88);
3129        isc_dpb_reset_icu = byte(89);
3130        isc_dpb_map_attach = byte(90);
3131        isc_dpb_address = byte(1);
3132        isc_dpb_addr_protocol = byte(1);
3133        isc_dpb_addr_endpoint = byte(2);
3134        isc_dpb_pages = byte(1);
3135        isc_dpb_records = byte(2);
3136        isc_dpb_indices = byte(4);
3137        isc_dpb_transactions = byte(8);
3138        isc_dpb_no_update = byte(16);
3139        isc_dpb_repair = byte(32);
3140        isc_dpb_ignore = byte(64);
3141        isc_dpb_shut_cache = $1;
3142        isc_dpb_shut_attachment = $2;
3143        isc_dpb_shut_transaction = $4;
3144        isc_dpb_shut_force = $8;
3145        isc_dpb_shut_mode_mask = $70;
3146        isc_dpb_shut_default = $0;
3147        isc_dpb_shut_normal = $10;
3148        isc_dpb_shut_multi = $20;
3149        isc_dpb_shut_single = $30;
3150        isc_dpb_shut_full = $40;
3151        RDB_system = byte(1);
3152        RDB_id_assigned = byte(2);
3153        isc_tpb_version1 = byte(1);
3154        isc_tpb_version3 = byte(3);
3155        isc_tpb_consistency = byte(1);
3156        isc_tpb_concurrency = byte(2);
3157        isc_tpb_shared = byte(3);
3158        isc_tpb_protected = byte(4);
3159        isc_tpb_exclusive = byte(5);
3160        isc_tpb_wait = byte(6);
3161        isc_tpb_nowait = byte(7);
3162        isc_tpb_read = byte(8);
3163        isc_tpb_write = byte(9);
3164        isc_tpb_lock_read = byte(10);
3165        isc_tpb_lock_write = byte(11);
3166        isc_tpb_verb_time = byte(12);
3167        isc_tpb_commit_time = byte(13);
3168        isc_tpb_ignore_limbo = byte(14);
3169        isc_tpb_read_committed = byte(15);
3170        isc_tpb_autocommit = byte(16);
3171        isc_tpb_rec_version = byte(17);
3172        isc_tpb_no_rec_version = byte(18);
3173        isc_tpb_restart_requests = byte(19);
3174        isc_tpb_no_auto_undo = byte(20);
3175        isc_tpb_lock_timeout = byte(21);
3176        isc_bpb_version1 = byte(1);
3177        isc_bpb_source_type = byte(1);
3178        isc_bpb_target_type = byte(2);
3179        isc_bpb_type = byte(3);
3180        isc_bpb_source_interp = byte(4);
3181        isc_bpb_target_interp = byte(5);
3182        isc_bpb_filter_parameter = byte(6);
3183        isc_bpb_storage = byte(7);
3184        isc_bpb_type_segmented = $0;
3185        isc_bpb_type_stream = $1;
3186        isc_bpb_storage_main = $0;
3187        isc_bpb_storage_temp = $2;
3188        isc_spb_version1 = byte(1);
3189        isc_spb_current_version = byte(2);
3190        isc_spb_version3 = byte(3);
3191        isc_spb_command_line = byte(105);
3192        isc_spb_dbname = byte(106);
3193        isc_spb_verbose = byte(107);
3194        isc_spb_options = byte(108);
3195        isc_spb_address_path = byte(109);
3196        isc_spb_process_id = byte(110);
3197        isc_spb_trusted_auth = byte(111);
3198        isc_spb_process_name = byte(112);
3199        isc_spb_trusted_role = byte(113);
3200        isc_spb_verbint = byte(114);
3201        isc_spb_auth_block = byte(115);
3202        isc_spb_auth_plugin_name = byte(116);
3203        isc_spb_auth_plugin_list = byte(117);
3204        isc_spb_utf8_filename = byte(118);
3205        isc_spb_client_version = byte(119);
3206        isc_spb_remote_protocol = byte(120);
3207        isc_spb_host_name = byte(121);
3208        isc_spb_os_user = byte(122);
3209        isc_spb_config = byte(123);
3210        isc_spb_expected_db = byte(124);
3211        isc_action_svc_backup = byte(1);
3212        isc_action_svc_restore = byte(2);
3213        isc_action_svc_repair = byte(3);
3214        isc_action_svc_add_user = byte(4);
3215        isc_action_svc_delete_user = byte(5);
3216        isc_action_svc_modify_user = byte(6);
3217        isc_action_svc_display_user = byte(7);
3218        isc_action_svc_properties = byte(8);
3219        isc_action_svc_add_license = byte(9);
3220        isc_action_svc_remove_license = byte(10);
3221        isc_action_svc_db_stats = byte(11);
3222        isc_action_svc_get_ib_log = byte(12);
3223        isc_action_svc_get_fb_log = byte(12);
3224        isc_action_svc_nbak = byte(20);
3225        isc_action_svc_nrest = byte(21);
3226        isc_action_svc_trace_start = byte(22);
3227        isc_action_svc_trace_stop = byte(23);
3228        isc_action_svc_trace_suspend = byte(24);
3229        isc_action_svc_trace_resume = byte(25);
3230        isc_action_svc_trace_list = byte(26);
3231        isc_action_svc_set_mapping = byte(27);
3232        isc_action_svc_drop_mapping = byte(28);
3233        isc_action_svc_display_user_adm = byte(29);
3234        isc_action_svc_validate = byte(30);
3235        isc_action_svc_last = byte(31);
3236        isc_info_svc_svr_db_info = byte(50);
3237        isc_info_svc_get_license = byte(51);
3238        isc_info_svc_get_license_mask = byte(52);
3239        isc_info_svc_get_config = byte(53);
3240        isc_info_svc_version = byte(54);
3241        isc_info_svc_server_version = byte(55);
3242        isc_info_svc_implementation = byte(56);
3243        isc_info_svc_capabilities = byte(57);
3244        isc_info_svc_user_dbpath = byte(58);
3245        isc_info_svc_get_env = byte(59);
3246        isc_info_svc_get_env_lock = byte(60);
3247        isc_info_svc_get_env_msg = byte(61);
3248        isc_info_svc_line = byte(62);
3249        isc_info_svc_to_eof = byte(63);
3250        isc_info_svc_timeout = byte(64);
3251        isc_info_svc_get_licensed_users = byte(65);
3252        isc_info_svc_limbo_trans = byte(66);
3253        isc_info_svc_running = byte(67);
3254        isc_info_svc_get_users = byte(68);
3255        isc_info_svc_auth_block = byte(69);
3256        isc_info_svc_stdin = byte(78);
3257        isc_spb_sec_userid = byte(5);
3258        isc_spb_sec_groupid = byte(6);
3259        isc_spb_sec_username = byte(7);
3260        isc_spb_sec_password = byte(8);
3261        isc_spb_sec_groupname = byte(9);
3262        isc_spb_sec_firstname = byte(10);
3263        isc_spb_sec_middlename = byte(11);
3264        isc_spb_sec_lastname = byte(12);
3265        isc_spb_sec_admin = byte(13);
3266        isc_spb_lic_key = byte(5);
3267        isc_spb_lic_id = byte(6);
3268        isc_spb_lic_desc = byte(7);
3269        isc_spb_bkp_file = byte(5);
3270        isc_spb_bkp_factor = byte(6);
3271        isc_spb_bkp_length = byte(7);
3272        isc_spb_bkp_skip_data = byte(8);
3273        isc_spb_bkp_stat = byte(15);
3274        isc_spb_bkp_ignore_checksums = $01;
3275        isc_spb_bkp_ignore_limbo = $02;
3276        isc_spb_bkp_metadata_only = $04;
3277        isc_spb_bkp_no_garbage_collect = $08;
3278        isc_spb_bkp_old_descriptions = $10;
3279        isc_spb_bkp_non_transportable = $20;
3280        isc_spb_bkp_convert = $40;
3281        isc_spb_bkp_expand = $80;
3282        isc_spb_bkp_no_triggers = $8000;
3283        isc_spb_prp_page_buffers = byte(5);
3284        isc_spb_prp_sweep_interval = byte(6);
3285        isc_spb_prp_shutdown_db = byte(7);
3286        isc_spb_prp_deny_new_attachments = byte(9);
3287        isc_spb_prp_deny_new_transactions = byte(10);
3288        isc_spb_prp_reserve_space = byte(11);
3289        isc_spb_prp_write_mode = byte(12);
3290        isc_spb_prp_access_mode = byte(13);
3291        isc_spb_prp_set_sql_dialect = byte(14);
3292        isc_spb_prp_activate = $0100;
3293        isc_spb_prp_db_online = $0200;
3294        isc_spb_prp_nolinger = $0400;
3295        isc_spb_prp_force_shutdown = byte(41);
3296        isc_spb_prp_attachments_shutdown = byte(42);
3297        isc_spb_prp_transactions_shutdown = byte(43);
3298        isc_spb_prp_shutdown_mode = byte(44);
3299        isc_spb_prp_online_mode = byte(45);
3300        isc_spb_prp_sm_normal = byte(0);
3301        isc_spb_prp_sm_multi = byte(1);
3302        isc_spb_prp_sm_single = byte(2);
3303        isc_spb_prp_sm_full = byte(3);
3304        isc_spb_prp_res_use_full = byte(35);
3305        isc_spb_prp_res = byte(36);
3306        isc_spb_prp_wm_async = byte(37);
3307        isc_spb_prp_wm_sync = byte(38);
3308        isc_spb_prp_am_readonly = byte(39);
3309        isc_spb_prp_am_readwrite = byte(40);
3310        isc_spb_rpr_commit_trans = byte(15);
3311        isc_spb_rpr_rollback_trans = byte(34);
3312        isc_spb_rpr_recover_two_phase = byte(17);
3313        isc_spb_tra_id = byte(18);
3314        isc_spb_single_tra_id = byte(19);
3315        isc_spb_multi_tra_id = byte(20);
3316        isc_spb_tra_state = byte(21);
3317        isc_spb_tra_state_limbo = byte(22);
3318        isc_spb_tra_state_commit = byte(23);
3319        isc_spb_tra_state_rollback = byte(24);
3320        isc_spb_tra_state_unknown = byte(25);
3321        isc_spb_tra_host_site = byte(26);
3322        isc_spb_tra_remote_site = byte(27);
3323        isc_spb_tra_db_path = byte(28);
3324        isc_spb_tra_advise = byte(29);
3325        isc_spb_tra_advise_commit = byte(30);
3326        isc_spb_tra_advise_rollback = byte(31);
3327        isc_spb_tra_advise_unknown = byte(33);
3328        isc_spb_tra_id_64 = byte(46);
3329        isc_spb_single_tra_id_64 = byte(47);
3330        isc_spb_multi_tra_id_64 = byte(48);
3331        isc_spb_rpr_validate_db = $01;
3332        isc_spb_rpr_sweep_db = $02;
3333        isc_spb_rpr_mend_db = $04;
3334        isc_spb_rpr_list_limbo_trans = $08;
3335        isc_spb_rpr_check_db = $10;
3336        isc_spb_rpr_ignore_checksum = $20;
3337        isc_spb_rpr_kill_shadows = $40;
3338        isc_spb_rpr_full = $80;
3339        isc_spb_rpr_icu = $0800;
3340        isc_spb_res_buffers = byte(9);
3341        isc_spb_res_page_size = byte(10);
3342        isc_spb_res_length = byte(11);
3343        isc_spb_res_access_mode = byte(12);
3344        isc_spb_res_fix_fss_data = byte(13);
3345        isc_spb_res_fix_fss_metadata = byte(14);
3346        isc_spb_res_deactivate_idx = $0100;
3347        isc_spb_res_no_shadow = $0200;
3348        isc_spb_res_no_validity = $0400;
3349        isc_spb_res_one_at_a_time = $0800;
3350        isc_spb_res_replace = $1000;
3351        isc_spb_res_create = $2000;
3352        isc_spb_res_use_all_space = $4000;
3353        isc_spb_val_tab_incl = byte(1);
3354        isc_spb_val_tab_excl = byte(2);
3355        isc_spb_val_idx_incl = byte(3);
3356        isc_spb_val_idx_excl = byte(4);
3357        isc_spb_val_lock_timeout = byte(5);
3358        isc_spb_num_att = byte(5);
3359        isc_spb_num_db = byte(6);
3360        isc_spb_sts_table = byte(64);
3361        isc_spb_sts_data_pages = $01;
3362        isc_spb_sts_db_log = $02;
3363        isc_spb_sts_hdr_pages = $04;
3364        isc_spb_sts_idx_pages = $08;
3365        isc_spb_sts_sys_relations = $10;
3366        isc_spb_sts_record_versions = $20;
3367        isc_spb_sts_nocreation = $80;
3368        isc_spb_sts_encryption = $100;
3369        isc_spb_nbk_level = byte(5);
3370        isc_spb_nbk_file = byte(6);
3371        isc_spb_nbk_direct = byte(7);
3372        isc_spb_nbk_no_triggers = $01;
3373        isc_spb_trc_id = byte(1);
3374        isc_spb_trc_name = byte(2);
3375        isc_spb_trc_cfg = byte(3);
3376        isc_sdl_version1 = byte(1);
3377        isc_sdl_eoc = byte(255);
3378        isc_sdl_relation = byte(2);
3379        isc_sdl_rid = byte(3);
3380        isc_sdl_field = byte(4);
3381        isc_sdl_fid = byte(5);
3382        isc_sdl_struct = byte(6);
3383        isc_sdl_variable = byte(7);
3384        isc_sdl_scalar = byte(8);
3385        isc_sdl_tiny_integer = byte(9);
3386        isc_sdl_short_integer = byte(10);
3387        isc_sdl_long_integer = byte(11);
3388        isc_sdl_add = byte(13);
3389        isc_sdl_subtract = byte(14);
3390        isc_sdl_multiply = byte(15);
3391        isc_sdl_divide = byte(16);
3392        isc_sdl_negate = byte(17);
3393        isc_sdl_begin = byte(31);
3394        isc_sdl_end = byte(32);
3395        isc_sdl_do3 = byte(33);
3396        isc_sdl_do2 = byte(34);
3397        isc_sdl_do1 = byte(35);
3398        isc_sdl_element = byte(36);
3399        isc_blob_untyped = byte(0);
3400        isc_blob_text = byte(1);
3401        isc_blob_blr = byte(2);
3402        isc_blob_acl = byte(3);
3403        isc_blob_ranges = byte(4);
3404        isc_blob_summary = byte(5);
3405        isc_blob_format = byte(6);
3406        isc_blob_tra = byte(7);
3407        isc_blob_extfile = byte(8);
3408        isc_blob_debug_info = byte(9);
3409        isc_blob_max_predefined_subtype = byte(10);
3410        fb_shut_confirmation = byte(1);
3411        fb_shut_preproviders = byte(2);
3412        fb_shut_postproviders = byte(4);
3413        fb_shut_finish = byte(8);
3414        fb_shut_exit = byte(16);
3415        fb_cancel_disable = byte(1);
3416        fb_cancel_enable = byte(2);
3417        fb_cancel_raise = byte(3);
3418        fb_cancel_abort = byte(4);
3419        fb_dbg_version = byte(1);
3420        fb_dbg_end = byte(255);
3421        fb_dbg_map_src2blr = byte(2);
3422        fb_dbg_map_varname = byte(3);
3423        fb_dbg_map_argument = byte(4);
3424        fb_dbg_subproc = byte(5);
3425        fb_dbg_subfunc = byte(6);
3426        fb_dbg_map_curname = byte(7);
3427        fb_dbg_arg_input = byte(0);
3428        fb_dbg_arg_output = byte(1);}
3429        isc_facility            = 20;
3430        isc_err_base            = 335544320;
3431        isc_err_factor          = 1;
3432        isc_arg_end             = 0;    (* end of argument list *)
3433        isc_arg_gds             = 1;    (* generic DSRI status value *)
3434        isc_arg_string          = 2;    (* string argument *)
3435        isc_arg_cstring         = 3;    (* count & string argument *)
3436        isc_arg_number          = 4;    (* numeric argument (long) *)
3437        isc_arg_interpreted     = 5;    (* interpreted status code (string) *)
3438        isc_arg_vms             = 6;    (* VAX/VMS status code (long) *)
3439        isc_arg_unix            = 7;    (* UNIX error code *)
3440        isc_arg_domain          = 8;    (* Apollo/Domain error code *)
3441        isc_arg_dos             = 9;    (* MSDOS/OS2 error code *)
3442 {       isc_arith_except                     = 335544321;
3443        isc_bad_dbkey                        = 335544322;
3444        isc_bad_db_format                    = 335544323;
3445        isc_bad_db_handle                    = 335544324;
3446        isc_bad_dpb_content                  = 335544325;
3447        isc_bad_dpb_form                     = 335544326;
3448        isc_bad_req_handle                   = 335544327;
3449        isc_bad_segstr_handle                = 335544328;
3450        isc_bad_segstr_id                    = 335544329;
3451        isc_bad_tpb_content                  = 335544330;
3452        isc_bad_tpb_form                     = 335544331;
3453        isc_bad_trans_handle                 = 335544332;
3454        isc_bug_check                        = 335544333;
3455        isc_convert_error                    = 335544334;
3456        isc_db_corrupt                       = 335544335;
3457        isc_deadlock                         = 335544336;
3458        isc_excess_trans                     = 335544337;
3459        isc_from_no_match                    = 335544338;
3460        isc_infinap                          = 335544339;
3461        isc_infona                           = 335544340;
3462        isc_infunk                           = 335544341;
3463        isc_integ_fail                       = 335544342;
3464        isc_invalid_blr                      = 335544343;
3465        isc_io_error                         = 335544344;
3466        isc_lock_conflict                    = 335544345;
3467        isc_metadata_corrupt                 = 335544346;
3468        isc_not_valid                        = 335544347;
3469        isc_no_cur_rec                       = 335544348;
3470        isc_no_dup                           = 335544349;
3471        isc_no_finish                        = 335544350;
3472        isc_no_meta_update                   = 335544351;
3473        isc_no_priv                          = 335544352;
3474        isc_no_recon                         = 335544353;
3475        isc_no_record                        = 335544354;
3476        isc_no_segstr_close                  = 335544355;
3477        isc_obsolete_metadata                = 335544356;
3478        isc_open_trans                       = 335544357;
3479        isc_port_len                         = 335544358;
3480        isc_read_only_field                  = 335544359;
3481        isc_read_only_rel                    = 335544360;
3482        isc_read_only_trans                  = 335544361;
3483        isc_read_only_view                   = 335544362;
3484        isc_req_no_trans                     = 335544363;
3485        isc_req_sync                         = 335544364;
3486        isc_req_wrong_db                     = 335544365;
3487        isc_segment                          = 335544366;
3488        isc_segstr_eof                       = 335544367;
3489        isc_segstr_no_op                     = 335544368;
3490        isc_segstr_no_read                   = 335544369;
3491        isc_segstr_no_trans                  = 335544370;
3492        isc_segstr_no_write                  = 335544371;
3493        isc_segstr_wrong_db                  = 335544372;
3494        isc_sys_request                      = 335544373;
3495        isc_stream_eof                       = 335544374;
3496        isc_unavailable                      = 335544375;
3497        isc_unres_rel                        = 335544376;
3498        isc_uns_ext                          = 335544377;
3499        isc_wish_list                        = 335544378;
3500        isc_wrong_ods                        = 335544379;
3501        isc_wronumarg                        = 335544380;
3502        isc_imp_exc                          = 335544381;
3503        isc_random                           = 335544382;
3504        isc_fatal_conflict                   = 335544383;
3505        isc_badblk                           = 335544384;
3506        isc_invpoolcl                        = 335544385;
3507        isc_nopoolids                        = 335544386;
3508        isc_relbadblk                        = 335544387;
3509        isc_blktoobig                        = 335544388;
3510        isc_bufexh                           = 335544389;
3511        isc_syntaxerr                        = 335544390;
3512        isc_bufinuse                         = 335544391;
3513        isc_bdbincon                         = 335544392;
3514        isc_reqinuse                         = 335544393;
3515        isc_badodsver                        = 335544394;
3516        isc_relnotdef                        = 335544395;
3517        isc_fldnotdef                        = 335544396;
3518        isc_dirtypage                        = 335544397;
3519        isc_waifortra                        = 335544398;
3520        isc_doubleloc                        = 335544399;
3521        isc_nodnotfnd                        = 335544400;
3522        isc_dupnodfnd                        = 335544401;
3523        isc_locnotmar                        = 335544402;
3524        isc_badpagtyp                        = 335544403;
3525        isc_corrupt                          = 335544404;
3526        isc_badpage                          = 335544405;
3527        isc_badindex                         = 335544406;
3528        isc_dbbnotzer                        = 335544407;
3529        isc_tranotzer                        = 335544408;
3530        isc_trareqmis                        = 335544409;
3531        isc_badhndcnt                        = 335544410;
3532        isc_wrotpbver                        = 335544411;
3533        isc_wroblrver                        = 335544412;
3534        isc_wrodpbver                        = 335544413;
3535        isc_blobnotsup                       = 335544414;
3536        isc_badrelation                      = 335544415;
3537        isc_nodetach                         = 335544416;
3538        isc_notremote                        = 335544417;
3539        isc_trainlim                         = 335544418;
3540        isc_notinlim                         = 335544419;
3541        isc_traoutsta                        = 335544420;
3542        isc_connect_reject                   = 335544421;
3543        isc_dbfile                           = 335544422;
3544        isc_orphan                           = 335544423;
3545        isc_no_lock_mgr                      = 335544424;
3546        isc_ctxinuse                         = 335544425;
3547        isc_ctxnotdef                        = 335544426;
3548        isc_datnotsup                        = 335544427;
3549        isc_badmsgnum                        = 335544428;
3550        isc_badparnum                        = 335544429;
3551        isc_virmemexh                        = 335544430;
3552        isc_blocking_signal                  = 335544431;
3553        isc_lockmanerr                       = 335544432;
3554        isc_journerr                         = 335544433;
3555        isc_keytoobig                        = 335544434;
3556        isc_nullsegkey                       = 335544435;
3557        isc_sqlerr                           = 335544436;
3558        isc_wrodynver                        = 335544437;
3559        isc_funnotdef                        = 335544438;
3560        isc_funmismat                        = 335544439;
3561        isc_bad_msg_vec                      = 335544440;
3562        isc_bad_detach                       = 335544441;
3563        isc_noargacc_read                    = 335544442;
3564        isc_noargacc_write                   = 335544443;
3565        isc_read_only                        = 335544444;
3566        isc_ext_err                          = 335544445;
3567        isc_non_updatable                    = 335544446;
3568        isc_no_rollback                      = 335544447;
3569        isc_bad_sec_info                     = 335544448;
3570        isc_invalid_sec_info                 = 335544449;
3571        isc_misc_interpreted                 = 335544450;
3572        isc_update_conflict                  = 335544451;
3573        isc_unlicensed                       = 335544452;
3574        isc_obj_in_use                       = 335544453;
3575        isc_nofilter                         = 335544454;
3576        isc_shadow_accessed                  = 335544455;
3577        isc_invalid_sdl                      = 335544456;
3578        isc_out_of_bounds                    = 335544457;
3579        isc_invalid_dimension                = 335544458;
3580        isc_rec_in_limbo                     = 335544459;
3581        isc_shadow_missing                   = 335544460;
3582        isc_cant_validate                    = 335544461;
3583        isc_cant_start_journal               = 335544462;
3584        isc_gennotdef                        = 335544463;
3585        isc_cant_start_logging               = 335544464;
3586        isc_bad_segstr_type                  = 335544465;
3587        isc_foreign_key                      = 335544466;
3588        isc_high_minor                       = 335544467;
3589        isc_tra_state                        = 335544468;
3590        isc_trans_invalid                    = 335544469;
3591        isc_buf_invalid                      = 335544470;
3592        isc_indexnotdefined                  = 335544471;
3593        isc_login                            = 335544472;
3594        isc_invalid_bookmark                 = 335544473;
3595        isc_bad_lock_level                   = 335544474;
3596        isc_relation_lock                    = 335544475;
3597        isc_record_lock                      = 335544476;
3598        isc_max_idx                          = 335544477;
3599        isc_jrn_enable                       = 335544478;
3600        isc_old_failure                      = 335544479;
3601        isc_old_in_progress                  = 335544480;
3602        isc_old_no_space                     = 335544481;
3603        isc_no_wal_no_jrn                    = 335544482;
3604        isc_num_old_files                    = 335544483;
3605        isc_wal_file_open                    = 335544484;
3606        isc_bad_stmt_handle                  = 335544485;
3607        isc_wal_failure                      = 335544486;
3608        isc_walw_err                         = 335544487;
3609        isc_logh_small                       = 335544488;
3610        isc_logh_inv_version                 = 335544489;
3611        isc_logh_open_flag                   = 335544490;
3612        isc_logh_open_flag2                  = 335544491;
3613        isc_logh_diff_dbname                 = 335544492;
3614        isc_logf_unexpected_eof              = 335544493;
3615        isc_logr_incomplete                  = 335544494;
3616        isc_logr_header_small                = 335544495;
3617        isc_logb_small                       = 335544496;
3618        isc_wal_illegal_attach               = 335544497;
3619        isc_wal_invalid_wpb                  = 335544498;
3620        isc_wal_err_rollover                 = 335544499;
3621        isc_no_wal                           = 335544500;
3622        isc_drop_wal                         = 335544501;
3623        isc_stream_not_defined               = 335544502;
3624        isc_wal_subsys_error                 = 335544503;
3625        isc_wal_subsys_corrupt               = 335544504;
3626        isc_no_archive                       = 335544505;
3627        isc_shutinprog                       = 335544506;
3628        isc_range_in_use                     = 335544507;
3629        isc_range_not_found                  = 335544508;
3630        isc_charset_not_found                = 335544509;
3631        isc_lock_timeout                     = 335544510;
3632        isc_prcnotdef                        = 335544511;
3633        isc_prcmismat                        = 335544512;
3634        isc_wal_bugcheck                     = 335544513;
3635        isc_wal_cant_expand                  = 335544514;
3636        isc_codnotdef                        = 335544515;
3637        isc_xcpnotdef                        = 335544516;
3638        isc_except                           = 335544517;
3639        isc_cache_restart                    = 335544518;
3640        isc_bad_lock_handle                  = 335544519;
3641        isc_jrn_present                      = 335544520;
3642        isc_wal_err_rollover2                = 335544521;
3643        isc_wal_err_logwrite                 = 335544522;
3644        isc_wal_err_jrn_comm                 = 335544523;
3645        isc_wal_err_expansion                = 335544524;
3646        isc_wal_err_setup                    = 335544525;
3647        isc_wal_err_ww_sync                  = 335544526;
3648        isc_wal_err_ww_start                 = 335544527;
3649        isc_shutdown                         = 335544528;
3650        isc_existing_priv_mod                = 335544529;
3651        isc_primary_key_ref                  = 335544530;
3652        isc_primary_key_notnull              = 335544531;
3653        isc_ref_cnstrnt_notfound             = 335544532;
3654        isc_foreign_key_notfound             = 335544533;
3655        isc_ref_cnstrnt_update               = 335544534;
3656        isc_check_cnstrnt_update             = 335544535;
3657        isc_check_cnstrnt_del                = 335544536;
3658        isc_integ_index_seg_del              = 335544537;
3659        isc_integ_index_seg_mod              = 335544538;
3660        isc_integ_index_del                  = 335544539;
3661        isc_integ_index_mod                  = 335544540;
3662        isc_check_trig_del                   = 335544541;
3663        isc_check_trig_update                = 335544542;
3664        isc_cnstrnt_fld_del                  = 335544543;
3665        isc_cnstrnt_fld_rename               = 335544544;
3666        isc_rel_cnstrnt_update               = 335544545;
3667        isc_constaint_on_view                = 335544546;
3668        isc_invld_cnstrnt_type               = 335544547;
3669        isc_primary_key_exists               = 335544548;
3670        isc_systrig_update                   = 335544549;
3671        isc_not_rel_owner                    = 335544550;
3672        isc_grant_obj_notfound               = 335544551;
3673        isc_grant_fld_notfound               = 335544552;
3674        isc_grant_nopriv                     = 335544553;
3675        isc_nonsql_security_rel              = 335544554;
3676        isc_nonsql_security_fld              = 335544555;
3677        isc_wal_cache_err                    = 335544556;
3678        isc_shutfail                         = 335544557;
3679        isc_check_constraint                 = 335544558;
3680        isc_bad_svc_handle                   = 335544559;
3681        isc_shutwarn                         = 335544560;
3682        isc_wrospbver                        = 335544561;
3683        isc_bad_spb_form                     = 335544562;
3684        isc_svcnotdef                        = 335544563;
3685        isc_no_jrn                           = 335544564;
3686        isc_transliteration_failed           = 335544565;
3687        isc_start_cm_for_wal                 = 335544566;
3688        isc_wal_ovflow_log_required          = 335544567;
3689        isc_text_subtype                     = 335544568;
3690        isc_dsql_error                       = 335544569;
3691        isc_dsql_command_err                 = 335544570;
3692        isc_dsql_constant_err                = 335544571;
3693        isc_dsql_cursor_err                  = 335544572;
3694        isc_dsql_datatype_err                = 335544573;
3695        isc_dsql_decl_err                    = 335544574;
3696        isc_dsql_cursor_update_err           = 335544575;
3697        isc_dsql_cursor_open_err             = 335544576;
3698        isc_dsql_cursor_close_err            = 335544577;
3699        isc_dsql_field_err                   = 335544578;
3700        isc_dsql_internal_err                = 335544579;
3701        isc_dsql_relation_err                = 335544580;
3702        isc_dsql_procedure_err               = 335544581;
3703        isc_dsql_request_err                 = 335544582;
3704        isc_dsql_sqlda_err                   = 335544583;
3705        isc_dsql_var_count_err               = 335544584;
3706        isc_dsql_stmt_handle                 = 335544585;
3707        isc_dsql_function_err                = 335544586;
3708        isc_dsql_blob_err                    = 335544587;
3709        isc_collation_not_found              = 335544588;
3710        isc_collation_not_for_charset        = 335544589;
3711        isc_dsql_dup_option                  = 335544590;
3712        isc_dsql_tran_err                    = 335544591;
3713        isc_dsql_invalid_array               = 335544592;
3714        isc_dsql_max_arr_dim_exceeded        = 335544593;
3715        isc_dsql_arr_range_error             = 335544594;
3716        isc_dsql_trigger_err                 = 335544595;
3717        isc_dsql_subselect_err               = 335544596;
3718        isc_dsql_crdb_prepare_err            = 335544597;
3719        isc_specify_field_err                = 335544598;
3720        isc_num_field_err                    = 335544599;
3721        isc_col_name_err                     = 335544600;
3722        isc_where_err                        = 335544601;
3723        isc_table_view_err                   = 335544602;
3724        isc_distinct_err                     = 335544603;
3725        isc_key_field_count_err              = 335544604;
3726        isc_subquery_err                     = 335544605;
3727        isc_expression_eval_err              = 335544606;
3728        isc_node_err                         = 335544607;
3729        isc_command_end_err                  = 335544608;
3730        isc_index_name                       = 335544609;
3731        isc_exception_name                   = 335544610;
3732        isc_field_name                       = 335544611;
3733        isc_token_err                        = 335544612;
3734        isc_union_err                        = 335544613;
3735        isc_dsql_construct_err               = 335544614;
3736        isc_field_aggregate_err              = 335544615;
3737        isc_field_ref_err                    = 335544616;
3738        isc_order_by_err                     = 335544617;
3739        isc_return_mode_err                  = 335544618;
3740        isc_extern_func_err                  = 335544619;
3741        isc_alias_conflict_err               = 335544620;
3742        isc_procedure_conflict_error         = 335544621;
3743        isc_relation_conflict_err            = 335544622;
3744        isc_dsql_domain_err                  = 335544623;
3745        isc_idx_seg_err                      = 335544624;
3746        isc_node_name_err                    = 335544625;
3747        isc_table_name                       = 335544626;
3748        isc_proc_name                        = 335544627;
3749        isc_idx_create_err                   = 335544628;
3750        isc_wal_shadow_err                   = 335544629;
3751        isc_dependency                       = 335544630;
3752        isc_idx_key_err                      = 335544631;
3753        isc_dsql_file_length_err             = 335544632;
3754        isc_dsql_shadow_number_err           = 335544633;
3755        isc_dsql_token_unk_err               = 335544634;
3756        isc_dsql_no_relation_alias           = 335544635;
3757        isc_indexname                        = 335544636;
3758        isc_no_stream_plan                   = 335544637;
3759        isc_stream_twice                     = 335544638;
3760        isc_stream_not_found                 = 335544639;
3761        isc_collation_requires_text          = 335544640;
3762        isc_dsql_domain_not_found            = 335544641;
3763        isc_index_unused                     = 335544642;
3764        isc_dsql_self_join                   = 335544643;
3765        isc_stream_bof                       = 335544644;
3766        isc_stream_crack                     = 335544645;
3767        isc_db_or_file_exists                = 335544646;
3768        isc_invalid_operator                 = 335544647;
3769        isc_conn_lost                        = 335544648;
3770        isc_bad_checksum                     = 335544649;
3771        isc_page_type_err                    = 335544650;
3772        isc_ext_readonly_err                 = 335544651;
3773        isc_sing_select_err                  = 335544652;
3774        isc_psw_attach                       = 335544653;
3775        isc_psw_start_trans                  = 335544654;
3776        isc_invalid_direction                = 335544655;
3777        isc_dsql_var_conflict                = 335544656;
3778        isc_dsql_no_blob_array               = 335544657;
3779        isc_dsql_base_table                  = 335544658;
3780        isc_duplicate_base_table             = 335544659;
3781        isc_view_alias                       = 335544660;
3782        isc_index_root_page_full             = 335544661;
3783        isc_dsql_blob_type_unknown           = 335544662;
3784        isc_req_max_clones_exceeded          = 335544663;
3785        isc_dsql_duplicate_spec              = 335544664;
3786        isc_unique_key_violation             = 335544665;
3787        isc_srvr_version_too_old             = 335544666;
3788        isc_drdb_completed_with_errs         = 335544667;
3789        isc_dsql_procedure_use_err           = 335544668;
3790        isc_dsql_count_mismatch              = 335544669;
3791        isc_blob_idx_err                     = 335544670;
3792        isc_array_idx_err                    = 335544671;
3793        isc_key_field_err                    = 335544672;
3794        isc_no_delete                        = 335544673;
3795        isc_del_last_field                   = 335544674;
3796        isc_sort_err                         = 335544675;
3797        isc_sort_mem_err                     = 335544676;
3798        isc_version_err                      = 335544677;
3799        isc_inval_key_posn                   = 335544678;
3800        isc_no_segments_err                  = 335544679;
3801        isc_crrp_data_err                    = 335544680;
3802        isc_rec_size_err                     = 335544681;
3803        isc_dsql_field_ref                   = 335544682;
3804        isc_req_depth_exceeded               = 335544683;
3805        isc_no_field_access                  = 335544684;
3806        isc_no_dbkey                         = 335544685;
3807        isc_jrn_format_err                   = 335544686;
3808        isc_jrn_file_full                    = 335544687;
3809        isc_dsql_open_cursor_request         = 335544688;
3810        isc_ib_error                         = 335544689;
3811        isc_cache_redef                      = 335544690;
3812        isc_cache_too_small                  = 335544691;
3813        isc_log_redef                        = 335544692;
3814        isc_log_too_small                    = 335544693;
3815        isc_partition_too_small              = 335544694;
3816        isc_partition_not_supp               = 335544695;
3817        isc_log_length_spec                  = 335544696;
3818        isc_precision_err                    = 335544697;
3819        isc_scale_nogt                       = 335544698;
3820        isc_expec_short                      = 335544699;
3821        isc_expec_long                       = 335544700;
3822        isc_expec_ushort                     = 335544701;
3823        isc_escape_invalid                   = 335544702;
3824        isc_svcnoexe                         = 335544703;
3825        isc_net_lookup_err                   = 335544704;
3826        isc_service_unknown                  = 335544705;
3827        isc_host_unknown                     = 335544706;
3828        isc_grant_nopriv_on_base             = 335544707;
3829        isc_dyn_fld_ambiguous                = 335544708;
3830        isc_dsql_agg_ref_err                 = 335544709;
3831        isc_complex_view                     = 335544710;
3832        isc_unprepared_stmt                  = 335544711;
3833        isc_expec_positive                   = 335544712;
3834        isc_dsql_sqlda_value_err             = 335544713;
3835        isc_invalid_array_id                 = 335544714;
3836        isc_extfile_uns_op                   = 335544715;
3837        isc_svc_in_use                       = 335544716;
3838        isc_err_stack_limit                  = 335544717;
3839        isc_invalid_key                      = 335544718;
3840        isc_net_init_error                   = 335544719;
3841        isc_loadlib_failure                  = 335544720;
3842        isc_network_error                    = 335544721;
3843        isc_net_connect_err                  = 335544722;
3844        isc_net_connect_listen_err           = 335544723;
3845        isc_net_event_connect_err            = 335544724;
3846        isc_net_event_listen_err             = 335544725;
3847        isc_net_read_err                     = 335544726;
3848        isc_net_write_err                    = 335544727;
3849        isc_integ_index_deactivate           = 335544728;
3850        isc_integ_deactivate_primary         = 335544729;
3851        isc_cse_not_supported                = 335544730;
3852        isc_tra_must_sweep                   = 335544731;
3853        isc_unsupported_network_drive        = 335544732;
3854        isc_io_create_err                    = 335544733;
3855        isc_io_open_err                      = 335544734;
3856        isc_io_close_err                     = 335544735;
3857        isc_io_read_err                      = 335544736;
3858        isc_io_write_err                     = 335544737;
3859        isc_io_delete_err                    = 335544738;
3860        isc_io_access_err                    = 335544739;
3861        isc_udf_exception                    = 335544740;
3862        isc_lost_db_connection               = 335544741;
3863        isc_no_write_user_priv               = 335544742;
3864        isc_token_too_long                   = 335544743;
3865        isc_max_att_exceeded                 = 335544744;
3866        isc_login_same_as_role_name          = 335544745;
3867        isc_reftable_requires_pk             = 335544746;
3868        isc_usrname_too_long                 = 335544747;
3869        isc_password_too_long                = 335544748;
3870        isc_usrname_required                 = 335544749;
3871        isc_password_required                = 335544750;
3872        isc_bad_protocol                     = 335544751;
3873        isc_dup_usrname_found                = 335544752;
3874        isc_usrname_not_found                = 335544753;
3875        isc_error_adding_sec_record          = 335544754;
3876        isc_error_modifying_sec_record       = 335544755;
3877        isc_error_deleting_sec_record        = 335544756;
3878        isc_error_updating_sec_db            = 335544757;
3879        isc_sort_rec_size_err                = 335544758;
3880        isc_bad_default_value                = 335544759;
3881        isc_invalid_clause                   = 335544760;
3882        isc_too_many_handles                 = 335544761;
3883        isc_optimizer_blk_exc                = 335544762;
3884        isc_invalid_string_constant          = 335544763;
3885        isc_transitional_date                = 335544764;
3886        isc_read_only_database               = 335544765;
3887        isc_must_be_dialect_2_and_up         = 335544766;
3888        isc_blob_filter_exception            = 335544767;
3889        isc_exception_access_violation       = 335544768;
3890        isc_exception_datatype_missalignment = 335544769;
3891        isc_exception_array_bounds_exceeded  = 335544770;
3892        isc_exception_float_denormal_operand = 335544771;
3893        isc_exception_float_divide_by_zero   = 335544772;
3894        isc_exception_float_inexact_result   = 335544773;
3895        isc_exception_float_invalid_operand  = 335544774;
3896        isc_exception_float_overflow         = 335544775;
3897        isc_exception_float_stack_check      = 335544776;
3898        isc_exception_float_underflow        = 335544777;
3899        isc_exception_integer_divide_by_zero = 335544778;
3900        isc_exception_integer_overflow       = 335544779;
3901        isc_exception_unknown                = 335544780;
3902        isc_exception_stack_overflow         = 335544781;
3903        isc_exception_sigsegv                = 335544782;
3904        isc_exception_sigill                 = 335544783;
3905        isc_exception_sigbus                 = 335544784;
3906        isc_exception_sigfpe                 = 335544785;
3907        isc_ext_file_delete                  = 335544786;
3908        isc_ext_file_modify                  = 335544787;
3909        isc_adm_task_denied                  = 335544788;
3910        isc_extract_input_mismatch           = 335544789;
3911        isc_insufficient_svc_privileges      = 335544790;
3912        isc_file_in_use                      = 335544791;
3913        isc_service_att_err                  = 335544792;
3914        isc_ddl_not_allowed_by_db_sql_dial   = 335544793;
3915        isc_cancelled                        = 335544794;
3916        isc_unexp_spb_form                   = 335544795;
3917        isc_sql_dialect_datatype_unsupport   = 335544796;
3918        isc_svcnouser                        = 335544797;
3919        isc_depend_on_uncommitted_rel        = 335544798;
3920        isc_svc_name_missing                 = 335544799;
3921        isc_too_many_contexts                = 335544800;
3922        isc_datype_notsup                    = 335544801;
3923        isc_dialect_reset_warning            = 335544802;
3924        isc_dialect_not_changed              = 335544803;
3925        isc_database_create_failed           = 335544804;
3926        isc_inv_dialect_specified            = 335544805;
3927        isc_valid_db_dialects                = 335544806;
3928        isc_sqlwarn                          = 335544807;
3929        isc_dtype_renamed                    = 335544808;
3930        isc_extern_func_dir_error            = 335544809;
3931        isc_date_range_exceeded              = 335544810;
3932        isc_inv_client_dialect_specified     = 335544811;
3933        isc_valid_client_dialects            = 335544812;
3934        isc_optimizer_between_err            = 335544813;
3935        isc_service_not_supported            = 335544814;
3936        isc_generator_name                   = 335544815;
3937        isc_udf_name                         = 335544816;
3938        isc_bad_limit_param                  = 335544817;
3939        isc_bad_skip_param                   = 335544818;
3940        isc_io_32bit_exceeded_err            = 335544819;
3941        isc_invalid_savepoint                = 335544820;
3942        isc_dsql_column_pos_err              = 335544821;
3943        isc_dsql_agg_where_err               = 335544822;
3944        isc_dsql_agg_group_err               = 335544823;
3945        isc_dsql_agg_column_err              = 335544824;
3946        isc_dsql_agg_having_err              = 335544825;
3947        isc_dsql_agg_nested_err              = 335544826;
3948        isc_exec_sql_invalid_arg             = 335544827;
3949        isc_exec_sql_invalid_req             = 335544828;
3950        isc_exec_sql_invalid_var             = 335544829;
3951        isc_exec_sql_max_call_exceeded       = 335544830;
3952        isc_conf_access_denied               = 335544831;
3953        isc_wrong_backup_state               = 335544832;
3954        isc_wal_backup_err                   = 335544833;
3955        isc_cursor_not_open                  = 335544834;
3956        isc_bad_shutdown_mode                = 335544835;
3957        isc_concat_overflow                  = 335544836;
3958        isc_bad_substring_offset             = 335544837;
3959        isc_foreign_key_target_doesnt_exist  = 335544838;
3960        isc_foreign_key_references_present   = 335544839;
3961        isc_no_update                        = 335544840;
3962        isc_cursor_already_open              = 335544841;
3963        isc_stack_trace                      = 335544842;
3964        isc_ctx_var_not_found                = 335544843;
3965        isc_ctx_namespace_invalid            = 335544844;
3966        isc_ctx_too_big                      = 335544845;
3967        isc_ctx_bad_argument                 = 335544846;
3968        isc_identifier_too_long              = 335544847;
3969        isc_except2                          = 335544848;
3970        isc_malformed_string                 = 335544849;
3971        isc_prc_out_param_mismatch           = 335544850;
3972        isc_command_end_err2                 = 335544851;
3973        isc_partner_idx_incompat_type        = 335544852;
3974        isc_bad_substring_length             = 335544853;
3975        isc_charset_not_installed            = 335544854;
3976        isc_collation_not_installed          = 335544855;
3977        isc_att_shutdown                     = 335544856;
3978        isc_blobtoobig                       = 335544857;
3979        isc_must_have_phys_field             = 335544858;
3980        isc_invalid_time_precision           = 335544859;
3981        isc_blob_convert_error               = 335544860;
3982        isc_array_convert_error              = 335544861;
3983        isc_record_lock_not_supp             = 335544862;
3984        isc_partner_idx_not_found            = 335544863;
3985        isc_tra_num_exc                      = 335544864;
3986        isc_field_disappeared                = 335544865;
3987        isc_met_wrong_gtt_scope              = 335544866;
3988        isc_subtype_for_internal_use         = 335544867;
3989        isc_illegal_prc_type                 = 335544868;
3990        isc_invalid_sort_datatype            = 335544869;
3991        isc_collation_name                   = 335544870;
3992        isc_domain_name                      = 335544871;
3993        isc_domnotdef                        = 335544872;
3994        isc_array_max_dimensions             = 335544873;
3995        isc_max_db_per_trans_allowed         = 335544874;
3996        isc_bad_debug_format                 = 335544875;
3997        isc_bad_proc_BLR                     = 335544876;
3998        isc_key_too_big                      = 335544877;
3999        isc_concurrent_transaction           = 335544878;
4000        isc_not_valid_for_var                = 335544879;
4001        isc_not_valid_for                    = 335544880;
4002        isc_need_difference                  = 335544881;
4003        isc_long_login                       = 335544882;
4004        isc_fldnotdef2                       = 335544883;
4005        isc_invalid_similar_pattern          = 335544884;
4006        isc_bad_teb_form                     = 335544885;
4007        isc_tpb_multiple_txn_isolation       = 335544886;
4008        isc_tpb_reserv_before_table          = 335544887;
4009        isc_tpb_multiple_spec                = 335544888;
4010        isc_tpb_option_without_rc            = 335544889;
4011        isc_tpb_conflicting_options          = 335544890;
4012        isc_tpb_reserv_missing_tlen          = 335544891;
4013        isc_tpb_reserv_long_tlen             = 335544892;
4014        isc_tpb_reserv_missing_tname         = 335544893;
4015        isc_tpb_reserv_corrup_tlen           = 335544894;
4016        isc_tpb_reserv_null_tlen             = 335544895;
4017        isc_tpb_reserv_relnotfound           = 335544896;
4018        isc_tpb_reserv_baserelnotfound       = 335544897;
4019        isc_tpb_missing_len                  = 335544898;
4020        isc_tpb_missing_value                = 335544899;
4021        isc_tpb_corrupt_len                  = 335544900;
4022        isc_tpb_null_len                     = 335544901;
4023        isc_tpb_overflow_len                 = 335544902;
4024        isc_tpb_invalid_value                = 335544903;
4025        isc_tpb_reserv_stronger_wng          = 335544904;
4026        isc_tpb_reserv_stronger              = 335544905;
4027        isc_tpb_reserv_max_recursion         = 335544906;
4028        isc_tpb_reserv_virtualtbl            = 335544907;
4029        isc_tpb_reserv_systbl                = 335544908;
4030        isc_tpb_reserv_temptbl               = 335544909;
4031        isc_tpb_readtxn_after_writelock      = 335544910;
4032        isc_tpb_writelock_after_readtxn      = 335544911;
4033        isc_time_range_exceeded              = 335544912;
4034        isc_datetime_range_exceeded          = 335544913;
4035        isc_string_truncation                = 335544914;
4036        isc_blob_truncation                  = 335544915;
4037        isc_numeric_out_of_range             = 335544916;
4038        isc_shutdown_timeout                 = 335544917;
4039        isc_att_handle_busy                  = 335544918;
4040        isc_bad_udf_freeit                   = 335544919;
4041        isc_eds_provider_not_found           = 335544920;
4042        isc_eds_connection                   = 335544921;
4043        isc_eds_preprocess                   = 335544922;
4044        isc_eds_stmt_expected                = 335544923;
4045        isc_eds_prm_name_expected            = 335544924;
4046        isc_eds_unclosed_comment             = 335544925;
4047        isc_eds_statement                    = 335544926;
4048        isc_eds_input_prm_mismatch           = 335544927;
4049        isc_eds_output_prm_mismatch          = 335544928;
4050        isc_eds_input_prm_not_set            = 335544929;
4051        isc_too_big_blr                      = 335544930;
4052        isc_montabexh                        = 335544931;
4053        isc_modnotfound                      = 335544932;
4054        isc_nothing_to_cancel                = 335544933;
4055        isc_ibutil_not_loaded                = 335544934;
4056        isc_circular_computed                = 335544935;
4057        isc_psw_db_error                     = 335544936;
4058        isc_invalid_type_datetime_op         = 335544937;
4059        isc_onlycan_add_timetodate           = 335544938;
4060        isc_onlycan_add_datetotime           = 335544939;
4061        isc_onlycansub_tstampfromtstamp      = 335544940;
4062        isc_onlyoneop_mustbe_tstamp          = 335544941;
4063        isc_invalid_extractpart_time         = 335544942;
4064        isc_invalid_extractpart_date         = 335544943;
4065        isc_invalidarg_extract               = 335544944;
4066        isc_sysf_argmustbe_exact             = 335544945;
4067        isc_sysf_argmustbe_exact_or_fp       = 335544946;
4068        isc_sysf_argviolates_uuidtype        = 335544947;
4069        isc_sysf_argviolates_uuidlen         = 335544948;
4070        isc_sysf_argviolates_uuidfmt         = 335544949;
4071        isc_sysf_argviolates_guidigits       = 335544950;
4072        isc_sysf_invalid_addpart_time        = 335544951;
4073        isc_sysf_invalid_add_datetime        = 335544952;
4074        isc_sysf_invalid_addpart_dtime       = 335544953;
4075        isc_sysf_invalid_add_dtime_rc        = 335544954;
4076        isc_sysf_invalid_diff_dtime          = 335544955;
4077        isc_sysf_invalid_timediff            = 335544956;
4078        isc_sysf_invalid_tstamptimediff      = 335544957;
4079        isc_sysf_invalid_datetimediff        = 335544958;
4080        isc_sysf_invalid_diffpart            = 335544959;
4081        isc_sysf_argmustbe_positive          = 335544960;
4082        isc_sysf_basemustbe_positive         = 335544961;
4083        isc_sysf_argnmustbe_nonneg           = 335544962;
4084        isc_sysf_argnmustbe_positive         = 335544963;
4085        isc_sysf_invalid_zeropowneg          = 335544964;
4086        isc_sysf_invalid_negpowfp            = 335544965;
4087        isc_sysf_invalid_scale               = 335544966;
4088        isc_sysf_argmustbe_nonneg            = 335544967;
4089        isc_sysf_binuuid_mustbe_str          = 335544968;
4090        isc_sysf_binuuid_wrongsize           = 335544969;
4091        isc_missing_required_spb             = 335544970;
4092        isc_net_server_shutdown              = 335544971;
4093        isc_bad_conn_str                     = 335544972;
4094        isc_bad_epb_form                     = 335544973;
4095        isc_no_threads                       = 335544974;
4096        isc_net_event_connect_timeout        = 335544975;
4097        isc_sysf_argmustbe_nonzero           = 335544976;
4098        isc_sysf_argmustbe_range_inc1_1      = 335544977;
4099        isc_sysf_argmustbe_gteq_one          = 335544978;
4100        isc_sysf_argmustbe_range_exc1_1      = 335544979;
4101        isc_internal_rejected_params         = 335544980;
4102        isc_sysf_fp_overflow                 = 335544981;
4103        isc_udf_fp_overflow                  = 335544982;
4104        isc_udf_fp_nan                       = 335544983;
4105        isc_instance_conflict                = 335544984;
4106        isc_out_of_temp_space                = 335544985;
4107        isc_eds_expl_tran_ctrl               = 335544986;
4108        isc_no_trusted_spb                   = 335544987;
4109        isc_package_name                     = 335544988;
4110        isc_cannot_make_not_null             = 335544989;
4111        isc_feature_removed                  = 335544990;
4112        isc_view_name                        = 335544991;
4113        isc_lock_dir_access                  = 335544992;
4114        isc_invalid_fetch_option             = 335544993;
4115        isc_bad_fun_BLR                      = 335544994;
4116        isc_func_pack_not_implemented        = 335544995;
4117        isc_proc_pack_not_implemented        = 335544996;
4118        isc_eem_func_not_returned            = 335544997;
4119        isc_eem_proc_not_returned            = 335544998;
4120        isc_eem_trig_not_returned            = 335544999;
4121        isc_eem_bad_plugin_ver               = 335545000;
4122        isc_eem_engine_notfound              = 335545001;
4123        isc_attachment_in_use                = 335545002;
4124        isc_transaction_in_use               = 335545003;
4125        isc_pman_cannot_load_plugin          = 335545004;
4126        isc_pman_module_notfound             = 335545005;
4127        isc_pman_entrypoint_notfound         = 335545006;
4128        isc_pman_module_bad                  = 335545007;
4129        isc_pman_plugin_notfound             = 335545008;
4130        isc_sysf_invalid_trig_namespace      = 335545009;
4131        isc_unexpected_null                  = 335545010;
4132        isc_type_notcompat_blob              = 335545011;
4133        isc_invalid_date_val                 = 335545012;
4134        isc_invalid_time_val                 = 335545013;
4135        isc_invalid_timestamp_val            = 335545014;
4136        isc_invalid_index_val                = 335545015;
4137        isc_formatted_exception              = 335545016;
4138        isc_async_active                     = 335545017;
4139        isc_private_function                 = 335545018;
4140        isc_private_procedure                = 335545019;
4141        isc_request_outdated                 = 335545020;
4142        isc_bad_events_handle                = 335545021;
4143        isc_cannot_copy_stmt                 = 335545022;
4144        isc_invalid_boolean_usage            = 335545023;
4145        isc_sysf_argscant_both_be_zero       = 335545024;
4146        isc_spb_no_id                        = 335545025;
4147        isc_ee_blr_mismatch_null             = 335545026;
4148        isc_ee_blr_mismatch_length           = 335545027;
4149        isc_ss_out_of_bounds                 = 335545028;
4150        isc_missing_data_structures          = 335545029;
4151        isc_protect_sys_tab                  = 335545030;
4152        isc_libtommath_generic               = 335545031;
4153        isc_wroblrver2                       = 335545032;
4154        isc_trunc_limits                     = 335545033;
4155        isc_info_access                      = 335545034;
4156        isc_svc_no_stdin                     = 335545035;
4157        isc_svc_start_failed                 = 335545036;
4158        isc_svc_no_switches                  = 335545037;
4159        isc_svc_bad_size                     = 335545038;
4160        isc_no_crypt_plugin                  = 335545039;
4161        isc_cp_name_too_long                 = 335545040;
4162        isc_cp_process_active                = 335545041;
4163        isc_cp_already_crypted               = 335545042;
4164        isc_decrypt_error                    = 335545043;
4165        isc_no_providers                     = 335545044;
4166        isc_null_spb                         = 335545045;
4167        isc_max_args_exceeded                = 335545046;
4168        isc_ee_blr_mismatch_names_count      = 335545047;
4169        isc_ee_blr_mismatch_name_not_found   = 335545048;
4170        isc_bad_result_set                   = 335545049;
4171        isc_wrong_message_length             = 335545050;
4172        isc_no_output_format                 = 335545051;
4173        isc_item_finish                      = 335545052;
4174        isc_miss_config                      = 335545053;
4175        isc_conf_line                        = 335545054;
4176        isc_conf_include                     = 335545055;
4177        isc_include_depth                    = 335545056;
4178        isc_include_miss                     = 335545057;
4179        isc_protect_ownership                = 335545058;
4180        isc_badvarnum                        = 335545059;
4181        isc_sec_context                      = 335545060;
4182        isc_multi_segment                    = 335545061;
4183        isc_login_changed                    = 335545062;
4184        isc_auth_handshake_limit             = 335545063;
4185        isc_wirecrypt_incompatible           = 335545064;
4186        isc_miss_wirecrypt                   = 335545065;
4187        isc_wirecrypt_key                    = 335545066;
4188        isc_wirecrypt_plugin                 = 335545067;
4189        isc_secdb_name                       = 335545068;
4190        isc_auth_data                        = 335545069;
4191        isc_auth_datalength                  = 335545070;
4192        isc_info_unprepared_stmt             = 335545071;
4193        isc_idx_key_value                    = 335545072;
4194        isc_forupdate_virtualtbl             = 335545073;
4195        isc_forupdate_systbl                 = 335545074;
4196        isc_forupdate_temptbl                = 335545075;
4197        isc_cant_modify_sysobj               = 335545076;
4198        isc_server_misconfigured             = 335545077;
4199        isc_alter_role                       = 335545078;
4200        isc_map_already_exists               = 335545079;
4201        isc_map_not_exists                   = 335545080;
4202        isc_map_load                         = 335545081;
4203        isc_map_aster                        = 335545082;
4204        isc_map_multi                        = 335545083;
4205        isc_map_undefined                    = 335545084;
4206        isc_baddpb_damaged_mode              = 335545085;
4207        isc_baddpb_buffers_range             = 335545086;
4208        isc_baddpb_temp_buffers              = 335545087;
4209        isc_map_nodb                         = 335545088;
4210        isc_map_notable                      = 335545089;
4211        isc_miss_trusted_role                = 335545090;
4212        isc_set_invalid_role                 = 335545091;
4213        isc_cursor_not_positioned            = 335545092;
4214        isc_dup_attribute                    = 335545093;
4215        isc_dyn_no_priv                      = 335545094;
4216        isc_dsql_cant_grant_option           = 335545095;
4217        isc_read_conflict                    = 335545096;
4218        isc_crdb_load                        = 335545097;
4219        isc_crdb_nodb                        = 335545098;
4220        isc_crdb_notable                     = 335545099;
4221        isc_interface_version_too_old        = 335545100;
4222        isc_fun_param_mismatch               = 335545101;
4223        isc_savepoint_backout_err            = 335545102;
4224        isc_domain_primary_key_notnull       = 335545103;
4225        isc_invalid_attachment_charset       = 335545104;
4226        isc_map_down                         = 335545105;
4227        isc_login_error                      = 335545106;
4228        isc_already_opened                   = 335545107;
4229        isc_bad_crypt_key                    = 335545108;
4230        isc_encrypt_error                    = 335545109;
4231        isc_gfix_db_name                     = 335740929;
4232        isc_gfix_invalid_sw                  = 335740930;
4233        isc_gfix_incmp_sw                    = 335740932;
4234        isc_gfix_replay_req                  = 335740933;
4235        isc_gfix_pgbuf_req                   = 335740934;
4236        isc_gfix_val_req                     = 335740935;
4237        isc_gfix_pval_req                    = 335740936;
4238        isc_gfix_trn_req                     = 335740937;
4239        isc_gfix_full_req                    = 335740940;
4240        isc_gfix_usrname_req                 = 335740941;
4241        isc_gfix_pass_req                    = 335740942;
4242        isc_gfix_subs_name                   = 335740943;
4243        isc_gfix_wal_req                     = 335740944;
4244        isc_gfix_sec_req                     = 335740945;
4245        isc_gfix_nval_req                    = 335740946;
4246        isc_gfix_type_shut                   = 335740947;
4247        isc_gfix_retry                       = 335740948;
4248        isc_gfix_retry_db                    = 335740951;
4249        isc_gfix_exceed_max                  = 335740991;
4250        isc_gfix_corrupt_pool                = 335740992;
4251        isc_gfix_mem_exhausted               = 335740993;
4252        isc_gfix_bad_pool                    = 335740994;
4253        isc_gfix_trn_not_valid               = 335740995;
4254        isc_gfix_unexp_eoi                   = 335741012;
4255        isc_gfix_recon_fail                  = 335741018;
4256        isc_gfix_trn_unknown                 = 335741036;
4257        isc_gfix_mode_req                    = 335741038;
4258        isc_gfix_pzval_req                   = 335741042;
4259        isc_dsql_dbkey_from_non_table        = 336003074;
4260        isc_dsql_transitional_numeric        = 336003075;
4261        isc_dsql_dialect_warning_expr        = 336003076;
4262        isc_sql_db_dialect_dtype_unsupport   = 336003077;
4263        isc_sql_dialect_conflict_num         = 336003079;
4264        isc_dsql_warning_number_ambiguous    = 336003080;
4265        isc_dsql_warning_number_ambiguous1   = 336003081;
4266        isc_dsql_warn_precision_ambiguous    = 336003082;
4267        isc_dsql_warn_precision_ambiguous1   = 336003083;
4268        isc_dsql_warn_precision_ambiguous2   = 336003084;
4269        isc_dsql_ambiguous_field_name        = 336003085;
4270        isc_dsql_udf_return_pos_err          = 336003086;
4271        isc_dsql_invalid_label               = 336003087;
4272        isc_dsql_datatypes_not_comparable    = 336003088;
4273        isc_dsql_cursor_invalid              = 336003089;
4274        isc_dsql_cursor_redefined            = 336003090;
4275        isc_dsql_cursor_not_found            = 336003091;
4276        isc_dsql_cursor_exists               = 336003092;
4277        isc_dsql_cursor_rel_ambiguous        = 336003093;
4278        isc_dsql_cursor_rel_not_found        = 336003094;
4279        isc_dsql_cursor_not_open             = 336003095;
4280        isc_dsql_type_not_supp_ext_tab       = 336003096;
4281        isc_dsql_feature_not_supported_ods   = 336003097;
4282        isc_primary_key_required             = 336003098;
4283        isc_upd_ins_doesnt_match_pk          = 336003099;
4284        isc_upd_ins_doesnt_match_matching    = 336003100;
4285        isc_upd_ins_with_complex_view        = 336003101;
4286        isc_dsql_incompatible_trigger_type   = 336003102;
4287        isc_dsql_db_trigger_type_cant_change = 336003103;
4288        isc_dsql_record_version_table        = 336003104;
4289        isc_dsql_invalid_sqlda_version       = 336003105;
4290        isc_dsql_sqlvar_index                = 336003106;
4291        isc_dsql_no_sqlind                   = 336003107;
4292        isc_dsql_no_sqldata                  = 336003108;
4293        isc_dsql_no_input_sqlda              = 336003109;
4294        isc_dsql_no_output_sqlda             = 336003110;
4295        isc_dsql_wrong_param_num             = 336003111;
4296        isc_dyn_filter_not_found             = 336068645;
4297        isc_dyn_func_not_found               = 336068649;
4298        isc_dyn_index_not_found              = 336068656;
4299        isc_dyn_view_not_found               = 336068662;
4300        isc_dyn_domain_not_found             = 336068697;
4301        isc_dyn_cant_modify_auto_trig        = 336068717;
4302        isc_dyn_dup_table                    = 336068740;
4303        isc_dyn_proc_not_found               = 336068748;
4304        isc_dyn_exception_not_found          = 336068752;
4305        isc_dyn_proc_param_not_found         = 336068754;
4306        isc_dyn_trig_not_found               = 336068755;
4307        isc_dyn_charset_not_found            = 336068759;
4308        isc_dyn_collation_not_found          = 336068760;
4309        isc_dyn_role_not_found               = 336068763;
4310        isc_dyn_name_longer                  = 336068767;
4311        isc_dyn_column_does_not_exist        = 336068784;
4312        isc_dyn_role_does_not_exist          = 336068796;
4313        isc_dyn_no_grant_admin_opt           = 336068797;
4314        isc_dyn_user_not_role_member         = 336068798;
4315        isc_dyn_delete_role_failed           = 336068799;
4316        isc_dyn_grant_role_to_user           = 336068800;
4317        isc_dyn_inv_sql_role_name            = 336068801;
4318        isc_dyn_dup_sql_role                 = 336068802;
4319        isc_dyn_kywd_spec_for_role           = 336068803;
4320        isc_dyn_roles_not_supported          = 336068804;
4321        isc_dyn_domain_name_exists           = 336068812;
4322        isc_dyn_field_name_exists            = 336068813;
4323        isc_dyn_dependency_exists            = 336068814;
4324        isc_dyn_dtype_invalid                = 336068815;
4325        isc_dyn_char_fld_too_small           = 336068816;
4326        isc_dyn_invalid_dtype_conversion     = 336068817;
4327        isc_dyn_dtype_conv_invalid           = 336068818;
4328        isc_dyn_zero_len_id                  = 336068820;
4329        isc_dyn_gen_not_found                = 336068822;
4330        isc_max_coll_per_charset             = 336068829;
4331        isc_invalid_coll_attr                = 336068830;
4332        isc_dyn_wrong_gtt_scope              = 336068840;
4333        isc_dyn_coll_used_table              = 336068843;
4334        isc_dyn_coll_used_domain             = 336068844;
4335        isc_dyn_cannot_del_syscoll           = 336068845;
4336        isc_dyn_cannot_del_def_coll          = 336068846;
4337        isc_dyn_table_not_found              = 336068849;
4338        isc_dyn_coll_used_procedure          = 336068851;
4339        isc_dyn_scale_too_big                = 336068852;
4340        isc_dyn_precision_too_small          = 336068853;
4341        isc_dyn_miss_priv_warning            = 336068855;
4342        isc_dyn_ods_not_supp_feature         = 336068856;
4343        isc_dyn_cannot_addrem_computed       = 336068857;
4344        isc_dyn_no_empty_pw                  = 336068858;
4345        isc_dyn_dup_index                    = 336068859;
4346        isc_dyn_package_not_found            = 336068864;
4347        isc_dyn_schema_not_found             = 336068865;
4348        isc_dyn_cannot_mod_sysproc           = 336068866;
4349        isc_dyn_cannot_mod_systrig           = 336068867;
4350        isc_dyn_cannot_mod_sysfunc           = 336068868;
4351        isc_dyn_invalid_ddl_proc             = 336068869;
4352        isc_dyn_invalid_ddl_trig             = 336068870;
4353        isc_dyn_funcnotdef_package           = 336068871;
4354        isc_dyn_procnotdef_package           = 336068872;
4355        isc_dyn_funcsignat_package           = 336068873;
4356        isc_dyn_procsignat_package           = 336068874;
4357        isc_dyn_defvaldecl_package_proc      = 336068875;
4358        isc_dyn_package_body_exists          = 336068877;
4359        isc_dyn_invalid_ddl_func             = 336068878;
4360        isc_dyn_newfc_oldsyntax              = 336068879;
4361        isc_dyn_func_param_not_found         = 336068886;
4362        isc_dyn_routine_param_not_found      = 336068887;
4363        isc_dyn_routine_param_ambiguous      = 336068888;
4364        isc_dyn_coll_used_function           = 336068889;
4365        isc_dyn_domain_used_function         = 336068890;
4366        isc_dyn_alter_user_no_clause         = 336068891;
4367        isc_dyn_duplicate_package_item       = 336068894;
4368        isc_dyn_cant_modify_sysobj           = 336068895;
4369        isc_dyn_cant_use_zero_increment      = 336068896;
4370        isc_dyn_cant_use_in_foreignkey       = 336068897;
4371        isc_dyn_defvaldecl_package_func      = 336068898;
4372        isc_gbak_unknown_switch              = 336330753;
4373        isc_gbak_page_size_missing           = 336330754;
4374        isc_gbak_page_size_toobig            = 336330755;
4375        isc_gbak_redir_ouput_missing         = 336330756;
4376        isc_gbak_switches_conflict           = 336330757;
4377        isc_gbak_unknown_device              = 336330758;
4378        isc_gbak_no_protection               = 336330759;
4379        isc_gbak_page_size_not_allowed       = 336330760;
4380        isc_gbak_multi_source_dest           = 336330761;
4381        isc_gbak_filename_missing            = 336330762;
4382        isc_gbak_dup_inout_names             = 336330763;
4383        isc_gbak_inv_page_size               = 336330764;
4384        isc_gbak_db_specified                = 336330765;
4385        isc_gbak_db_exists                   = 336330766;
4386        isc_gbak_unk_device                  = 336330767;
4387        isc_gbak_blob_info_failed            = 336330772;
4388        isc_gbak_unk_blob_item               = 336330773;
4389        isc_gbak_get_seg_failed              = 336330774;
4390        isc_gbak_close_blob_failed           = 336330775;
4391        isc_gbak_open_blob_failed            = 336330776;
4392        isc_gbak_put_blr_gen_id_failed       = 336330777;
4393        isc_gbak_unk_type                    = 336330778;
4394        isc_gbak_comp_req_failed             = 336330779;
4395        isc_gbak_start_req_failed            = 336330780;
4396        isc_gbak_rec_failed                  = 336330781;
4397        isc_gbak_rel_req_failed              = 336330782;
4398        isc_gbak_db_info_failed              = 336330783;
4399        isc_gbak_no_db_desc                  = 336330784;
4400        isc_gbak_db_create_failed            = 336330785;
4401        isc_gbak_decomp_len_error            = 336330786;
4402        isc_gbak_tbl_missing                 = 336330787;
4403        isc_gbak_blob_col_missing            = 336330788;
4404        isc_gbak_create_blob_failed          = 336330789;
4405        isc_gbak_put_seg_failed              = 336330790;
4406        isc_gbak_rec_len_exp                 = 336330791;
4407        isc_gbak_inv_rec_len                 = 336330792;
4408        isc_gbak_exp_data_type               = 336330793;
4409        isc_gbak_gen_id_failed               = 336330794;
4410        isc_gbak_unk_rec_type                = 336330795;
4411        isc_gbak_inv_bkup_ver                = 336330796;
4412        isc_gbak_missing_bkup_desc           = 336330797;
4413        isc_gbak_string_trunc                = 336330798;
4414        isc_gbak_cant_rest_record            = 336330799;
4415        isc_gbak_send_failed                 = 336330800;
4416        isc_gbak_no_tbl_name                 = 336330801;
4417        isc_gbak_unexp_eof                   = 336330802;
4418        isc_gbak_db_format_too_old           = 336330803;
4419        isc_gbak_inv_array_dim               = 336330804;
4420        isc_gbak_xdr_len_expected            = 336330807;
4421        isc_gbak_open_bkup_error             = 336330817;
4422        isc_gbak_open_error                  = 336330818;
4423        isc_gbak_missing_block_fac           = 336330934;
4424        isc_gbak_inv_block_fac               = 336330935;
4425        isc_gbak_block_fac_specified         = 336330936;
4426        isc_gbak_missing_username            = 336330940;
4427        isc_gbak_missing_password            = 336330941;
4428        isc_gbak_missing_skipped_bytes       = 336330952;
4429        isc_gbak_inv_skipped_bytes           = 336330953;
4430        isc_gbak_err_restore_charset         = 336330965;
4431        isc_gbak_err_restore_collation       = 336330967;
4432        isc_gbak_read_error                  = 336330972;
4433        isc_gbak_write_error                 = 336330973;
4434        isc_gbak_db_in_use                   = 336330985;
4435        isc_gbak_sysmemex                    = 336330990;
4436        isc_gbak_restore_role_failed         = 336331002;
4437        isc_gbak_role_op_missing             = 336331005;
4438        isc_gbak_page_buffers_missing        = 336331010;
4439        isc_gbak_page_buffers_wrong_param    = 336331011;
4440        isc_gbak_page_buffers_restore        = 336331012;
4441        isc_gbak_inv_size                    = 336331014;
4442        isc_gbak_file_outof_sequence         = 336331015;
4443        isc_gbak_join_file_missing           = 336331016;
4444        isc_gbak_stdin_not_supptd            = 336331017;
4445        isc_gbak_stdout_not_supptd           = 336331018;
4446        isc_gbak_bkup_corrupt                = 336331019;
4447        isc_gbak_unk_db_file_spec            = 336331020;
4448        isc_gbak_hdr_write_failed            = 336331021;
4449        isc_gbak_disk_space_ex               = 336331022;
4450        isc_gbak_size_lt_min                 = 336331023;
4451        isc_gbak_svc_name_missing            = 336331025;
4452        isc_gbak_not_ownr                    = 336331026;
4453        isc_gbak_mode_req                    = 336331031;
4454        isc_gbak_just_data                   = 336331033;
4455        isc_gbak_data_only                   = 336331034;
4456        isc_gbak_missing_interval            = 336331078;
4457        isc_gbak_wrong_interval              = 336331079;
4458        isc_gbak_verify_verbint              = 336331081;
4459        isc_gbak_option_only_restore         = 336331082;
4460        isc_gbak_option_only_backup          = 336331083;
4461        isc_gbak_option_conflict             = 336331084;
4462        isc_gbak_param_conflict              = 336331085;
4463        isc_gbak_option_repeated             = 336331086;
4464        isc_gbak_max_dbkey_recursion         = 336331091;
4465        isc_gbak_max_dbkey_length            = 336331092;
4466        isc_gbak_invalid_metadata            = 336331093;
4467        isc_gbak_invalid_data                = 336331094;
4468        isc_gbak_inv_bkup_ver2               = 336331096;
4469        isc_gbak_db_format_too_old2          = 336331100;
4470        isc_dsql_too_old_ods                 = 336397205;
4471        isc_dsql_table_not_found             = 336397206;
4472        isc_dsql_view_not_found              = 336397207;
4473        isc_dsql_line_col_error              = 336397208;
4474        isc_dsql_unknown_pos                 = 336397209;
4475        isc_dsql_no_dup_name                 = 336397210;
4476        isc_dsql_too_many_values             = 336397211;
4477        isc_dsql_no_array_computed           = 336397212;
4478        isc_dsql_implicit_domain_name        = 336397213;
4479        isc_dsql_only_can_subscript_array    = 336397214;
4480        isc_dsql_max_sort_items              = 336397215;
4481        isc_dsql_max_group_items             = 336397216;
4482        isc_dsql_conflicting_sort_field      = 336397217;
4483        isc_dsql_derived_table_more_columns  = 336397218;
4484        isc_dsql_derived_table_less_columns  = 336397219;
4485        isc_dsql_derived_field_unnamed       = 336397220;
4486        isc_dsql_derived_field_dup_name      = 336397221;
4487        isc_dsql_derived_alias_select        = 336397222;
4488        isc_dsql_derived_alias_field         = 336397223;
4489        isc_dsql_auto_field_bad_pos          = 336397224;
4490        isc_dsql_cte_wrong_reference         = 336397225;
4491        isc_dsql_cte_cycle                   = 336397226;
4492        isc_dsql_cte_outer_join              = 336397227;
4493        isc_dsql_cte_mult_references         = 336397228;
4494        isc_dsql_cte_not_a_union             = 336397229;
4495        isc_dsql_cte_nonrecurs_after_recurs  = 336397230;
4496        isc_dsql_cte_wrong_clause            = 336397231;
4497        isc_dsql_cte_union_all               = 336397232;
4498        isc_dsql_cte_miss_nonrecursive       = 336397233;
4499        isc_dsql_cte_nested_with             = 336397234;
4500        isc_dsql_col_more_than_once_using    = 336397235;
4501        isc_dsql_unsupp_feature_dialect      = 336397236;
4502        isc_dsql_cte_not_used                = 336397237;
4503        isc_dsql_col_more_than_once_view     = 336397238;
4504        isc_dsql_unsupported_in_auto_trans   = 336397239;
4505        isc_dsql_eval_unknode                = 336397240;
4506        isc_dsql_agg_wrongarg                = 336397241;
4507        isc_dsql_agg2_wrongarg               = 336397242;
4508        isc_dsql_nodateortime_pm_string      = 336397243;
4509        isc_dsql_invalid_datetime_subtract   = 336397244;
4510        isc_dsql_invalid_dateortime_add      = 336397245;
4511        isc_dsql_invalid_type_minus_date     = 336397246;
4512        isc_dsql_nostring_addsub_dial3       = 336397247;
4513        isc_dsql_invalid_type_addsub_dial3   = 336397248;
4514        isc_dsql_invalid_type_multip_dial1   = 336397249;
4515        isc_dsql_nostring_multip_dial3       = 336397250;
4516        isc_dsql_invalid_type_multip_dial3   = 336397251;
4517        isc_dsql_mustuse_numeric_div_dial1   = 336397252;
4518        isc_dsql_nostring_div_dial3          = 336397253;
4519        isc_dsql_invalid_type_div_dial3      = 336397254;
4520        isc_dsql_nostring_neg_dial3          = 336397255;
4521        isc_dsql_invalid_type_neg            = 336397256;
4522        isc_dsql_max_distinct_items          = 336397257;
4523        isc_dsql_alter_charset_failed        = 336397258;
4524        isc_dsql_comment_on_failed           = 336397259;
4525        isc_dsql_create_func_failed          = 336397260;
4526        isc_dsql_alter_func_failed           = 336397261;
4527        isc_dsql_create_alter_func_failed    = 336397262;
4528        isc_dsql_drop_func_failed            = 336397263;
4529        isc_dsql_recreate_func_failed        = 336397264;
4530        isc_dsql_create_proc_failed          = 336397265;
4531        isc_dsql_alter_proc_failed           = 336397266;
4532        isc_dsql_create_alter_proc_failed    = 336397267;
4533        isc_dsql_drop_proc_failed            = 336397268;
4534        isc_dsql_recreate_proc_failed        = 336397269;
4535        isc_dsql_create_trigger_failed       = 336397270;
4536        isc_dsql_alter_trigger_failed        = 336397271;
4537        isc_dsql_create_alter_trigger_failed = 336397272;
4538        isc_dsql_drop_trigger_failed         = 336397273;
4539        isc_dsql_recreate_trigger_failed     = 336397274;
4540        isc_dsql_create_collation_failed     = 336397275;
4541        isc_dsql_drop_collation_failed       = 336397276;
4542        isc_dsql_create_domain_failed        = 336397277;
4543        isc_dsql_alter_domain_failed         = 336397278;
4544        isc_dsql_drop_domain_failed          = 336397279;
4545        isc_dsql_create_except_failed        = 336397280;
4546        isc_dsql_alter_except_failed         = 336397281;
4547        isc_dsql_create_alter_except_failed  = 336397282;
4548        isc_dsql_recreate_except_failed      = 336397283;
4549        isc_dsql_drop_except_failed          = 336397284;
4550        isc_dsql_create_sequence_failed      = 336397285;
4551        isc_dsql_create_table_failed         = 336397286;
4552        isc_dsql_alter_table_failed          = 336397287;
4553        isc_dsql_drop_table_failed           = 336397288;
4554        isc_dsql_recreate_table_failed       = 336397289;
4555        isc_dsql_create_pack_failed          = 336397290;
4556        isc_dsql_alter_pack_failed           = 336397291;
4557        isc_dsql_create_alter_pack_failed    = 336397292;
4558        isc_dsql_drop_pack_failed            = 336397293;
4559        isc_dsql_recreate_pack_failed        = 336397294;
4560        isc_dsql_create_pack_body_failed     = 336397295;
4561        isc_dsql_drop_pack_body_failed       = 336397296;
4562        isc_dsql_recreate_pack_body_failed   = 336397297;
4563        isc_dsql_create_view_failed          = 336397298;
4564        isc_dsql_alter_view_failed           = 336397299;
4565        isc_dsql_create_alter_view_failed    = 336397300;
4566        isc_dsql_recreate_view_failed        = 336397301;
4567        isc_dsql_drop_view_failed            = 336397302;
4568        isc_dsql_drop_sequence_failed        = 336397303;
4569        isc_dsql_recreate_sequence_failed    = 336397304;
4570        isc_dsql_drop_index_failed           = 336397305;
4571        isc_dsql_drop_filter_failed          = 336397306;
4572        isc_dsql_drop_shadow_failed          = 336397307;
4573        isc_dsql_drop_role_failed            = 336397308;
4574        isc_dsql_drop_user_failed            = 336397309;
4575        isc_dsql_create_role_failed          = 336397310;
4576        isc_dsql_alter_role_failed           = 336397311;
4577        isc_dsql_alter_index_failed          = 336397312;
4578        isc_dsql_alter_database_failed       = 336397313;
4579        isc_dsql_create_shadow_failed        = 336397314;
4580        isc_dsql_create_filter_failed        = 336397315;
4581        isc_dsql_create_index_failed         = 336397316;
4582        isc_dsql_create_user_failed          = 336397317;
4583        isc_dsql_alter_user_failed           = 336397318;
4584        isc_dsql_grant_failed                = 336397319;
4585        isc_dsql_revoke_failed               = 336397320;
4586        isc_dsql_cte_recursive_aggregate     = 336397321;
4587        isc_dsql_mapping_failed              = 336397322;
4588        isc_dsql_alter_sequence_failed       = 336397323;
4589        isc_dsql_create_generator_failed     = 336397324;
4590        isc_dsql_set_generator_failed        = 336397325;
4591        isc_dsql_wlock_simple                = 336397326;
4592        isc_dsql_firstskip_rows              = 336397327;
4593        isc_dsql_wlock_aggregates            = 336397328;
4594        isc_dsql_wlock_conflict              = 336397329;
4595        isc_dsql_max_exception_arguments     = 336397330;
4596        isc_dsql_string_byte_length          = 336397331;
4597        isc_dsql_string_char_length          = 336397332;
4598        isc_dsql_max_nesting                 = 336397333;
4599        isc_gsec_cant_open_db                = 336723983;
4600        isc_gsec_switches_error              = 336723984;
4601        isc_gsec_no_op_spec                  = 336723985;
4602        isc_gsec_no_usr_name                 = 336723986;
4603        isc_gsec_err_add                     = 336723987;
4604        isc_gsec_err_modify                  = 336723988;
4605        isc_gsec_err_find_mod                = 336723989;
4606        isc_gsec_err_rec_not_found           = 336723990;
4607        isc_gsec_err_delete                  = 336723991;
4608        isc_gsec_err_find_del                = 336723992;
4609        isc_gsec_err_find_disp               = 336723996;
4610        isc_gsec_inv_param                   = 336723997;
4611        isc_gsec_op_specified                = 336723998;
4612        isc_gsec_pw_specified                = 336723999;
4613        isc_gsec_uid_specified               = 336724000;
4614        isc_gsec_gid_specified               = 336724001;
4615        isc_gsec_proj_specified              = 336724002;
4616        isc_gsec_org_specified               = 336724003;
4617        isc_gsec_fname_specified             = 336724004;
4618        isc_gsec_mname_specified             = 336724005;
4619        isc_gsec_lname_specified             = 336724006;
4620        isc_gsec_inv_switch                  = 336724008;
4621        isc_gsec_amb_switch                  = 336724009;
4622        isc_gsec_no_op_specified             = 336724010;
4623        isc_gsec_params_not_allowed          = 336724011;
4624        isc_gsec_incompat_switch             = 336724012;
4625        isc_gsec_inv_username                = 336724044;
4626        isc_gsec_inv_pw_length               = 336724045;
4627        isc_gsec_db_specified                = 336724046;
4628        isc_gsec_db_admin_specified          = 336724047;
4629        isc_gsec_db_admin_pw_specified       = 336724048;
4630        isc_gsec_sql_role_specified          = 336724049;
4631        isc_gstat_unknown_switch             = 336920577;
4632        isc_gstat_retry                      = 336920578;
4633        isc_gstat_wrong_ods                  = 336920579;
4634        isc_gstat_unexpected_eof             = 336920580;
4635        isc_gstat_open_err                   = 336920605;
4636        isc_gstat_read_err                   = 336920606;
4637        isc_gstat_sysmemex                   = 336920607;
4638        isc_fbsvcmgr_bad_am                  = 336986113;
4639        isc_fbsvcmgr_bad_wm                  = 336986114;
4640        isc_fbsvcmgr_bad_rs                  = 336986115;
4641        isc_fbsvcmgr_info_err                = 336986116;
4642        isc_fbsvcmgr_query_err               = 336986117;
4643        isc_fbsvcmgr_switch_unknown          = 336986118;
4644        isc_fbsvcmgr_bad_sm                  = 336986159;
4645        isc_fbsvcmgr_fp_open                 = 336986160;
4646        isc_fbsvcmgr_fp_read                 = 336986161;
4647        isc_fbsvcmgr_fp_empty                = 336986162;
4648        isc_fbsvcmgr_bad_arg                 = 336986164;
4649        isc_utl_trusted_switch               = 337051649;
4650        isc_nbackup_missing_param            = 337117213;
4651        isc_nbackup_allowed_switches         = 337117214;
4652        isc_nbackup_unknown_param            = 337117215;
4653        isc_nbackup_unknown_switch           = 337117216;
4654        isc_nbackup_nofetchpw_svc            = 337117217;
4655        isc_nbackup_pwfile_error             = 337117218;
4656        isc_nbackup_size_with_lock           = 337117219;
4657        isc_nbackup_no_switch                = 337117220;
4658        isc_nbackup_err_read                 = 337117223;
4659        isc_nbackup_err_write                = 337117224;
4660        isc_nbackup_err_seek                 = 337117225;
4661        isc_nbackup_err_opendb               = 337117226;
4662        isc_nbackup_err_fadvice              = 337117227;
4663        isc_nbackup_err_createdb             = 337117228;
4664        isc_nbackup_err_openbk               = 337117229;
4665        isc_nbackup_err_createbk             = 337117230;
4666        isc_nbackup_err_eofdb                = 337117231;
4667        isc_nbackup_fixup_wrongstate         = 337117232;
4668        isc_nbackup_err_db                   = 337117233;
4669        isc_nbackup_userpw_toolong           = 337117234;
4670        isc_nbackup_lostrec_db               = 337117235;
4671        isc_nbackup_lostguid_db              = 337117236;
4672        isc_nbackup_err_eofhdrdb             = 337117237;
4673        isc_nbackup_db_notlock               = 337117238;
4674        isc_nbackup_lostguid_bk              = 337117239;
4675        isc_nbackup_page_changed             = 337117240;
4676        isc_nbackup_dbsize_inconsistent      = 337117241;
4677        isc_nbackup_failed_lzbk              = 337117242;
4678        isc_nbackup_err_eofhdrbk             = 337117243;
4679        isc_nbackup_invalid_incbk            = 337117244;
4680        isc_nbackup_unsupvers_incbk          = 337117245;
4681        isc_nbackup_invlevel_incbk           = 337117246;
4682        isc_nbackup_wrong_orderbk            = 337117247;
4683        isc_nbackup_err_eofbk                = 337117248;
4684        isc_nbackup_err_copy                 = 337117249;
4685        isc_nbackup_err_eofhdr_restdb        = 337117250;
4686        isc_nbackup_lostguid_l0bk            = 337117251;
4687        isc_nbackup_switchd_parameter        = 337117255;
4688        isc_nbackup_user_stop                = 337117257;
4689        isc_nbackup_deco_parse               = 337117259;
4690        isc_trace_conflict_acts              = 337182750;
4691        isc_trace_act_notfound               = 337182751;
4692        isc_trace_switch_once                = 337182752;
4693        isc_trace_param_val_miss             = 337182753;
4694        isc_trace_param_invalid              = 337182754;
4695        isc_trace_switch_unknown             = 337182755;
4696        isc_trace_switch_svc_only            = 337182756;
4697        isc_trace_switch_user_only           = 337182757;
4698        isc_trace_switch_param_miss          = 337182758;
4699        isc_trace_param_act_notcompat        = 337182759;
4700        isc_trace_mandatory_switch_miss      = 337182760;
4701        }
3667   implementation
3668  
3669   uses IBErrorCodes;
# Line 4801 | Line 3766 | end;
3766   function IMaster.getMetadataBuilder(status: IStatus; fieldCount: Cardinal): IMetadataBuilder;
3767   begin
3768          Result := MasterVTable(vTable).getMetadataBuilder(Self, status, fieldCount);
3769 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3769 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3770   end;
3771  
3772   function IMaster.serverMode(mode: Integer): Integer;
# Line 4847 | Line 3812 | end;
3812   function IPluginSet.getPlugin(status: IStatus): IPluginBase;
3813   begin
3814          Result := PluginSetVTable(vTable).getPlugin(Self, status);
3815 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3815 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3816   end;
3817  
3818   procedure IPluginSet.next(status: IStatus);
3819   begin
3820          PluginSetVTable(vTable).next(Self, status);
3821 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3821 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3822   end;
3823  
3824   procedure IPluginSet.set_(status: IStatus; s: PAnsiChar);
3825   begin
3826          PluginSetVTable(vTable).set_(Self, status, s);
3827 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3827 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3828   end;
3829  
3830   function IConfigEntry.getName(): PAnsiChar;
# Line 4885 | Line 3850 | end;
3850   function IConfigEntry.getSubConfig(status: IStatus): IConfig;
3851   begin
3852          Result := ConfigEntryVTable(vTable).getSubConfig(Self, status);
3853 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3853 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3854   end;
3855  
3856   function IConfig.find(status: IStatus; name: PAnsiChar): IConfigEntry;
3857   begin
3858          Result := ConfigVTable(vTable).find(Self, status, name);
3859 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3859 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3860   end;
3861  
3862   function IConfig.findValue(status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry;
3863   begin
3864          Result := ConfigVTable(vTable).findValue(Self, status, name, value);
3865 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3865 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3866   end;
3867  
3868   function IConfig.findPos(status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry;
3869   begin
3870          Result := ConfigVTable(vTable).findPos(Self, status, name, pos);
3871 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3871 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3872   end;
3873  
3874   function IFirebirdConf.getKey(name: PAnsiChar): Cardinal;
# Line 4926 | Line 3891 | begin
3891          Result := FirebirdConfVTable(vTable).asBoolean(Self, key);
3892   end;
3893  
3894 + function IFirebirdConf.getVersion(status: IStatus): Cardinal;
3895 + begin
3896 +        Result := FirebirdConfVTable(vTable).getVersion(Self, status);
3897 +        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3898 + end;
3899 +
3900   function IPluginConfig.getConfigFileName(): PAnsiChar;
3901   begin
3902          Result := PluginConfigVTable(vTable).getConfigFileName(Self);
# Line 4934 | Line 3905 | end;
3905   function IPluginConfig.getDefaultConfig(status: IStatus): IConfig;
3906   begin
3907          Result := PluginConfigVTable(vTable).getDefaultConfig(Self, status);
3908 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3908 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3909   end;
3910  
3911   function IPluginConfig.getFirebirdConf(status: IStatus): IFirebirdConf;
3912   begin
3913          Result := PluginConfigVTable(vTable).getFirebirdConf(Self, status);
3914 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3914 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3915   end;
3916  
3917   procedure IPluginConfig.setReleaseDelay(status: IStatus; microSeconds: QWord);
3918   begin
3919          PluginConfigVTable(vTable).setReleaseDelay(Self, status, microSeconds);
3920 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3920 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3921   end;
3922  
3923   function IPluginFactory.createPlugin(status: IStatus; factoryParameter: IPluginConfig): IPluginBase;
3924   begin
3925          Result := PluginFactoryVTable(vTable).createPlugin(Self, status, factoryParameter);
3926 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3926 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3927   end;
3928  
3929   procedure IPluginModule.doClean();
# Line 4960 | Line 3931 | begin
3931          PluginModuleVTable(vTable).doClean(Self);
3932   end;
3933  
3934 + procedure IPluginModule.threadDetach();
3935 + begin
3936 +        PluginModuleVTable(vTable).threadDetach(Self);
3937 + end;
3938 +
3939   procedure IPluginManager.registerPluginFactory(pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory);
3940   begin
3941          PluginManagerVTable(vTable).registerPluginFactory(Self, pluginType, defaultName, factory);
# Line 4978 | Line 3954 | end;
3954   function IPluginManager.getPlugins(status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet;
3955   begin
3956          Result := PluginManagerVTable(vTable).getPlugins(Self, status, pluginType, namesList, firebirdConf);
3957 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3957 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3958   end;
3959  
3960   function IPluginManager.getConfig(status: IStatus; filename: PAnsiChar): IConfig;
3961   begin
3962          Result := PluginManagerVTable(vTable).getConfig(Self, status, filename);
3963 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3963 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3964   end;
3965  
3966   procedure IPluginManager.releasePlugin(plugin: IPluginBase);
# Line 4995 | Line 3971 | end;
3971   procedure ICryptKey.setSymmetric(status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer);
3972   begin
3973          CryptKeyVTable(vTable).setSymmetric(Self, status, type_, keyLength, key);
3974 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3974 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3975   end;
3976  
3977   procedure ICryptKey.setAsymmetric(status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer);
3978   begin
3979          CryptKeyVTable(vTable).setAsymmetric(Self, status, type_, encryptKeyLength, encryptKey, decryptKeyLength, decryptKey);
3980 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
3980 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
3981   end;
3982  
3983   function ICryptKey.getEncryptKey(length: CardinalPtr): Pointer;
# Line 5044 | Line 4020 | begin
4020          Result := ConfigManagerVTable(vTable).getRootDirectory(Self);
4021   end;
4022  
4023 + function IConfigManager.getDefaultSecurityDb(): PAnsiChar;
4024 + begin
4025 +        Result := ConfigManagerVTable(vTable).getDefaultSecurityDb(Self);
4026 + end;
4027 +
4028   procedure IEventCallback.eventCallbackFunction(length: Cardinal; events: BytePtr);
4029   begin
4030          EventCallbackVTable(vTable).eventCallbackFunction(Self, length, events);
# Line 5052 | Line 4033 | end;
4033   procedure IBlob.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4034   begin
4035          BlobVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
4036 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4036 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4037   end;
4038  
4039   function IBlob.getSegment(status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer;
4040   begin
4041          Result := BlobVTable(vTable).getSegment(Self, status, bufferLength, buffer, segmentLength);
4042 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4042 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4043   end;
4044  
4045   procedure IBlob.putSegment(status: IStatus; length: Cardinal; buffer: Pointer);
4046   begin
4047          BlobVTable(vTable).putSegment(Self, status, length, buffer);
4048 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4048 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4049   end;
4050  
4051   procedure IBlob.cancel(status: IStatus);
4052   begin
4053          BlobVTable(vTable).cancel(Self, status);
4054 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4054 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4055   end;
4056  
4057   procedure IBlob.close(status: IStatus);
4058   begin
4059          BlobVTable(vTable).close(Self, status);
4060 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4060 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4061   end;
4062  
4063   function IBlob.seek(status: IStatus; mode: Integer; offset: Integer): Integer;
4064   begin
4065          Result := BlobVTable(vTable).seek(Self, status, mode, offset);
4066 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4066 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4067   end;
4068  
4069   procedure ITransaction.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4070   begin
4071          TransactionVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
4072 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4072 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4073   end;
4074  
4075   procedure ITransaction.prepare(status: IStatus; msgLength: Cardinal; message: BytePtr);
4076   begin
4077          TransactionVTable(vTable).prepare(Self, status, msgLength, message);
4078 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4078 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4079   end;
4080  
4081   procedure ITransaction.commit(status: IStatus);
4082   begin
4083          TransactionVTable(vTable).commit(Self, status);
4084 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4084 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4085   end;
4086  
4087   procedure ITransaction.commitRetaining(status: IStatus);
4088   begin
4089          TransactionVTable(vTable).commitRetaining(Self, status);
4090 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4090 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4091   end;
4092  
4093   procedure ITransaction.rollback(status: IStatus);
4094   begin
4095          TransactionVTable(vTable).rollback(Self, status);
4096 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4096 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4097   end;
4098  
4099   procedure ITransaction.rollbackRetaining(status: IStatus);
4100   begin
4101          TransactionVTable(vTable).rollbackRetaining(Self, status);
4102 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4102 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4103   end;
4104  
4105   procedure ITransaction.disconnect(status: IStatus);
4106   begin
4107          TransactionVTable(vTable).disconnect(Self, status);
4108 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4108 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4109   end;
4110  
4111   function ITransaction.join(status: IStatus; transaction: ITransaction): ITransaction;
4112   begin
4113          Result := TransactionVTable(vTable).join(Self, status, transaction);
4114 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4114 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4115   end;
4116  
4117   function ITransaction.validate(status: IStatus; attachment: IAttachment): ITransaction;
4118   begin
4119          Result := TransactionVTable(vTable).validate(Self, status, attachment);
4120 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4120 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4121   end;
4122  
4123   function ITransaction.enterDtc(status: IStatus): ITransaction;
4124   begin
4125          Result := TransactionVTable(vTable).enterDtc(Self, status);
4126 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4126 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4127   end;
4128  
4129   function IMessageMetadata.getCount(status: IStatus): Cardinal;
4130   begin
4131          Result := MessageMetadataVTable(vTable).getCount(Self, status);
4132 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4132 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4133   end;
4134  
4135   function IMessageMetadata.getField(status: IStatus; index: Cardinal): PAnsiChar;
4136   begin
4137          Result := MessageMetadataVTable(vTable).getField(Self, status, index);
4138 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4138 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4139   end;
4140  
4141   function IMessageMetadata.getRelation(status: IStatus; index: Cardinal): PAnsiChar;
4142   begin
4143          Result := MessageMetadataVTable(vTable).getRelation(Self, status, index);
4144 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4144 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4145   end;
4146  
4147   function IMessageMetadata.getOwner(status: IStatus; index: Cardinal): PAnsiChar;
4148   begin
4149          Result := MessageMetadataVTable(vTable).getOwner(Self, status, index);
4150 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4150 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4151   end;
4152  
4153   function IMessageMetadata.getAlias(status: IStatus; index: Cardinal): PAnsiChar;
4154   begin
4155          Result := MessageMetadataVTable(vTable).getAlias(Self, status, index);
4156 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4156 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4157   end;
4158  
4159   function IMessageMetadata.getType(status: IStatus; index: Cardinal): Cardinal;
4160   begin
4161          Result := MessageMetadataVTable(vTable).getType(Self, status, index);
4162 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4162 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4163   end;
4164  
4165   function IMessageMetadata.isNullable(status: IStatus; index: Cardinal): Boolean;
4166   begin
4167          Result := MessageMetadataVTable(vTable).isNullable(Self, status, index);
4168 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4168 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4169   end;
4170  
4171   function IMessageMetadata.getSubType(status: IStatus; index: Cardinal): Integer;
4172   begin
4173          Result := MessageMetadataVTable(vTable).getSubType(Self, status, index);
4174 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4174 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4175   end;
4176  
4177   function IMessageMetadata.getLength(status: IStatus; index: Cardinal): Cardinal;
4178   begin
4179          Result := MessageMetadataVTable(vTable).getLength(Self, status, index);
4180 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4180 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4181   end;
4182  
4183   function IMessageMetadata.getScale(status: IStatus; index: Cardinal): Integer;
4184   begin
4185          Result := MessageMetadataVTable(vTable).getScale(Self, status, index);
4186 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4186 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4187   end;
4188  
4189   function IMessageMetadata.getCharSet(status: IStatus; index: Cardinal): Cardinal;
4190   begin
4191          Result := MessageMetadataVTable(vTable).getCharSet(Self, status, index);
4192 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4192 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4193   end;
4194  
4195   function IMessageMetadata.getOffset(status: IStatus; index: Cardinal): Cardinal;
4196   begin
4197          Result := MessageMetadataVTable(vTable).getOffset(Self, status, index);
4198 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4198 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4199   end;
4200  
4201   function IMessageMetadata.getNullOffset(status: IStatus; index: Cardinal): Cardinal;
4202   begin
4203          Result := MessageMetadataVTable(vTable).getNullOffset(Self, status, index);
4204 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4204 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4205   end;
4206  
4207   function IMessageMetadata.getBuilder(status: IStatus): IMetadataBuilder;
4208   begin
4209          Result := MessageMetadataVTable(vTable).getBuilder(Self, status);
4210 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4210 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4211   end;
4212  
4213   function IMessageMetadata.getMessageLength(status: IStatus): Cardinal;
4214   begin
4215          Result := MessageMetadataVTable(vTable).getMessageLength(Self, status);
4216 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4216 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4217 > end;
4218 >
4219 > function IMessageMetadata.getAlignment(status: IStatus): Cardinal;
4220 > begin
4221 >        Result := MessageMetadataVTable(vTable).getAlignment(Self, status);
4222 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4223 > end;
4224 >
4225 > function IMessageMetadata.getAlignedLength(status: IStatus): Cardinal;
4226 > begin
4227 >        Result := MessageMetadataVTable(vTable).getAlignedLength(Self, status);
4228 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4229   end;
4230  
4231   procedure IMetadataBuilder.setType(status: IStatus; index: Cardinal; type_: Cardinal);
4232   begin
4233          MetadataBuilderVTable(vTable).setType(Self, status, index, type_);
4234 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4234 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4235   end;
4236  
4237   procedure IMetadataBuilder.setSubType(status: IStatus; index: Cardinal; subType: Integer);
4238   begin
4239          MetadataBuilderVTable(vTable).setSubType(Self, status, index, subType);
4240 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4240 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4241   end;
4242  
4243   procedure IMetadataBuilder.setLength(status: IStatus; index: Cardinal; length: Cardinal);
4244   begin
4245          MetadataBuilderVTable(vTable).setLength(Self, status, index, length);
4246 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4246 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4247   end;
4248  
4249   procedure IMetadataBuilder.setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal);
4250   begin
4251          MetadataBuilderVTable(vTable).setCharSet(Self, status, index, charSet);
4252 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4252 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4253   end;
4254  
4255 < procedure IMetadataBuilder.setScale(status: IStatus; index: Cardinal; scale: integer);
4255 > procedure IMetadataBuilder.setScale(status: IStatus; index: Cardinal; scale: Integer);
4256   begin
4257          MetadataBuilderVTable(vTable).setScale(Self, status, index, scale);
4258 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4258 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4259   end;
4260  
4261   procedure IMetadataBuilder.truncate(status: IStatus; count: Cardinal);
4262   begin
4263          MetadataBuilderVTable(vTable).truncate(Self, status, count);
4264 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4264 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4265   end;
4266  
4267   procedure IMetadataBuilder.moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal);
4268   begin
4269          MetadataBuilderVTable(vTable).moveNameToIndex(Self, status, name, index);
4270 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4270 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4271   end;
4272  
4273   procedure IMetadataBuilder.remove(status: IStatus; index: Cardinal);
4274   begin
4275          MetadataBuilderVTable(vTable).remove(Self, status, index);
4276 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4276 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4277   end;
4278  
4279   function IMetadataBuilder.addField(status: IStatus): Cardinal;
4280   begin
4281          Result := MetadataBuilderVTable(vTable).addField(Self, status);
4282 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4282 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4283   end;
4284  
4285   function IMetadataBuilder.getMetadata(status: IStatus): IMessageMetadata;
4286   begin
4287          Result := MetadataBuilderVTable(vTable).getMetadata(Self, status);
4288 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4288 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4289 > end;
4290 >
4291 > procedure IMetadataBuilder.setField(status: IStatus; index: Cardinal; field: PAnsiChar);
4292 > begin
4293 >        MetadataBuilderVTable(vTable).setField(Self, status, index, field);
4294 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4295 > end;
4296 >
4297 > procedure IMetadataBuilder.setRelation(status: IStatus; index: Cardinal; relation: PAnsiChar);
4298 > begin
4299 >        MetadataBuilderVTable(vTable).setRelation(Self, status, index, relation);
4300 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4301 > end;
4302 >
4303 > procedure IMetadataBuilder.setOwner(status: IStatus; index: Cardinal; owner: PAnsiChar);
4304 > begin
4305 >        MetadataBuilderVTable(vTable).setOwner(Self, status, index, owner);
4306 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4307 > end;
4308 >
4309 > procedure IMetadataBuilder.setAlias(status: IStatus; index: Cardinal; alias: PAnsiChar);
4310 > begin
4311 >        MetadataBuilderVTable(vTable).setAlias(Self, status, index, alias);
4312 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4313   end;
4314  
4315   function IResultSet.fetchNext(status: IStatus; message: Pointer): Integer;
4316   begin
4317          Result := ResultSetVTable(vTable).fetchNext(Self, status, message);
4318 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4318 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4319   end;
4320  
4321   function IResultSet.fetchPrior(status: IStatus; message: Pointer): Integer;
4322   begin
4323          Result := ResultSetVTable(vTable).fetchPrior(Self, status, message);
4324 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4324 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4325   end;
4326  
4327   function IResultSet.fetchFirst(status: IStatus; message: Pointer): Integer;
4328   begin
4329          Result := ResultSetVTable(vTable).fetchFirst(Self, status, message);
4330 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4330 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4331   end;
4332  
4333   function IResultSet.fetchLast(status: IStatus; message: Pointer): Integer;
4334   begin
4335          Result := ResultSetVTable(vTable).fetchLast(Self, status, message);
4336 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4336 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4337   end;
4338  
4339   function IResultSet.fetchAbsolute(status: IStatus; position: Integer; message: Pointer): Integer;
4340   begin
4341          Result := ResultSetVTable(vTable).fetchAbsolute(Self, status, position, message);
4342 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4342 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4343   end;
4344  
4345   function IResultSet.fetchRelative(status: IStatus; offset: Integer; message: Pointer): Integer;
4346   begin
4347          Result := ResultSetVTable(vTable).fetchRelative(Self, status, offset, message);
4348 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4348 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4349   end;
4350  
4351   function IResultSet.isEof(status: IStatus): Boolean;
4352   begin
4353          Result := ResultSetVTable(vTable).isEof(Self, status);
4354 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4354 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4355   end;
4356  
4357   function IResultSet.isBof(status: IStatus): Boolean;
4358   begin
4359          Result := ResultSetVTable(vTable).isBof(Self, status);
4360 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4360 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4361   end;
4362  
4363   function IResultSet.getMetadata(status: IStatus): IMessageMetadata;
4364   begin
4365          Result := ResultSetVTable(vTable).getMetadata(Self, status);
4366 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4366 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4367   end;
4368  
4369   procedure IResultSet.close(status: IStatus);
4370   begin
4371          ResultSetVTable(vTable).close(Self, status);
4372 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4372 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4373   end;
4374  
4375   procedure IResultSet.setDelayedOutputFormat(status: IStatus; format: IMessageMetadata);
4376   begin
4377          ResultSetVTable(vTable).setDelayedOutputFormat(Self, status, format);
4378 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4378 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4379   end;
4380  
4381   procedure IStatement.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4382   begin
4383          StatementVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
4384 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4384 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4385   end;
4386  
4387   function IStatement.getType(status: IStatus): Cardinal;
4388   begin
4389          Result := StatementVTable(vTable).getType(Self, status);
4390 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4390 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4391   end;
4392  
4393   function IStatement.getPlan(status: IStatus; detailed: Boolean): PAnsiChar;
4394   begin
4395          Result := StatementVTable(vTable).getPlan(Self, status, detailed);
4396 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4396 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4397   end;
4398  
4399   function IStatement.getAffectedRecords(status: IStatus): QWord;
4400   begin
4401          Result := StatementVTable(vTable).getAffectedRecords(Self, status);
4402 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4402 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4403   end;
4404  
4405   function IStatement.getInputMetadata(status: IStatus): IMessageMetadata;
4406   begin
4407          Result := StatementVTable(vTable).getInputMetadata(Self, status);
4408 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4408 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4409   end;
4410  
4411   function IStatement.getOutputMetadata(status: IStatus): IMessageMetadata;
4412   begin
4413          Result := StatementVTable(vTable).getOutputMetadata(Self, status);
4414 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4414 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4415   end;
4416  
4417   function IStatement.execute(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
4418   begin
4419          Result := StatementVTable(vTable).execute(Self, status, transaction, inMetadata, inBuffer, outMetadata, outBuffer);
4420 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4420 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4421   end;
4422  
4423   function IStatement.openCursor(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet;
4424   begin
4425          Result := StatementVTable(vTable).openCursor(Self, status, transaction, inMetadata, inBuffer, outMetadata, flags);
4426 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4426 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4427   end;
4428  
4429   procedure IStatement.setCursorName(status: IStatus; name: PAnsiChar);
4430   begin
4431          StatementVTable(vTable).setCursorName(Self, status, name);
4432 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4432 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4433   end;
4434  
4435   procedure IStatement.free(status: IStatus);
4436   begin
4437          StatementVTable(vTable).free(Self, status);
4438 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4438 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4439   end;
4440  
4441   function IStatement.getFlags(status: IStatus): Cardinal;
4442   begin
4443          Result := StatementVTable(vTable).getFlags(Self, status);
4444 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4444 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4445 > end;
4446 >
4447 > function IStatement.getTimeout(status: IStatus): Cardinal;
4448 > begin
4449 >        Result := StatementVTable(vTable).getTimeout(Self, status);
4450 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4451 > end;
4452 >
4453 > procedure IStatement.setTimeout(status: IStatus; timeOut: Cardinal);
4454 > begin
4455 >        StatementVTable(vTable).setTimeout(Self, status, timeOut);
4456 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4457 > end;
4458 >
4459 > function IStatement.createBatch(status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch;
4460 > begin
4461 >        Result := StatementVTable(vTable).createBatch(Self, status, inMetadata, parLength, par);
4462 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4463 > end;
4464 >
4465 > procedure IBatch.add(status: IStatus; count: Cardinal; inBuffer: Pointer);
4466 > begin
4467 >        BatchVTable(vTable).add(Self, status, count, inBuffer);
4468 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4469 > end;
4470 >
4471 > procedure IBatch.addBlob(status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr);
4472 > begin
4473 >        BatchVTable(vTable).addBlob(Self, status, length, inBuffer, blobId, parLength, par);
4474 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4475 > end;
4476 >
4477 > procedure IBatch.appendBlobData(status: IStatus; length: Cardinal; inBuffer: Pointer);
4478 > begin
4479 >        BatchVTable(vTable).appendBlobData(Self, status, length, inBuffer);
4480 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4481 > end;
4482 >
4483 > procedure IBatch.addBlobStream(status: IStatus; length: Cardinal; inBuffer: Pointer);
4484 > begin
4485 >        BatchVTable(vTable).addBlobStream(Self, status, length, inBuffer);
4486 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4487 > end;
4488 >
4489 > procedure IBatch.registerBlob(status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr);
4490 > begin
4491 >        BatchVTable(vTable).registerBlob(Self, status, existingBlob, blobId);
4492 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4493 > end;
4494 >
4495 > function IBatch.execute(status: IStatus; transaction: ITransaction): IBatchCompletionState;
4496 > begin
4497 >        Result := BatchVTable(vTable).execute(Self, status, transaction);
4498 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4499 > end;
4500 >
4501 > procedure IBatch.cancel(status: IStatus);
4502 > begin
4503 >        BatchVTable(vTable).cancel(Self, status);
4504 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4505 > end;
4506 >
4507 > function IBatch.getBlobAlignment(status: IStatus): Cardinal;
4508 > begin
4509 >        Result := BatchVTable(vTable).getBlobAlignment(Self, status);
4510 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4511 > end;
4512 >
4513 > function IBatch.getMetadata(status: IStatus): IMessageMetadata;
4514 > begin
4515 >        Result := BatchVTable(vTable).getMetadata(Self, status);
4516 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4517 > end;
4518 >
4519 > procedure IBatch.setDefaultBpb(status: IStatus; parLength: Cardinal; par: BytePtr);
4520 > begin
4521 >        BatchVTable(vTable).setDefaultBpb(Self, status, parLength, par);
4522 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4523 > end;
4524 >
4525 > function IBatchCompletionState.getSize(status: IStatus): Cardinal;
4526 > begin
4527 >        Result := BatchCompletionStateVTable(vTable).getSize(Self, status);
4528 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4529 > end;
4530 >
4531 > function IBatchCompletionState.getState(status: IStatus; pos: Cardinal): Integer;
4532 > begin
4533 >        Result := BatchCompletionStateVTable(vTable).getState(Self, status, pos);
4534 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4535 > end;
4536 >
4537 > function IBatchCompletionState.findError(status: IStatus; pos: Cardinal): Cardinal;
4538 > begin
4539 >        Result := BatchCompletionStateVTable(vTable).findError(Self, status, pos);
4540 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4541 > end;
4542 >
4543 > procedure IBatchCompletionState.getStatus(status: IStatus; to_: IStatus; pos: Cardinal);
4544 > begin
4545 >        BatchCompletionStateVTable(vTable).getStatus(Self, status, to_, pos);
4546 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4547 > end;
4548 >
4549 > procedure IReplicator.process(status: IStatus; length: Cardinal; data: BytePtr);
4550 > begin
4551 >        ReplicatorVTable(vTable).process(Self, status, length, data);
4552 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4553 > end;
4554 >
4555 > procedure IReplicator.close(status: IStatus);
4556 > begin
4557 >        ReplicatorVTable(vTable).close(Self, status);
4558 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4559   end;
4560  
4561 < procedure IRequest.receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
4561 > procedure IRequest.receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
4562   begin
4563          RequestVTable(vTable).receive(Self, status, level, msgType, length, message);
4564 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4564 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4565   end;
4566  
4567 < procedure IRequest.send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
4567 > procedure IRequest.send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
4568   begin
4569          RequestVTable(vTable).send(Self, status, level, msgType, length, message);
4570 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4570 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4571   end;
4572  
4573   procedure IRequest.getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4574   begin
4575          RequestVTable(vTable).getInfo(Self, status, level, itemsLength, items, bufferLength, buffer);
4576 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4576 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4577   end;
4578  
4579   procedure IRequest.start(status: IStatus; tra: ITransaction; level: Integer);
4580   begin
4581          RequestVTable(vTable).start(Self, status, tra, level);
4582 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4582 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4583   end;
4584  
4585 < procedure IRequest.startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
4585 > procedure IRequest.startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer);
4586   begin
4587          RequestVTable(vTable).startAndSend(Self, status, tra, level, msgType, length, message);
4588 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4588 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4589   end;
4590  
4591   procedure IRequest.unwind(status: IStatus; level: Integer);
4592   begin
4593          RequestVTable(vTable).unwind(Self, status, level);
4594 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4594 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4595   end;
4596  
4597   procedure IRequest.free(status: IStatus);
4598   begin
4599          RequestVTable(vTable).free(Self, status);
4600 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4600 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4601   end;
4602  
4603   procedure IEvents.cancel(status: IStatus);
4604   begin
4605          EventsVTable(vTable).cancel(Self, status);
4606 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4606 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4607   end;
4608  
4609   procedure IAttachment.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4610   begin
4611          AttachmentVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
4612 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4612 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4613   end;
4614  
4615   function IAttachment.startTransaction(status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction;
4616   begin
4617          Result := AttachmentVTable(vTable).startTransaction(Self, status, tpbLength, tpb);
4618 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4618 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4619   end;
4620  
4621   function IAttachment.reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction;
4622   begin
4623          Result := AttachmentVTable(vTable).reconnectTransaction(Self, status, length, id);
4624 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4624 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4625   end;
4626  
4627   function IAttachment.compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest;
4628   begin
4629          Result := AttachmentVTable(vTable).compileRequest(Self, status, blrLength, blr);
4630 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4630 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4631   end;
4632  
4633   procedure IAttachment.transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr);
4634   begin
4635          AttachmentVTable(vTable).transactRequest(Self, status, transaction, blrLength, blr, inMsgLength, inMsg, outMsgLength, outMsg);
4636 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4636 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4637   end;
4638  
4639 < function IAttachment.createBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob;
4639 > function IAttachment.createBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob;
4640   begin
4641          Result := AttachmentVTable(vTable).createBlob(Self, status, transaction, id, bpbLength, bpb);
4642 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4642 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4643   end;
4644  
4645 < function IAttachment.openBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob;
4645 > function IAttachment.openBlob(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob;
4646   begin
4647          Result := AttachmentVTable(vTable).openBlob(Self, status, transaction, id, bpbLength, bpb);
4648 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4648 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4649   end;
4650  
4651 < function IAttachment.getSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer;
4651 > function IAttachment.getSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer;
4652   begin
4653          Result := AttachmentVTable(vTable).getSlice(Self, status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
4654 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4654 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4655   end;
4656  
4657 < procedure IAttachment.putSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr);
4657 > procedure IAttachment.putSlice(status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr);
4658   begin
4659          AttachmentVTable(vTable).putSlice(Self, status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
4660 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4660 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4661   end;
4662  
4663   procedure IAttachment.executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr);
4664   begin
4665          AttachmentVTable(vTable).executeDyn(Self, status, transaction, length, dyn);
4666 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4666 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4667   end;
4668  
4669   function IAttachment.prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement;
4670   begin
4671          Result := AttachmentVTable(vTable).prepare(Self, status, tra, stmtLength, sqlStmt, dialect, flags);
4672 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4672 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4673   end;
4674  
4675   function IAttachment.execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
4676   begin
4677          Result := AttachmentVTable(vTable).execute(Self, status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, outBuffer);
4678 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4678 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4679   end;
4680  
4681   function IAttachment.openCursor(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet;
4682   begin
4683          Result := AttachmentVTable(vTable).openCursor(Self, status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, cursorName, cursorFlags);
4684 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4684 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4685   end;
4686  
4687   function IAttachment.queEvents(status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents;
4688   begin
4689          Result := AttachmentVTable(vTable).queEvents(Self, status, callback, length, events);
4690 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4690 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4691   end;
4692  
4693   procedure IAttachment.cancelOperation(status: IStatus; option: Integer);
4694   begin
4695          AttachmentVTable(vTable).cancelOperation(Self, status, option);
4696 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4696 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4697   end;
4698  
4699   procedure IAttachment.ping(status: IStatus);
4700   begin
4701          AttachmentVTable(vTable).ping(Self, status);
4702 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4702 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4703   end;
4704  
4705   procedure IAttachment.detach(status: IStatus);
4706   begin
4707          AttachmentVTable(vTable).detach(Self, status);
4708 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4708 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4709   end;
4710  
4711   procedure IAttachment.dropDatabase(status: IStatus);
4712   begin
4713          AttachmentVTable(vTable).dropDatabase(Self, status);
4714 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4714 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4715 > end;
4716 >
4717 > function IAttachment.getIdleTimeout(status: IStatus): Cardinal;
4718 > begin
4719 >        Result := AttachmentVTable(vTable).getIdleTimeout(Self, status);
4720 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4721 > end;
4722 >
4723 > procedure IAttachment.setIdleTimeout(status: IStatus; timeOut: Cardinal);
4724 > begin
4725 >        AttachmentVTable(vTable).setIdleTimeout(Self, status, timeOut);
4726 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4727 > end;
4728 >
4729 > function IAttachment.getStatementTimeout(status: IStatus): Cardinal;
4730 > begin
4731 >        Result := AttachmentVTable(vTable).getStatementTimeout(Self, status);
4732 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4733 > end;
4734 >
4735 > procedure IAttachment.setStatementTimeout(status: IStatus; timeOut: Cardinal);
4736 > begin
4737 >        AttachmentVTable(vTable).setStatementTimeout(Self, status, timeOut);
4738 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4739 > end;
4740 >
4741 > function IAttachment.createBatch(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch;
4742 > begin
4743 >        Result := AttachmentVTable(vTable).createBatch(Self, status, transaction, stmtLength, sqlStmt, dialect, inMetadata, parLength, par);
4744 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4745 > end;
4746 >
4747 > function IAttachment.createReplicator(status: IStatus): IReplicator;
4748 > begin
4749 >        Result := AttachmentVTable(vTable).createReplicator(Self, status);
4750 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4751   end;
4752  
4753   procedure IService.detach(status: IStatus);
4754   begin
4755          ServiceVTable(vTable).detach(Self, status);
4756 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4756 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4757   end;
4758  
4759   procedure IService.query(status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
4760   begin
4761          ServiceVTable(vTable).query(Self, status, sendLength, sendItems, receiveLength, receiveItems, bufferLength, buffer);
4762 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4762 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4763   end;
4764  
4765   procedure IService.start(status: IStatus; spbLength: Cardinal; spb: BytePtr);
4766   begin
4767          ServiceVTable(vTable).start(Self, status, spbLength, spb);
4768 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4768 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4769   end;
4770  
4771   function IProvider.attachDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
4772   begin
4773          Result := ProviderVTable(vTable).attachDatabase(Self, status, fileName, dpbLength, dpb);
4774 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4774 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4775   end;
4776  
4777   function IProvider.createDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
4778   begin
4779          Result := ProviderVTable(vTable).createDatabase(Self, status, fileName, dpbLength, dpb);
4780 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4780 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4781   end;
4782  
4783   function IProvider.attachServiceManager(status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService;
4784   begin
4785          Result := ProviderVTable(vTable).attachServiceManager(Self, status, service, spbLength, spb);
4786 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4786 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4787   end;
4788  
4789   procedure IProvider.shutdown(status: IStatus; timeout: Cardinal; reason: Integer);
4790   begin
4791          ProviderVTable(vTable).shutdown(Self, status, timeout, reason);
4792 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4792 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4793   end;
4794  
4795   procedure IProvider.setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
4796   begin
4797          ProviderVTable(vTable).setDbCryptCallback(Self, status, cryptCallback);
4798 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4798 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4799   end;
4800  
4801   procedure IDtcStart.addAttachment(status: IStatus; att: IAttachment);
4802   begin
4803          DtcStartVTable(vTable).addAttachment(Self, status, att);
4804 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4804 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4805   end;
4806  
4807   procedure IDtcStart.addWithTpb(status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr);
4808   begin
4809          DtcStartVTable(vTable).addWithTpb(Self, status, att, length, tpb);
4810 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4810 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4811   end;
4812  
4813   function IDtcStart.start(status: IStatus): ITransaction;
4814   begin
4815          Result := DtcStartVTable(vTable).start(Self, status);
4816 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4816 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4817   end;
4818  
4819   function IDtc.join(status: IStatus; one: ITransaction; two: ITransaction): ITransaction;
4820   begin
4821          Result := DtcVTable(vTable).join(Self, status, one, two);
4822 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4822 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4823   end;
4824  
4825   function IDtc.startBuilder(status: IStatus): IDtcStart;
4826   begin
4827          Result := DtcVTable(vTable).startBuilder(Self, status);
4828 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4828 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4829   end;
4830  
4831   procedure IWriter.reset();
# Line 5669 | Line 4836 | end;
4836   procedure IWriter.add(status: IStatus; name: PAnsiChar);
4837   begin
4838          WriterVTable(vTable).add(Self, status, name);
4839 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4839 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4840   end;
4841  
4842   procedure IWriter.setType(status: IStatus; value: PAnsiChar);
4843   begin
4844          WriterVTable(vTable).setType(Self, status, value);
4845 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4845 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4846   end;
4847  
4848   procedure IWriter.setDb(status: IStatus; value: PAnsiChar);
4849   begin
4850          WriterVTable(vTable).setDb(Self, status, value);
4851 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4851 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4852   end;
4853  
4854   function IServerBlock.getLogin(): PAnsiChar;
# Line 5697 | Line 4864 | end;
4864   procedure IServerBlock.putData(status: IStatus; length: Cardinal; data: Pointer);
4865   begin
4866          ServerBlockVTable(vTable).putData(Self, status, length, data);
4867 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4867 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4868   end;
4869  
4870   function IServerBlock.newKey(status: IStatus): ICryptKey;
4871   begin
4872          Result := ServerBlockVTable(vTable).newKey(Self, status);
4873 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4873 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4874   end;
4875  
4876   function IClientBlock.getLogin(): PAnsiChar;
# Line 5724 | Line 4891 | end;
4891   procedure IClientBlock.putData(status: IStatus; length: Cardinal; data: Pointer);
4892   begin
4893          ClientBlockVTable(vTable).putData(Self, status, length, data);
4894 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4894 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4895   end;
4896  
4897   function IClientBlock.newKey(status: IStatus): ICryptKey;
4898   begin
4899          Result := ClientBlockVTable(vTable).newKey(Self, status);
4900 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4900 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4901 > end;
4902 >
4903 > function IClientBlock.getAuthBlock(status: IStatus): IAuthBlock;
4904 > begin
4905 >        Result := ClientBlockVTable(vTable).getAuthBlock(Self, status);
4906 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4907   end;
4908  
4909   function IServer.authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer;
4910   begin
4911          Result := ServerVTable(vTable).authenticate(Self, status, sBlock, writerInterface);
4912 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4912 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4913 > end;
4914 >
4915 > procedure IServer.setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
4916 > begin
4917 >        ServerVTable(vTable).setDbCryptCallback(Self, status, cryptCallback);
4918 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4919   end;
4920  
4921   function IClient.authenticate(status: IStatus; cBlock: IClientBlock): Integer;
4922   begin
4923          Result := ClientVTable(vTable).authenticate(Self, status, cBlock);
4924 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4924 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4925   end;
4926  
4927   function IUserField.entered(): Integer;
# Line 5758 | Line 4937 | end;
4937   procedure IUserField.setEntered(status: IStatus; newValue: Integer);
4938   begin
4939          UserFieldVTable(vTable).setEntered(Self, status, newValue);
4940 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4940 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4941   end;
4942  
4943   function ICharUserField.get(): PAnsiChar;
# Line 5769 | Line 4948 | end;
4948   procedure ICharUserField.set_(status: IStatus; newValue: PAnsiChar);
4949   begin
4950          CharUserFieldVTable(vTable).set_(Self, status, newValue);
4951 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4951 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4952   end;
4953  
4954   function IIntUserField.get(): Integer;
# Line 5780 | Line 4959 | end;
4959   procedure IIntUserField.set_(status: IStatus; newValue: Integer);
4960   begin
4961          IntUserFieldVTable(vTable).set_(Self, status, newValue);
4962 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4962 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
4963   end;
4964  
4965   function IUser.operation(): Cardinal;
# Line 5836 | Line 5015 | end;
5015   procedure IUser.clear(status: IStatus);
5016   begin
5017          UserVTable(vTable).clear(Self, status);
5018 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5018 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5019   end;
5020  
5021   procedure IListUsers.list(status: IStatus; user: IUser);
5022   begin
5023          ListUsersVTable(vTable).list(Self, status, user);
5024 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5024 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5025   end;
5026  
5027   function ILogonInfo.name(): PAnsiChar;
# Line 5870 | Line 5049 | begin
5049          Result := LogonInfoVTable(vTable).authBlock(Self, length);
5050   end;
5051  
5052 + function ILogonInfo.attachment(status: IStatus): IAttachment;
5053 + begin
5054 +        Result := LogonInfoVTable(vTable).attachment(Self, status);
5055 +        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5056 + end;
5057 +
5058 + function ILogonInfo.transaction(status: IStatus): ITransaction;
5059 + begin
5060 +        Result := LogonInfoVTable(vTable).transaction(Self, status);
5061 +        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5062 + end;
5063 +
5064   procedure IManagement.start(status: IStatus; logonInfo: ILogonInfo);
5065   begin
5066          ManagementVTable(vTable).start(Self, status, logonInfo);
5067 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5067 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5068   end;
5069  
5070   function IManagement.execute(status: IStatus; user: IUser; callback: IListUsers): Integer;
5071   begin
5072          Result := ManagementVTable(vTable).execute(Self, status, user, callback);
5073 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5073 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5074   end;
5075  
5076   procedure IManagement.commit(status: IStatus);
5077   begin
5078          ManagementVTable(vTable).commit(Self, status);
5079 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5079 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5080   end;
5081  
5082   procedure IManagement.rollback(status: IStatus);
5083   begin
5084          ManagementVTable(vTable).rollback(Self, status);
5085 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5085 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5086 > end;
5087 >
5088 > function IAuthBlock.getType(): PAnsiChar;
5089 > begin
5090 >        Result := AuthBlockVTable(vTable).getType(Self);
5091 > end;
5092 >
5093 > function IAuthBlock.getName(): PAnsiChar;
5094 > begin
5095 >        Result := AuthBlockVTable(vTable).getName(Self);
5096 > end;
5097 >
5098 > function IAuthBlock.getPlugin(): PAnsiChar;
5099 > begin
5100 >        Result := AuthBlockVTable(vTable).getPlugin(Self);
5101 > end;
5102 >
5103 > function IAuthBlock.getSecurityDb(): PAnsiChar;
5104 > begin
5105 >        Result := AuthBlockVTable(vTable).getSecurityDb(Self);
5106 > end;
5107 >
5108 > function IAuthBlock.getOriginalPlugin(): PAnsiChar;
5109 > begin
5110 >        Result := AuthBlockVTable(vTable).getOriginalPlugin(Self);
5111 > end;
5112 >
5113 > function IAuthBlock.next(status: IStatus): Boolean;
5114 > begin
5115 >        Result := AuthBlockVTable(vTable).next(Self, status);
5116 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5117 > end;
5118 >
5119 > function IAuthBlock.first(status: IStatus): Boolean;
5120 > begin
5121 >        Result := AuthBlockVTable(vTable).first(Self, status);
5122 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5123   end;
5124  
5125   function IWireCryptPlugin.getKnownTypes(status: IStatus): PAnsiChar;
5126   begin
5127          Result := WireCryptPluginVTable(vTable).getKnownTypes(Self, status);
5128 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5128 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5129   end;
5130  
5131   procedure IWireCryptPlugin.setKey(status: IStatus; key: ICryptKey);
5132   begin
5133          WireCryptPluginVTable(vTable).setKey(Self, status, key);
5134 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5134 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5135   end;
5136  
5137   procedure IWireCryptPlugin.encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5138   begin
5139          WireCryptPluginVTable(vTable).encrypt(Self, status, length, from, to_);
5140 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5140 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5141   end;
5142  
5143   procedure IWireCryptPlugin.decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5144   begin
5145          WireCryptPluginVTable(vTable).decrypt(Self, status, length, from, to_);
5146 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5146 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5147 > end;
5148 >
5149 > function IWireCryptPlugin.getSpecificData(status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr;
5150 > begin
5151 >        Result := WireCryptPluginVTable(vTable).getSpecificData(Self, status, keyType, length);
5152 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5153 > end;
5154 >
5155 > procedure IWireCryptPlugin.setSpecificData(status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr);
5156 > begin
5157 >        WireCryptPluginVTable(vTable).setSpecificData(Self, status, keyType, length, data);
5158 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5159   end;
5160  
5161   function ICryptKeyCallback.callback(dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal;
# Line 5926 | Line 5166 | end;
5166   function IKeyHolderPlugin.keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer;
5167   begin
5168          Result := KeyHolderPluginVTable(vTable).keyCallback(Self, status, callback);
5169 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5169 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5170   end;
5171  
5172   function IKeyHolderPlugin.keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback;
5173   begin
5174          Result := KeyHolderPluginVTable(vTable).keyHandle(Self, status, keyName);
5175 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5175 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5176 > end;
5177 >
5178 > function IKeyHolderPlugin.useOnlyOwnKeys(status: IStatus): Boolean;
5179 > begin
5180 >        Result := KeyHolderPluginVTable(vTable).useOnlyOwnKeys(Self, status);
5181 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5182 > end;
5183 >
5184 > function IKeyHolderPlugin.chainHandle(status: IStatus): ICryptKeyCallback;
5185 > begin
5186 >        Result := KeyHolderPluginVTable(vTable).chainHandle(Self, status);
5187 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5188 > end;
5189 >
5190 > function IDbCryptInfo.getDatabaseFullPath(status: IStatus): PAnsiChar;
5191 > begin
5192 >        Result := DbCryptInfoVTable(vTable).getDatabaseFullPath(Self, status);
5193 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5194   end;
5195  
5196   procedure IDbCryptPlugin.setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar);
5197   begin
5198          DbCryptPluginVTable(vTable).setKey(Self, status, length, sources, keyName);
5199 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5199 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5200   end;
5201  
5202   procedure IDbCryptPlugin.encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5203   begin
5204          DbCryptPluginVTable(vTable).encrypt(Self, status, length, from, to_);
5205 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5205 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5206   end;
5207  
5208   procedure IDbCryptPlugin.decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5209   begin
5210          DbCryptPluginVTable(vTable).decrypt(Self, status, length, from, to_);
5211 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5211 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5212 > end;
5213 >
5214 > procedure IDbCryptPlugin.setInfo(status: IStatus; info: IDbCryptInfo);
5215 > begin
5216 >        DbCryptPluginVTable(vTable).setInfo(Self, status, info);
5217 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5218   end;
5219  
5220   function IExternalContext.getMaster(): IMaster;
# Line 5961 | Line 5225 | end;
5225   function IExternalContext.getEngine(status: IStatus): IExternalEngine;
5226   begin
5227          Result := ExternalContextVTable(vTable).getEngine(Self, status);
5228 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5228 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5229   end;
5230  
5231   function IExternalContext.getAttachment(status: IStatus): IAttachment;
5232   begin
5233          Result := ExternalContextVTable(vTable).getAttachment(Self, status);
5234 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5234 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5235   end;
5236  
5237   function IExternalContext.getTransaction(status: IStatus): ITransaction;
5238   begin
5239          Result := ExternalContextVTable(vTable).getTransaction(Self, status);
5240 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5240 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5241   end;
5242  
5243   function IExternalContext.getUserName(): PAnsiChar;
# Line 6009 | Line 5273 | end;
5273   function IExternalResultSet.fetch(status: IStatus): Boolean;
5274   begin
5275          Result := ExternalResultSetVTable(vTable).fetch(Self, status);
5276 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5276 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5277   end;
5278  
5279   procedure IExternalFunction.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
5280   begin
5281          ExternalFunctionVTable(vTable).getCharSet(Self, status, context, name, nameSize);
5282 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5282 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5283   end;
5284  
5285   procedure IExternalFunction.execute(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer);
5286   begin
5287          ExternalFunctionVTable(vTable).execute(Self, status, context, inMsg, outMsg);
5288 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5288 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5289   end;
5290  
5291   procedure IExternalProcedure.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
5292   begin
5293          ExternalProcedureVTable(vTable).getCharSet(Self, status, context, name, nameSize);
5294 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5294 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5295   end;
5296  
5297   function IExternalProcedure.open(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet;
5298   begin
5299          Result := ExternalProcedureVTable(vTable).open(Self, status, context, inMsg, outMsg);
5300 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5300 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5301   end;
5302  
5303   procedure IExternalTrigger.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
5304   begin
5305          ExternalTriggerVTable(vTable).getCharSet(Self, status, context, name, nameSize);
5306 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5306 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5307   end;
5308  
5309   procedure IExternalTrigger.execute(status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer);
5310   begin
5311          ExternalTriggerVTable(vTable).execute(Self, status, context, action, oldMsg, newMsg);
5312 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5312 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5313   end;
5314  
5315   function IRoutineMetadata.getPackage(status: IStatus): PAnsiChar;
5316   begin
5317          Result := RoutineMetadataVTable(vTable).getPackage(Self, status);
5318 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5318 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5319   end;
5320  
5321   function IRoutineMetadata.getName(status: IStatus): PAnsiChar;
5322   begin
5323          Result := RoutineMetadataVTable(vTable).getName(Self, status);
5324 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5324 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5325   end;
5326  
5327   function IRoutineMetadata.getEntryPoint(status: IStatus): PAnsiChar;
5328   begin
5329          Result := RoutineMetadataVTable(vTable).getEntryPoint(Self, status);
5330 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5330 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5331   end;
5332  
5333   function IRoutineMetadata.getBody(status: IStatus): PAnsiChar;
5334   begin
5335          Result := RoutineMetadataVTable(vTable).getBody(Self, status);
5336 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5336 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5337   end;
5338  
5339   function IRoutineMetadata.getInputMetadata(status: IStatus): IMessageMetadata;
5340   begin
5341          Result := RoutineMetadataVTable(vTable).getInputMetadata(Self, status);
5342 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5342 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5343   end;
5344  
5345   function IRoutineMetadata.getOutputMetadata(status: IStatus): IMessageMetadata;
5346   begin
5347          Result := RoutineMetadataVTable(vTable).getOutputMetadata(Self, status);
5348 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5348 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5349   end;
5350  
5351   function IRoutineMetadata.getTriggerMetadata(status: IStatus): IMessageMetadata;
5352   begin
5353          Result := RoutineMetadataVTable(vTable).getTriggerMetadata(Self, status);
5354 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5354 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5355   end;
5356  
5357   function IRoutineMetadata.getTriggerTable(status: IStatus): PAnsiChar;
5358   begin
5359          Result := RoutineMetadataVTable(vTable).getTriggerTable(Self, status);
5360 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5360 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5361   end;
5362  
5363   function IRoutineMetadata.getTriggerType(status: IStatus): Cardinal;
5364   begin
5365          Result := RoutineMetadataVTable(vTable).getTriggerType(Self, status);
5366 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5366 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5367   end;
5368  
5369   procedure IExternalEngine.open(status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal);
5370   begin
5371          ExternalEngineVTable(vTable).open(Self, status, context, charSet, charSetSize);
5372 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5372 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5373   end;
5374  
5375   procedure IExternalEngine.openAttachment(status: IStatus; context: IExternalContext);
5376   begin
5377          ExternalEngineVTable(vTable).openAttachment(Self, status, context);
5378 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5378 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5379   end;
5380  
5381   procedure IExternalEngine.closeAttachment(status: IStatus; context: IExternalContext);
5382   begin
5383          ExternalEngineVTable(vTable).closeAttachment(Self, status, context);
5384 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5384 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5385   end;
5386  
5387   function IExternalEngine.makeFunction(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction;
5388   begin
5389          Result := ExternalEngineVTable(vTable).makeFunction(Self, status, context, metadata, inBuilder, outBuilder);
5390 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5390 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5391   end;
5392  
5393   function IExternalEngine.makeProcedure(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure;
5394   begin
5395          Result := ExternalEngineVTable(vTable).makeProcedure(Self, status, context, metadata, inBuilder, outBuilder);
5396 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5396 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5397   end;
5398  
5399   function IExternalEngine.makeTrigger(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger;
5400   begin
5401          Result := ExternalEngineVTable(vTable).makeTrigger(Self, status, context, metadata, fieldsBuilder);
5402 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5402 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5403   end;
5404  
5405   procedure ITimer.handler();
# Line 6146 | Line 5410 | end;
5410   procedure ITimerControl.start(status: IStatus; timer: ITimer; microSeconds: QWord);
5411   begin
5412          TimerControlVTable(vTable).start(Self, status, timer, microSeconds);
5413 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5413 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5414   end;
5415  
5416   procedure ITimerControl.stop(status: IStatus; timer: ITimer);
5417   begin
5418          TimerControlVTable(vTable).stop(Self, status, timer);
5419 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5419 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5420   end;
5421  
5422   procedure IVersionCallback.callback(status: IStatus; text: PAnsiChar);
5423   begin
5424          VersionCallbackVTable(vTable).callback(Self, status, text);
5425 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5425 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5426   end;
5427  
5428   procedure IUtil.getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback);
5429   begin
5430          UtilVTable(vTable).getFbVersion(Self, status, att, callback);
5431 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5431 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5432   end;
5433  
5434 < procedure IUtil.loadBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
5434 > procedure IUtil.loadBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
5435   begin
5436          UtilVTable(vTable).loadBlob(Self, status, blobId, att, tra, file_, txt);
5437 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5437 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5438   end;
5439  
5440 < procedure IUtil.dumpBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
5440 > procedure IUtil.dumpBlob(status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
5441   begin
5442          UtilVTable(vTable).dumpBlob(Self, status, blobId, att, tra, file_, txt);
5443 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5443 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5444   end;
5445  
5446   procedure IUtil.getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr);
5447   begin
5448          UtilVTable(vTable).getPerfCounters(Self, status, att, countersSet, counters);
5449 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5449 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5450   end;
5451  
5452   function IUtil.executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment;
5453   begin
5454          Result := UtilVTable(vTable).executeCreateDatabase(Self, status, stmtLength, creatDBstatement, dialect, stmtIsCreateDb);
5455 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5455 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5456   end;
5457  
5458   procedure IUtil.decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr);
# Line 6224 | Line 5488 | end;
5488   function IUtil.getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder;
5489   begin
5490          Result := UtilVTable(vTable).getXpbBuilder(Self, status, kind, buf, len);
5491 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5491 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5492   end;
5493  
5494   function IUtil.setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal;
5495   begin
5496          Result := UtilVTable(vTable).setOffsets(Self, status, metadata, callback);
5497 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5497 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5498 > end;
5499 >
5500 > function IUtil.getDecFloat16(status: IStatus): IDecFloat16;
5501 > begin
5502 >        Result := UtilVTable(vTable).getDecFloat16(Self, status);
5503 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5504 > end;
5505 >
5506 > function IUtil.getDecFloat34(status: IStatus): IDecFloat34;
5507 > begin
5508 >        Result := UtilVTable(vTable).getDecFloat34(Self, status);
5509 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5510 > end;
5511 >
5512 > procedure IUtil.decodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
5513 > begin
5514 >        UtilVTable(vTable).decodeTimeTz(Self, status, timeTz, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
5515 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5516 > end;
5517 >
5518 > procedure IUtil.decodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
5519 > begin
5520 >        UtilVTable(vTable).decodeTimeStampTz(Self, status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
5521 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5522 > end;
5523 >
5524 > procedure IUtil.encodeTimeTz(status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar);
5525 > begin
5526 >        UtilVTable(vTable).encodeTimeTz(Self, status, timeTz, hours, minutes, seconds, fractions, timeZone);
5527 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5528 > end;
5529 >
5530 > procedure IUtil.encodeTimeStampTz(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar);
5531 > begin
5532 >        UtilVTable(vTable).encodeTimeStampTz(Self, status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZone);
5533 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5534 > end;
5535 >
5536 > function IUtil.getInt128(status: IStatus): IInt128;
5537 > begin
5538 >        Result := UtilVTable(vTable).getInt128(Self, status);
5539 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5540 > end;
5541 >
5542 > procedure IUtil.decodeTimeTzEx(status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
5543 > begin
5544 >        UtilVTable(vTable).decodeTimeTzEx(Self, status, timeTz, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
5545 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5546 > end;
5547 >
5548 > procedure IUtil.decodeTimeStampTzEx(status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar);
5549 > begin
5550 >        UtilVTable(vTable).decodeTimeStampTzEx(Self, status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
5551 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5552   end;
5553  
5554   procedure IOffsetsCallback.setOffset(status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal);
5555   begin
5556          OffsetsCallbackVTable(vTable).setOffset(Self, status, index, offset, nullOffset);
5557 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5557 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5558   end;
5559  
5560   procedure IXpbBuilder.clear(status: IStatus);
5561   begin
5562          XpbBuilderVTable(vTable).clear(Self, status);
5563 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5563 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5564   end;
5565  
5566   procedure IXpbBuilder.removeCurrent(status: IStatus);
5567   begin
5568          XpbBuilderVTable(vTable).removeCurrent(Self, status);
5569 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5569 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5570   end;
5571  
5572   procedure IXpbBuilder.insertInt(status: IStatus; tag: Byte; value: Integer);
5573   begin
5574          XpbBuilderVTable(vTable).insertInt(Self, status, tag, value);
5575 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5575 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5576   end;
5577  
5578   procedure IXpbBuilder.insertBigInt(status: IStatus; tag: Byte; value: Int64);
5579   begin
5580          XpbBuilderVTable(vTable).insertBigInt(Self, status, tag, value);
5581 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5581 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5582   end;
5583  
5584   procedure IXpbBuilder.insertBytes(status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal);
5585   begin
5586          XpbBuilderVTable(vTable).insertBytes(Self, status, tag, bytes, length);
5587 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5587 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5588   end;
5589  
5590   procedure IXpbBuilder.insertString(status: IStatus; tag: Byte; str: PAnsiChar);
5591   begin
5592          XpbBuilderVTable(vTable).insertString(Self, status, tag, str);
5593 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5593 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5594   end;
5595  
5596   procedure IXpbBuilder.insertTag(status: IStatus; tag: Byte);
5597   begin
5598          XpbBuilderVTable(vTable).insertTag(Self, status, tag);
5599 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5599 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5600   end;
5601  
5602   function IXpbBuilder.isEof(status: IStatus): Boolean;
5603   begin
5604          Result := XpbBuilderVTable(vTable).isEof(Self, status);
5605 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5605 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5606   end;
5607  
5608   procedure IXpbBuilder.moveNext(status: IStatus);
5609   begin
5610          XpbBuilderVTable(vTable).moveNext(Self, status);
5611 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5611 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5612   end;
5613  
5614   procedure IXpbBuilder.rewind(status: IStatus);
5615   begin
5616          XpbBuilderVTable(vTable).rewind(Self, status);
5617 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5617 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5618   end;
5619  
5620   function IXpbBuilder.findFirst(status: IStatus; tag: Byte): Boolean;
5621   begin
5622          Result := XpbBuilderVTable(vTable).findFirst(Self, status, tag);
5623 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5623 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5624   end;
5625  
5626   function IXpbBuilder.findNext(status: IStatus): Boolean;
5627   begin
5628          Result := XpbBuilderVTable(vTable).findNext(Self, status);
5629 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5629 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5630   end;
5631  
5632   function IXpbBuilder.getTag(status: IStatus): Byte;
5633   begin
5634          Result := XpbBuilderVTable(vTable).getTag(Self, status);
5635 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5635 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5636   end;
5637  
5638   function IXpbBuilder.getLength(status: IStatus): Cardinal;
5639   begin
5640          Result := XpbBuilderVTable(vTable).getLength(Self, status);
5641 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5641 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5642   end;
5643  
5644   function IXpbBuilder.getInt(status: IStatus): Integer;
5645   begin
5646          Result := XpbBuilderVTable(vTable).getInt(Self, status);
5647 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5647 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5648   end;
5649  
5650   function IXpbBuilder.getBigInt(status: IStatus): Int64;
5651   begin
5652          Result := XpbBuilderVTable(vTable).getBigInt(Self, status);
5653 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5653 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5654   end;
5655  
5656   function IXpbBuilder.getString(status: IStatus): PAnsiChar;
5657   begin
5658          Result := XpbBuilderVTable(vTable).getString(Self, status);
5659 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5659 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5660   end;
5661  
5662   function IXpbBuilder.getBytes(status: IStatus): BytePtr;
5663   begin
5664          Result := XpbBuilderVTable(vTable).getBytes(Self, status);
5665 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5665 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5666   end;
5667  
5668   function IXpbBuilder.getBufferLength(status: IStatus): Cardinal;
5669   begin
5670          Result := XpbBuilderVTable(vTable).getBufferLength(Self, status);
5671 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5671 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5672   end;
5673  
5674   function IXpbBuilder.getBuffer(status: IStatus): BytePtr;
5675   begin
5676          Result := XpbBuilderVTable(vTable).getBuffer(Self, status);
5677 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5677 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5678   end;
5679  
5680   function ITraceConnection.getKind(): Cardinal;
# Line 6439 | Line 5757 | begin
5757          Result := TraceTransactionVTable(vTable).getPerf(Self);
5758   end;
5759  
5760 + function ITraceTransaction.getInitialID(): Int64;
5761 + begin
5762 +        Result := TraceTransactionVTable(vTable).getInitialID(Self);
5763 + end;
5764 +
5765 + function ITraceTransaction.getPreviousID(): Int64;
5766 + begin
5767 +        Result := TraceTransactionVTable(vTable).getPreviousID(Self);
5768 + end;
5769 +
5770   function ITraceParams.getCount(): Cardinal;
5771   begin
5772          Result := TraceParamsVTable(vTable).getCount(Self);
# Line 6449 | Line 5777 | begin
5777          Result := TraceParamsVTable(vTable).getParam(Self, idx);
5778   end;
5779  
5780 + function ITraceParams.getTextUTF8(status: IStatus; idx: Cardinal): PAnsiChar;
5781 + begin
5782 +        Result := TraceParamsVTable(vTable).getTextUTF8(Self, status, idx);
5783 +        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5784 + end;
5785 +
5786   function ITraceStatement.getStmtID(): Int64;
5787   begin
5788          Result := TraceStatementVTable(vTable).getStmtID(Self);
# Line 6654 | Line 5988 | begin
5988          Result := TraceLogWriterVTable(vTable).write(Self, buf, size);
5989   end;
5990  
5991 + function ITraceLogWriter.write_s(status: IStatus; buf: Pointer; size: Cardinal): Cardinal;
5992 + begin
5993 +        Result := TraceLogWriterVTable(vTable).write_s(Self, status, buf, size);
5994 +        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
5995 + end;
5996 +
5997   function ITraceInitInfo.getConfigText(): PAnsiChar;
5998   begin
5999          Result := TraceInitInfoVTable(vTable).getConfigText(Self);
# Line 6802 | Line 6142 | end;
6142   function ITraceFactory.trace_create(status: IStatus; init_info: ITraceInitInfo): ITracePlugin;
6143   begin
6144          Result := TraceFactoryVTable(vTable).trace_create(Self, status, init_info);
6145 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6145 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6146   end;
6147  
6148   procedure IUdrFunctionFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
6149   begin
6150          UdrFunctionFactoryVTable(vTable).setup(Self, status, context, metadata, inBuilder, outBuilder);
6151 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6151 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6152   end;
6153  
6154   function IUdrFunctionFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction;
6155   begin
6156          Result := UdrFunctionFactoryVTable(vTable).newItem(Self, status, context, metadata);
6157 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6157 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6158   end;
6159  
6160   procedure IUdrProcedureFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
6161   begin
6162          UdrProcedureFactoryVTable(vTable).setup(Self, status, context, metadata, inBuilder, outBuilder);
6163 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6163 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6164   end;
6165  
6166   function IUdrProcedureFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure;
6167   begin
6168          Result := UdrProcedureFactoryVTable(vTable).newItem(Self, status, context, metadata);
6169 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6169 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6170   end;
6171  
6172   procedure IUdrTriggerFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder);
6173   begin
6174          UdrTriggerFactoryVTable(vTable).setup(Self, status, context, metadata, fieldsBuilder);
6175 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6175 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6176   end;
6177  
6178   function IUdrTriggerFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger;
6179   begin
6180          Result := UdrTriggerFactoryVTable(vTable).newItem(Self, status, context, metadata);
6181 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6181 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6182   end;
6183  
6184   function IUdrPlugin.getMaster(): IMaster;
# Line 6849 | Line 6189 | end;
6189   procedure IUdrPlugin.registerFunction(status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory);
6190   begin
6191          UdrPluginVTable(vTable).registerFunction(Self, status, name, factory);
6192 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6192 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6193   end;
6194  
6195   procedure IUdrPlugin.registerProcedure(status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory);
6196   begin
6197          UdrPluginVTable(vTable).registerProcedure(Self, status, name, factory);
6198 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6198 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6199   end;
6200  
6201   procedure IUdrPlugin.registerTrigger(status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory);
6202   begin
6203          UdrPluginVTable(vTable).registerTrigger(Self, status, name, factory);
6204 <        {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6204 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6205 > end;
6206 >
6207 > procedure IDecFloat16.toBcd(from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr);
6208 > begin
6209 >        DecFloat16VTable(vTable).toBcd(Self, from, sign, bcd, exp);
6210 > end;
6211 >
6212 > procedure IDecFloat16.toString(status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar);
6213 > begin
6214 >        DecFloat16VTable(vTable).toString(Self, status, from, bufferLength, buffer);
6215 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6216 > end;
6217 >
6218 > procedure IDecFloat16.fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr);
6219 > begin
6220 >        DecFloat16VTable(vTable).fromBcd(Self, sign, bcd, exp, to_);
6221 > end;
6222 >
6223 > procedure IDecFloat16.fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr);
6224 > begin
6225 >        DecFloat16VTable(vTable).fromString(Self, status, from, to_);
6226 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6227 > end;
6228 >
6229 > procedure IDecFloat34.toBcd(from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr);
6230 > begin
6231 >        DecFloat34VTable(vTable).toBcd(Self, from, sign, bcd, exp);
6232 > end;
6233 >
6234 > procedure IDecFloat34.toString(status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar);
6235 > begin
6236 >        DecFloat34VTable(vTable).toString(Self, status, from, bufferLength, buffer);
6237 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6238 > end;
6239 >
6240 > procedure IDecFloat34.fromBcd(sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr);
6241 > begin
6242 >        DecFloat34VTable(vTable).fromBcd(Self, sign, bcd, exp, to_);
6243 > end;
6244 >
6245 > procedure IDecFloat34.fromString(status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr);
6246 > begin
6247 >        DecFloat34VTable(vTable).fromString(Self, status, from, to_);
6248 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6249 > end;
6250 >
6251 > procedure IInt128.toString(status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar);
6252 > begin
6253 >        Int128VTable(vTable).toString(Self, status, from, scale, bufferLength, buffer);
6254 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6255 > end;
6256 >
6257 > procedure IInt128.fromString(status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr);
6258 > begin
6259 >        Int128VTable(vTable).fromString(Self, status, scale, from, to_);
6260 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6261 > end;
6262 >
6263 > function IReplicatedField.getName(): PAnsiChar;
6264 > begin
6265 >        Result := ReplicatedFieldVTable(vTable).getName(Self);
6266 > end;
6267 >
6268 > function IReplicatedField.getType(): Cardinal;
6269 > begin
6270 >        Result := ReplicatedFieldVTable(vTable).getType(Self);
6271 > end;
6272 >
6273 > function IReplicatedField.getSubType(): Integer;
6274 > begin
6275 >        Result := ReplicatedFieldVTable(vTable).getSubType(Self);
6276 > end;
6277 >
6278 > function IReplicatedField.getScale(): Integer;
6279 > begin
6280 >        Result := ReplicatedFieldVTable(vTable).getScale(Self);
6281 > end;
6282 >
6283 > function IReplicatedField.getLength(): Cardinal;
6284 > begin
6285 >        Result := ReplicatedFieldVTable(vTable).getLength(Self);
6286 > end;
6287 >
6288 > function IReplicatedField.getCharSet(): Cardinal;
6289 > begin
6290 >        Result := ReplicatedFieldVTable(vTable).getCharSet(Self);
6291 > end;
6292 >
6293 > function IReplicatedField.getData(): Pointer;
6294 > begin
6295 >        Result := ReplicatedFieldVTable(vTable).getData(Self);
6296 > end;
6297 >
6298 > function IReplicatedRecord.getCount(): Cardinal;
6299 > begin
6300 >        Result := ReplicatedRecordVTable(vTable).getCount(Self);
6301 > end;
6302 >
6303 > function IReplicatedRecord.getField(index: Cardinal): IReplicatedField;
6304 > begin
6305 >        Result := ReplicatedRecordVTable(vTable).getField(Self, index);
6306 > end;
6307 >
6308 > function IReplicatedRecord.getRawLength(): Cardinal;
6309 > begin
6310 >        Result := ReplicatedRecordVTable(vTable).getRawLength(Self);
6311 > end;
6312 >
6313 > function IReplicatedRecord.getRawData(): BytePtr;
6314 > begin
6315 >        Result := ReplicatedRecordVTable(vTable).getRawData(Self);
6316 > end;
6317 >
6318 > procedure IReplicatedTransaction.prepare(status: IStatus);
6319 > begin
6320 >        ReplicatedTransactionVTable(vTable).prepare(Self, status);
6321 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6322 > end;
6323 >
6324 > procedure IReplicatedTransaction.commit(status: IStatus);
6325 > begin
6326 >        ReplicatedTransactionVTable(vTable).commit(Self, status);
6327 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6328 > end;
6329 >
6330 > procedure IReplicatedTransaction.rollback(status: IStatus);
6331 > begin
6332 >        ReplicatedTransactionVTable(vTable).rollback(Self, status);
6333 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6334 > end;
6335 >
6336 > procedure IReplicatedTransaction.startSavepoint(status: IStatus);
6337 > begin
6338 >        ReplicatedTransactionVTable(vTable).startSavepoint(Self, status);
6339 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6340 > end;
6341 >
6342 > procedure IReplicatedTransaction.releaseSavepoint(status: IStatus);
6343 > begin
6344 >        ReplicatedTransactionVTable(vTable).releaseSavepoint(Self, status);
6345 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6346 > end;
6347 >
6348 > procedure IReplicatedTransaction.rollbackSavepoint(status: IStatus);
6349 > begin
6350 >        ReplicatedTransactionVTable(vTable).rollbackSavepoint(Self, status);
6351 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6352 > end;
6353 >
6354 > procedure IReplicatedTransaction.insertRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord);
6355 > begin
6356 >        ReplicatedTransactionVTable(vTable).insertRecord(Self, status, name, record_);
6357 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6358 > end;
6359 >
6360 > procedure IReplicatedTransaction.updateRecord(status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord);
6361 > begin
6362 >        ReplicatedTransactionVTable(vTable).updateRecord(Self, status, name, orgRecord, newRecord);
6363 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6364 > end;
6365 >
6366 > procedure IReplicatedTransaction.deleteRecord(status: IStatus; name: PAnsiChar; record_: IReplicatedRecord);
6367 > begin
6368 >        ReplicatedTransactionVTable(vTable).deleteRecord(Self, status, name, record_);
6369 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6370 > end;
6371 >
6372 > procedure IReplicatedTransaction.executeSql(status: IStatus; sql: PAnsiChar);
6373 > begin
6374 >        ReplicatedTransactionVTable(vTable).executeSql(Self, status, sql);
6375 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6376 > end;
6377 >
6378 > procedure IReplicatedTransaction.executeSqlIntl(status: IStatus; charset: Cardinal; sql: PAnsiChar);
6379 > begin
6380 >        ReplicatedTransactionVTable(vTable).executeSqlIntl(Self, status, charset, sql);
6381 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6382 > end;
6383 >
6384 > procedure IReplicatedSession.setAttachment(attachment: IAttachment);
6385 > begin
6386 >        ReplicatedSessionVTable(vTable).setAttachment(Self, attachment);
6387 > end;
6388 >
6389 > function IReplicatedSession.startTransaction(status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction;
6390 > begin
6391 >        Result := ReplicatedSessionVTable(vTable).startTransaction(Self, status, transaction, number);
6392 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6393 > end;
6394 >
6395 > procedure IReplicatedSession.cleanupTransaction(status: IStatus; number: Int64);
6396 > begin
6397 >        ReplicatedSessionVTable(vTable).cleanupTransaction(Self, status, number);
6398 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6399 > end;
6400 >
6401 > procedure IReplicatedSession.setSequence(status: IStatus; name: PAnsiChar; value: Int64);
6402 > begin
6403 >        ReplicatedSessionVTable(vTable).setSequence(Self, status, name, value);
6404 >        {$IFDEF USEFBEXCEPTION}FbException.checkException(status);{$ENDIF}
6405   end;
6406  
6407   var
# Line 7422 | Line 6962 | begin
6962          end
6963   end;
6964  
6965 + function IFirebirdConfImpl_getVersionDispatcher(this: IFirebirdConf; status: IStatus): Cardinal; cdecl;
6966 + begin
6967 +        try
6968 +                Result := IFirebirdConfImpl(this).getVersion(status);
6969 +        except
6970 +                on e: Exception do FbException.catchException(status, e);
6971 +        end
6972 + end;
6973 +
6974   var
6975          IFirebirdConfImpl_vTable: FirebirdConfVTable;
6976  
# Line 7518 | Line 7067 | begin
7067          end
7068   end;
7069  
7070 + procedure IPluginModuleImpl_threadDetachDispatcher(this: IPluginModule); cdecl;
7071 + begin
7072 +        try
7073 +                IPluginModuleImpl(this).threadDetach();
7074 +        except
7075 +                on e: Exception do FbException.catchException(nil, e);
7076 +        end
7077 + end;
7078 +
7079   var
7080          IPluginModuleImpl_vTable: PluginModuleVTable;
7081  
# Line 7686 | Line 7244 | begin
7244          end
7245   end;
7246  
7247 + function IConfigManagerImpl_getDefaultSecurityDbDispatcher(this: IConfigManager): PAnsiChar; cdecl;
7248 + begin
7249 +        try
7250 +                Result := IConfigManagerImpl(this).getDefaultSecurityDb();
7251 +        except
7252 +                on e: Exception do FbException.catchException(nil, e);
7253 +        end
7254 + end;
7255 +
7256   var
7257          IConfigManagerImpl_vTable: ConfigManagerVTable;
7258  
# Line 8078 | Line 7645 | begin
7645          end
7646   end;
7647  
7648 + function IMessageMetadataImpl_getAlignmentDispatcher(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
7649 + begin
7650 +        try
7651 +                Result := IMessageMetadataImpl(this).getAlignment(status);
7652 +        except
7653 +                on e: Exception do FbException.catchException(status, e);
7654 +        end
7655 + end;
7656 +
7657 + function IMessageMetadataImpl_getAlignedLengthDispatcher(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
7658 + begin
7659 +        try
7660 +                Result := IMessageMetadataImpl(this).getAlignedLength(status);
7661 +        except
7662 +                on e: Exception do FbException.catchException(status, e);
7663 +        end
7664 + end;
7665 +
7666   var
7667          IMessageMetadataImpl_vTable: MessageMetadataVTable;
7668  
# Line 8140 | Line 7725 | begin
7725          end
7726   end;
7727  
7728 < procedure IMetadataBuilderImpl_setScaleDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; scale: integer); cdecl;
7728 > procedure IMetadataBuilderImpl_setScaleDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; scale: Integer); cdecl;
7729   begin
7730          try
7731                  IMetadataBuilderImpl(this).setScale(status, index, scale);
# Line 8194 | Line 7779 | begin
7779          end
7780   end;
7781  
7782 + procedure IMetadataBuilderImpl_setFieldDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; field: PAnsiChar); cdecl;
7783 + begin
7784 +        try
7785 +                IMetadataBuilderImpl(this).setField(status, index, field);
7786 +        except
7787 +                on e: Exception do FbException.catchException(status, e);
7788 +        end
7789 + end;
7790 +
7791 + procedure IMetadataBuilderImpl_setRelationDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; relation: PAnsiChar); cdecl;
7792 + begin
7793 +        try
7794 +                IMetadataBuilderImpl(this).setRelation(status, index, relation);
7795 +        except
7796 +                on e: Exception do FbException.catchException(status, e);
7797 +        end
7798 + end;
7799 +
7800 + procedure IMetadataBuilderImpl_setOwnerDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; owner: PAnsiChar); cdecl;
7801 + begin
7802 +        try
7803 +                IMetadataBuilderImpl(this).setOwner(status, index, owner);
7804 +        except
7805 +                on e: Exception do FbException.catchException(status, e);
7806 +        end
7807 + end;
7808 +
7809 + procedure IMetadataBuilderImpl_setAliasDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; alias: PAnsiChar); cdecl;
7810 + begin
7811 +        try
7812 +                IMetadataBuilderImpl(this).setAlias(status, index, alias);
7813 +        except
7814 +                on e: Exception do FbException.catchException(status, e);
7815 +        end
7816 + end;
7817 +
7818   var
7819          IMetadataBuilderImpl_vTable: MetadataBuilderVTable;
7820  
# Line 8444 | Line 8065 | begin
8065          end
8066   end;
8067  
8068 + function IStatementImpl_getTimeoutDispatcher(this: IStatement; status: IStatus): Cardinal; cdecl;
8069 + begin
8070 +        try
8071 +                Result := IStatementImpl(this).getTimeout(status);
8072 +        except
8073 +                on e: Exception do FbException.catchException(status, e);
8074 +        end
8075 + end;
8076 +
8077 + procedure IStatementImpl_setTimeoutDispatcher(this: IStatement; status: IStatus; timeOut: Cardinal); cdecl;
8078 + begin
8079 +        try
8080 +                IStatementImpl(this).setTimeout(status, timeOut);
8081 +        except
8082 +                on e: Exception do FbException.catchException(status, e);
8083 +        end
8084 + end;
8085 +
8086 + function IStatementImpl_createBatchDispatcher(this: IStatement; status: IStatus; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; cdecl;
8087 + begin
8088 +        try
8089 +                Result := IStatementImpl(this).createBatch(status, inMetadata, parLength, par);
8090 +        except
8091 +                on e: Exception do FbException.catchException(status, e);
8092 +        end
8093 + end;
8094 +
8095   var
8096          IStatementImpl_vTable: StatementVTable;
8097  
# Line 8452 | Line 8100 | begin
8100          vTable := IStatementImpl_vTable;
8101   end;
8102  
8103 + procedure IBatchImpl_addRefDispatcher(this: IBatch); cdecl;
8104 + begin
8105 +        try
8106 +                IBatchImpl(this).addRef();
8107 +        except
8108 +                on e: Exception do FbException.catchException(nil, e);
8109 +        end
8110 + end;
8111 +
8112 + function IBatchImpl_releaseDispatcher(this: IBatch): Integer; cdecl;
8113 + begin
8114 +        try
8115 +                Result := IBatchImpl(this).release();
8116 +        except
8117 +                on e: Exception do FbException.catchException(nil, e);
8118 +        end
8119 + end;
8120 +
8121 + procedure IBatchImpl_addDispatcher(this: IBatch; status: IStatus; count: Cardinal; inBuffer: Pointer); cdecl;
8122 + begin
8123 +        try
8124 +                IBatchImpl(this).add(status, count, inBuffer);
8125 +        except
8126 +                on e: Exception do FbException.catchException(status, e);
8127 +        end
8128 + end;
8129 +
8130 + procedure IBatchImpl_addBlobDispatcher(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer; blobId: ISC_QUADPtr; parLength: Cardinal; par: BytePtr); cdecl;
8131 + begin
8132 +        try
8133 +                IBatchImpl(this).addBlob(status, length, inBuffer, blobId, parLength, par);
8134 +        except
8135 +                on e: Exception do FbException.catchException(status, e);
8136 +        end
8137 + end;
8138 +
8139 + procedure IBatchImpl_appendBlobDataDispatcher(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer); cdecl;
8140 + begin
8141 +        try
8142 +                IBatchImpl(this).appendBlobData(status, length, inBuffer);
8143 +        except
8144 +                on e: Exception do FbException.catchException(status, e);
8145 +        end
8146 + end;
8147 +
8148 + procedure IBatchImpl_addBlobStreamDispatcher(this: IBatch; status: IStatus; length: Cardinal; inBuffer: Pointer); cdecl;
8149 + begin
8150 +        try
8151 +                IBatchImpl(this).addBlobStream(status, length, inBuffer);
8152 +        except
8153 +                on e: Exception do FbException.catchException(status, e);
8154 +        end
8155 + end;
8156 +
8157 + procedure IBatchImpl_registerBlobDispatcher(this: IBatch; status: IStatus; existingBlob: ISC_QUADPtr; blobId: ISC_QUADPtr); cdecl;
8158 + begin
8159 +        try
8160 +                IBatchImpl(this).registerBlob(status, existingBlob, blobId);
8161 +        except
8162 +                on e: Exception do FbException.catchException(status, e);
8163 +        end
8164 + end;
8165 +
8166 + function IBatchImpl_executeDispatcher(this: IBatch; status: IStatus; transaction: ITransaction): IBatchCompletionState; cdecl;
8167 + begin
8168 +        try
8169 +                Result := IBatchImpl(this).execute(status, transaction);
8170 +        except
8171 +                on e: Exception do FbException.catchException(status, e);
8172 +        end
8173 + end;
8174 +
8175 + procedure IBatchImpl_cancelDispatcher(this: IBatch; status: IStatus); cdecl;
8176 + begin
8177 +        try
8178 +                IBatchImpl(this).cancel(status);
8179 +        except
8180 +                on e: Exception do FbException.catchException(status, e);
8181 +        end
8182 + end;
8183 +
8184 + function IBatchImpl_getBlobAlignmentDispatcher(this: IBatch; status: IStatus): Cardinal; cdecl;
8185 + begin
8186 +        try
8187 +                Result := IBatchImpl(this).getBlobAlignment(status);
8188 +        except
8189 +                on e: Exception do FbException.catchException(status, e);
8190 +        end
8191 + end;
8192 +
8193 + function IBatchImpl_getMetadataDispatcher(this: IBatch; status: IStatus): IMessageMetadata; cdecl;
8194 + begin
8195 +        try
8196 +                Result := IBatchImpl(this).getMetadata(status);
8197 +        except
8198 +                on e: Exception do FbException.catchException(status, e);
8199 +        end
8200 + end;
8201 +
8202 + procedure IBatchImpl_setDefaultBpbDispatcher(this: IBatch; status: IStatus; parLength: Cardinal; par: BytePtr); cdecl;
8203 + begin
8204 +        try
8205 +                IBatchImpl(this).setDefaultBpb(status, parLength, par);
8206 +        except
8207 +                on e: Exception do FbException.catchException(status, e);
8208 +        end
8209 + end;
8210 +
8211 + var
8212 +        IBatchImpl_vTable: BatchVTable;
8213 +
8214 + constructor IBatchImpl.create;
8215 + begin
8216 +        vTable := IBatchImpl_vTable;
8217 + end;
8218 +
8219 + procedure IBatchCompletionStateImpl_disposeDispatcher(this: IBatchCompletionState); cdecl;
8220 + begin
8221 +        try
8222 +                IBatchCompletionStateImpl(this).dispose();
8223 +        except
8224 +                on e: Exception do FbException.catchException(nil, e);
8225 +        end
8226 + end;
8227 +
8228 + function IBatchCompletionStateImpl_getSizeDispatcher(this: IBatchCompletionState; status: IStatus): Cardinal; cdecl;
8229 + begin
8230 +        try
8231 +                Result := IBatchCompletionStateImpl(this).getSize(status);
8232 +        except
8233 +                on e: Exception do FbException.catchException(status, e);
8234 +        end
8235 + end;
8236 +
8237 + function IBatchCompletionStateImpl_getStateDispatcher(this: IBatchCompletionState; status: IStatus; pos: Cardinal): Integer; cdecl;
8238 + begin
8239 +        try
8240 +                Result := IBatchCompletionStateImpl(this).getState(status, pos);
8241 +        except
8242 +                on e: Exception do FbException.catchException(status, e);
8243 +        end
8244 + end;
8245 +
8246 + function IBatchCompletionStateImpl_findErrorDispatcher(this: IBatchCompletionState; status: IStatus; pos: Cardinal): Cardinal; cdecl;
8247 + begin
8248 +        try
8249 +                Result := IBatchCompletionStateImpl(this).findError(status, pos);
8250 +        except
8251 +                on e: Exception do FbException.catchException(status, e);
8252 +        end
8253 + end;
8254 +
8255 + procedure IBatchCompletionStateImpl_getStatusDispatcher(this: IBatchCompletionState; status: IStatus; to_: IStatus; pos: Cardinal); cdecl;
8256 + begin
8257 +        try
8258 +                IBatchCompletionStateImpl(this).getStatus(status, to_, pos);
8259 +        except
8260 +                on e: Exception do FbException.catchException(status, e);
8261 +        end
8262 + end;
8263 +
8264 + var
8265 +        IBatchCompletionStateImpl_vTable: BatchCompletionStateVTable;
8266 +
8267 + constructor IBatchCompletionStateImpl.create;
8268 + begin
8269 +        vTable := IBatchCompletionStateImpl_vTable;
8270 + end;
8271 +
8272 + procedure IReplicatorImpl_addRefDispatcher(this: IReplicator); cdecl;
8273 + begin
8274 +        try
8275 +                IReplicatorImpl(this).addRef();
8276 +        except
8277 +                on e: Exception do FbException.catchException(nil, e);
8278 +        end
8279 + end;
8280 +
8281 + function IReplicatorImpl_releaseDispatcher(this: IReplicator): Integer; cdecl;
8282 + begin
8283 +        try
8284 +                Result := IReplicatorImpl(this).release();
8285 +        except
8286 +                on e: Exception do FbException.catchException(nil, e);
8287 +        end
8288 + end;
8289 +
8290 + procedure IReplicatorImpl_processDispatcher(this: IReplicator; status: IStatus; length: Cardinal; data: BytePtr); cdecl;
8291 + begin
8292 +        try
8293 +                IReplicatorImpl(this).process(status, length, data);
8294 +        except
8295 +                on e: Exception do FbException.catchException(status, e);
8296 +        end
8297 + end;
8298 +
8299 + procedure IReplicatorImpl_closeDispatcher(this: IReplicator; status: IStatus); cdecl;
8300 + begin
8301 +        try
8302 +                IReplicatorImpl(this).close(status);
8303 +        except
8304 +                on e: Exception do FbException.catchException(status, e);
8305 +        end
8306 + end;
8307 +
8308 + var
8309 +        IReplicatorImpl_vTable: ReplicatorVTable;
8310 +
8311 + constructor IReplicatorImpl.create;
8312 + begin
8313 +        vTable := IReplicatorImpl_vTable;
8314 + end;
8315 +
8316   procedure IRequestImpl_addRefDispatcher(this: IRequest); cdecl;
8317   begin
8318          try
# Line 8470 | Line 8331 | begin
8331          end
8332   end;
8333  
8334 < procedure IRequestImpl_receiveDispatcher(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
8334 > procedure IRequestImpl_receiveDispatcher(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
8335   begin
8336          try
8337                  IRequestImpl(this).receive(status, level, msgType, length, message);
# Line 8479 | Line 8340 | begin
8340          end
8341   end;
8342  
8343 < procedure IRequestImpl_sendDispatcher(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
8343 > procedure IRequestImpl_sendDispatcher(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
8344   begin
8345          try
8346                  IRequestImpl(this).send(status, level, msgType, length, message);
# Line 8506 | Line 8367 | begin
8367          end
8368   end;
8369  
8370 < procedure IRequestImpl_startAndSendDispatcher(this: IRequest; status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
8370 > procedure IRequestImpl_startAndSendDispatcher(this: IRequest; status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: Pointer); cdecl;
8371   begin
8372          try
8373                  IRequestImpl(this).startAndSend(status, tra, level, msgType, length, message);
# Line 8639 | Line 8500 | begin
8500          end
8501   end;
8502  
8503 < function IAttachmentImpl_createBlobDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
8503 > function IAttachmentImpl_createBlobDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
8504   begin
8505          try
8506                  Result := IAttachmentImpl(this).createBlob(status, transaction, id, bpbLength, bpb);
# Line 8648 | Line 8509 | begin
8509          end
8510   end;
8511  
8512 < function IAttachmentImpl_openBlobDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
8512 > function IAttachmentImpl_openBlobDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
8513   begin
8514          try
8515                  Result := IAttachmentImpl(this).openBlob(status, transaction, id, bpbLength, bpb);
# Line 8657 | Line 8518 | begin
8518          end
8519   end;
8520  
8521 < function IAttachmentImpl_getSliceDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; cdecl;
8521 > function IAttachmentImpl_getSliceDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; cdecl;
8522   begin
8523          try
8524                  Result := IAttachmentImpl(this).getSlice(status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
# Line 8666 | Line 8527 | begin
8527          end
8528   end;
8529  
8530 < procedure IAttachmentImpl_putSliceDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); cdecl;
8530 > procedure IAttachmentImpl_putSliceDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: ISC_QUADPtr; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); cdecl;
8531   begin
8532          try
8533                  IAttachmentImpl(this).putSlice(status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
# Line 8756 | Line 8617 | begin
8617          end
8618   end;
8619  
8620 + function IAttachmentImpl_getIdleTimeoutDispatcher(this: IAttachment; status: IStatus): Cardinal; cdecl;
8621 + begin
8622 +        try
8623 +                Result := IAttachmentImpl(this).getIdleTimeout(status);
8624 +        except
8625 +                on e: Exception do FbException.catchException(status, e);
8626 +        end
8627 + end;
8628 +
8629 + procedure IAttachmentImpl_setIdleTimeoutDispatcher(this: IAttachment; status: IStatus; timeOut: Cardinal); cdecl;
8630 + begin
8631 +        try
8632 +                IAttachmentImpl(this).setIdleTimeout(status, timeOut);
8633 +        except
8634 +                on e: Exception do FbException.catchException(status, e);
8635 +        end
8636 + end;
8637 +
8638 + function IAttachmentImpl_getStatementTimeoutDispatcher(this: IAttachment; status: IStatus): Cardinal; cdecl;
8639 + begin
8640 +        try
8641 +                Result := IAttachmentImpl(this).getStatementTimeout(status);
8642 +        except
8643 +                on e: Exception do FbException.catchException(status, e);
8644 +        end
8645 + end;
8646 +
8647 + procedure IAttachmentImpl_setStatementTimeoutDispatcher(this: IAttachment; status: IStatus; timeOut: Cardinal); cdecl;
8648 + begin
8649 +        try
8650 +                IAttachmentImpl(this).setStatementTimeout(status, timeOut);
8651 +        except
8652 +                on e: Exception do FbException.catchException(status, e);
8653 +        end
8654 + end;
8655 +
8656 + function IAttachmentImpl_createBatchDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; parLength: Cardinal; par: BytePtr): IBatch; cdecl;
8657 + begin
8658 +        try
8659 +                Result := IAttachmentImpl(this).createBatch(status, transaction, stmtLength, sqlStmt, dialect, inMetadata, parLength, par);
8660 +        except
8661 +                on e: Exception do FbException.catchException(status, e);
8662 +        end
8663 + end;
8664 +
8665 + function IAttachmentImpl_createReplicatorDispatcher(this: IAttachment; status: IStatus): IReplicator; cdecl;
8666 + begin
8667 +        try
8668 +                Result := IAttachmentImpl(this).createReplicator(status);
8669 +        except
8670 +                on e: Exception do FbException.catchException(status, e);
8671 +        end
8672 + end;
8673 +
8674   var
8675          IAttachmentImpl_vTable: AttachmentVTable;
8676  
# Line 9171 | Line 9086 | begin
9086          end
9087   end;
9088  
9089 + function IClientBlockImpl_getAuthBlockDispatcher(this: IClientBlock; status: IStatus): IAuthBlock; cdecl;
9090 + begin
9091 +        try
9092 +                Result := IClientBlockImpl(this).getAuthBlock(status);
9093 +        except
9094 +                on e: Exception do FbException.catchException(status, e);
9095 +        end
9096 + end;
9097 +
9098   var
9099          IClientBlockImpl_vTable: ClientBlockVTable;
9100  
# Line 9224 | Line 9148 | begin
9148          end
9149   end;
9150  
9151 + procedure IServerImpl_setDbCryptCallbackDispatcher(this: IServer; status: IStatus; cryptCallback: ICryptKeyCallback); cdecl;
9152 + begin
9153 +        try
9154 +                IServerImpl(this).setDbCryptCallback(status, cryptCallback);
9155 +        except
9156 +                on e: Exception do FbException.catchException(status, e);
9157 +        end
9158 + end;
9159 +
9160   var
9161          IServerImpl_vTable: ServerVTable;
9162  
# Line 9595 | Line 9528 | begin
9528          end
9529   end;
9530  
9531 + function ILogonInfoImpl_attachmentDispatcher(this: ILogonInfo; status: IStatus): IAttachment; cdecl;
9532 + begin
9533 +        try
9534 +                Result := ILogonInfoImpl(this).attachment(status);
9535 +        except
9536 +                on e: Exception do FbException.catchException(status, e);
9537 +        end
9538 + end;
9539 +
9540 + function ILogonInfoImpl_transactionDispatcher(this: ILogonInfo; status: IStatus): ITransaction; cdecl;
9541 + begin
9542 +        try
9543 +                Result := ILogonInfoImpl(this).transaction(status);
9544 +        except
9545 +                on e: Exception do FbException.catchException(status, e);
9546 +        end
9547 + end;
9548 +
9549   var
9550          ILogonInfoImpl_vTable: LogonInfoVTable;
9551  
# Line 9683 | Line 9634 | begin
9634          vTable := IManagementImpl_vTable;
9635   end;
9636  
9637 + function IAuthBlockImpl_getTypeDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9638 + begin
9639 +        try
9640 +                Result := IAuthBlockImpl(this).getType();
9641 +        except
9642 +                on e: Exception do FbException.catchException(nil, e);
9643 +        end
9644 + end;
9645 +
9646 + function IAuthBlockImpl_getNameDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9647 + begin
9648 +        try
9649 +                Result := IAuthBlockImpl(this).getName();
9650 +        except
9651 +                on e: Exception do FbException.catchException(nil, e);
9652 +        end
9653 + end;
9654 +
9655 + function IAuthBlockImpl_getPluginDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9656 + begin
9657 +        try
9658 +                Result := IAuthBlockImpl(this).getPlugin();
9659 +        except
9660 +                on e: Exception do FbException.catchException(nil, e);
9661 +        end
9662 + end;
9663 +
9664 + function IAuthBlockImpl_getSecurityDbDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9665 + begin
9666 +        try
9667 +                Result := IAuthBlockImpl(this).getSecurityDb();
9668 +        except
9669 +                on e: Exception do FbException.catchException(nil, e);
9670 +        end
9671 + end;
9672 +
9673 + function IAuthBlockImpl_getOriginalPluginDispatcher(this: IAuthBlock): PAnsiChar; cdecl;
9674 + begin
9675 +        try
9676 +                Result := IAuthBlockImpl(this).getOriginalPlugin();
9677 +        except
9678 +                on e: Exception do FbException.catchException(nil, e);
9679 +        end
9680 + end;
9681 +
9682 + function IAuthBlockImpl_nextDispatcher(this: IAuthBlock; status: IStatus): Boolean; cdecl;
9683 + begin
9684 +        try
9685 +                Result := IAuthBlockImpl(this).next(status);
9686 +        except
9687 +                on e: Exception do FbException.catchException(status, e);
9688 +        end
9689 + end;
9690 +
9691 + function IAuthBlockImpl_firstDispatcher(this: IAuthBlock; status: IStatus): Boolean; cdecl;
9692 + begin
9693 +        try
9694 +                Result := IAuthBlockImpl(this).first(status);
9695 +        except
9696 +                on e: Exception do FbException.catchException(status, e);
9697 +        end
9698 + end;
9699 +
9700 + var
9701 +        IAuthBlockImpl_vTable: AuthBlockVTable;
9702 +
9703 + constructor IAuthBlockImpl.create;
9704 + begin
9705 +        vTable := IAuthBlockImpl_vTable;
9706 + end;
9707 +
9708   procedure IWireCryptPluginImpl_addRefDispatcher(this: IWireCryptPlugin); cdecl;
9709   begin
9710          try
# Line 9755 | Line 9777 | begin
9777          end
9778   end;
9779  
9780 + function IWireCryptPluginImpl_getSpecificDataDispatcher(this: IWireCryptPlugin; status: IStatus; keyType: PAnsiChar; length: CardinalPtr): BytePtr; cdecl;
9781 + begin
9782 +        try
9783 +                Result := IWireCryptPluginImpl(this).getSpecificData(status, keyType, length);
9784 +        except
9785 +                on e: Exception do FbException.catchException(status, e);
9786 +        end
9787 + end;
9788 +
9789 + procedure IWireCryptPluginImpl_setSpecificDataDispatcher(this: IWireCryptPlugin; status: IStatus; keyType: PAnsiChar; length: Cardinal; data: BytePtr); cdecl;
9790 + begin
9791 +        try
9792 +                IWireCryptPluginImpl(this).setSpecificData(status, keyType, length, data);
9793 +        except
9794 +                on e: Exception do FbException.catchException(status, e);
9795 +        end
9796 + end;
9797 +
9798   var
9799          IWireCryptPluginImpl_vTable: WireCryptPluginVTable;
9800  
# Line 9834 | Line 9874 | begin
9874          end
9875   end;
9876  
9877 + function IKeyHolderPluginImpl_useOnlyOwnKeysDispatcher(this: IKeyHolderPlugin; status: IStatus): Boolean; cdecl;
9878 + begin
9879 +        try
9880 +                Result := IKeyHolderPluginImpl(this).useOnlyOwnKeys(status);
9881 +        except
9882 +                on e: Exception do FbException.catchException(status, e);
9883 +        end
9884 + end;
9885 +
9886 + function IKeyHolderPluginImpl_chainHandleDispatcher(this: IKeyHolderPlugin; status: IStatus): ICryptKeyCallback; cdecl;
9887 + begin
9888 +        try
9889 +                Result := IKeyHolderPluginImpl(this).chainHandle(status);
9890 +        except
9891 +                on e: Exception do FbException.catchException(status, e);
9892 +        end
9893 + end;
9894 +
9895   var
9896          IKeyHolderPluginImpl_vTable: KeyHolderPluginVTable;
9897  
# Line 9842 | Line 9900 | begin
9900          vTable := IKeyHolderPluginImpl_vTable;
9901   end;
9902  
9903 + procedure IDbCryptInfoImpl_addRefDispatcher(this: IDbCryptInfo); cdecl;
9904 + begin
9905 +        try
9906 +                IDbCryptInfoImpl(this).addRef();
9907 +        except
9908 +                on e: Exception do FbException.catchException(nil, e);
9909 +        end
9910 + end;
9911 +
9912 + function IDbCryptInfoImpl_releaseDispatcher(this: IDbCryptInfo): Integer; cdecl;
9913 + begin
9914 +        try
9915 +                Result := IDbCryptInfoImpl(this).release();
9916 +        except
9917 +                on e: Exception do FbException.catchException(nil, e);
9918 +        end
9919 + end;
9920 +
9921 + function IDbCryptInfoImpl_getDatabaseFullPathDispatcher(this: IDbCryptInfo; status: IStatus): PAnsiChar; cdecl;
9922 + begin
9923 +        try
9924 +                Result := IDbCryptInfoImpl(this).getDatabaseFullPath(status);
9925 +        except
9926 +                on e: Exception do FbException.catchException(status, e);
9927 +        end
9928 + end;
9929 +
9930 + var
9931 +        IDbCryptInfoImpl_vTable: DbCryptInfoVTable;
9932 +
9933 + constructor IDbCryptInfoImpl.create;
9934 + begin
9935 +        vTable := IDbCryptInfoImpl_vTable;
9936 + end;
9937 +
9938   procedure IDbCryptPluginImpl_addRefDispatcher(this: IDbCryptPlugin); cdecl;
9939   begin
9940          try
# Line 9905 | Line 9998 | begin
9998          end
9999   end;
10000  
10001 + procedure IDbCryptPluginImpl_setInfoDispatcher(this: IDbCryptPlugin; status: IStatus; info: IDbCryptInfo); cdecl;
10002 + begin
10003 +        try
10004 +                IDbCryptPluginImpl(this).setInfo(status, info);
10005 +        except
10006 +                on e: Exception do FbException.catchException(status, e);
10007 +        end
10008 + end;
10009 +
10010   var
10011          IDbCryptPluginImpl_vTable: DbCryptPluginVTable;
10012  
# Line 10416 | Line 10518 | begin
10518          end
10519   end;
10520  
10521 < procedure IUtilImpl_loadBlobDispatcher(this: IUtil; status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
10521 > procedure IUtilImpl_loadBlobDispatcher(this: IUtil; status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
10522   begin
10523          try
10524                  IUtilImpl(this).loadBlob(status, blobId, att, tra, file_, txt);
# Line 10425 | Line 10527 | begin
10527          end
10528   end;
10529  
10530 < procedure IUtilImpl_dumpBlobDispatcher(this: IUtil; status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
10530 > procedure IUtilImpl_dumpBlobDispatcher(this: IUtil; status: IStatus; blobId: ISC_QUADPtr; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
10531   begin
10532          try
10533                  IUtilImpl(this).dumpBlob(status, blobId, att, tra, file_, txt);
# Line 10524 | Line 10626 | begin
10626          end
10627   end;
10628  
10629 + function IUtilImpl_getDecFloat16Dispatcher(this: IUtil; status: IStatus): IDecFloat16; cdecl;
10630 + begin
10631 +        try
10632 +                Result := IUtilImpl(this).getDecFloat16(status);
10633 +        except
10634 +                on e: Exception do FbException.catchException(status, e);
10635 +        end
10636 + end;
10637 +
10638 + function IUtilImpl_getDecFloat34Dispatcher(this: IUtil; status: IStatus): IDecFloat34; cdecl;
10639 + begin
10640 +        try
10641 +                Result := IUtilImpl(this).getDecFloat34(status);
10642 +        except
10643 +                on e: Exception do FbException.catchException(status, e);
10644 +        end
10645 + end;
10646 +
10647 + procedure IUtilImpl_decodeTimeTzDispatcher(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
10648 + begin
10649 +        try
10650 +                IUtilImpl(this).decodeTimeTz(status, timeTz, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
10651 +        except
10652 +                on e: Exception do FbException.catchException(status, e);
10653 +        end
10654 + end;
10655 +
10656 + procedure IUtilImpl_decodeTimeStampTzDispatcher(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
10657 + begin
10658 +        try
10659 +                IUtilImpl(this).decodeTimeStampTz(status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
10660 +        except
10661 +                on e: Exception do FbException.catchException(status, e);
10662 +        end
10663 + end;
10664 +
10665 + procedure IUtilImpl_encodeTimeTzDispatcher(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZPtr; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); cdecl;
10666 + begin
10667 +        try
10668 +                IUtilImpl(this).encodeTimeTz(status, timeTz, hours, minutes, seconds, fractions, timeZone);
10669 +        except
10670 +                on e: Exception do FbException.catchException(status, e);
10671 +        end
10672 + end;
10673 +
10674 + procedure IUtilImpl_encodeTimeStampTzDispatcher(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZPtr; year: Cardinal; month: Cardinal; day: Cardinal; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal; timeZone: PAnsiChar); cdecl;
10675 + begin
10676 +        try
10677 +                IUtilImpl(this).encodeTimeStampTz(status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZone);
10678 +        except
10679 +                on e: Exception do FbException.catchException(status, e);
10680 +        end
10681 + end;
10682 +
10683 + function IUtilImpl_getInt128Dispatcher(this: IUtil; status: IStatus): IInt128; cdecl;
10684 + begin
10685 +        try
10686 +                Result := IUtilImpl(this).getInt128(status);
10687 +        except
10688 +                on e: Exception do FbException.catchException(status, e);
10689 +        end
10690 + end;
10691 +
10692 + procedure IUtilImpl_decodeTimeTzExDispatcher(this: IUtil; status: IStatus; timeTz: ISC_TIME_TZ_EXPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
10693 + begin
10694 +        try
10695 +                IUtilImpl(this).decodeTimeTzEx(status, timeTz, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
10696 +        except
10697 +                on e: Exception do FbException.catchException(status, e);
10698 +        end
10699 + end;
10700 +
10701 + procedure IUtilImpl_decodeTimeStampTzExDispatcher(this: IUtil; status: IStatus; timeStampTz: ISC_TIMESTAMP_TZ_EXPtr; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr; timeZoneBufferLength: Cardinal; timeZoneBuffer: PAnsiChar); cdecl;
10702 + begin
10703 +        try
10704 +                IUtilImpl(this).decodeTimeStampTzEx(status, timeStampTz, year, month, day, hours, minutes, seconds, fractions, timeZoneBufferLength, timeZoneBuffer);
10705 +        except
10706 +                on e: Exception do FbException.catchException(status, e);
10707 +        end
10708 + end;
10709 +
10710   var
10711          IUtilImpl_vTable: UtilVTable;
10712  
# Line 10987 | Line 11170 | begin
11170          end
11171   end;
11172  
11173 + function ITraceTransactionImpl_getInitialIDDispatcher(this: ITraceTransaction): Int64; cdecl;
11174 + begin
11175 +        try
11176 +                Result := ITraceTransactionImpl(this).getInitialID();
11177 +        except
11178 +                on e: Exception do FbException.catchException(nil, e);
11179 +        end
11180 + end;
11181 +
11182 + function ITraceTransactionImpl_getPreviousIDDispatcher(this: ITraceTransaction): Int64; cdecl;
11183 + begin
11184 +        try
11185 +                Result := ITraceTransactionImpl(this).getPreviousID();
11186 +        except
11187 +                on e: Exception do FbException.catchException(nil, e);
11188 +        end
11189 + end;
11190 +
11191   var
11192          ITraceTransactionImpl_vTable: TraceTransactionVTable;
11193  
# Line 11013 | Line 11214 | begin
11214          end
11215   end;
11216  
11217 + function ITraceParamsImpl_getTextUTF8Dispatcher(this: ITraceParams; status: IStatus; idx: Cardinal): PAnsiChar; cdecl;
11218 + begin
11219 +        try
11220 +                Result := ITraceParamsImpl(this).getTextUTF8(status, idx);
11221 +        except
11222 +                on e: Exception do FbException.catchException(status, e);
11223 +        end
11224 + end;
11225 +
11226   var
11227          ITraceParamsImpl_vTable: TraceParamsVTable;
11228  
# Line 11613 | Line 11823 | begin
11823          end
11824   end;
11825  
11826 + function ITraceLogWriterImpl_write_sDispatcher(this: ITraceLogWriter; status: IStatus; buf: Pointer; size: Cardinal): Cardinal; cdecl;
11827 + begin
11828 +        try
11829 +                Result := ITraceLogWriterImpl(this).write_s(status, buf, size);
11830 +        except
11831 +                on e: Exception do FbException.catchException(status, e);
11832 +        end
11833 + end;
11834 +
11835   var
11836          ITraceLogWriterImpl_vTable: TraceLogWriterVTable;
11837  
# Line 12118 | Line 12337 | begin
12337          vTable := IUdrPluginImpl_vTable;
12338   end;
12339  
12340 + procedure IDecFloat16Impl_toBcdDispatcher(this: IDecFloat16; from: FB_DEC16Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); cdecl;
12341 + begin
12342 +        try
12343 +                IDecFloat16Impl(this).toBcd(from, sign, bcd, exp);
12344 +        except
12345 +                on e: Exception do FbException.catchException(nil, e);
12346 +        end
12347 + end;
12348 +
12349 + procedure IDecFloat16Impl_toStringDispatcher(this: IDecFloat16; status: IStatus; from: FB_DEC16Ptr; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
12350 + begin
12351 +        try
12352 +                IDecFloat16Impl(this).toString(status, from, bufferLength, buffer);
12353 +        except
12354 +                on e: Exception do FbException.catchException(status, e);
12355 +        end
12356 + end;
12357 +
12358 + procedure IDecFloat16Impl_fromBcdDispatcher(this: IDecFloat16; sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC16Ptr); cdecl;
12359 + begin
12360 +        try
12361 +                IDecFloat16Impl(this).fromBcd(sign, bcd, exp, to_);
12362 +        except
12363 +                on e: Exception do FbException.catchException(nil, e);
12364 +        end
12365 + end;
12366 +
12367 + procedure IDecFloat16Impl_fromStringDispatcher(this: IDecFloat16; status: IStatus; from: PAnsiChar; to_: FB_DEC16Ptr); cdecl;
12368 + begin
12369 +        try
12370 +                IDecFloat16Impl(this).fromString(status, from, to_);
12371 +        except
12372 +                on e: Exception do FbException.catchException(status, e);
12373 +        end
12374 + end;
12375 +
12376 + var
12377 +        IDecFloat16Impl_vTable: DecFloat16VTable;
12378 +
12379 + constructor IDecFloat16Impl.create;
12380 + begin
12381 +        vTable := IDecFloat16Impl_vTable;
12382 + end;
12383 +
12384 + procedure IDecFloat34Impl_toBcdDispatcher(this: IDecFloat34; from: FB_DEC34Ptr; sign: IntegerPtr; bcd: BytePtr; exp: IntegerPtr); cdecl;
12385 + begin
12386 +        try
12387 +                IDecFloat34Impl(this).toBcd(from, sign, bcd, exp);
12388 +        except
12389 +                on e: Exception do FbException.catchException(nil, e);
12390 +        end
12391 + end;
12392 +
12393 + procedure IDecFloat34Impl_toStringDispatcher(this: IDecFloat34; status: IStatus; from: FB_DEC34Ptr; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
12394 + begin
12395 +        try
12396 +                IDecFloat34Impl(this).toString(status, from, bufferLength, buffer);
12397 +        except
12398 +                on e: Exception do FbException.catchException(status, e);
12399 +        end
12400 + end;
12401 +
12402 + procedure IDecFloat34Impl_fromBcdDispatcher(this: IDecFloat34; sign: Integer; bcd: BytePtr; exp: Integer; to_: FB_DEC34Ptr); cdecl;
12403 + begin
12404 +        try
12405 +                IDecFloat34Impl(this).fromBcd(sign, bcd, exp, to_);
12406 +        except
12407 +                on e: Exception do FbException.catchException(nil, e);
12408 +        end
12409 + end;
12410 +
12411 + procedure IDecFloat34Impl_fromStringDispatcher(this: IDecFloat34; status: IStatus; from: PAnsiChar; to_: FB_DEC34Ptr); cdecl;
12412 + begin
12413 +        try
12414 +                IDecFloat34Impl(this).fromString(status, from, to_);
12415 +        except
12416 +                on e: Exception do FbException.catchException(status, e);
12417 +        end
12418 + end;
12419 +
12420 + var
12421 +        IDecFloat34Impl_vTable: DecFloat34VTable;
12422 +
12423 + constructor IDecFloat34Impl.create;
12424 + begin
12425 +        vTable := IDecFloat34Impl_vTable;
12426 + end;
12427 +
12428 + procedure IInt128Impl_toStringDispatcher(this: IInt128; status: IStatus; from: FB_I128Ptr; scale: Integer; bufferLength: Cardinal; buffer: PAnsiChar); cdecl;
12429 + begin
12430 +        try
12431 +                IInt128Impl(this).toString(status, from, scale, bufferLength, buffer);
12432 +        except
12433 +                on e: Exception do FbException.catchException(status, e);
12434 +        end
12435 + end;
12436 +
12437 + procedure IInt128Impl_fromStringDispatcher(this: IInt128; status: IStatus; scale: Integer; from: PAnsiChar; to_: FB_I128Ptr); cdecl;
12438 + begin
12439 +        try
12440 +                IInt128Impl(this).fromString(status, scale, from, to_);
12441 +        except
12442 +                on e: Exception do FbException.catchException(status, e);
12443 +        end
12444 + end;
12445 +
12446 + var
12447 +        IInt128Impl_vTable: Int128VTable;
12448 +
12449 + constructor IInt128Impl.create;
12450 + begin
12451 +        vTable := IInt128Impl_vTable;
12452 + end;
12453 +
12454 + function IReplicatedFieldImpl_getNameDispatcher(this: IReplicatedField): PAnsiChar; cdecl;
12455 + begin
12456 +        try
12457 +                Result := IReplicatedFieldImpl(this).getName();
12458 +        except
12459 +                on e: Exception do FbException.catchException(nil, e);
12460 +        end
12461 + end;
12462 +
12463 + function IReplicatedFieldImpl_getTypeDispatcher(this: IReplicatedField): Cardinal; cdecl;
12464 + begin
12465 +        try
12466 +                Result := IReplicatedFieldImpl(this).getType();
12467 +        except
12468 +                on e: Exception do FbException.catchException(nil, e);
12469 +        end
12470 + end;
12471 +
12472 + function IReplicatedFieldImpl_getSubTypeDispatcher(this: IReplicatedField): Integer; cdecl;
12473 + begin
12474 +        try
12475 +                Result := IReplicatedFieldImpl(this).getSubType();
12476 +        except
12477 +                on e: Exception do FbException.catchException(nil, e);
12478 +        end
12479 + end;
12480 +
12481 + function IReplicatedFieldImpl_getScaleDispatcher(this: IReplicatedField): Integer; cdecl;
12482 + begin
12483 +        try
12484 +                Result := IReplicatedFieldImpl(this).getScale();
12485 +        except
12486 +                on e: Exception do FbException.catchException(nil, e);
12487 +        end
12488 + end;
12489 +
12490 + function IReplicatedFieldImpl_getLengthDispatcher(this: IReplicatedField): Cardinal; cdecl;
12491 + begin
12492 +        try
12493 +                Result := IReplicatedFieldImpl(this).getLength();
12494 +        except
12495 +                on e: Exception do FbException.catchException(nil, e);
12496 +        end
12497 + end;
12498 +
12499 + function IReplicatedFieldImpl_getCharSetDispatcher(this: IReplicatedField): Cardinal; cdecl;
12500 + begin
12501 +        try
12502 +                Result := IReplicatedFieldImpl(this).getCharSet();
12503 +        except
12504 +                on e: Exception do FbException.catchException(nil, e);
12505 +        end
12506 + end;
12507 +
12508 + function IReplicatedFieldImpl_getDataDispatcher(this: IReplicatedField): Pointer; cdecl;
12509 + begin
12510 +        try
12511 +                Result := IReplicatedFieldImpl(this).getData();
12512 +        except
12513 +                on e: Exception do FbException.catchException(nil, e);
12514 +        end
12515 + end;
12516 +
12517 + var
12518 +        IReplicatedFieldImpl_vTable: ReplicatedFieldVTable;
12519 +
12520 + constructor IReplicatedFieldImpl.create;
12521 + begin
12522 +        vTable := IReplicatedFieldImpl_vTable;
12523 + end;
12524 +
12525 + function IReplicatedRecordImpl_getCountDispatcher(this: IReplicatedRecord): Cardinal; cdecl;
12526 + begin
12527 +        try
12528 +                Result := IReplicatedRecordImpl(this).getCount();
12529 +        except
12530 +                on e: Exception do FbException.catchException(nil, e);
12531 +        end
12532 + end;
12533 +
12534 + function IReplicatedRecordImpl_getFieldDispatcher(this: IReplicatedRecord; index: Cardinal): IReplicatedField; cdecl;
12535 + begin
12536 +        try
12537 +                Result := IReplicatedRecordImpl(this).getField(index);
12538 +        except
12539 +                on e: Exception do FbException.catchException(nil, e);
12540 +        end
12541 + end;
12542 +
12543 + function IReplicatedRecordImpl_getRawLengthDispatcher(this: IReplicatedRecord): Cardinal; cdecl;
12544 + begin
12545 +        try
12546 +                Result := IReplicatedRecordImpl(this).getRawLength();
12547 +        except
12548 +                on e: Exception do FbException.catchException(nil, e);
12549 +        end
12550 + end;
12551 +
12552 + function IReplicatedRecordImpl_getRawDataDispatcher(this: IReplicatedRecord): BytePtr; cdecl;
12553 + begin
12554 +        try
12555 +                Result := IReplicatedRecordImpl(this).getRawData();
12556 +        except
12557 +                on e: Exception do FbException.catchException(nil, e);
12558 +        end
12559 + end;
12560 +
12561 + var
12562 +        IReplicatedRecordImpl_vTable: ReplicatedRecordVTable;
12563 +
12564 + constructor IReplicatedRecordImpl.create;
12565 + begin
12566 +        vTable := IReplicatedRecordImpl_vTable;
12567 + end;
12568 +
12569 + procedure IReplicatedTransactionImpl_disposeDispatcher(this: IReplicatedTransaction); cdecl;
12570 + begin
12571 +        try
12572 +                IReplicatedTransactionImpl(this).dispose();
12573 +        except
12574 +                on e: Exception do FbException.catchException(nil, e);
12575 +        end
12576 + end;
12577 +
12578 + procedure IReplicatedTransactionImpl_prepareDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12579 + begin
12580 +        try
12581 +                IReplicatedTransactionImpl(this).prepare(status);
12582 +        except
12583 +                on e: Exception do FbException.catchException(status, e);
12584 +        end
12585 + end;
12586 +
12587 + procedure IReplicatedTransactionImpl_commitDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12588 + begin
12589 +        try
12590 +                IReplicatedTransactionImpl(this).commit(status);
12591 +        except
12592 +                on e: Exception do FbException.catchException(status, e);
12593 +        end
12594 + end;
12595 +
12596 + procedure IReplicatedTransactionImpl_rollbackDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12597 + begin
12598 +        try
12599 +                IReplicatedTransactionImpl(this).rollback(status);
12600 +        except
12601 +                on e: Exception do FbException.catchException(status, e);
12602 +        end
12603 + end;
12604 +
12605 + procedure IReplicatedTransactionImpl_startSavepointDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12606 + begin
12607 +        try
12608 +                IReplicatedTransactionImpl(this).startSavepoint(status);
12609 +        except
12610 +                on e: Exception do FbException.catchException(status, e);
12611 +        end
12612 + end;
12613 +
12614 + procedure IReplicatedTransactionImpl_releaseSavepointDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12615 + begin
12616 +        try
12617 +                IReplicatedTransactionImpl(this).releaseSavepoint(status);
12618 +        except
12619 +                on e: Exception do FbException.catchException(status, e);
12620 +        end
12621 + end;
12622 +
12623 + procedure IReplicatedTransactionImpl_rollbackSavepointDispatcher(this: IReplicatedTransaction; status: IStatus); cdecl;
12624 + begin
12625 +        try
12626 +                IReplicatedTransactionImpl(this).rollbackSavepoint(status);
12627 +        except
12628 +                on e: Exception do FbException.catchException(status, e);
12629 +        end
12630 + end;
12631 +
12632 + procedure IReplicatedTransactionImpl_insertRecordDispatcher(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); cdecl;
12633 + begin
12634 +        try
12635 +                IReplicatedTransactionImpl(this).insertRecord(status, name, record_);
12636 +        except
12637 +                on e: Exception do FbException.catchException(status, e);
12638 +        end
12639 + end;
12640 +
12641 + procedure IReplicatedTransactionImpl_updateRecordDispatcher(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; orgRecord: IReplicatedRecord; newRecord: IReplicatedRecord); cdecl;
12642 + begin
12643 +        try
12644 +                IReplicatedTransactionImpl(this).updateRecord(status, name, orgRecord, newRecord);
12645 +        except
12646 +                on e: Exception do FbException.catchException(status, e);
12647 +        end
12648 + end;
12649 +
12650 + procedure IReplicatedTransactionImpl_deleteRecordDispatcher(this: IReplicatedTransaction; status: IStatus; name: PAnsiChar; record_: IReplicatedRecord); cdecl;
12651 + begin
12652 +        try
12653 +                IReplicatedTransactionImpl(this).deleteRecord(status, name, record_);
12654 +        except
12655 +                on e: Exception do FbException.catchException(status, e);
12656 +        end
12657 + end;
12658 +
12659 + procedure IReplicatedTransactionImpl_executeSqlDispatcher(this: IReplicatedTransaction; status: IStatus; sql: PAnsiChar); cdecl;
12660 + begin
12661 +        try
12662 +                IReplicatedTransactionImpl(this).executeSql(status, sql);
12663 +        except
12664 +                on e: Exception do FbException.catchException(status, e);
12665 +        end
12666 + end;
12667 +
12668 + procedure IReplicatedTransactionImpl_executeSqlIntlDispatcher(this: IReplicatedTransaction; status: IStatus; charset: Cardinal; sql: PAnsiChar); cdecl;
12669 + begin
12670 +        try
12671 +                IReplicatedTransactionImpl(this).executeSqlIntl(status, charset, sql);
12672 +        except
12673 +                on e: Exception do FbException.catchException(status, e);
12674 +        end
12675 + end;
12676 +
12677 + var
12678 +        IReplicatedTransactionImpl_vTable: ReplicatedTransactionVTable;
12679 +
12680 + constructor IReplicatedTransactionImpl.create;
12681 + begin
12682 +        vTable := IReplicatedTransactionImpl_vTable;
12683 + end;
12684 +
12685 + procedure IReplicatedSessionImpl_addRefDispatcher(this: IReplicatedSession); cdecl;
12686 + begin
12687 +        try
12688 +                IReplicatedSessionImpl(this).addRef();
12689 +        except
12690 +                on e: Exception do FbException.catchException(nil, e);
12691 +        end
12692 + end;
12693 +
12694 + function IReplicatedSessionImpl_releaseDispatcher(this: IReplicatedSession): Integer; cdecl;
12695 + begin
12696 +        try
12697 +                Result := IReplicatedSessionImpl(this).release();
12698 +        except
12699 +                on e: Exception do FbException.catchException(nil, e);
12700 +        end
12701 + end;
12702 +
12703 + procedure IReplicatedSessionImpl_setOwnerDispatcher(this: IReplicatedSession; r: IReferenceCounted); cdecl;
12704 + begin
12705 +        try
12706 +                IReplicatedSessionImpl(this).setOwner(r);
12707 +        except
12708 +                on e: Exception do FbException.catchException(nil, e);
12709 +        end
12710 + end;
12711 +
12712 + function IReplicatedSessionImpl_getOwnerDispatcher(this: IReplicatedSession): IReferenceCounted; cdecl;
12713 + begin
12714 +        try
12715 +                Result := IReplicatedSessionImpl(this).getOwner();
12716 +        except
12717 +                on e: Exception do FbException.catchException(nil, e);
12718 +        end
12719 + end;
12720 +
12721 + procedure IReplicatedSessionImpl_setAttachmentDispatcher(this: IReplicatedSession; attachment: IAttachment); cdecl;
12722 + begin
12723 +        try
12724 +                IReplicatedSessionImpl(this).setAttachment(attachment);
12725 +        except
12726 +                on e: Exception do FbException.catchException(nil, e);
12727 +        end
12728 + end;
12729 +
12730 + function IReplicatedSessionImpl_startTransactionDispatcher(this: IReplicatedSession; status: IStatus; transaction: ITransaction; number: Int64): IReplicatedTransaction; cdecl;
12731 + begin
12732 +        try
12733 +                Result := IReplicatedSessionImpl(this).startTransaction(status, transaction, number);
12734 +        except
12735 +                on e: Exception do FbException.catchException(status, e);
12736 +        end
12737 + end;
12738 +
12739 + procedure IReplicatedSessionImpl_cleanupTransactionDispatcher(this: IReplicatedSession; status: IStatus; number: Int64); cdecl;
12740 + begin
12741 +        try
12742 +                IReplicatedSessionImpl(this).cleanupTransaction(status, number);
12743 +        except
12744 +                on e: Exception do FbException.catchException(status, e);
12745 +        end
12746 + end;
12747 +
12748 + procedure IReplicatedSessionImpl_setSequenceDispatcher(this: IReplicatedSession; status: IStatus; name: PAnsiChar; value: Int64); cdecl;
12749 + begin
12750 +        try
12751 +                IReplicatedSessionImpl(this).setSequence(status, name, value);
12752 +        except
12753 +                on e: Exception do FbException.catchException(status, e);
12754 +        end
12755 + end;
12756 +
12757 + var
12758 +        IReplicatedSessionImpl_vTable: ReplicatedSessionVTable;
12759 +
12760 + constructor IReplicatedSessionImpl.create;
12761 + begin
12762 +        vTable := IReplicatedSessionImpl_vTable;
12763 + end;
12764 +
12765   constructor FbException.create(status: IStatus);
12766   begin
12767          inherited Create('FbException');
# Line 12163 | Line 12807 | begin
12807   end;
12808   initialization
12809          IVersionedImpl_vTable := VersionedVTable.create;
12810 <        IVersionedImpl_vTable.version := 0;
12810 >        IVersionedImpl_vTable.version := 1;
12811  
12812          IReferenceCountedImpl_vTable := ReferenceCountedVTable.create;
12813          IReferenceCountedImpl_vTable.version := 2;
# Line 12171 | Line 12815 | initialization
12815          IReferenceCountedImpl_vTable.release := @IReferenceCountedImpl_releaseDispatcher;
12816  
12817          IDisposableImpl_vTable := DisposableVTable.create;
12818 <        IDisposableImpl_vTable.version := 1;
12818 >        IDisposableImpl_vTable.version := 2;
12819          IDisposableImpl_vTable.dispose := @IDisposableImpl_disposeDispatcher;
12820  
12821          IStatusImpl_vTable := StatusVTable.create;
12822 <        IStatusImpl_vTable.version := 10;
12822 >        IStatusImpl_vTable.version := 3;
12823          IStatusImpl_vTable.dispose := @IStatusImpl_disposeDispatcher;
12824          IStatusImpl_vTable.init := @IStatusImpl_initDispatcher;
12825          IStatusImpl_vTable.getState := @IStatusImpl_getStateDispatcher;
# Line 12188 | Line 12832 | initialization
12832          IStatusImpl_vTable.clone := @IStatusImpl_cloneDispatcher;
12833  
12834          IMasterImpl_vTable := MasterVTable.create;
12835 <        IMasterImpl_vTable.version := 12;
12835 >        IMasterImpl_vTable.version := 2;
12836          IMasterImpl_vTable.getStatus := @IMasterImpl_getStatusDispatcher;
12837          IMasterImpl_vTable.getDispatcher := @IMasterImpl_getDispatcherDispatcher;
12838          IMasterImpl_vTable.getPluginManager := @IMasterImpl_getPluginManagerDispatcher;
# Line 12203 | Line 12847 | initialization
12847          IMasterImpl_vTable.getProcessExiting := @IMasterImpl_getProcessExitingDispatcher;
12848  
12849          IPluginBaseImpl_vTable := PluginBaseVTable.create;
12850 <        IPluginBaseImpl_vTable.version := 4;
12850 >        IPluginBaseImpl_vTable.version := 3;
12851          IPluginBaseImpl_vTable.addRef := @IPluginBaseImpl_addRefDispatcher;
12852          IPluginBaseImpl_vTable.release := @IPluginBaseImpl_releaseDispatcher;
12853          IPluginBaseImpl_vTable.setOwner := @IPluginBaseImpl_setOwnerDispatcher;
12854          IPluginBaseImpl_vTable.getOwner := @IPluginBaseImpl_getOwnerDispatcher;
12855  
12856          IPluginSetImpl_vTable := PluginSetVTable.create;
12857 <        IPluginSetImpl_vTable.version := 7;
12857 >        IPluginSetImpl_vTable.version := 3;
12858          IPluginSetImpl_vTable.addRef := @IPluginSetImpl_addRefDispatcher;
12859          IPluginSetImpl_vTable.release := @IPluginSetImpl_releaseDispatcher;
12860          IPluginSetImpl_vTable.getName := @IPluginSetImpl_getNameDispatcher;
# Line 12220 | Line 12864 | initialization
12864          IPluginSetImpl_vTable.set_ := @IPluginSetImpl_set_Dispatcher;
12865  
12866          IConfigEntryImpl_vTable := ConfigEntryVTable.create;
12867 <        IConfigEntryImpl_vTable.version := 7;
12867 >        IConfigEntryImpl_vTable.version := 3;
12868          IConfigEntryImpl_vTable.addRef := @IConfigEntryImpl_addRefDispatcher;
12869          IConfigEntryImpl_vTable.release := @IConfigEntryImpl_releaseDispatcher;
12870          IConfigEntryImpl_vTable.getName := @IConfigEntryImpl_getNameDispatcher;
# Line 12230 | Line 12874 | initialization
12874          IConfigEntryImpl_vTable.getSubConfig := @IConfigEntryImpl_getSubConfigDispatcher;
12875  
12876          IConfigImpl_vTable := ConfigVTable.create;
12877 <        IConfigImpl_vTable.version := 5;
12877 >        IConfigImpl_vTable.version := 3;
12878          IConfigImpl_vTable.addRef := @IConfigImpl_addRefDispatcher;
12879          IConfigImpl_vTable.release := @IConfigImpl_releaseDispatcher;
12880          IConfigImpl_vTable.find := @IConfigImpl_findDispatcher;
# Line 12238 | Line 12882 | initialization
12882          IConfigImpl_vTable.findPos := @IConfigImpl_findPosDispatcher;
12883  
12884          IFirebirdConfImpl_vTable := FirebirdConfVTable.create;
12885 <        IFirebirdConfImpl_vTable.version := 6;
12885 >        IFirebirdConfImpl_vTable.version := 4;
12886          IFirebirdConfImpl_vTable.addRef := @IFirebirdConfImpl_addRefDispatcher;
12887          IFirebirdConfImpl_vTable.release := @IFirebirdConfImpl_releaseDispatcher;
12888          IFirebirdConfImpl_vTable.getKey := @IFirebirdConfImpl_getKeyDispatcher;
12889          IFirebirdConfImpl_vTable.asInteger := @IFirebirdConfImpl_asIntegerDispatcher;
12890          IFirebirdConfImpl_vTable.asString := @IFirebirdConfImpl_asStringDispatcher;
12891          IFirebirdConfImpl_vTable.asBoolean := @IFirebirdConfImpl_asBooleanDispatcher;
12892 +        IFirebirdConfImpl_vTable.getVersion := @IFirebirdConfImpl_getVersionDispatcher;
12893  
12894          IPluginConfigImpl_vTable := PluginConfigVTable.create;
12895 <        IPluginConfigImpl_vTable.version := 6;
12895 >        IPluginConfigImpl_vTable.version := 3;
12896          IPluginConfigImpl_vTable.addRef := @IPluginConfigImpl_addRefDispatcher;
12897          IPluginConfigImpl_vTable.release := @IPluginConfigImpl_releaseDispatcher;
12898          IPluginConfigImpl_vTable.getConfigFileName := @IPluginConfigImpl_getConfigFileNameDispatcher;
# Line 12256 | Line 12901 | initialization
12901          IPluginConfigImpl_vTable.setReleaseDelay := @IPluginConfigImpl_setReleaseDelayDispatcher;
12902  
12903          IPluginFactoryImpl_vTable := PluginFactoryVTable.create;
12904 <        IPluginFactoryImpl_vTable.version := 1;
12904 >        IPluginFactoryImpl_vTable.version := 2;
12905          IPluginFactoryImpl_vTable.createPlugin := @IPluginFactoryImpl_createPluginDispatcher;
12906  
12907          IPluginModuleImpl_vTable := PluginModuleVTable.create;
12908 <        IPluginModuleImpl_vTable.version := 1;
12908 >        IPluginModuleImpl_vTable.version := 3;
12909          IPluginModuleImpl_vTable.doClean := @IPluginModuleImpl_doCleanDispatcher;
12910 +        IPluginModuleImpl_vTable.threadDetach := @IPluginModuleImpl_threadDetachDispatcher;
12911  
12912          IPluginManagerImpl_vTable := PluginManagerVTable.create;
12913 <        IPluginManagerImpl_vTable.version := 6;
12913 >        IPluginManagerImpl_vTable.version := 2;
12914          IPluginManagerImpl_vTable.registerPluginFactory := @IPluginManagerImpl_registerPluginFactoryDispatcher;
12915          IPluginManagerImpl_vTable.registerModule := @IPluginManagerImpl_registerModuleDispatcher;
12916          IPluginManagerImpl_vTable.unregisterModule := @IPluginManagerImpl_unregisterModuleDispatcher;
# Line 12273 | Line 12919 | initialization
12919          IPluginManagerImpl_vTable.releasePlugin := @IPluginManagerImpl_releasePluginDispatcher;
12920  
12921          ICryptKeyImpl_vTable := CryptKeyVTable.create;
12922 <        ICryptKeyImpl_vTable.version := 4;
12922 >        ICryptKeyImpl_vTable.version := 2;
12923          ICryptKeyImpl_vTable.setSymmetric := @ICryptKeyImpl_setSymmetricDispatcher;
12924          ICryptKeyImpl_vTable.setAsymmetric := @ICryptKeyImpl_setAsymmetricDispatcher;
12925          ICryptKeyImpl_vTable.getEncryptKey := @ICryptKeyImpl_getEncryptKeyDispatcher;
12926          ICryptKeyImpl_vTable.getDecryptKey := @ICryptKeyImpl_getDecryptKeyDispatcher;
12927  
12928          IConfigManagerImpl_vTable := ConfigManagerVTable.create;
12929 <        IConfigManagerImpl_vTable.version := 6;
12929 >        IConfigManagerImpl_vTable.version := 3;
12930          IConfigManagerImpl_vTable.getDirectory := @IConfigManagerImpl_getDirectoryDispatcher;
12931          IConfigManagerImpl_vTable.getFirebirdConf := @IConfigManagerImpl_getFirebirdConfDispatcher;
12932          IConfigManagerImpl_vTable.getDatabaseConf := @IConfigManagerImpl_getDatabaseConfDispatcher;
12933          IConfigManagerImpl_vTable.getPluginConfig := @IConfigManagerImpl_getPluginConfigDispatcher;
12934          IConfigManagerImpl_vTable.getInstallDirectory := @IConfigManagerImpl_getInstallDirectoryDispatcher;
12935          IConfigManagerImpl_vTable.getRootDirectory := @IConfigManagerImpl_getRootDirectoryDispatcher;
12936 +        IConfigManagerImpl_vTable.getDefaultSecurityDb := @IConfigManagerImpl_getDefaultSecurityDbDispatcher;
12937  
12938          IEventCallbackImpl_vTable := EventCallbackVTable.create;
12939          IEventCallbackImpl_vTable.version := 3;
# Line 12295 | Line 12942 | initialization
12942          IEventCallbackImpl_vTable.eventCallbackFunction := @IEventCallbackImpl_eventCallbackFunctionDispatcher;
12943  
12944          IBlobImpl_vTable := BlobVTable.create;
12945 <        IBlobImpl_vTable.version := 8;
12945 >        IBlobImpl_vTable.version := 3;
12946          IBlobImpl_vTable.addRef := @IBlobImpl_addRefDispatcher;
12947          IBlobImpl_vTable.release := @IBlobImpl_releaseDispatcher;
12948          IBlobImpl_vTable.getInfo := @IBlobImpl_getInfoDispatcher;
# Line 12306 | Line 12953 | initialization
12953          IBlobImpl_vTable.seek := @IBlobImpl_seekDispatcher;
12954  
12955          ITransactionImpl_vTable := TransactionVTable.create;
12956 <        ITransactionImpl_vTable.version := 12;
12956 >        ITransactionImpl_vTable.version := 3;
12957          ITransactionImpl_vTable.addRef := @ITransactionImpl_addRefDispatcher;
12958          ITransactionImpl_vTable.release := @ITransactionImpl_releaseDispatcher;
12959          ITransactionImpl_vTable.getInfo := @ITransactionImpl_getInfoDispatcher;
# Line 12321 | Line 12968 | initialization
12968          ITransactionImpl_vTable.enterDtc := @ITransactionImpl_enterDtcDispatcher;
12969  
12970          IMessageMetadataImpl_vTable := MessageMetadataVTable.create;
12971 <        IMessageMetadataImpl_vTable.version := 17;
12971 >        IMessageMetadataImpl_vTable.version := 4;
12972          IMessageMetadataImpl_vTable.addRef := @IMessageMetadataImpl_addRefDispatcher;
12973          IMessageMetadataImpl_vTable.release := @IMessageMetadataImpl_releaseDispatcher;
12974          IMessageMetadataImpl_vTable.getCount := @IMessageMetadataImpl_getCountDispatcher;
# Line 12339 | Line 12986 | initialization
12986          IMessageMetadataImpl_vTable.getNullOffset := @IMessageMetadataImpl_getNullOffsetDispatcher;
12987          IMessageMetadataImpl_vTable.getBuilder := @IMessageMetadataImpl_getBuilderDispatcher;
12988          IMessageMetadataImpl_vTable.getMessageLength := @IMessageMetadataImpl_getMessageLengthDispatcher;
12989 +        IMessageMetadataImpl_vTable.getAlignment := @IMessageMetadataImpl_getAlignmentDispatcher;
12990 +        IMessageMetadataImpl_vTable.getAlignedLength := @IMessageMetadataImpl_getAlignedLengthDispatcher;
12991  
12992          IMetadataBuilderImpl_vTable := MetadataBuilderVTable.create;
12993 <        IMetadataBuilderImpl_vTable.version := 12;
12993 >        IMetadataBuilderImpl_vTable.version := 4;
12994          IMetadataBuilderImpl_vTable.addRef := @IMetadataBuilderImpl_addRefDispatcher;
12995          IMetadataBuilderImpl_vTable.release := @IMetadataBuilderImpl_releaseDispatcher;
12996          IMetadataBuilderImpl_vTable.setType := @IMetadataBuilderImpl_setTypeDispatcher;
# Line 12354 | Line 13003 | initialization
13003          IMetadataBuilderImpl_vTable.remove := @IMetadataBuilderImpl_removeDispatcher;
13004          IMetadataBuilderImpl_vTable.addField := @IMetadataBuilderImpl_addFieldDispatcher;
13005          IMetadataBuilderImpl_vTable.getMetadata := @IMetadataBuilderImpl_getMetadataDispatcher;
13006 +        IMetadataBuilderImpl_vTable.setField := @IMetadataBuilderImpl_setFieldDispatcher;
13007 +        IMetadataBuilderImpl_vTable.setRelation := @IMetadataBuilderImpl_setRelationDispatcher;
13008 +        IMetadataBuilderImpl_vTable.setOwner := @IMetadataBuilderImpl_setOwnerDispatcher;
13009 +        IMetadataBuilderImpl_vTable.setAlias := @IMetadataBuilderImpl_setAliasDispatcher;
13010  
13011          IResultSetImpl_vTable := ResultSetVTable.create;
13012 <        IResultSetImpl_vTable.version := 13;
13012 >        IResultSetImpl_vTable.version := 3;
13013          IResultSetImpl_vTable.addRef := @IResultSetImpl_addRefDispatcher;
13014          IResultSetImpl_vTable.release := @IResultSetImpl_releaseDispatcher;
13015          IResultSetImpl_vTable.fetchNext := @IResultSetImpl_fetchNextDispatcher;
# Line 12372 | Line 13025 | initialization
13025          IResultSetImpl_vTable.setDelayedOutputFormat := @IResultSetImpl_setDelayedOutputFormatDispatcher;
13026  
13027          IStatementImpl_vTable := StatementVTable.create;
13028 <        IStatementImpl_vTable.version := 13;
13028 >        IStatementImpl_vTable.version := 4;
13029          IStatementImpl_vTable.addRef := @IStatementImpl_addRefDispatcher;
13030          IStatementImpl_vTable.release := @IStatementImpl_releaseDispatcher;
13031          IStatementImpl_vTable.getInfo := @IStatementImpl_getInfoDispatcher;
# Line 12386 | Line 13039 | initialization
13039          IStatementImpl_vTable.setCursorName := @IStatementImpl_setCursorNameDispatcher;
13040          IStatementImpl_vTable.free := @IStatementImpl_freeDispatcher;
13041          IStatementImpl_vTable.getFlags := @IStatementImpl_getFlagsDispatcher;
13042 +        IStatementImpl_vTable.getTimeout := @IStatementImpl_getTimeoutDispatcher;
13043 +        IStatementImpl_vTable.setTimeout := @IStatementImpl_setTimeoutDispatcher;
13044 +        IStatementImpl_vTable.createBatch := @IStatementImpl_createBatchDispatcher;
13045 +
13046 +        IBatchImpl_vTable := BatchVTable.create;
13047 +        IBatchImpl_vTable.version := 3;
13048 +        IBatchImpl_vTable.addRef := @IBatchImpl_addRefDispatcher;
13049 +        IBatchImpl_vTable.release := @IBatchImpl_releaseDispatcher;
13050 +        IBatchImpl_vTable.add := @IBatchImpl_addDispatcher;
13051 +        IBatchImpl_vTable.addBlob := @IBatchImpl_addBlobDispatcher;
13052 +        IBatchImpl_vTable.appendBlobData := @IBatchImpl_appendBlobDataDispatcher;
13053 +        IBatchImpl_vTable.addBlobStream := @IBatchImpl_addBlobStreamDispatcher;
13054 +        IBatchImpl_vTable.registerBlob := @IBatchImpl_registerBlobDispatcher;
13055 +        IBatchImpl_vTable.execute := @IBatchImpl_executeDispatcher;
13056 +        IBatchImpl_vTable.cancel := @IBatchImpl_cancelDispatcher;
13057 +        IBatchImpl_vTable.getBlobAlignment := @IBatchImpl_getBlobAlignmentDispatcher;
13058 +        IBatchImpl_vTable.getMetadata := @IBatchImpl_getMetadataDispatcher;
13059 +        IBatchImpl_vTable.setDefaultBpb := @IBatchImpl_setDefaultBpbDispatcher;
13060 +
13061 +        IBatchCompletionStateImpl_vTable := BatchCompletionStateVTable.create;
13062 +        IBatchCompletionStateImpl_vTable.version := 3;
13063 +        IBatchCompletionStateImpl_vTable.dispose := @IBatchCompletionStateImpl_disposeDispatcher;
13064 +        IBatchCompletionStateImpl_vTable.getSize := @IBatchCompletionStateImpl_getSizeDispatcher;
13065 +        IBatchCompletionStateImpl_vTable.getState := @IBatchCompletionStateImpl_getStateDispatcher;
13066 +        IBatchCompletionStateImpl_vTable.findError := @IBatchCompletionStateImpl_findErrorDispatcher;
13067 +        IBatchCompletionStateImpl_vTable.getStatus := @IBatchCompletionStateImpl_getStatusDispatcher;
13068 +
13069 +        IReplicatorImpl_vTable := ReplicatorVTable.create;
13070 +        IReplicatorImpl_vTable.version := 3;
13071 +        IReplicatorImpl_vTable.addRef := @IReplicatorImpl_addRefDispatcher;
13072 +        IReplicatorImpl_vTable.release := @IReplicatorImpl_releaseDispatcher;
13073 +        IReplicatorImpl_vTable.process := @IReplicatorImpl_processDispatcher;
13074 +        IReplicatorImpl_vTable.close := @IReplicatorImpl_closeDispatcher;
13075  
13076          IRequestImpl_vTable := RequestVTable.create;
13077 <        IRequestImpl_vTable.version := 9;
13077 >        IRequestImpl_vTable.version := 3;
13078          IRequestImpl_vTable.addRef := @IRequestImpl_addRefDispatcher;
13079          IRequestImpl_vTable.release := @IRequestImpl_releaseDispatcher;
13080          IRequestImpl_vTable.receive := @IRequestImpl_receiveDispatcher;
# Line 12406 | Line 13092 | initialization
13092          IEventsImpl_vTable.cancel := @IEventsImpl_cancelDispatcher;
13093  
13094          IAttachmentImpl_vTable := AttachmentVTable.create;
13095 <        IAttachmentImpl_vTable.version := 20;
13095 >        IAttachmentImpl_vTable.version := 4;
13096          IAttachmentImpl_vTable.addRef := @IAttachmentImpl_addRefDispatcher;
13097          IAttachmentImpl_vTable.release := @IAttachmentImpl_releaseDispatcher;
13098          IAttachmentImpl_vTable.getInfo := @IAttachmentImpl_getInfoDispatcher;
# Line 12427 | Line 13113 | initialization
13113          IAttachmentImpl_vTable.ping := @IAttachmentImpl_pingDispatcher;
13114          IAttachmentImpl_vTable.detach := @IAttachmentImpl_detachDispatcher;
13115          IAttachmentImpl_vTable.dropDatabase := @IAttachmentImpl_dropDatabaseDispatcher;
13116 +        IAttachmentImpl_vTable.getIdleTimeout := @IAttachmentImpl_getIdleTimeoutDispatcher;
13117 +        IAttachmentImpl_vTable.setIdleTimeout := @IAttachmentImpl_setIdleTimeoutDispatcher;
13118 +        IAttachmentImpl_vTable.getStatementTimeout := @IAttachmentImpl_getStatementTimeoutDispatcher;
13119 +        IAttachmentImpl_vTable.setStatementTimeout := @IAttachmentImpl_setStatementTimeoutDispatcher;
13120 +        IAttachmentImpl_vTable.createBatch := @IAttachmentImpl_createBatchDispatcher;
13121 +        IAttachmentImpl_vTable.createReplicator := @IAttachmentImpl_createReplicatorDispatcher;
13122  
13123          IServiceImpl_vTable := ServiceVTable.create;
13124 <        IServiceImpl_vTable.version := 5;
13124 >        IServiceImpl_vTable.version := 3;
13125          IServiceImpl_vTable.addRef := @IServiceImpl_addRefDispatcher;
13126          IServiceImpl_vTable.release := @IServiceImpl_releaseDispatcher;
13127          IServiceImpl_vTable.detach := @IServiceImpl_detachDispatcher;
# Line 12437 | Line 13129 | initialization
13129          IServiceImpl_vTable.start := @IServiceImpl_startDispatcher;
13130  
13131          IProviderImpl_vTable := ProviderVTable.create;
13132 <        IProviderImpl_vTable.version := 9;
13132 >        IProviderImpl_vTable.version := 4;
13133          IProviderImpl_vTable.addRef := @IProviderImpl_addRefDispatcher;
13134          IProviderImpl_vTable.release := @IProviderImpl_releaseDispatcher;
13135          IProviderImpl_vTable.setOwner := @IProviderImpl_setOwnerDispatcher;
# Line 12449 | Line 13141 | initialization
13141          IProviderImpl_vTable.setDbCryptCallback := @IProviderImpl_setDbCryptCallbackDispatcher;
13142  
13143          IDtcStartImpl_vTable := DtcStartVTable.create;
13144 <        IDtcStartImpl_vTable.version := 4;
13144 >        IDtcStartImpl_vTable.version := 3;
13145          IDtcStartImpl_vTable.dispose := @IDtcStartImpl_disposeDispatcher;
13146          IDtcStartImpl_vTable.addAttachment := @IDtcStartImpl_addAttachmentDispatcher;
13147          IDtcStartImpl_vTable.addWithTpb := @IDtcStartImpl_addWithTpbDispatcher;
# Line 12468 | Line 13160 | initialization
13160          IAuthImpl_vTable.getOwner := @IAuthImpl_getOwnerDispatcher;
13161  
13162          IWriterImpl_vTable := WriterVTable.create;
13163 <        IWriterImpl_vTable.version := 4;
13163 >        IWriterImpl_vTable.version := 2;
13164          IWriterImpl_vTable.reset := @IWriterImpl_resetDispatcher;
13165          IWriterImpl_vTable.add := @IWriterImpl_addDispatcher;
13166          IWriterImpl_vTable.setType := @IWriterImpl_setTypeDispatcher;
13167          IWriterImpl_vTable.setDb := @IWriterImpl_setDbDispatcher;
13168  
13169          IServerBlockImpl_vTable := ServerBlockVTable.create;
13170 <        IServerBlockImpl_vTable.version := 4;
13170 >        IServerBlockImpl_vTable.version := 2;
13171          IServerBlockImpl_vTable.getLogin := @IServerBlockImpl_getLoginDispatcher;
13172          IServerBlockImpl_vTable.getData := @IServerBlockImpl_getDataDispatcher;
13173          IServerBlockImpl_vTable.putData := @IServerBlockImpl_putDataDispatcher;
13174          IServerBlockImpl_vTable.newKey := @IServerBlockImpl_newKeyDispatcher;
13175  
13176          IClientBlockImpl_vTable := ClientBlockVTable.create;
13177 <        IClientBlockImpl_vTable.version := 7;
13177 >        IClientBlockImpl_vTable.version := 4;
13178          IClientBlockImpl_vTable.addRef := @IClientBlockImpl_addRefDispatcher;
13179          IClientBlockImpl_vTable.release := @IClientBlockImpl_releaseDispatcher;
13180          IClientBlockImpl_vTable.getLogin := @IClientBlockImpl_getLoginDispatcher;
# Line 12490 | Line 13182 | initialization
13182          IClientBlockImpl_vTable.getData := @IClientBlockImpl_getDataDispatcher;
13183          IClientBlockImpl_vTable.putData := @IClientBlockImpl_putDataDispatcher;
13184          IClientBlockImpl_vTable.newKey := @IClientBlockImpl_newKeyDispatcher;
13185 +        IClientBlockImpl_vTable.getAuthBlock := @IClientBlockImpl_getAuthBlockDispatcher;
13186  
13187          IServerImpl_vTable := ServerVTable.create;
13188 <        IServerImpl_vTable.version := 5;
13188 >        IServerImpl_vTable.version := 6;
13189          IServerImpl_vTable.addRef := @IServerImpl_addRefDispatcher;
13190          IServerImpl_vTable.release := @IServerImpl_releaseDispatcher;
13191          IServerImpl_vTable.setOwner := @IServerImpl_setOwnerDispatcher;
13192          IServerImpl_vTable.getOwner := @IServerImpl_getOwnerDispatcher;
13193          IServerImpl_vTable.authenticate := @IServerImpl_authenticateDispatcher;
13194 +        IServerImpl_vTable.setDbCryptCallback := @IServerImpl_setDbCryptCallbackDispatcher;
13195  
13196          IClientImpl_vTable := ClientVTable.create;
13197          IClientImpl_vTable.version := 5;
# Line 12508 | Line 13202 | initialization
13202          IClientImpl_vTable.authenticate := @IClientImpl_authenticateDispatcher;
13203  
13204          IUserFieldImpl_vTable := UserFieldVTable.create;
13205 <        IUserFieldImpl_vTable.version := 3;
13205 >        IUserFieldImpl_vTable.version := 2;
13206          IUserFieldImpl_vTable.entered := @IUserFieldImpl_enteredDispatcher;
13207          IUserFieldImpl_vTable.specified := @IUserFieldImpl_specifiedDispatcher;
13208          IUserFieldImpl_vTable.setEntered := @IUserFieldImpl_setEnteredDispatcher;
13209  
13210          ICharUserFieldImpl_vTable := CharUserFieldVTable.create;
13211 <        ICharUserFieldImpl_vTable.version := 5;
13211 >        ICharUserFieldImpl_vTable.version := 3;
13212          ICharUserFieldImpl_vTable.entered := @ICharUserFieldImpl_enteredDispatcher;
13213          ICharUserFieldImpl_vTable.specified := @ICharUserFieldImpl_specifiedDispatcher;
13214          ICharUserFieldImpl_vTable.setEntered := @ICharUserFieldImpl_setEnteredDispatcher;
# Line 12522 | Line 13216 | initialization
13216          ICharUserFieldImpl_vTable.set_ := @ICharUserFieldImpl_set_Dispatcher;
13217  
13218          IIntUserFieldImpl_vTable := IntUserFieldVTable.create;
13219 <        IIntUserFieldImpl_vTable.version := 5;
13219 >        IIntUserFieldImpl_vTable.version := 3;
13220          IIntUserFieldImpl_vTable.entered := @IIntUserFieldImpl_enteredDispatcher;
13221          IIntUserFieldImpl_vTable.specified := @IIntUserFieldImpl_specifiedDispatcher;
13222          IIntUserFieldImpl_vTable.setEntered := @IIntUserFieldImpl_setEnteredDispatcher;
# Line 12530 | Line 13224 | initialization
13224          IIntUserFieldImpl_vTable.set_ := @IIntUserFieldImpl_set_Dispatcher;
13225  
13226          IUserImpl_vTable := UserVTable.create;
13227 <        IUserImpl_vTable.version := 11;
13227 >        IUserImpl_vTable.version := 2;
13228          IUserImpl_vTable.operation := @IUserImpl_operationDispatcher;
13229          IUserImpl_vTable.userName := @IUserImpl_userNameDispatcher;
13230          IUserImpl_vTable.password := @IUserImpl_passwordDispatcher;
# Line 12544 | Line 13238 | initialization
13238          IUserImpl_vTable.clear := @IUserImpl_clearDispatcher;
13239  
13240          IListUsersImpl_vTable := ListUsersVTable.create;
13241 <        IListUsersImpl_vTable.version := 1;
13241 >        IListUsersImpl_vTable.version := 2;
13242          IListUsersImpl_vTable.list := @IListUsersImpl_listDispatcher;
13243  
13244          ILogonInfoImpl_vTable := LogonInfoVTable.create;
13245 <        ILogonInfoImpl_vTable.version := 5;
13245 >        ILogonInfoImpl_vTable.version := 3;
13246          ILogonInfoImpl_vTable.name := @ILogonInfoImpl_nameDispatcher;
13247          ILogonInfoImpl_vTable.role := @ILogonInfoImpl_roleDispatcher;
13248          ILogonInfoImpl_vTable.networkProtocol := @ILogonInfoImpl_networkProtocolDispatcher;
13249          ILogonInfoImpl_vTable.remoteAddress := @ILogonInfoImpl_remoteAddressDispatcher;
13250          ILogonInfoImpl_vTable.authBlock := @ILogonInfoImpl_authBlockDispatcher;
13251 +        ILogonInfoImpl_vTable.attachment := @ILogonInfoImpl_attachmentDispatcher;
13252 +        ILogonInfoImpl_vTable.transaction := @ILogonInfoImpl_transactionDispatcher;
13253  
13254          IManagementImpl_vTable := ManagementVTable.create;
13255 <        IManagementImpl_vTable.version := 8;
13255 >        IManagementImpl_vTable.version := 4;
13256          IManagementImpl_vTable.addRef := @IManagementImpl_addRefDispatcher;
13257          IManagementImpl_vTable.release := @IManagementImpl_releaseDispatcher;
13258          IManagementImpl_vTable.setOwner := @IManagementImpl_setOwnerDispatcher;
# Line 12566 | Line 13262 | initialization
13262          IManagementImpl_vTable.commit := @IManagementImpl_commitDispatcher;
13263          IManagementImpl_vTable.rollback := @IManagementImpl_rollbackDispatcher;
13264  
13265 +        IAuthBlockImpl_vTable := AuthBlockVTable.create;
13266 +        IAuthBlockImpl_vTable.version := 2;
13267 +        IAuthBlockImpl_vTable.getType := @IAuthBlockImpl_getTypeDispatcher;
13268 +        IAuthBlockImpl_vTable.getName := @IAuthBlockImpl_getNameDispatcher;
13269 +        IAuthBlockImpl_vTable.getPlugin := @IAuthBlockImpl_getPluginDispatcher;
13270 +        IAuthBlockImpl_vTable.getSecurityDb := @IAuthBlockImpl_getSecurityDbDispatcher;
13271 +        IAuthBlockImpl_vTable.getOriginalPlugin := @IAuthBlockImpl_getOriginalPluginDispatcher;
13272 +        IAuthBlockImpl_vTable.next := @IAuthBlockImpl_nextDispatcher;
13273 +        IAuthBlockImpl_vTable.first := @IAuthBlockImpl_firstDispatcher;
13274 +
13275          IWireCryptPluginImpl_vTable := WireCryptPluginVTable.create;
13276 <        IWireCryptPluginImpl_vTable.version := 8;
13276 >        IWireCryptPluginImpl_vTable.version := 5;
13277          IWireCryptPluginImpl_vTable.addRef := @IWireCryptPluginImpl_addRefDispatcher;
13278          IWireCryptPluginImpl_vTable.release := @IWireCryptPluginImpl_releaseDispatcher;
13279          IWireCryptPluginImpl_vTable.setOwner := @IWireCryptPluginImpl_setOwnerDispatcher;
# Line 12576 | Line 13282 | initialization
13282          IWireCryptPluginImpl_vTable.setKey := @IWireCryptPluginImpl_setKeyDispatcher;
13283          IWireCryptPluginImpl_vTable.encrypt := @IWireCryptPluginImpl_encryptDispatcher;
13284          IWireCryptPluginImpl_vTable.decrypt := @IWireCryptPluginImpl_decryptDispatcher;
13285 +        IWireCryptPluginImpl_vTable.getSpecificData := @IWireCryptPluginImpl_getSpecificDataDispatcher;
13286 +        IWireCryptPluginImpl_vTable.setSpecificData := @IWireCryptPluginImpl_setSpecificDataDispatcher;
13287  
13288          ICryptKeyCallbackImpl_vTable := CryptKeyCallbackVTable.create;
13289 <        ICryptKeyCallbackImpl_vTable.version := 1;
13289 >        ICryptKeyCallbackImpl_vTable.version := 2;
13290          ICryptKeyCallbackImpl_vTable.callback := @ICryptKeyCallbackImpl_callbackDispatcher;
13291  
13292          IKeyHolderPluginImpl_vTable := KeyHolderPluginVTable.create;
13293 <        IKeyHolderPluginImpl_vTable.version := 6;
13293 >        IKeyHolderPluginImpl_vTable.version := 5;
13294          IKeyHolderPluginImpl_vTable.addRef := @IKeyHolderPluginImpl_addRefDispatcher;
13295          IKeyHolderPluginImpl_vTable.release := @IKeyHolderPluginImpl_releaseDispatcher;
13296          IKeyHolderPluginImpl_vTable.setOwner := @IKeyHolderPluginImpl_setOwnerDispatcher;
13297          IKeyHolderPluginImpl_vTable.getOwner := @IKeyHolderPluginImpl_getOwnerDispatcher;
13298          IKeyHolderPluginImpl_vTable.keyCallback := @IKeyHolderPluginImpl_keyCallbackDispatcher;
13299          IKeyHolderPluginImpl_vTable.keyHandle := @IKeyHolderPluginImpl_keyHandleDispatcher;
13300 +        IKeyHolderPluginImpl_vTable.useOnlyOwnKeys := @IKeyHolderPluginImpl_useOnlyOwnKeysDispatcher;
13301 +        IKeyHolderPluginImpl_vTable.chainHandle := @IKeyHolderPluginImpl_chainHandleDispatcher;
13302 +
13303 +        IDbCryptInfoImpl_vTable := DbCryptInfoVTable.create;
13304 +        IDbCryptInfoImpl_vTable.version := 3;
13305 +        IDbCryptInfoImpl_vTable.addRef := @IDbCryptInfoImpl_addRefDispatcher;
13306 +        IDbCryptInfoImpl_vTable.release := @IDbCryptInfoImpl_releaseDispatcher;
13307 +        IDbCryptInfoImpl_vTable.getDatabaseFullPath := @IDbCryptInfoImpl_getDatabaseFullPathDispatcher;
13308  
13309          IDbCryptPluginImpl_vTable := DbCryptPluginVTable.create;
13310 <        IDbCryptPluginImpl_vTable.version := 7;
13310 >        IDbCryptPluginImpl_vTable.version := 5;
13311          IDbCryptPluginImpl_vTable.addRef := @IDbCryptPluginImpl_addRefDispatcher;
13312          IDbCryptPluginImpl_vTable.release := @IDbCryptPluginImpl_releaseDispatcher;
13313          IDbCryptPluginImpl_vTable.setOwner := @IDbCryptPluginImpl_setOwnerDispatcher;
# Line 12599 | Line 13315 | initialization
13315          IDbCryptPluginImpl_vTable.setKey := @IDbCryptPluginImpl_setKeyDispatcher;
13316          IDbCryptPluginImpl_vTable.encrypt := @IDbCryptPluginImpl_encryptDispatcher;
13317          IDbCryptPluginImpl_vTable.decrypt := @IDbCryptPluginImpl_decryptDispatcher;
13318 +        IDbCryptPluginImpl_vTable.setInfo := @IDbCryptPluginImpl_setInfoDispatcher;
13319  
13320          IExternalContextImpl_vTable := ExternalContextVTable.create;
13321 <        IExternalContextImpl_vTable.version := 10;
13321 >        IExternalContextImpl_vTable.version := 2;
13322          IExternalContextImpl_vTable.getMaster := @IExternalContextImpl_getMasterDispatcher;
13323          IExternalContextImpl_vTable.getEngine := @IExternalContextImpl_getEngineDispatcher;
13324          IExternalContextImpl_vTable.getAttachment := @IExternalContextImpl_getAttachmentDispatcher;
# Line 12614 | Line 13331 | initialization
13331          IExternalContextImpl_vTable.setInfo := @IExternalContextImpl_setInfoDispatcher;
13332  
13333          IExternalResultSetImpl_vTable := ExternalResultSetVTable.create;
13334 <        IExternalResultSetImpl_vTable.version := 2;
13334 >        IExternalResultSetImpl_vTable.version := 3;
13335          IExternalResultSetImpl_vTable.dispose := @IExternalResultSetImpl_disposeDispatcher;
13336          IExternalResultSetImpl_vTable.fetch := @IExternalResultSetImpl_fetchDispatcher;
13337  
# Line 12637 | Line 13354 | initialization
13354          IExternalTriggerImpl_vTable.execute := @IExternalTriggerImpl_executeDispatcher;
13355  
13356          IRoutineMetadataImpl_vTable := RoutineMetadataVTable.create;
13357 <        IRoutineMetadataImpl_vTable.version := 9;
13357 >        IRoutineMetadataImpl_vTable.version := 2;
13358          IRoutineMetadataImpl_vTable.getPackage := @IRoutineMetadataImpl_getPackageDispatcher;
13359          IRoutineMetadataImpl_vTable.getName := @IRoutineMetadataImpl_getNameDispatcher;
13360          IRoutineMetadataImpl_vTable.getEntryPoint := @IRoutineMetadataImpl_getEntryPointDispatcher;
# Line 12649 | Line 13366 | initialization
13366          IRoutineMetadataImpl_vTable.getTriggerType := @IRoutineMetadataImpl_getTriggerTypeDispatcher;
13367  
13368          IExternalEngineImpl_vTable := ExternalEngineVTable.create;
13369 <        IExternalEngineImpl_vTable.version := 10;
13369 >        IExternalEngineImpl_vTable.version := 4;
13370          IExternalEngineImpl_vTable.addRef := @IExternalEngineImpl_addRefDispatcher;
13371          IExternalEngineImpl_vTable.release := @IExternalEngineImpl_releaseDispatcher;
13372          IExternalEngineImpl_vTable.setOwner := @IExternalEngineImpl_setOwnerDispatcher;
# Line 12673 | Line 13390 | initialization
13390          ITimerControlImpl_vTable.stop := @ITimerControlImpl_stopDispatcher;
13391  
13392          IVersionCallbackImpl_vTable := VersionCallbackVTable.create;
13393 <        IVersionCallbackImpl_vTable.version := 1;
13393 >        IVersionCallbackImpl_vTable.version := 2;
13394          IVersionCallbackImpl_vTable.callback := @IVersionCallbackImpl_callbackDispatcher;
13395  
13396          IUtilImpl_vTable := UtilVTable.create;
13397 <        IUtilImpl_vTable.version := 13;
13397 >        IUtilImpl_vTable.version := 4;
13398          IUtilImpl_vTable.getFbVersion := @IUtilImpl_getFbVersionDispatcher;
13399          IUtilImpl_vTable.loadBlob := @IUtilImpl_loadBlobDispatcher;
13400          IUtilImpl_vTable.dumpBlob := @IUtilImpl_dumpBlobDispatcher;
# Line 12691 | Line 13408 | initialization
13408          IUtilImpl_vTable.getClientVersion := @IUtilImpl_getClientVersionDispatcher;
13409          IUtilImpl_vTable.getXpbBuilder := @IUtilImpl_getXpbBuilderDispatcher;
13410          IUtilImpl_vTable.setOffsets := @IUtilImpl_setOffsetsDispatcher;
13411 +        IUtilImpl_vTable.getDecFloat16 := @IUtilImpl_getDecFloat16Dispatcher;
13412 +        IUtilImpl_vTable.getDecFloat34 := @IUtilImpl_getDecFloat34Dispatcher;
13413 +        IUtilImpl_vTable.decodeTimeTz := @IUtilImpl_decodeTimeTzDispatcher;
13414 +        IUtilImpl_vTable.decodeTimeStampTz := @IUtilImpl_decodeTimeStampTzDispatcher;
13415 +        IUtilImpl_vTable.encodeTimeTz := @IUtilImpl_encodeTimeTzDispatcher;
13416 +        IUtilImpl_vTable.encodeTimeStampTz := @IUtilImpl_encodeTimeStampTzDispatcher;
13417 +        IUtilImpl_vTable.getInt128 := @IUtilImpl_getInt128Dispatcher;
13418 +        IUtilImpl_vTable.decodeTimeTzEx := @IUtilImpl_decodeTimeTzExDispatcher;
13419 +        IUtilImpl_vTable.decodeTimeStampTzEx := @IUtilImpl_decodeTimeStampTzExDispatcher;
13420  
13421          IOffsetsCallbackImpl_vTable := OffsetsCallbackVTable.create;
13422 <        IOffsetsCallbackImpl_vTable.version := 1;
13422 >        IOffsetsCallbackImpl_vTable.version := 2;
13423          IOffsetsCallbackImpl_vTable.setOffset := @IOffsetsCallbackImpl_setOffsetDispatcher;
13424  
13425          IXpbBuilderImpl_vTable := XpbBuilderVTable.create;
13426 <        IXpbBuilderImpl_vTable.version := 21;
13426 >        IXpbBuilderImpl_vTable.version := 3;
13427          IXpbBuilderImpl_vTable.dispose := @IXpbBuilderImpl_disposeDispatcher;
13428          IXpbBuilderImpl_vTable.clear := @IXpbBuilderImpl_clearDispatcher;
13429          IXpbBuilderImpl_vTable.removeCurrent := @IXpbBuilderImpl_removeCurrentDispatcher;
# Line 12721 | Line 13447 | initialization
13447          IXpbBuilderImpl_vTable.getBuffer := @IXpbBuilderImpl_getBufferDispatcher;
13448  
13449          ITraceConnectionImpl_vTable := TraceConnectionVTable.create;
13450 <        ITraceConnectionImpl_vTable.version := 9;
13450 >        ITraceConnectionImpl_vTable.version := 2;
13451          ITraceConnectionImpl_vTable.getKind := @ITraceConnectionImpl_getKindDispatcher;
13452          ITraceConnectionImpl_vTable.getProcessID := @ITraceConnectionImpl_getProcessIDDispatcher;
13453          ITraceConnectionImpl_vTable.getUserName := @ITraceConnectionImpl_getUserNameDispatcher;
# Line 12733 | Line 13459 | initialization
13459          ITraceConnectionImpl_vTable.getRemoteProcessName := @ITraceConnectionImpl_getRemoteProcessNameDispatcher;
13460  
13461          ITraceDatabaseConnectionImpl_vTable := TraceDatabaseConnectionVTable.create;
13462 <        ITraceDatabaseConnectionImpl_vTable.version := 11;
13462 >        ITraceDatabaseConnectionImpl_vTable.version := 3;
13463          ITraceDatabaseConnectionImpl_vTable.getKind := @ITraceDatabaseConnectionImpl_getKindDispatcher;
13464          ITraceDatabaseConnectionImpl_vTable.getProcessID := @ITraceDatabaseConnectionImpl_getProcessIDDispatcher;
13465          ITraceDatabaseConnectionImpl_vTable.getUserName := @ITraceDatabaseConnectionImpl_getUserNameDispatcher;
# Line 12747 | Line 13473 | initialization
13473          ITraceDatabaseConnectionImpl_vTable.getDatabaseName := @ITraceDatabaseConnectionImpl_getDatabaseNameDispatcher;
13474  
13475          ITraceTransactionImpl_vTable := TraceTransactionVTable.create;
13476 <        ITraceTransactionImpl_vTable.version := 5;
13476 >        ITraceTransactionImpl_vTable.version := 3;
13477          ITraceTransactionImpl_vTable.getTransactionID := @ITraceTransactionImpl_getTransactionIDDispatcher;
13478          ITraceTransactionImpl_vTable.getReadOnly := @ITraceTransactionImpl_getReadOnlyDispatcher;
13479          ITraceTransactionImpl_vTable.getWait := @ITraceTransactionImpl_getWaitDispatcher;
13480          ITraceTransactionImpl_vTable.getIsolation := @ITraceTransactionImpl_getIsolationDispatcher;
13481          ITraceTransactionImpl_vTable.getPerf := @ITraceTransactionImpl_getPerfDispatcher;
13482 +        ITraceTransactionImpl_vTable.getInitialID := @ITraceTransactionImpl_getInitialIDDispatcher;
13483 +        ITraceTransactionImpl_vTable.getPreviousID := @ITraceTransactionImpl_getPreviousIDDispatcher;
13484  
13485          ITraceParamsImpl_vTable := TraceParamsVTable.create;
13486 <        ITraceParamsImpl_vTable.version := 2;
13486 >        ITraceParamsImpl_vTable.version := 3;
13487          ITraceParamsImpl_vTable.getCount := @ITraceParamsImpl_getCountDispatcher;
13488          ITraceParamsImpl_vTable.getParam := @ITraceParamsImpl_getParamDispatcher;
13489 +        ITraceParamsImpl_vTable.getTextUTF8 := @ITraceParamsImpl_getTextUTF8Dispatcher;
13490  
13491          ITraceStatementImpl_vTable := TraceStatementVTable.create;
13492          ITraceStatementImpl_vTable.version := 2;
# Line 12765 | Line 13494 | initialization
13494          ITraceStatementImpl_vTable.getPerf := @ITraceStatementImpl_getPerfDispatcher;
13495  
13496          ITraceSQLStatementImpl_vTable := TraceSQLStatementVTable.create;
13497 <        ITraceSQLStatementImpl_vTable.version := 7;
13497 >        ITraceSQLStatementImpl_vTable.version := 3;
13498          ITraceSQLStatementImpl_vTable.getStmtID := @ITraceSQLStatementImpl_getStmtIDDispatcher;
13499          ITraceSQLStatementImpl_vTable.getPerf := @ITraceSQLStatementImpl_getPerfDispatcher;
13500          ITraceSQLStatementImpl_vTable.getText := @ITraceSQLStatementImpl_getTextDispatcher;
# Line 12775 | Line 13504 | initialization
13504          ITraceSQLStatementImpl_vTable.getExplainedPlan := @ITraceSQLStatementImpl_getExplainedPlanDispatcher;
13505  
13506          ITraceBLRStatementImpl_vTable := TraceBLRStatementVTable.create;
13507 <        ITraceBLRStatementImpl_vTable.version := 5;
13507 >        ITraceBLRStatementImpl_vTable.version := 3;
13508          ITraceBLRStatementImpl_vTable.getStmtID := @ITraceBLRStatementImpl_getStmtIDDispatcher;
13509          ITraceBLRStatementImpl_vTable.getPerf := @ITraceBLRStatementImpl_getPerfDispatcher;
13510          ITraceBLRStatementImpl_vTable.getData := @ITraceBLRStatementImpl_getDataDispatcher;
# Line 12783 | Line 13512 | initialization
13512          ITraceBLRStatementImpl_vTable.getText := @ITraceBLRStatementImpl_getTextDispatcher;
13513  
13514          ITraceDYNRequestImpl_vTable := TraceDYNRequestVTable.create;
13515 <        ITraceDYNRequestImpl_vTable.version := 3;
13515 >        ITraceDYNRequestImpl_vTable.version := 2;
13516          ITraceDYNRequestImpl_vTable.getData := @ITraceDYNRequestImpl_getDataDispatcher;
13517          ITraceDYNRequestImpl_vTable.getDataLength := @ITraceDYNRequestImpl_getDataLengthDispatcher;
13518          ITraceDYNRequestImpl_vTable.getText := @ITraceDYNRequestImpl_getTextDispatcher;
13519  
13520          ITraceContextVariableImpl_vTable := TraceContextVariableVTable.create;
13521 <        ITraceContextVariableImpl_vTable.version := 3;
13521 >        ITraceContextVariableImpl_vTable.version := 2;
13522          ITraceContextVariableImpl_vTable.getNameSpace := @ITraceContextVariableImpl_getNameSpaceDispatcher;
13523          ITraceContextVariableImpl_vTable.getVarName := @ITraceContextVariableImpl_getVarNameDispatcher;
13524          ITraceContextVariableImpl_vTable.getVarValue := @ITraceContextVariableImpl_getVarValueDispatcher;
13525  
13526          ITraceProcedureImpl_vTable := TraceProcedureVTable.create;
13527 <        ITraceProcedureImpl_vTable.version := 3;
13527 >        ITraceProcedureImpl_vTable.version := 2;
13528          ITraceProcedureImpl_vTable.getProcName := @ITraceProcedureImpl_getProcNameDispatcher;
13529          ITraceProcedureImpl_vTable.getInputs := @ITraceProcedureImpl_getInputsDispatcher;
13530          ITraceProcedureImpl_vTable.getPerf := @ITraceProcedureImpl_getPerfDispatcher;
13531  
13532          ITraceFunctionImpl_vTable := TraceFunctionVTable.create;
13533 <        ITraceFunctionImpl_vTable.version := 4;
13533 >        ITraceFunctionImpl_vTable.version := 2;
13534          ITraceFunctionImpl_vTable.getFuncName := @ITraceFunctionImpl_getFuncNameDispatcher;
13535          ITraceFunctionImpl_vTable.getInputs := @ITraceFunctionImpl_getInputsDispatcher;
13536          ITraceFunctionImpl_vTable.getResult := @ITraceFunctionImpl_getResultDispatcher;
13537          ITraceFunctionImpl_vTable.getPerf := @ITraceFunctionImpl_getPerfDispatcher;
13538  
13539          ITraceTriggerImpl_vTable := TraceTriggerVTable.create;
13540 <        ITraceTriggerImpl_vTable.version := 5;
13540 >        ITraceTriggerImpl_vTable.version := 2;
13541          ITraceTriggerImpl_vTable.getTriggerName := @ITraceTriggerImpl_getTriggerNameDispatcher;
13542          ITraceTriggerImpl_vTable.getRelationName := @ITraceTriggerImpl_getRelationNameDispatcher;
13543          ITraceTriggerImpl_vTable.getAction := @ITraceTriggerImpl_getActionDispatcher;
# Line 12816 | Line 13545 | initialization
13545          ITraceTriggerImpl_vTable.getPerf := @ITraceTriggerImpl_getPerfDispatcher;
13546  
13547          ITraceServiceConnectionImpl_vTable := TraceServiceConnectionVTable.create;
13548 <        ITraceServiceConnectionImpl_vTable.version := 12;
13548 >        ITraceServiceConnectionImpl_vTable.version := 3;
13549          ITraceServiceConnectionImpl_vTable.getKind := @ITraceServiceConnectionImpl_getKindDispatcher;
13550          ITraceServiceConnectionImpl_vTable.getProcessID := @ITraceServiceConnectionImpl_getProcessIDDispatcher;
13551          ITraceServiceConnectionImpl_vTable.getUserName := @ITraceServiceConnectionImpl_getUserNameDispatcher;
# Line 12831 | Line 13560 | initialization
13560          ITraceServiceConnectionImpl_vTable.getServiceName := @ITraceServiceConnectionImpl_getServiceNameDispatcher;
13561  
13562          ITraceStatusVectorImpl_vTable := TraceStatusVectorVTable.create;
13563 <        ITraceStatusVectorImpl_vTable.version := 4;
13563 >        ITraceStatusVectorImpl_vTable.version := 2;
13564          ITraceStatusVectorImpl_vTable.hasError := @ITraceStatusVectorImpl_hasErrorDispatcher;
13565          ITraceStatusVectorImpl_vTable.hasWarning := @ITraceStatusVectorImpl_hasWarningDispatcher;
13566          ITraceStatusVectorImpl_vTable.getStatus := @ITraceStatusVectorImpl_getStatusDispatcher;
13567          ITraceStatusVectorImpl_vTable.getText := @ITraceStatusVectorImpl_getTextDispatcher;
13568  
13569          ITraceSweepInfoImpl_vTable := TraceSweepInfoVTable.create;
13570 <        ITraceSweepInfoImpl_vTable.version := 5;
13570 >        ITraceSweepInfoImpl_vTable.version := 2;
13571          ITraceSweepInfoImpl_vTable.getOIT := @ITraceSweepInfoImpl_getOITDispatcher;
13572          ITraceSweepInfoImpl_vTable.getOST := @ITraceSweepInfoImpl_getOSTDispatcher;
13573          ITraceSweepInfoImpl_vTable.getOAT := @ITraceSweepInfoImpl_getOATDispatcher;
# Line 12846 | Line 13575 | initialization
13575          ITraceSweepInfoImpl_vTable.getPerf := @ITraceSweepInfoImpl_getPerfDispatcher;
13576  
13577          ITraceLogWriterImpl_vTable := TraceLogWriterVTable.create;
13578 <        ITraceLogWriterImpl_vTable.version := 3;
13578 >        ITraceLogWriterImpl_vTable.version := 4;
13579          ITraceLogWriterImpl_vTable.addRef := @ITraceLogWriterImpl_addRefDispatcher;
13580          ITraceLogWriterImpl_vTable.release := @ITraceLogWriterImpl_releaseDispatcher;
13581          ITraceLogWriterImpl_vTable.write := @ITraceLogWriterImpl_writeDispatcher;
13582 +        ITraceLogWriterImpl_vTable.write_s := @ITraceLogWriterImpl_write_sDispatcher;
13583  
13584          ITraceInitInfoImpl_vTable := TraceInitInfoVTable.create;
13585 <        ITraceInitInfoImpl_vTable.version := 7;
13585 >        ITraceInitInfoImpl_vTable.version := 2;
13586          ITraceInitInfoImpl_vTable.getConfigText := @ITraceInitInfoImpl_getConfigTextDispatcher;
13587          ITraceInitInfoImpl_vTable.getTraceSessionID := @ITraceInitInfoImpl_getTraceSessionIDDispatcher;
13588          ITraceInitInfoImpl_vTable.getTraceSessionName := @ITraceInitInfoImpl_getTraceSessionNameDispatcher;
# Line 12862 | Line 13592 | initialization
13592          ITraceInitInfoImpl_vTable.getLogWriter := @ITraceInitInfoImpl_getLogWriterDispatcher;
13593  
13594          ITracePluginImpl_vTable := TracePluginVTable.create;
13595 <        ITracePluginImpl_vTable.version := 23;
13595 >        ITracePluginImpl_vTable.version := 3;
13596          ITracePluginImpl_vTable.addRef := @ITracePluginImpl_addRefDispatcher;
13597          ITracePluginImpl_vTable.release := @ITracePluginImpl_releaseDispatcher;
13598          ITracePluginImpl_vTable.trace_get_error := @ITracePluginImpl_trace_get_errorDispatcher;
# Line 12888 | Line 13618 | initialization
13618          ITracePluginImpl_vTable.trace_func_execute := @ITracePluginImpl_trace_func_executeDispatcher;
13619  
13620          ITraceFactoryImpl_vTable := TraceFactoryVTable.create;
13621 <        ITraceFactoryImpl_vTable.version := 6;
13621 >        ITraceFactoryImpl_vTable.version := 4;
13622          ITraceFactoryImpl_vTable.addRef := @ITraceFactoryImpl_addRefDispatcher;
13623          ITraceFactoryImpl_vTable.release := @ITraceFactoryImpl_releaseDispatcher;
13624          ITraceFactoryImpl_vTable.setOwner := @ITraceFactoryImpl_setOwnerDispatcher;
# Line 12915 | Line 13645 | initialization
13645          IUdrTriggerFactoryImpl_vTable.newItem := @IUdrTriggerFactoryImpl_newItemDispatcher;
13646  
13647          IUdrPluginImpl_vTable := UdrPluginVTable.create;
13648 <        IUdrPluginImpl_vTable.version := 4;
13648 >        IUdrPluginImpl_vTable.version := 2;
13649          IUdrPluginImpl_vTable.getMaster := @IUdrPluginImpl_getMasterDispatcher;
13650          IUdrPluginImpl_vTable.registerFunction := @IUdrPluginImpl_registerFunctionDispatcher;
13651          IUdrPluginImpl_vTable.registerProcedure := @IUdrPluginImpl_registerProcedureDispatcher;
13652          IUdrPluginImpl_vTable.registerTrigger := @IUdrPluginImpl_registerTriggerDispatcher;
13653  
13654 +        IDecFloat16Impl_vTable := DecFloat16VTable.create;
13655 +        IDecFloat16Impl_vTable.version := 2;
13656 +        IDecFloat16Impl_vTable.toBcd := @IDecFloat16Impl_toBcdDispatcher;
13657 +        IDecFloat16Impl_vTable.toString := @IDecFloat16Impl_toStringDispatcher;
13658 +        IDecFloat16Impl_vTable.fromBcd := @IDecFloat16Impl_fromBcdDispatcher;
13659 +        IDecFloat16Impl_vTable.fromString := @IDecFloat16Impl_fromStringDispatcher;
13660 +
13661 +        IDecFloat34Impl_vTable := DecFloat34VTable.create;
13662 +        IDecFloat34Impl_vTable.version := 2;
13663 +        IDecFloat34Impl_vTable.toBcd := @IDecFloat34Impl_toBcdDispatcher;
13664 +        IDecFloat34Impl_vTable.toString := @IDecFloat34Impl_toStringDispatcher;
13665 +        IDecFloat34Impl_vTable.fromBcd := @IDecFloat34Impl_fromBcdDispatcher;
13666 +        IDecFloat34Impl_vTable.fromString := @IDecFloat34Impl_fromStringDispatcher;
13667 +
13668 +        IInt128Impl_vTable := Int128VTable.create;
13669 +        IInt128Impl_vTable.version := 2;
13670 +        IInt128Impl_vTable.toString := @IInt128Impl_toStringDispatcher;
13671 +        IInt128Impl_vTable.fromString := @IInt128Impl_fromStringDispatcher;
13672 +
13673 +        IReplicatedFieldImpl_vTable := ReplicatedFieldVTable.create;
13674 +        IReplicatedFieldImpl_vTable.version := 2;
13675 +        IReplicatedFieldImpl_vTable.getName := @IReplicatedFieldImpl_getNameDispatcher;
13676 +        IReplicatedFieldImpl_vTable.getType := @IReplicatedFieldImpl_getTypeDispatcher;
13677 +        IReplicatedFieldImpl_vTable.getSubType := @IReplicatedFieldImpl_getSubTypeDispatcher;
13678 +        IReplicatedFieldImpl_vTable.getScale := @IReplicatedFieldImpl_getScaleDispatcher;
13679 +        IReplicatedFieldImpl_vTable.getLength := @IReplicatedFieldImpl_getLengthDispatcher;
13680 +        IReplicatedFieldImpl_vTable.getCharSet := @IReplicatedFieldImpl_getCharSetDispatcher;
13681 +        IReplicatedFieldImpl_vTable.getData := @IReplicatedFieldImpl_getDataDispatcher;
13682 +
13683 +        IReplicatedRecordImpl_vTable := ReplicatedRecordVTable.create;
13684 +        IReplicatedRecordImpl_vTable.version := 2;
13685 +        IReplicatedRecordImpl_vTable.getCount := @IReplicatedRecordImpl_getCountDispatcher;
13686 +        IReplicatedRecordImpl_vTable.getField := @IReplicatedRecordImpl_getFieldDispatcher;
13687 +        IReplicatedRecordImpl_vTable.getRawLength := @IReplicatedRecordImpl_getRawLengthDispatcher;
13688 +        IReplicatedRecordImpl_vTable.getRawData := @IReplicatedRecordImpl_getRawDataDispatcher;
13689 +
13690 +        IReplicatedTransactionImpl_vTable := ReplicatedTransactionVTable.create;
13691 +        IReplicatedTransactionImpl_vTable.version := 3;
13692 +        IReplicatedTransactionImpl_vTable.dispose := @IReplicatedTransactionImpl_disposeDispatcher;
13693 +        IReplicatedTransactionImpl_vTable.prepare := @IReplicatedTransactionImpl_prepareDispatcher;
13694 +        IReplicatedTransactionImpl_vTable.commit := @IReplicatedTransactionImpl_commitDispatcher;
13695 +        IReplicatedTransactionImpl_vTable.rollback := @IReplicatedTransactionImpl_rollbackDispatcher;
13696 +        IReplicatedTransactionImpl_vTable.startSavepoint := @IReplicatedTransactionImpl_startSavepointDispatcher;
13697 +        IReplicatedTransactionImpl_vTable.releaseSavepoint := @IReplicatedTransactionImpl_releaseSavepointDispatcher;
13698 +        IReplicatedTransactionImpl_vTable.rollbackSavepoint := @IReplicatedTransactionImpl_rollbackSavepointDispatcher;
13699 +        IReplicatedTransactionImpl_vTable.insertRecord := @IReplicatedTransactionImpl_insertRecordDispatcher;
13700 +        IReplicatedTransactionImpl_vTable.updateRecord := @IReplicatedTransactionImpl_updateRecordDispatcher;
13701 +        IReplicatedTransactionImpl_vTable.deleteRecord := @IReplicatedTransactionImpl_deleteRecordDispatcher;
13702 +        IReplicatedTransactionImpl_vTable.executeSql := @IReplicatedTransactionImpl_executeSqlDispatcher;
13703 +        IReplicatedTransactionImpl_vTable.executeSqlIntl := @IReplicatedTransactionImpl_executeSqlIntlDispatcher;
13704 +
13705 +        IReplicatedSessionImpl_vTable := ReplicatedSessionVTable.create;
13706 +        IReplicatedSessionImpl_vTable.version := 4;
13707 +        IReplicatedSessionImpl_vTable.addRef := @IReplicatedSessionImpl_addRefDispatcher;
13708 +        IReplicatedSessionImpl_vTable.release := @IReplicatedSessionImpl_releaseDispatcher;
13709 +        IReplicatedSessionImpl_vTable.setOwner := @IReplicatedSessionImpl_setOwnerDispatcher;
13710 +        IReplicatedSessionImpl_vTable.getOwner := @IReplicatedSessionImpl_getOwnerDispatcher;
13711 +        IReplicatedSessionImpl_vTable.setAttachment := @IReplicatedSessionImpl_setAttachmentDispatcher;
13712 +        IReplicatedSessionImpl_vTable.startTransaction := @IReplicatedSessionImpl_startTransactionDispatcher;
13713 +        IReplicatedSessionImpl_vTable.cleanupTransaction := @IReplicatedSessionImpl_cleanupTransactionDispatcher;
13714 +        IReplicatedSessionImpl_vTable.setSequence := @IReplicatedSessionImpl_setSequenceDispatcher;
13715 +
13716   finalization
13717          IVersionedImpl_vTable.destroy;
13718          IReferenceCountedImpl_vTable.destroy;
# Line 12945 | Line 13737 | finalization
13737          IMetadataBuilderImpl_vTable.destroy;
13738          IResultSetImpl_vTable.destroy;
13739          IStatementImpl_vTable.destroy;
13740 +        IBatchImpl_vTable.destroy;
13741 +        IBatchCompletionStateImpl_vTable.destroy;
13742 +        IReplicatorImpl_vTable.destroy;
13743          IRequestImpl_vTable.destroy;
13744          IEventsImpl_vTable.destroy;
13745          IAttachmentImpl_vTable.destroy;
# Line 12965 | Line 13760 | finalization
13760          IListUsersImpl_vTable.destroy;
13761          ILogonInfoImpl_vTable.destroy;
13762          IManagementImpl_vTable.destroy;
13763 +        IAuthBlockImpl_vTable.destroy;
13764          IWireCryptPluginImpl_vTable.destroy;
13765          ICryptKeyCallbackImpl_vTable.destroy;
13766          IKeyHolderPluginImpl_vTable.destroy;
13767 +        IDbCryptInfoImpl_vTable.destroy;
13768          IDbCryptPluginImpl_vTable.destroy;
13769          IExternalContextImpl_vTable.destroy;
13770          IExternalResultSetImpl_vTable.destroy;
# Line 13005 | Line 13802 | finalization
13802          IUdrProcedureFactoryImpl_vTable.destroy;
13803          IUdrTriggerFactoryImpl_vTable.destroy;
13804          IUdrPluginImpl_vTable.destroy;
13805 +        IDecFloat16Impl_vTable.destroy;
13806 +        IDecFloat34Impl_vTable.destroy;
13807 +        IInt128Impl_vTable.destroy;
13808 +        IReplicatedFieldImpl_vTable.destroy;
13809 +        IReplicatedRecordImpl_vTable.destroy;
13810 +        IReplicatedTransactionImpl_vTable.destroy;
13811 +        IReplicatedSessionImpl_vTable.destroy;
13812  
13813   end.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines