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
Revision: 45
Committed: Tue Dec 6 10:33:46 2016 UTC (7 years, 4 months ago) by tony
Content type: text/x-pascal
File size: 500911 byte(s)
Log Message:
Committing updates for Release R2-0-0

File Contents

# User Rev Content
1 tony 45 { 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
4     sourced from unit IB
5    
6     Use of FBException is now condition and not used for IBX.
7    
8     constants removed and imported separately into IB.pas
9     }
10    
11     unit Firebird;
12    
13     interface
14     {$IFDEF FPC}
15     {$mode delphi}
16     {$ENDIF}
17    
18     uses Classes, SysUtils, IB, DB;
19    
20     type
21     {$IFNDEF FPC}
22     QWord = UInt64;
23     {$ENDIF}
24    
25     { $DEFINE USEFBEXCEPTION}
26    
27     IVersioned = class;
28     IReferenceCounted = class;
29     IDisposable = class;
30     IStatus = class;
31     IMaster = class;
32     IPluginBase = class;
33     IPluginSet = class;
34     IConfigEntry = class;
35     IConfig = class;
36     IFirebirdConf = class;
37     IPluginConfig = class;
38     IPluginFactory = class;
39     IPluginModule = class;
40     IPluginManager = class;
41     ICryptKey = class;
42     IConfigManager = class;
43     IEventCallback = class;
44     IBlob = class;
45     ITransaction = class;
46     IMessageMetadata = class;
47     IMetadataBuilder = class;
48     IResultSet = class;
49     IStatement = class;
50     IRequest = class;
51     IEvents = class;
52     IAttachment = class;
53     IService = class;
54     IProvider = class;
55     IDtcStart = class;
56     IDtc = class;
57     IAuth = class;
58     IWriter = class;
59     IServerBlock = class;
60     IClientBlock = class;
61     IServer = class;
62     IClient = class;
63     IUserField = class;
64     ICharUserField = class;
65     IIntUserField = class;
66     IUser = class;
67     IListUsers = class;
68     ILogonInfo = class;
69     IManagement = class;
70     IWireCryptPlugin = class;
71     ICryptKeyCallback = class;
72     IKeyHolderPlugin = class;
73     IDbCryptPlugin = class;
74     IExternalContext = class;
75     IExternalResultSet = class;
76     IExternalFunction = class;
77     IExternalProcedure = class;
78     IExternalTrigger = class;
79     IRoutineMetadata = class;
80     IExternalEngine = class;
81     ITimer = class;
82     ITimerControl = class;
83     IVersionCallback = class;
84     IUtil = class;
85     IOffsetsCallback = class;
86     IXpbBuilder = class;
87     ITraceConnection = class;
88     ITraceDatabaseConnection = class;
89     ITraceTransaction = class;
90     ITraceParams = class;
91     ITraceStatement = class;
92     ITraceSQLStatement = class;
93     ITraceBLRStatement = class;
94     ITraceDYNRequest = class;
95     ITraceContextVariable = class;
96     ITraceProcedure = class;
97     ITraceFunction = class;
98     ITraceTrigger = class;
99     ITraceServiceConnection = class;
100     ITraceStatusVector = class;
101     ITraceSweepInfo = class;
102     ITraceLogWriter = class;
103     ITraceInitInfo = class;
104     ITracePlugin = class;
105     ITraceFactory = class;
106     IUdrFunctionFactory = class;
107     IUdrProcedureFactory = class;
108     IUdrTriggerFactory = class;
109     IUdrPlugin = class;
110    
111     FbException = class(EDatabaseError)
112     public
113     constructor create(status: IStatus); virtual;
114     destructor Destroy(); override;
115    
116     function getStatus: IStatus;
117    
118     class procedure checkException(status: IStatus);
119     class procedure catchException(status: IStatus; e: Exception);
120    
121     private
122     status: IStatus;
123     end;
124    
125     ISC_DATE = Integer;
126     ISC_TIME = Integer;
127    
128     ntrace_relation_t = Integer;
129     TraceCounts = Record
130     trc_relation_id : ntrace_relation_t;
131     trc_relation_name : PAnsiChar;
132     trc_counters : ^Int64;
133     end;
134     TraceCountsPtr = ^TraceCounts;
135     PerformanceInfo = Record
136     pin_time : Int64;
137     pin_counters : ^Int64;
138     pin_count : NativeUInt;
139     pin_tables : TraceCountsPtr;
140     pin_records_fetched : Int64;
141     end;
142    
143     Dsc = Record
144     dsc_dtype, dsc_scale: Byte;
145     dsc_length, dsc_sub_type, dsc_flags: Int16;
146     dsc_address: ^Byte;
147     end;
148     BooleanPtr = ^Boolean;
149     BytePtr = ^Byte;
150     CardinalPtr = ^Cardinal;
151     IKeyHolderPluginPtr = ^IKeyHolderPlugin;
152     Int64Ptr = ^Int64;
153     NativeIntPtr = ^NativeInt;
154     PerformanceInfoPtr = ^PerformanceInfo;
155     dscPtr = ^dsc;
156    
157     IReferenceCounted_addRefPtr = procedure(this: IReferenceCounted); cdecl;
158     IReferenceCounted_releasePtr = function(this: IReferenceCounted): Integer; cdecl;
159     IDisposable_disposePtr = procedure(this: IDisposable); cdecl;
160     IStatus_initPtr = procedure(this: IStatus); cdecl;
161     IStatus_getStatePtr = function(this: IStatus): Cardinal; cdecl;
162     IStatus_setErrors2Ptr = procedure(this: IStatus; length: Cardinal; value: NativeIntPtr); cdecl;
163     IStatus_setWarnings2Ptr = procedure(this: IStatus; length: Cardinal; value: NativeIntPtr); cdecl;
164     IStatus_setErrorsPtr = procedure(this: IStatus; value: NativeIntPtr); cdecl;
165     IStatus_setWarningsPtr = procedure(this: IStatus; value: NativeIntPtr); cdecl;
166     IStatus_getErrorsPtr = function(this: IStatus): NativeIntPtr; cdecl;
167     IStatus_getWarningsPtr = function(this: IStatus): NativeIntPtr; cdecl;
168     IStatus_clonePtr = function(this: IStatus): IStatus; cdecl;
169     IMaster_getStatusPtr = function(this: IMaster): IStatus; cdecl;
170     IMaster_getDispatcherPtr = function(this: IMaster): IProvider; cdecl;
171     IMaster_getPluginManagerPtr = function(this: IMaster): IPluginManager; cdecl;
172     IMaster_getTimerControlPtr = function(this: IMaster): ITimerControl; cdecl;
173     IMaster_getDtcPtr = function(this: IMaster): IDtc; cdecl;
174     IMaster_registerAttachmentPtr = function(this: IMaster; provider: IProvider; attachment: IAttachment): IAttachment; cdecl;
175     IMaster_registerTransactionPtr = function(this: IMaster; attachment: IAttachment; transaction: ITransaction): ITransaction; cdecl;
176     IMaster_getMetadataBuilderPtr = function(this: IMaster; status: IStatus; fieldCount: Cardinal): IMetadataBuilder; cdecl;
177     IMaster_serverModePtr = function(this: IMaster; mode: Integer): Integer; cdecl;
178     IMaster_getUtilInterfacePtr = function(this: IMaster): IUtil; cdecl;
179     IMaster_getConfigManagerPtr = function(this: IMaster): IConfigManager; cdecl;
180     IMaster_getProcessExitingPtr = function(this: IMaster): Boolean; cdecl;
181     IPluginBase_setOwnerPtr = procedure(this: IPluginBase; r: IReferenceCounted); cdecl;
182     IPluginBase_getOwnerPtr = function(this: IPluginBase): IReferenceCounted; cdecl;
183     IPluginSet_getNamePtr = function(this: IPluginSet): PAnsiChar; cdecl;
184     IPluginSet_getModuleNamePtr = function(this: IPluginSet): PAnsiChar; cdecl;
185     IPluginSet_getPluginPtr = function(this: IPluginSet; status: IStatus): IPluginBase; cdecl;
186     IPluginSet_nextPtr = procedure(this: IPluginSet; status: IStatus); cdecl;
187     IPluginSet_set_Ptr = procedure(this: IPluginSet; status: IStatus; s: PAnsiChar); cdecl;
188     IConfigEntry_getNamePtr = function(this: IConfigEntry): PAnsiChar; cdecl;
189     IConfigEntry_getValuePtr = function(this: IConfigEntry): PAnsiChar; cdecl;
190     IConfigEntry_getIntValuePtr = function(this: IConfigEntry): Int64; cdecl;
191     IConfigEntry_getBoolValuePtr = function(this: IConfigEntry): Boolean; cdecl;
192     IConfigEntry_getSubConfigPtr = function(this: IConfigEntry; status: IStatus): IConfig; cdecl;
193     IConfig_findPtr = function(this: IConfig; status: IStatus; name: PAnsiChar): IConfigEntry; cdecl;
194     IConfig_findValuePtr = function(this: IConfig; status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry; cdecl;
195     IConfig_findPosPtr = function(this: IConfig; status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry; cdecl;
196     IFirebirdConf_getKeyPtr = function(this: IFirebirdConf; name: PAnsiChar): Cardinal; cdecl;
197     IFirebirdConf_asIntegerPtr = function(this: IFirebirdConf; key: Cardinal): Int64; cdecl;
198     IFirebirdConf_asStringPtr = function(this: IFirebirdConf; key: Cardinal): PAnsiChar; cdecl;
199     IFirebirdConf_asBooleanPtr = function(this: IFirebirdConf; key: Cardinal): Boolean; cdecl;
200     IPluginConfig_getConfigFileNamePtr = function(this: IPluginConfig): PAnsiChar; cdecl;
201     IPluginConfig_getDefaultConfigPtr = function(this: IPluginConfig; status: IStatus): IConfig; cdecl;
202     IPluginConfig_getFirebirdConfPtr = function(this: IPluginConfig; status: IStatus): IFirebirdConf; cdecl;
203     IPluginConfig_setReleaseDelayPtr = procedure(this: IPluginConfig; status: IStatus; microSeconds: QWord); cdecl;
204     IPluginFactory_createPluginPtr = function(this: IPluginFactory; status: IStatus; factoryParameter: IPluginConfig): IPluginBase; cdecl;
205     IPluginModule_doCleanPtr = procedure(this: IPluginModule); cdecl;
206     IPluginManager_registerPluginFactoryPtr = procedure(this: IPluginManager; pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory); cdecl;
207     IPluginManager_registerModulePtr = procedure(this: IPluginManager; cleanup: IPluginModule); cdecl;
208     IPluginManager_unregisterModulePtr = procedure(this: IPluginManager; cleanup: IPluginModule); cdecl;
209     IPluginManager_getPluginsPtr = function(this: IPluginManager; status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet; cdecl;
210     IPluginManager_getConfigPtr = function(this: IPluginManager; status: IStatus; filename: PAnsiChar): IConfig; cdecl;
211     IPluginManager_releasePluginPtr = procedure(this: IPluginManager; plugin: IPluginBase); cdecl;
212     ICryptKey_setSymmetricPtr = procedure(this: ICryptKey; status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer); cdecl;
213     ICryptKey_setAsymmetricPtr = procedure(this: ICryptKey; status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer); cdecl;
214     ICryptKey_getEncryptKeyPtr = function(this: ICryptKey; length: CardinalPtr): Pointer; cdecl;
215     ICryptKey_getDecryptKeyPtr = function(this: ICryptKey; length: CardinalPtr): Pointer; cdecl;
216     IConfigManager_getDirectoryPtr = function(this: IConfigManager; code: Cardinal): PAnsiChar; cdecl;
217     IConfigManager_getFirebirdConfPtr = function(this: IConfigManager): IFirebirdConf; cdecl;
218     IConfigManager_getDatabaseConfPtr = function(this: IConfigManager; dbName: PAnsiChar): IFirebirdConf; cdecl;
219     IConfigManager_getPluginConfigPtr = function(this: IConfigManager; configuredPlugin: PAnsiChar): IConfig; cdecl;
220     IConfigManager_getInstallDirectoryPtr = function(this: IConfigManager): PAnsiChar; cdecl;
221     IConfigManager_getRootDirectoryPtr = function(this: IConfigManager): PAnsiChar; cdecl;
222     IEventCallback_eventCallbackFunctionPtr = procedure(this: IEventCallback; length: Cardinal; events: BytePtr); cdecl;
223     IBlob_getInfoPtr = procedure(this: IBlob; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
224     IBlob_getSegmentPtr = function(this: IBlob; status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer; cdecl;
225     IBlob_putSegmentPtr = procedure(this: IBlob; status: IStatus; length: Cardinal; buffer: Pointer); cdecl;
226     IBlob_cancelPtr = procedure(this: IBlob; status: IStatus); cdecl;
227     IBlob_closePtr = procedure(this: IBlob; status: IStatus); cdecl;
228     IBlob_seekPtr = function(this: IBlob; status: IStatus; mode: Integer; offset: Integer): Integer; cdecl;
229     ITransaction_getInfoPtr = procedure(this: ITransaction; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
230     ITransaction_preparePtr = procedure(this: ITransaction; status: IStatus; msgLength: Cardinal; message: BytePtr); cdecl;
231     ITransaction_commitPtr = procedure(this: ITransaction; status: IStatus); cdecl;
232     ITransaction_commitRetainingPtr = procedure(this: ITransaction; status: IStatus); cdecl;
233     ITransaction_rollbackPtr = procedure(this: ITransaction; status: IStatus); cdecl;
234     ITransaction_rollbackRetainingPtr = procedure(this: ITransaction; status: IStatus); cdecl;
235     ITransaction_disconnectPtr = procedure(this: ITransaction; status: IStatus); cdecl;
236     ITransaction_joinPtr = function(this: ITransaction; status: IStatus; transaction: ITransaction): ITransaction; cdecl;
237     ITransaction_validatePtr = function(this: ITransaction; status: IStatus; attachment: IAttachment): ITransaction; cdecl;
238     ITransaction_enterDtcPtr = function(this: ITransaction; status: IStatus): ITransaction; cdecl;
239     IMessageMetadata_getCountPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
240     IMessageMetadata_getFieldPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
241     IMessageMetadata_getRelationPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
242     IMessageMetadata_getOwnerPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
243     IMessageMetadata_getAliasPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
244     IMessageMetadata_getTypePtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
245     IMessageMetadata_isNullablePtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Boolean; cdecl;
246     IMessageMetadata_getSubTypePtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Integer; cdecl;
247     IMessageMetadata_getLengthPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
248     IMessageMetadata_getScalePtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Integer; cdecl;
249     IMessageMetadata_getCharSetPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
250     IMessageMetadata_getOffsetPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
251     IMessageMetadata_getNullOffsetPtr = function(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
252     IMessageMetadata_getBuilderPtr = function(this: IMessageMetadata; status: IStatus): IMetadataBuilder; cdecl;
253     IMessageMetadata_getMessageLengthPtr = function(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
254     IMetadataBuilder_setTypePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; type_: Cardinal); cdecl;
255     IMetadataBuilder_setSubTypePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; subType: Integer); cdecl;
256     IMetadataBuilder_setLengthPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; length: Cardinal); cdecl;
257     IMetadataBuilder_setCharSetPtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; charSet: Cardinal); cdecl;
258     IMetadataBuilder_setScalePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal; scale: integer); cdecl;
259     IMetadataBuilder_truncatePtr = procedure(this: IMetadataBuilder; status: IStatus; count: Cardinal); cdecl;
260     IMetadataBuilder_moveNameToIndexPtr = procedure(this: IMetadataBuilder; status: IStatus; name: PAnsiChar; index: Cardinal); cdecl;
261     IMetadataBuilder_removePtr = procedure(this: IMetadataBuilder; status: IStatus; index: Cardinal); cdecl;
262     IMetadataBuilder_addFieldPtr = function(this: IMetadataBuilder; status: IStatus): Cardinal; cdecl;
263     IMetadataBuilder_getMetadataPtr = function(this: IMetadataBuilder; status: IStatus): IMessageMetadata; cdecl;
264     IResultSet_fetchNextPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
265     IResultSet_fetchPriorPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
266     IResultSet_fetchFirstPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
267     IResultSet_fetchLastPtr = function(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
268     IResultSet_fetchAbsolutePtr = function(this: IResultSet; status: IStatus; position: Integer; message: Pointer): Integer; cdecl;
269     IResultSet_fetchRelativePtr = function(this: IResultSet; status: IStatus; offset: Integer; message: Pointer): Integer; cdecl;
270     IResultSet_isEofPtr = function(this: IResultSet; status: IStatus): Boolean; cdecl;
271     IResultSet_isBofPtr = function(this: IResultSet; status: IStatus): Boolean; cdecl;
272     IResultSet_getMetadataPtr = function(this: IResultSet; status: IStatus): IMessageMetadata; cdecl;
273     IResultSet_closePtr = procedure(this: IResultSet; status: IStatus); cdecl;
274     IResultSet_setDelayedOutputFormatPtr = procedure(this: IResultSet; status: IStatus; format: IMessageMetadata); cdecl;
275     IStatement_getInfoPtr = procedure(this: IStatement; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
276     IStatement_getTypePtr = function(this: IStatement; status: IStatus): Cardinal; cdecl;
277     IStatement_getPlanPtr = function(this: IStatement; status: IStatus; detailed: Boolean): PAnsiChar; cdecl;
278     IStatement_getAffectedRecordsPtr = function(this: IStatement; status: IStatus): QWord; cdecl;
279     IStatement_getInputMetadataPtr = function(this: IStatement; status: IStatus): IMessageMetadata; cdecl;
280     IStatement_getOutputMetadataPtr = function(this: IStatement; status: IStatus): IMessageMetadata; cdecl;
281     IStatement_executePtr = function(this: IStatement; status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; cdecl;
282     IStatement_openCursorPtr = function(this: IStatement; status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet; cdecl;
283     IStatement_setCursorNamePtr = procedure(this: IStatement; status: IStatus; name: PAnsiChar); cdecl;
284     IStatement_freePtr = procedure(this: IStatement; status: IStatus); cdecl;
285     IStatement_getFlagsPtr = function(this: IStatement; status: IStatus): Cardinal; cdecl;
286     IRequest_receivePtr = procedure(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
287     IRequest_sendPtr = procedure(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
288     IRequest_getInfoPtr = procedure(this: IRequest; status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
289     IRequest_startPtr = procedure(this: IRequest; status: IStatus; tra: ITransaction; level: Integer); cdecl;
290     IRequest_startAndSendPtr = procedure(this: IRequest; status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
291     IRequest_unwindPtr = procedure(this: IRequest; status: IStatus; level: Integer); cdecl;
292     IRequest_freePtr = procedure(this: IRequest; status: IStatus); cdecl;
293     IEvents_cancelPtr = procedure(this: IEvents; status: IStatus); cdecl;
294     IAttachment_getInfoPtr = procedure(this: IAttachment; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
295     IAttachment_startTransactionPtr = function(this: IAttachment; status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction; cdecl;
296     IAttachment_reconnectTransactionPtr = function(this: IAttachment; status: IStatus; length: Cardinal; id: BytePtr): ITransaction; cdecl;
297     IAttachment_compileRequestPtr = function(this: IAttachment; status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest; cdecl;
298     IAttachment_transactRequestPtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr); cdecl;
299     IAttachment_createBlobPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
300     IAttachment_openBlobPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
301     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;
302     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;
303     IAttachment_executeDynPtr = procedure(this: IAttachment; status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr); cdecl;
304     IAttachment_preparePtr = function(this: IAttachment; status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement; cdecl;
305     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;
306     IAttachment_openCursorPtr = function(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet; cdecl;
307     IAttachment_queEventsPtr = function(this: IAttachment; status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents; cdecl;
308     IAttachment_cancelOperationPtr = procedure(this: IAttachment; status: IStatus; option: Integer); cdecl;
309     IAttachment_pingPtr = procedure(this: IAttachment; status: IStatus); cdecl;
310     IAttachment_detachPtr = procedure(this: IAttachment; status: IStatus); cdecl;
311     IAttachment_dropDatabasePtr = procedure(this: IAttachment; status: IStatus); cdecl;
312     IService_detachPtr = procedure(this: IService; status: IStatus); cdecl;
313     IService_queryPtr = procedure(this: IService; status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
314     IService_startPtr = procedure(this: IService; status: IStatus; spbLength: Cardinal; spb: BytePtr); cdecl;
315     IProvider_attachDatabasePtr = function(this: IProvider; status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; cdecl;
316     IProvider_createDatabasePtr = function(this: IProvider; status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; cdecl;
317     IProvider_attachServiceManagerPtr = function(this: IProvider; status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService; cdecl;
318     IProvider_shutdownPtr = procedure(this: IProvider; status: IStatus; timeout: Cardinal; reason: Integer); cdecl;
319     IProvider_setDbCryptCallbackPtr = procedure(this: IProvider; status: IStatus; cryptCallback: ICryptKeyCallback); cdecl;
320     IDtcStart_addAttachmentPtr = procedure(this: IDtcStart; status: IStatus; att: IAttachment); cdecl;
321     IDtcStart_addWithTpbPtr = procedure(this: IDtcStart; status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr); cdecl;
322     IDtcStart_startPtr = function(this: IDtcStart; status: IStatus): ITransaction; cdecl;
323     IDtc_joinPtr = function(this: IDtc; status: IStatus; one: ITransaction; two: ITransaction): ITransaction; cdecl;
324     IDtc_startBuilderPtr = function(this: IDtc; status: IStatus): IDtcStart; cdecl;
325     IWriter_resetPtr = procedure(this: IWriter); cdecl;
326     IWriter_addPtr = procedure(this: IWriter; status: IStatus; name: PAnsiChar); cdecl;
327     IWriter_setTypePtr = procedure(this: IWriter; status: IStatus; value: PAnsiChar); cdecl;
328     IWriter_setDbPtr = procedure(this: IWriter; status: IStatus; value: PAnsiChar); cdecl;
329     IServerBlock_getLoginPtr = function(this: IServerBlock): PAnsiChar; cdecl;
330     IServerBlock_getDataPtr = function(this: IServerBlock; length: CardinalPtr): BytePtr; cdecl;
331     IServerBlock_putDataPtr = procedure(this: IServerBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
332     IServerBlock_newKeyPtr = function(this: IServerBlock; status: IStatus): ICryptKey; cdecl;
333     IClientBlock_getLoginPtr = function(this: IClientBlock): PAnsiChar; cdecl;
334     IClientBlock_getPasswordPtr = function(this: IClientBlock): PAnsiChar; cdecl;
335     IClientBlock_getDataPtr = function(this: IClientBlock; length: CardinalPtr): BytePtr; cdecl;
336     IClientBlock_putDataPtr = procedure(this: IClientBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
337     IClientBlock_newKeyPtr = function(this: IClientBlock; status: IStatus): ICryptKey; cdecl;
338     IServer_authenticatePtr = function(this: IServer; status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer; cdecl;
339     IClient_authenticatePtr = function(this: IClient; status: IStatus; cBlock: IClientBlock): Integer; cdecl;
340     IUserField_enteredPtr = function(this: IUserField): Integer; cdecl;
341     IUserField_specifiedPtr = function(this: IUserField): Integer; cdecl;
342     IUserField_setEnteredPtr = procedure(this: IUserField; status: IStatus; newValue: Integer); cdecl;
343     ICharUserField_getPtr = function(this: ICharUserField): PAnsiChar; cdecl;
344     ICharUserField_set_Ptr = procedure(this: ICharUserField; status: IStatus; newValue: PAnsiChar); cdecl;
345     IIntUserField_getPtr = function(this: IIntUserField): Integer; cdecl;
346     IIntUserField_set_Ptr = procedure(this: IIntUserField; status: IStatus; newValue: Integer); cdecl;
347     IUser_operationPtr = function(this: IUser): Cardinal; cdecl;
348     IUser_userNamePtr = function(this: IUser): ICharUserField; cdecl;
349     IUser_passwordPtr = function(this: IUser): ICharUserField; cdecl;
350     IUser_firstNamePtr = function(this: IUser): ICharUserField; cdecl;
351     IUser_lastNamePtr = function(this: IUser): ICharUserField; cdecl;
352     IUser_middleNamePtr = function(this: IUser): ICharUserField; cdecl;
353     IUser_commentPtr = function(this: IUser): ICharUserField; cdecl;
354     IUser_attributesPtr = function(this: IUser): ICharUserField; cdecl;
355     IUser_activePtr = function(this: IUser): IIntUserField; cdecl;
356     IUser_adminPtr = function(this: IUser): IIntUserField; cdecl;
357     IUser_clearPtr = procedure(this: IUser; status: IStatus); cdecl;
358     IListUsers_listPtr = procedure(this: IListUsers; status: IStatus; user: IUser); cdecl;
359     ILogonInfo_namePtr = function(this: ILogonInfo): PAnsiChar; cdecl;
360     ILogonInfo_rolePtr = function(this: ILogonInfo): PAnsiChar; cdecl;
361     ILogonInfo_networkProtocolPtr = function(this: ILogonInfo): PAnsiChar; cdecl;
362     ILogonInfo_remoteAddressPtr = function(this: ILogonInfo): PAnsiChar; cdecl;
363     ILogonInfo_authBlockPtr = function(this: ILogonInfo; length: CardinalPtr): BytePtr; cdecl;
364     IManagement_startPtr = procedure(this: IManagement; status: IStatus; logonInfo: ILogonInfo); cdecl;
365     IManagement_executePtr = function(this: IManagement; status: IStatus; user: IUser; callback: IListUsers): Integer; cdecl;
366     IManagement_commitPtr = procedure(this: IManagement; status: IStatus); cdecl;
367     IManagement_rollbackPtr = procedure(this: IManagement; status: IStatus); cdecl;
368     IWireCryptPlugin_getKnownTypesPtr = function(this: IWireCryptPlugin; status: IStatus): PAnsiChar; cdecl;
369     IWireCryptPlugin_setKeyPtr = procedure(this: IWireCryptPlugin; status: IStatus; key: ICryptKey); cdecl;
370     IWireCryptPlugin_encryptPtr = procedure(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
371     IWireCryptPlugin_decryptPtr = procedure(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
372     ICryptKeyCallback_callbackPtr = function(this: ICryptKeyCallback; dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal; cdecl;
373     IKeyHolderPlugin_keyCallbackPtr = function(this: IKeyHolderPlugin; status: IStatus; callback: ICryptKeyCallback): Integer; cdecl;
374     IKeyHolderPlugin_keyHandlePtr = function(this: IKeyHolderPlugin; status: IStatus; keyName: PAnsiChar): ICryptKeyCallback; cdecl;
375     IDbCryptPlugin_setKeyPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar); cdecl;
376     IDbCryptPlugin_encryptPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
377     IDbCryptPlugin_decryptPtr = procedure(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
378     IExternalContext_getMasterPtr = function(this: IExternalContext): IMaster; cdecl;
379     IExternalContext_getEnginePtr = function(this: IExternalContext; status: IStatus): IExternalEngine; cdecl;
380     IExternalContext_getAttachmentPtr = function(this: IExternalContext; status: IStatus): IAttachment; cdecl;
381     IExternalContext_getTransactionPtr = function(this: IExternalContext; status: IStatus): ITransaction; cdecl;
382     IExternalContext_getUserNamePtr = function(this: IExternalContext): PAnsiChar; cdecl;
383     IExternalContext_getDatabaseNamePtr = function(this: IExternalContext): PAnsiChar; cdecl;
384     IExternalContext_getClientCharSetPtr = function(this: IExternalContext): PAnsiChar; cdecl;
385     IExternalContext_obtainInfoCodePtr = function(this: IExternalContext): Integer; cdecl;
386     IExternalContext_getInfoPtr = function(this: IExternalContext; code: Integer): Pointer; cdecl;
387     IExternalContext_setInfoPtr = function(this: IExternalContext; code: Integer; value: Pointer): Pointer; cdecl;
388     IExternalResultSet_fetchPtr = function(this: IExternalResultSet; status: IStatus): Boolean; cdecl;
389     IExternalFunction_getCharSetPtr = procedure(this: IExternalFunction; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
390     IExternalFunction_executePtr = procedure(this: IExternalFunction; status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer); cdecl;
391     IExternalProcedure_getCharSetPtr = procedure(this: IExternalProcedure; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
392     IExternalProcedure_openPtr = function(this: IExternalProcedure; status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet; cdecl;
393     IExternalTrigger_getCharSetPtr = procedure(this: IExternalTrigger; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
394     IExternalTrigger_executePtr = procedure(this: IExternalTrigger; status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer); cdecl;
395     IRoutineMetadata_getPackagePtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
396     IRoutineMetadata_getNamePtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
397     IRoutineMetadata_getEntryPointPtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
398     IRoutineMetadata_getBodyPtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
399     IRoutineMetadata_getInputMetadataPtr = function(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
400     IRoutineMetadata_getOutputMetadataPtr = function(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
401     IRoutineMetadata_getTriggerMetadataPtr = function(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
402     IRoutineMetadata_getTriggerTablePtr = function(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
403     IRoutineMetadata_getTriggerTypePtr = function(this: IRoutineMetadata; status: IStatus): Cardinal; cdecl;
404     IExternalEngine_openPtr = procedure(this: IExternalEngine; status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal); cdecl;
405     IExternalEngine_openAttachmentPtr = procedure(this: IExternalEngine; status: IStatus; context: IExternalContext); cdecl;
406     IExternalEngine_closeAttachmentPtr = procedure(this: IExternalEngine; status: IStatus; context: IExternalContext); cdecl;
407     IExternalEngine_makeFunctionPtr = function(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction; cdecl;
408     IExternalEngine_makeProcedurePtr = function(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure; cdecl;
409     IExternalEngine_makeTriggerPtr = function(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger; cdecl;
410     ITimer_handlerPtr = procedure(this: ITimer); cdecl;
411     ITimerControl_startPtr = procedure(this: ITimerControl; status: IStatus; timer: ITimer; microSeconds: QWord); cdecl;
412     ITimerControl_stopPtr = procedure(this: ITimerControl; status: IStatus; timer: ITimer); cdecl;
413     IVersionCallback_callbackPtr = procedure(this: IVersionCallback; status: IStatus; text: PAnsiChar); cdecl;
414     IUtil_getFbVersionPtr = procedure(this: IUtil; status: IStatus; att: IAttachment; callback: IVersionCallback); cdecl;
415     IUtil_loadBlobPtr = procedure(this: IUtil; status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
416     IUtil_dumpBlobPtr = procedure(this: IUtil; status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
417     IUtil_getPerfCountersPtr = procedure(this: IUtil; status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr); cdecl;
418     IUtil_executeCreateDatabasePtr = function(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
419     IUtil_decodeDatePtr = procedure(this: IUtil; date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr); cdecl;
420     IUtil_decodeTimePtr = procedure(this: IUtil; time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr); cdecl;
421     IUtil_encodeDatePtr = function(this: IUtil; year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE; cdecl;
422     IUtil_encodeTimePtr = function(this: IUtil; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME; cdecl;
423     IUtil_formatStatusPtr = function(this: IUtil; buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal; cdecl;
424     IUtil_getClientVersionPtr = function(this: IUtil): Cardinal; cdecl;
425     IUtil_getXpbBuilderPtr = function(this: IUtil; status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder; cdecl;
426     IUtil_setOffsetsPtr = function(this: IUtil; status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal; cdecl;
427     IOffsetsCallback_setOffsetPtr = procedure(this: IOffsetsCallback; status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal); cdecl;
428     IXpbBuilder_clearPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
429     IXpbBuilder_removeCurrentPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
430     IXpbBuilder_insertIntPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte; value: Integer); cdecl;
431     IXpbBuilder_insertBigIntPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte; value: Int64); cdecl;
432     IXpbBuilder_insertBytesPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal); cdecl;
433     IXpbBuilder_insertStringPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte; str: PAnsiChar); cdecl;
434     IXpbBuilder_insertTagPtr = procedure(this: IXpbBuilder; status: IStatus; tag: Byte); cdecl;
435     IXpbBuilder_isEofPtr = function(this: IXpbBuilder; status: IStatus): Boolean; cdecl;
436     IXpbBuilder_moveNextPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
437     IXpbBuilder_rewindPtr = procedure(this: IXpbBuilder; status: IStatus); cdecl;
438     IXpbBuilder_findFirstPtr = function(this: IXpbBuilder; status: IStatus; tag: Byte): Boolean; cdecl;
439     IXpbBuilder_findNextPtr = function(this: IXpbBuilder; status: IStatus): Boolean; cdecl;
440     IXpbBuilder_getTagPtr = function(this: IXpbBuilder; status: IStatus): Byte; cdecl;
441     IXpbBuilder_getLengthPtr = function(this: IXpbBuilder; status: IStatus): Cardinal; cdecl;
442     IXpbBuilder_getIntPtr = function(this: IXpbBuilder; status: IStatus): Integer; cdecl;
443     IXpbBuilder_getBigIntPtr = function(this: IXpbBuilder; status: IStatus): Int64; cdecl;
444     IXpbBuilder_getStringPtr = function(this: IXpbBuilder; status: IStatus): PAnsiChar; cdecl;
445     IXpbBuilder_getBytesPtr = function(this: IXpbBuilder; status: IStatus): BytePtr; cdecl;
446     IXpbBuilder_getBufferLengthPtr = function(this: IXpbBuilder; status: IStatus): Cardinal; cdecl;
447     IXpbBuilder_getBufferPtr = function(this: IXpbBuilder; status: IStatus): BytePtr; cdecl;
448     ITraceConnection_getKindPtr = function(this: ITraceConnection): Cardinal; cdecl;
449     ITraceConnection_getProcessIDPtr = function(this: ITraceConnection): Integer; cdecl;
450     ITraceConnection_getUserNamePtr = function(this: ITraceConnection): PAnsiChar; cdecl;
451     ITraceConnection_getRoleNamePtr = function(this: ITraceConnection): PAnsiChar; cdecl;
452     ITraceConnection_getCharSetPtr = function(this: ITraceConnection): PAnsiChar; cdecl;
453     ITraceConnection_getRemoteProtocolPtr = function(this: ITraceConnection): PAnsiChar; cdecl;
454     ITraceConnection_getRemoteAddressPtr = function(this: ITraceConnection): PAnsiChar; cdecl;
455     ITraceConnection_getRemoteProcessIDPtr = function(this: ITraceConnection): Integer; cdecl;
456     ITraceConnection_getRemoteProcessNamePtr = function(this: ITraceConnection): PAnsiChar; cdecl;
457     ITraceDatabaseConnection_getConnectionIDPtr = function(this: ITraceDatabaseConnection): Int64; cdecl;
458     ITraceDatabaseConnection_getDatabaseNamePtr = function(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
459     ITraceTransaction_getTransactionIDPtr = function(this: ITraceTransaction): Int64; cdecl;
460     ITraceTransaction_getReadOnlyPtr = function(this: ITraceTransaction): Boolean; cdecl;
461     ITraceTransaction_getWaitPtr = function(this: ITraceTransaction): Integer; cdecl;
462     ITraceTransaction_getIsolationPtr = function(this: ITraceTransaction): Cardinal; cdecl;
463     ITraceTransaction_getPerfPtr = function(this: ITraceTransaction): PerformanceInfoPtr; cdecl;
464     ITraceParams_getCountPtr = function(this: ITraceParams): Cardinal; cdecl;
465     ITraceParams_getParamPtr = function(this: ITraceParams; idx: Cardinal): dscPtr; cdecl;
466     ITraceStatement_getStmtIDPtr = function(this: ITraceStatement): Int64; cdecl;
467     ITraceStatement_getPerfPtr = function(this: ITraceStatement): PerformanceInfoPtr; cdecl;
468     ITraceSQLStatement_getTextPtr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
469     ITraceSQLStatement_getPlanPtr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
470     ITraceSQLStatement_getInputsPtr = function(this: ITraceSQLStatement): ITraceParams; cdecl;
471     ITraceSQLStatement_getTextUTF8Ptr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
472     ITraceSQLStatement_getExplainedPlanPtr = function(this: ITraceSQLStatement): PAnsiChar; cdecl;
473     ITraceBLRStatement_getDataPtr = function(this: ITraceBLRStatement): BytePtr; cdecl;
474     ITraceBLRStatement_getDataLengthPtr = function(this: ITraceBLRStatement): Cardinal; cdecl;
475     ITraceBLRStatement_getTextPtr = function(this: ITraceBLRStatement): PAnsiChar; cdecl;
476     ITraceDYNRequest_getDataPtr = function(this: ITraceDYNRequest): BytePtr; cdecl;
477     ITraceDYNRequest_getDataLengthPtr = function(this: ITraceDYNRequest): Cardinal; cdecl;
478     ITraceDYNRequest_getTextPtr = function(this: ITraceDYNRequest): PAnsiChar; cdecl;
479     ITraceContextVariable_getNameSpacePtr = function(this: ITraceContextVariable): PAnsiChar; cdecl;
480     ITraceContextVariable_getVarNamePtr = function(this: ITraceContextVariable): PAnsiChar; cdecl;
481     ITraceContextVariable_getVarValuePtr = function(this: ITraceContextVariable): PAnsiChar; cdecl;
482     ITraceProcedure_getProcNamePtr = function(this: ITraceProcedure): PAnsiChar; cdecl;
483     ITraceProcedure_getInputsPtr = function(this: ITraceProcedure): ITraceParams; cdecl;
484     ITraceProcedure_getPerfPtr = function(this: ITraceProcedure): PerformanceInfoPtr; cdecl;
485     ITraceFunction_getFuncNamePtr = function(this: ITraceFunction): PAnsiChar; cdecl;
486     ITraceFunction_getInputsPtr = function(this: ITraceFunction): ITraceParams; cdecl;
487     ITraceFunction_getResultPtr = function(this: ITraceFunction): ITraceParams; cdecl;
488     ITraceFunction_getPerfPtr = function(this: ITraceFunction): PerformanceInfoPtr; cdecl;
489     ITraceTrigger_getTriggerNamePtr = function(this: ITraceTrigger): PAnsiChar; cdecl;
490     ITraceTrigger_getRelationNamePtr = function(this: ITraceTrigger): PAnsiChar; cdecl;
491     ITraceTrigger_getActionPtr = function(this: ITraceTrigger): Integer; cdecl;
492     ITraceTrigger_getWhichPtr = function(this: ITraceTrigger): Integer; cdecl;
493     ITraceTrigger_getPerfPtr = function(this: ITraceTrigger): PerformanceInfoPtr; cdecl;
494     ITraceServiceConnection_getServiceIDPtr = function(this: ITraceServiceConnection): Pointer; cdecl;
495     ITraceServiceConnection_getServiceMgrPtr = function(this: ITraceServiceConnection): PAnsiChar; cdecl;
496     ITraceServiceConnection_getServiceNamePtr = function(this: ITraceServiceConnection): PAnsiChar; cdecl;
497     ITraceStatusVector_hasErrorPtr = function(this: ITraceStatusVector): Boolean; cdecl;
498     ITraceStatusVector_hasWarningPtr = function(this: ITraceStatusVector): Boolean; cdecl;
499     ITraceStatusVector_getStatusPtr = function(this: ITraceStatusVector): IStatus; cdecl;
500     ITraceStatusVector_getTextPtr = function(this: ITraceStatusVector): PAnsiChar; cdecl;
501     ITraceSweepInfo_getOITPtr = function(this: ITraceSweepInfo): Int64; cdecl;
502     ITraceSweepInfo_getOSTPtr = function(this: ITraceSweepInfo): Int64; cdecl;
503     ITraceSweepInfo_getOATPtr = function(this: ITraceSweepInfo): Int64; cdecl;
504     ITraceSweepInfo_getNextPtr = function(this: ITraceSweepInfo): Int64; cdecl;
505     ITraceSweepInfo_getPerfPtr = function(this: ITraceSweepInfo): PerformanceInfoPtr; cdecl;
506     ITraceLogWriter_writePtr = function(this: ITraceLogWriter; buf: Pointer; size: Cardinal): Cardinal; cdecl;
507     ITraceInitInfo_getConfigTextPtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
508     ITraceInitInfo_getTraceSessionIDPtr = function(this: ITraceInitInfo): Integer; cdecl;
509     ITraceInitInfo_getTraceSessionNamePtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
510     ITraceInitInfo_getFirebirdRootDirectoryPtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
511     ITraceInitInfo_getDatabaseNamePtr = function(this: ITraceInitInfo): PAnsiChar; cdecl;
512     ITraceInitInfo_getConnectionPtr = function(this: ITraceInitInfo): ITraceDatabaseConnection; cdecl;
513     ITraceInitInfo_getLogWriterPtr = function(this: ITraceInitInfo): ITraceLogWriter; cdecl;
514     ITracePlugin_trace_get_errorPtr = function(this: ITracePlugin): PAnsiChar; cdecl;
515     ITracePlugin_trace_attachPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean; cdecl;
516     ITracePlugin_trace_detachPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean; cdecl;
517     ITracePlugin_trace_transaction_startPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean; cdecl;
518     ITracePlugin_trace_transaction_endPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean; cdecl;
519     ITracePlugin_trace_proc_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean; cdecl;
520     ITracePlugin_trace_trigger_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean; cdecl;
521     ITracePlugin_trace_set_contextPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean; cdecl;
522     ITracePlugin_trace_dsql_preparePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
523     ITracePlugin_trace_dsql_freePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean; cdecl;
524     ITracePlugin_trace_dsql_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean; cdecl;
525     ITracePlugin_trace_blr_compilePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
526     ITracePlugin_trace_blr_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean; cdecl;
527     ITracePlugin_trace_dyn_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
528     ITracePlugin_trace_service_attachPtr = function(this: ITracePlugin; service: ITraceServiceConnection; att_result: Cardinal): Boolean; cdecl;
529     ITracePlugin_trace_service_startPtr = function(this: ITracePlugin; service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean; cdecl;
530     ITracePlugin_trace_service_queryPtr = function(this: ITracePlugin; service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean; cdecl;
531     ITracePlugin_trace_service_detachPtr = function(this: ITracePlugin; service: ITraceServiceConnection; detach_result: Cardinal): Boolean; cdecl;
532     ITracePlugin_trace_event_errorPtr = function(this: ITracePlugin; connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean; cdecl;
533     ITracePlugin_trace_event_sweepPtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean; cdecl;
534     ITracePlugin_trace_func_executePtr = function(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean; cdecl;
535     ITraceFactory_trace_needsPtr = function(this: ITraceFactory): QWord; cdecl;
536     ITraceFactory_trace_createPtr = function(this: ITraceFactory; status: IStatus; init_info: ITraceInitInfo): ITracePlugin; cdecl;
537     IUdrFunctionFactory_setupPtr = procedure(this: IUdrFunctionFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); cdecl;
538     IUdrFunctionFactory_newItemPtr = function(this: IUdrFunctionFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction; cdecl;
539     IUdrProcedureFactory_setupPtr = procedure(this: IUdrProcedureFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); cdecl;
540     IUdrProcedureFactory_newItemPtr = function(this: IUdrProcedureFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure; cdecl;
541     IUdrTriggerFactory_setupPtr = procedure(this: IUdrTriggerFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder); cdecl;
542     IUdrTriggerFactory_newItemPtr = function(this: IUdrTriggerFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger; cdecl;
543     IUdrPlugin_getMasterPtr = function(this: IUdrPlugin): IMaster; cdecl;
544     IUdrPlugin_registerFunctionPtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory); cdecl;
545     IUdrPlugin_registerProcedurePtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory); cdecl;
546     IUdrPlugin_registerTriggerPtr = procedure(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory); cdecl;
547    
548     VersionedVTable = class
549     version: NativeInt;
550     end;
551    
552     IVersioned = class
553     vTable: VersionedVTable;
554    
555     const VERSION = 0;
556    
557     end;
558    
559     IVersionedImpl = class(IVersioned)
560     constructor create;
561    
562     end;
563    
564     ReferenceCountedVTable = class(VersionedVTable)
565     addRef: IReferenceCounted_addRefPtr;
566     release: IReferenceCounted_releasePtr;
567     end;
568    
569     IReferenceCounted = class(IVersioned)
570     const VERSION = 2;
571    
572     procedure addRef();
573     function release(): Integer;
574     end;
575    
576     IReferenceCountedImpl = class(IReferenceCounted)
577     constructor create;
578    
579     procedure addRef(); virtual; abstract;
580     function release(): Integer; virtual; abstract;
581     end;
582    
583     DisposableVTable = class(VersionedVTable)
584     dispose: IDisposable_disposePtr;
585     end;
586    
587     IDisposable = class(IVersioned)
588     const VERSION = 1;
589    
590     procedure dispose();
591     end;
592    
593     IDisposableImpl = class(IDisposable)
594     constructor create;
595    
596     procedure dispose(); virtual; abstract;
597     end;
598    
599     StatusVTable = class(DisposableVTable)
600     init: IStatus_initPtr;
601     getState: IStatus_getStatePtr;
602     setErrors2: IStatus_setErrors2Ptr;
603     setWarnings2: IStatus_setWarnings2Ptr;
604     setErrors: IStatus_setErrorsPtr;
605     setWarnings: IStatus_setWarningsPtr;
606     getErrors: IStatus_getErrorsPtr;
607     getWarnings: IStatus_getWarningsPtr;
608     clone: IStatus_clonePtr;
609     end;
610    
611     IStatus = class(IDisposable)
612     const VERSION = 10;
613     const STATE_WARNINGS = Cardinal(1);
614     const STATE_ERRORS = Cardinal(2);
615     const RESULT_ERROR = Integer(-1);
616     const RESULT_OK = Integer(0);
617     const RESULT_NO_DATA = Integer(1);
618     const RESULT_SEGMENT = Integer(2);
619    
620     procedure init();
621     function getState(): Cardinal;
622     procedure setErrors2(length: Cardinal; value: NativeIntPtr);
623     procedure setWarnings2(length: Cardinal; value: NativeIntPtr);
624     procedure setErrors(value: NativeIntPtr);
625     procedure setWarnings(value: NativeIntPtr);
626     function getErrors(): NativeIntPtr;
627     function getWarnings(): NativeIntPtr;
628     function clone(): IStatus;
629     end;
630    
631     IStatusImpl = class(IStatus)
632     constructor create;
633    
634     procedure dispose(); virtual; abstract;
635     procedure init(); virtual; abstract;
636     function getState(): Cardinal; virtual; abstract;
637     procedure setErrors2(length: Cardinal; value: NativeIntPtr); virtual; abstract;
638     procedure setWarnings2(length: Cardinal; value: NativeIntPtr); virtual; abstract;
639     procedure setErrors(value: NativeIntPtr); virtual; abstract;
640     procedure setWarnings(value: NativeIntPtr); virtual; abstract;
641     function getErrors(): NativeIntPtr; virtual; abstract;
642     function getWarnings(): NativeIntPtr; virtual; abstract;
643     function clone(): IStatus; virtual; abstract;
644     end;
645    
646     MasterVTable = class(VersionedVTable)
647     getStatus: IMaster_getStatusPtr;
648     getDispatcher: IMaster_getDispatcherPtr;
649     getPluginManager: IMaster_getPluginManagerPtr;
650     getTimerControl: IMaster_getTimerControlPtr;
651     getDtc: IMaster_getDtcPtr;
652     registerAttachment: IMaster_registerAttachmentPtr;
653     registerTransaction: IMaster_registerTransactionPtr;
654     getMetadataBuilder: IMaster_getMetadataBuilderPtr;
655     serverMode: IMaster_serverModePtr;
656     getUtilInterface: IMaster_getUtilInterfacePtr;
657     getConfigManager: IMaster_getConfigManagerPtr;
658     getProcessExiting: IMaster_getProcessExitingPtr;
659     end;
660    
661     IMaster = class(IVersioned)
662     const VERSION = 12;
663    
664     function getStatus(): IStatus;
665     function getDispatcher(): IProvider;
666     function getPluginManager(): IPluginManager;
667     function getTimerControl(): ITimerControl;
668     function getDtc(): IDtc;
669     function registerAttachment(provider: IProvider; attachment: IAttachment): IAttachment;
670     function registerTransaction(attachment: IAttachment; transaction: ITransaction): ITransaction;
671     function getMetadataBuilder(status: IStatus; fieldCount: Cardinal): IMetadataBuilder;
672     function serverMode(mode: Integer): Integer;
673     function getUtilInterface(): IUtil;
674     function getConfigManager(): IConfigManager;
675     function getProcessExiting(): Boolean;
676     end;
677    
678     IMasterImpl = class(IMaster)
679     constructor create;
680    
681     function getStatus(): IStatus; virtual; abstract;
682     function getDispatcher(): IProvider; virtual; abstract;
683     function getPluginManager(): IPluginManager; virtual; abstract;
684     function getTimerControl(): ITimerControl; virtual; abstract;
685     function getDtc(): IDtc; virtual; abstract;
686     function registerAttachment(provider: IProvider; attachment: IAttachment): IAttachment; virtual; abstract;
687     function registerTransaction(attachment: IAttachment; transaction: ITransaction): ITransaction; virtual; abstract;
688     function getMetadataBuilder(status: IStatus; fieldCount: Cardinal): IMetadataBuilder; virtual; abstract;
689     function serverMode(mode: Integer): Integer; virtual; abstract;
690     function getUtilInterface(): IUtil; virtual; abstract;
691     function getConfigManager(): IConfigManager; virtual; abstract;
692     function getProcessExiting(): Boolean; virtual; abstract;
693     end;
694    
695     PluginBaseVTable = class(ReferenceCountedVTable)
696     setOwner: IPluginBase_setOwnerPtr;
697     getOwner: IPluginBase_getOwnerPtr;
698     end;
699    
700     IPluginBase = class(IReferenceCounted)
701     const VERSION = 4;
702    
703     procedure setOwner(r: IReferenceCounted);
704     function getOwner(): IReferenceCounted;
705     end;
706    
707     IPluginBaseImpl = class(IPluginBase)
708     constructor create;
709    
710     procedure addRef(); virtual; abstract;
711     function release(): Integer; virtual; abstract;
712     procedure setOwner(r: IReferenceCounted); virtual; abstract;
713     function getOwner(): IReferenceCounted; virtual; abstract;
714     end;
715    
716     PluginSetVTable = class(ReferenceCountedVTable)
717     getName: IPluginSet_getNamePtr;
718     getModuleName: IPluginSet_getModuleNamePtr;
719     getPlugin: IPluginSet_getPluginPtr;
720     next: IPluginSet_nextPtr;
721     set_: IPluginSet_set_Ptr;
722     end;
723    
724     IPluginSet = class(IReferenceCounted)
725     const VERSION = 7;
726    
727     function getName(): PAnsiChar;
728     function getModuleName(): PAnsiChar;
729     function getPlugin(status: IStatus): IPluginBase;
730     procedure next(status: IStatus);
731     procedure set_(status: IStatus; s: PAnsiChar);
732     end;
733    
734     IPluginSetImpl = class(IPluginSet)
735     constructor create;
736    
737     procedure addRef(); virtual; abstract;
738     function release(): Integer; virtual; abstract;
739     function getName(): PAnsiChar; virtual; abstract;
740     function getModuleName(): PAnsiChar; virtual; abstract;
741     function getPlugin(status: IStatus): IPluginBase; virtual; abstract;
742     procedure next(status: IStatus); virtual; abstract;
743     procedure set_(status: IStatus; s: PAnsiChar); virtual; abstract;
744     end;
745    
746     ConfigEntryVTable = class(ReferenceCountedVTable)
747     getName: IConfigEntry_getNamePtr;
748     getValue: IConfigEntry_getValuePtr;
749     getIntValue: IConfigEntry_getIntValuePtr;
750     getBoolValue: IConfigEntry_getBoolValuePtr;
751     getSubConfig: IConfigEntry_getSubConfigPtr;
752     end;
753    
754     IConfigEntry = class(IReferenceCounted)
755     const VERSION = 7;
756    
757     function getName(): PAnsiChar;
758     function getValue(): PAnsiChar;
759     function getIntValue(): Int64;
760     function getBoolValue(): Boolean;
761     function getSubConfig(status: IStatus): IConfig;
762     end;
763    
764     IConfigEntryImpl = class(IConfigEntry)
765     constructor create;
766    
767     procedure addRef(); virtual; abstract;
768     function release(): Integer; virtual; abstract;
769     function getName(): PAnsiChar; virtual; abstract;
770     function getValue(): PAnsiChar; virtual; abstract;
771     function getIntValue(): Int64; virtual; abstract;
772     function getBoolValue(): Boolean; virtual; abstract;
773     function getSubConfig(status: IStatus): IConfig; virtual; abstract;
774     end;
775    
776     ConfigVTable = class(ReferenceCountedVTable)
777     find: IConfig_findPtr;
778     findValue: IConfig_findValuePtr;
779     findPos: IConfig_findPosPtr;
780     end;
781    
782     IConfig = class(IReferenceCounted)
783     const VERSION = 5;
784    
785     function find(status: IStatus; name: PAnsiChar): IConfigEntry;
786     function findValue(status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry;
787     function findPos(status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry;
788     end;
789    
790     IConfigImpl = class(IConfig)
791     constructor create;
792    
793     procedure addRef(); virtual; abstract;
794     function release(): Integer; virtual; abstract;
795     function find(status: IStatus; name: PAnsiChar): IConfigEntry; virtual; abstract;
796     function findValue(status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry; virtual; abstract;
797     function findPos(status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry; virtual; abstract;
798     end;
799    
800     FirebirdConfVTable = class(ReferenceCountedVTable)
801     getKey: IFirebirdConf_getKeyPtr;
802     asInteger: IFirebirdConf_asIntegerPtr;
803     asString: IFirebirdConf_asStringPtr;
804     asBoolean: IFirebirdConf_asBooleanPtr;
805     end;
806    
807     IFirebirdConf = class(IReferenceCounted)
808     const VERSION = 6;
809    
810     function getKey(name: PAnsiChar): Cardinal;
811     function asInteger(key: Cardinal): Int64;
812     function asString(key: Cardinal): PAnsiChar;
813     function asBoolean(key: Cardinal): Boolean;
814     end;
815    
816     IFirebirdConfImpl = class(IFirebirdConf)
817     constructor create;
818    
819     procedure addRef(); virtual; abstract;
820     function release(): Integer; virtual; abstract;
821     function getKey(name: PAnsiChar): Cardinal; virtual; abstract;
822     function asInteger(key: Cardinal): Int64; virtual; abstract;
823     function asString(key: Cardinal): PAnsiChar; virtual; abstract;
824     function asBoolean(key: Cardinal): Boolean; virtual; abstract;
825     end;
826    
827     PluginConfigVTable = class(ReferenceCountedVTable)
828     getConfigFileName: IPluginConfig_getConfigFileNamePtr;
829     getDefaultConfig: IPluginConfig_getDefaultConfigPtr;
830     getFirebirdConf: IPluginConfig_getFirebirdConfPtr;
831     setReleaseDelay: IPluginConfig_setReleaseDelayPtr;
832     end;
833    
834     IPluginConfig = class(IReferenceCounted)
835     const VERSION = 6;
836    
837     function getConfigFileName(): PAnsiChar;
838     function getDefaultConfig(status: IStatus): IConfig;
839     function getFirebirdConf(status: IStatus): IFirebirdConf;
840     procedure setReleaseDelay(status: IStatus; microSeconds: QWord);
841     end;
842    
843     IPluginConfigImpl = class(IPluginConfig)
844     constructor create;
845    
846     procedure addRef(); virtual; abstract;
847     function release(): Integer; virtual; abstract;
848     function getConfigFileName(): PAnsiChar; virtual; abstract;
849     function getDefaultConfig(status: IStatus): IConfig; virtual; abstract;
850     function getFirebirdConf(status: IStatus): IFirebirdConf; virtual; abstract;
851     procedure setReleaseDelay(status: IStatus; microSeconds: QWord); virtual; abstract;
852     end;
853    
854     PluginFactoryVTable = class(VersionedVTable)
855     createPlugin: IPluginFactory_createPluginPtr;
856     end;
857    
858     IPluginFactory = class(IVersioned)
859     const VERSION = 1;
860    
861     function createPlugin(status: IStatus; factoryParameter: IPluginConfig): IPluginBase;
862     end;
863    
864     IPluginFactoryImpl = class(IPluginFactory)
865     constructor create;
866    
867     function createPlugin(status: IStatus; factoryParameter: IPluginConfig): IPluginBase; virtual; abstract;
868     end;
869    
870     PluginModuleVTable = class(VersionedVTable)
871     doClean: IPluginModule_doCleanPtr;
872     end;
873    
874     IPluginModule = class(IVersioned)
875     const VERSION = 1;
876    
877     procedure doClean();
878     end;
879    
880     IPluginModuleImpl = class(IPluginModule)
881     constructor create;
882    
883     procedure doClean(); virtual; abstract;
884     end;
885    
886     PluginManagerVTable = class(VersionedVTable)
887     registerPluginFactory: IPluginManager_registerPluginFactoryPtr;
888     registerModule: IPluginManager_registerModulePtr;
889     unregisterModule: IPluginManager_unregisterModulePtr;
890     getPlugins: IPluginManager_getPluginsPtr;
891     getConfig: IPluginManager_getConfigPtr;
892     releasePlugin: IPluginManager_releasePluginPtr;
893     end;
894    
895     IPluginManager = class(IVersioned)
896     const VERSION = 6;
897     const TYPE_PROVIDER = Cardinal(1);
898     const TYPE_FIRST_NON_LIB = Cardinal(2);
899     const TYPE_AUTH_SERVER = Cardinal(3);
900     const TYPE_AUTH_CLIENT = Cardinal(4);
901     const TYPE_AUTH_USER_MANAGEMENT = Cardinal(5);
902     const TYPE_EXTERNAL_ENGINE = Cardinal(6);
903     const TYPE_TRACE = Cardinal(7);
904     const TYPE_WIRE_CRYPT = Cardinal(8);
905     const TYPE_DB_CRYPT = Cardinal(9);
906     const TYPE_KEY_HOLDER = Cardinal(10);
907     const TYPE_COUNT = Cardinal(11);
908    
909     procedure registerPluginFactory(pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory);
910     procedure registerModule(cleanup: IPluginModule);
911     procedure unregisterModule(cleanup: IPluginModule);
912     function getPlugins(status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet;
913     function getConfig(status: IStatus; filename: PAnsiChar): IConfig;
914     procedure releasePlugin(plugin: IPluginBase);
915     end;
916    
917     IPluginManagerImpl = class(IPluginManager)
918     constructor create;
919    
920     procedure registerPluginFactory(pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory); virtual; abstract;
921     procedure registerModule(cleanup: IPluginModule); virtual; abstract;
922     procedure unregisterModule(cleanup: IPluginModule); virtual; abstract;
923     function getPlugins(status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet; virtual; abstract;
924     function getConfig(status: IStatus; filename: PAnsiChar): IConfig; virtual; abstract;
925     procedure releasePlugin(plugin: IPluginBase); virtual; abstract;
926     end;
927    
928     CryptKeyVTable = class(VersionedVTable)
929     setSymmetric: ICryptKey_setSymmetricPtr;
930     setAsymmetric: ICryptKey_setAsymmetricPtr;
931     getEncryptKey: ICryptKey_getEncryptKeyPtr;
932     getDecryptKey: ICryptKey_getDecryptKeyPtr;
933     end;
934    
935     ICryptKey = class(IVersioned)
936     const VERSION = 4;
937    
938     procedure setSymmetric(status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer);
939     procedure setAsymmetric(status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer);
940     function getEncryptKey(length: CardinalPtr): Pointer;
941     function getDecryptKey(length: CardinalPtr): Pointer;
942     end;
943    
944     ICryptKeyImpl = class(ICryptKey)
945     constructor create;
946    
947     procedure setSymmetric(status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer); virtual; abstract;
948     procedure setAsymmetric(status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer); virtual; abstract;
949     function getEncryptKey(length: CardinalPtr): Pointer; virtual; abstract;
950     function getDecryptKey(length: CardinalPtr): Pointer; virtual; abstract;
951     end;
952    
953     ConfigManagerVTable = class(VersionedVTable)
954     getDirectory: IConfigManager_getDirectoryPtr;
955     getFirebirdConf: IConfigManager_getFirebirdConfPtr;
956     getDatabaseConf: IConfigManager_getDatabaseConfPtr;
957     getPluginConfig: IConfigManager_getPluginConfigPtr;
958     getInstallDirectory: IConfigManager_getInstallDirectoryPtr;
959     getRootDirectory: IConfigManager_getRootDirectoryPtr;
960     end;
961    
962     IConfigManager = class(IVersioned)
963     const VERSION = 6;
964     const DIR_BIN = Cardinal(0);
965     const DIR_SBIN = Cardinal(1);
966     const DIR_CONF = Cardinal(2);
967     const DIR_LIB = Cardinal(3);
968     const DIR_INC = Cardinal(4);
969     const DIR_DOC = Cardinal(5);
970     const DIR_UDF = Cardinal(6);
971     const DIR_SAMPLE = Cardinal(7);
972     const DIR_SAMPLEDB = Cardinal(8);
973     const DIR_HELP = Cardinal(9);
974     const DIR_INTL = Cardinal(10);
975     const DIR_MISC = Cardinal(11);
976     const DIR_SECDB = Cardinal(12);
977     const DIR_MSG = Cardinal(13);
978     const DIR_LOG = Cardinal(14);
979     const DIR_GUARD = Cardinal(15);
980     const DIR_PLUGINS = Cardinal(16);
981     const DIR_COUNT = Cardinal(17);
982    
983     function getDirectory(code: Cardinal): PAnsiChar;
984     function getFirebirdConf(): IFirebirdConf;
985     function getDatabaseConf(dbName: PAnsiChar): IFirebirdConf;
986     function getPluginConfig(configuredPlugin: PAnsiChar): IConfig;
987     function getInstallDirectory(): PAnsiChar;
988     function getRootDirectory(): PAnsiChar;
989     end;
990    
991     IConfigManagerImpl = class(IConfigManager)
992     constructor create;
993    
994     function getDirectory(code: Cardinal): PAnsiChar; virtual; abstract;
995     function getFirebirdConf(): IFirebirdConf; virtual; abstract;
996     function getDatabaseConf(dbName: PAnsiChar): IFirebirdConf; virtual; abstract;
997     function getPluginConfig(configuredPlugin: PAnsiChar): IConfig; virtual; abstract;
998     function getInstallDirectory(): PAnsiChar; virtual; abstract;
999     function getRootDirectory(): PAnsiChar; virtual; abstract;
1000     end;
1001    
1002     EventCallbackVTable = class(ReferenceCountedVTable)
1003     eventCallbackFunction: IEventCallback_eventCallbackFunctionPtr;
1004     end;
1005    
1006     IEventCallback = class(IReferenceCounted)
1007     const VERSION = 3;
1008    
1009     procedure eventCallbackFunction(length: Cardinal; events: BytePtr);
1010     end;
1011    
1012     IEventCallbackImpl = class(IEventCallback)
1013     constructor create;
1014    
1015     procedure addRef(); virtual; abstract;
1016     function release(): Integer; virtual; abstract;
1017     procedure eventCallbackFunction(length: Cardinal; events: BytePtr); virtual; abstract;
1018     end;
1019    
1020     BlobVTable = class(ReferenceCountedVTable)
1021     getInfo: IBlob_getInfoPtr;
1022     getSegment: IBlob_getSegmentPtr;
1023     putSegment: IBlob_putSegmentPtr;
1024     cancel: IBlob_cancelPtr;
1025     close: IBlob_closePtr;
1026     seek: IBlob_seekPtr;
1027     end;
1028    
1029     IBlob = class(IReferenceCounted)
1030     const VERSION = 8;
1031    
1032     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1033     function getSegment(status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer;
1034     procedure putSegment(status: IStatus; length: Cardinal; buffer: Pointer);
1035     procedure cancel(status: IStatus);
1036     procedure close(status: IStatus);
1037     function seek(status: IStatus; mode: Integer; offset: Integer): Integer;
1038     end;
1039    
1040     IBlobImpl = class(IBlob)
1041     constructor create;
1042    
1043     procedure addRef(); virtual; abstract;
1044     function release(): Integer; virtual; abstract;
1045     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1046     function getSegment(status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer; virtual; abstract;
1047     procedure putSegment(status: IStatus; length: Cardinal; buffer: Pointer); virtual; abstract;
1048     procedure cancel(status: IStatus); virtual; abstract;
1049     procedure close(status: IStatus); virtual; abstract;
1050     function seek(status: IStatus; mode: Integer; offset: Integer): Integer; virtual; abstract;
1051     end;
1052    
1053     TransactionVTable = class(ReferenceCountedVTable)
1054     getInfo: ITransaction_getInfoPtr;
1055     prepare: ITransaction_preparePtr;
1056     commit: ITransaction_commitPtr;
1057     commitRetaining: ITransaction_commitRetainingPtr;
1058     rollback: ITransaction_rollbackPtr;
1059     rollbackRetaining: ITransaction_rollbackRetainingPtr;
1060     disconnect: ITransaction_disconnectPtr;
1061     join: ITransaction_joinPtr;
1062     validate: ITransaction_validatePtr;
1063     enterDtc: ITransaction_enterDtcPtr;
1064     end;
1065    
1066     ITransaction = class(IReferenceCounted)
1067     const VERSION = 12;
1068    
1069     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1070     procedure prepare(status: IStatus; msgLength: Cardinal; message: BytePtr);
1071     procedure commit(status: IStatus);
1072     procedure commitRetaining(status: IStatus);
1073     procedure rollback(status: IStatus);
1074     procedure rollbackRetaining(status: IStatus);
1075     procedure disconnect(status: IStatus);
1076     function join(status: IStatus; transaction: ITransaction): ITransaction;
1077     function validate(status: IStatus; attachment: IAttachment): ITransaction;
1078     function enterDtc(status: IStatus): ITransaction;
1079     end;
1080    
1081     ITransactionImpl = class(ITransaction)
1082     constructor create;
1083    
1084     procedure addRef(); virtual; abstract;
1085     function release(): Integer; virtual; abstract;
1086     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1087     procedure prepare(status: IStatus; msgLength: Cardinal; message: BytePtr); virtual; abstract;
1088     procedure commit(status: IStatus); virtual; abstract;
1089     procedure commitRetaining(status: IStatus); virtual; abstract;
1090     procedure rollback(status: IStatus); virtual; abstract;
1091     procedure rollbackRetaining(status: IStatus); virtual; abstract;
1092     procedure disconnect(status: IStatus); virtual; abstract;
1093     function join(status: IStatus; transaction: ITransaction): ITransaction; virtual; abstract;
1094     function validate(status: IStatus; attachment: IAttachment): ITransaction; virtual; abstract;
1095     function enterDtc(status: IStatus): ITransaction; virtual; abstract;
1096     end;
1097    
1098     MessageMetadataVTable = class(ReferenceCountedVTable)
1099     getCount: IMessageMetadata_getCountPtr;
1100     getField: IMessageMetadata_getFieldPtr;
1101     getRelation: IMessageMetadata_getRelationPtr;
1102     getOwner: IMessageMetadata_getOwnerPtr;
1103     getAlias: IMessageMetadata_getAliasPtr;
1104     getType: IMessageMetadata_getTypePtr;
1105     isNullable: IMessageMetadata_isNullablePtr;
1106     getSubType: IMessageMetadata_getSubTypePtr;
1107     getLength: IMessageMetadata_getLengthPtr;
1108     getScale: IMessageMetadata_getScalePtr;
1109     getCharSet: IMessageMetadata_getCharSetPtr;
1110     getOffset: IMessageMetadata_getOffsetPtr;
1111     getNullOffset: IMessageMetadata_getNullOffsetPtr;
1112     getBuilder: IMessageMetadata_getBuilderPtr;
1113     getMessageLength: IMessageMetadata_getMessageLengthPtr;
1114     end;
1115    
1116     IMessageMetadata = class(IReferenceCounted)
1117     const VERSION = 17;
1118    
1119     function getCount(status: IStatus): Cardinal;
1120     function getField(status: IStatus; index: Cardinal): PAnsiChar;
1121     function getRelation(status: IStatus; index: Cardinal): PAnsiChar;
1122     function getOwner(status: IStatus; index: Cardinal): PAnsiChar;
1123     function getAlias(status: IStatus; index: Cardinal): PAnsiChar;
1124     function getType(status: IStatus; index: Cardinal): Cardinal;
1125     function isNullable(status: IStatus; index: Cardinal): Boolean;
1126     function getSubType(status: IStatus; index: Cardinal): Integer;
1127     function getLength(status: IStatus; index: Cardinal): Cardinal;
1128     function getScale(status: IStatus; index: Cardinal): Integer;
1129     function getCharSet(status: IStatus; index: Cardinal): Cardinal;
1130     function getOffset(status: IStatus; index: Cardinal): Cardinal;
1131     function getNullOffset(status: IStatus; index: Cardinal): Cardinal;
1132     function getBuilder(status: IStatus): IMetadataBuilder;
1133     function getMessageLength(status: IStatus): Cardinal;
1134     end;
1135    
1136     IMessageMetadataImpl = class(IMessageMetadata)
1137     constructor create;
1138    
1139     procedure addRef(); virtual; abstract;
1140     function release(): Integer; virtual; abstract;
1141     function getCount(status: IStatus): Cardinal; virtual; abstract;
1142     function getField(status: IStatus; index: Cardinal): PAnsiChar; virtual; abstract;
1143     function getRelation(status: IStatus; index: Cardinal): PAnsiChar; virtual; abstract;
1144     function getOwner(status: IStatus; index: Cardinal): PAnsiChar; virtual; abstract;
1145     function getAlias(status: IStatus; index: Cardinal): PAnsiChar; virtual; abstract;
1146     function getType(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1147     function isNullable(status: IStatus; index: Cardinal): Boolean; virtual; abstract;
1148     function getSubType(status: IStatus; index: Cardinal): Integer; virtual; abstract;
1149     function getLength(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1150     function getScale(status: IStatus; index: Cardinal): Integer; virtual; abstract;
1151     function getCharSet(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1152     function getOffset(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1153     function getNullOffset(status: IStatus; index: Cardinal): Cardinal; virtual; abstract;
1154     function getBuilder(status: IStatus): IMetadataBuilder; virtual; abstract;
1155     function getMessageLength(status: IStatus): Cardinal; virtual; abstract;
1156     end;
1157    
1158     MetadataBuilderVTable = class(ReferenceCountedVTable)
1159     setType: IMetadataBuilder_setTypePtr;
1160     setSubType: IMetadataBuilder_setSubTypePtr;
1161     setLength: IMetadataBuilder_setLengthPtr;
1162     setCharSet: IMetadataBuilder_setCharSetPtr;
1163     setScale: IMetadataBuilder_setScalePtr;
1164     truncate: IMetadataBuilder_truncatePtr;
1165     moveNameToIndex: IMetadataBuilder_moveNameToIndexPtr;
1166     remove: IMetadataBuilder_removePtr;
1167     addField: IMetadataBuilder_addFieldPtr;
1168     getMetadata: IMetadataBuilder_getMetadataPtr;
1169     end;
1170    
1171     IMetadataBuilder = class(IReferenceCounted)
1172     const VERSION = 12;
1173    
1174     procedure setType(status: IStatus; index: Cardinal; type_: Cardinal);
1175     procedure setSubType(status: IStatus; index: Cardinal; subType: Integer);
1176     procedure setLength(status: IStatus; index: Cardinal; length: Cardinal);
1177     procedure setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal);
1178     procedure setScale(status: IStatus; index: Cardinal; scale: integer);
1179     procedure truncate(status: IStatus; count: Cardinal);
1180     procedure moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal);
1181     procedure remove(status: IStatus; index: Cardinal);
1182     function addField(status: IStatus): Cardinal;
1183     function getMetadata(status: IStatus): IMessageMetadata;
1184     end;
1185    
1186     IMetadataBuilderImpl = class(IMetadataBuilder)
1187     constructor create;
1188    
1189     procedure addRef(); virtual; abstract;
1190     function release(): Integer; virtual; abstract;
1191     procedure setType(status: IStatus; index: Cardinal; type_: Cardinal); virtual; abstract;
1192     procedure setSubType(status: IStatus; index: Cardinal; subType: Integer); virtual; abstract;
1193     procedure setLength(status: IStatus; index: Cardinal; length: Cardinal); virtual; abstract;
1194     procedure setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal); virtual; abstract;
1195     procedure setScale(status: IStatus; index: Cardinal; scale: integer); virtual; abstract;
1196     procedure truncate(status: IStatus; count: Cardinal); virtual; abstract;
1197     procedure moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal); virtual; abstract;
1198     procedure remove(status: IStatus; index: Cardinal); virtual; abstract;
1199     function addField(status: IStatus): Cardinal; virtual; abstract;
1200     function getMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1201     end;
1202    
1203     ResultSetVTable = class(ReferenceCountedVTable)
1204     fetchNext: IResultSet_fetchNextPtr;
1205     fetchPrior: IResultSet_fetchPriorPtr;
1206     fetchFirst: IResultSet_fetchFirstPtr;
1207     fetchLast: IResultSet_fetchLastPtr;
1208     fetchAbsolute: IResultSet_fetchAbsolutePtr;
1209     fetchRelative: IResultSet_fetchRelativePtr;
1210     isEof: IResultSet_isEofPtr;
1211     isBof: IResultSet_isBofPtr;
1212     getMetadata: IResultSet_getMetadataPtr;
1213     close: IResultSet_closePtr;
1214     setDelayedOutputFormat: IResultSet_setDelayedOutputFormatPtr;
1215     end;
1216    
1217     IResultSet = class(IReferenceCounted)
1218     const VERSION = 13;
1219    
1220     function fetchNext(status: IStatus; message: Pointer): Integer;
1221     function fetchPrior(status: IStatus; message: Pointer): Integer;
1222     function fetchFirst(status: IStatus; message: Pointer): Integer;
1223     function fetchLast(status: IStatus; message: Pointer): Integer;
1224     function fetchAbsolute(status: IStatus; position: Integer; message: Pointer): Integer;
1225     function fetchRelative(status: IStatus; offset: Integer; message: Pointer): Integer;
1226     function isEof(status: IStatus): Boolean;
1227     function isBof(status: IStatus): Boolean;
1228     function getMetadata(status: IStatus): IMessageMetadata;
1229     procedure close(status: IStatus);
1230     procedure setDelayedOutputFormat(status: IStatus; format: IMessageMetadata);
1231     end;
1232    
1233     IResultSetImpl = class(IResultSet)
1234     constructor create;
1235    
1236     procedure addRef(); virtual; abstract;
1237     function release(): Integer; virtual; abstract;
1238     function fetchNext(status: IStatus; message: Pointer): Integer; virtual; abstract;
1239     function fetchPrior(status: IStatus; message: Pointer): Integer; virtual; abstract;
1240     function fetchFirst(status: IStatus; message: Pointer): Integer; virtual; abstract;
1241     function fetchLast(status: IStatus; message: Pointer): Integer; virtual; abstract;
1242     function fetchAbsolute(status: IStatus; position: Integer; message: Pointer): Integer; virtual; abstract;
1243     function fetchRelative(status: IStatus; offset: Integer; message: Pointer): Integer; virtual; abstract;
1244     function isEof(status: IStatus): Boolean; virtual; abstract;
1245     function isBof(status: IStatus): Boolean; virtual; abstract;
1246     function getMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1247     procedure close(status: IStatus); virtual; abstract;
1248     procedure setDelayedOutputFormat(status: IStatus; format: IMessageMetadata); virtual; abstract;
1249     end;
1250    
1251     StatementVTable = class(ReferenceCountedVTable)
1252     getInfo: IStatement_getInfoPtr;
1253     getType: IStatement_getTypePtr;
1254     getPlan: IStatement_getPlanPtr;
1255     getAffectedRecords: IStatement_getAffectedRecordsPtr;
1256     getInputMetadata: IStatement_getInputMetadataPtr;
1257     getOutputMetadata: IStatement_getOutputMetadataPtr;
1258     execute: IStatement_executePtr;
1259     openCursor: IStatement_openCursorPtr;
1260     setCursorName: IStatement_setCursorNamePtr;
1261     free: IStatement_freePtr;
1262     getFlags: IStatement_getFlagsPtr;
1263     end;
1264    
1265     IStatement = class(IReferenceCounted)
1266     const VERSION = 13;
1267     const PREPARE_PREFETCH_NONE = Cardinal(0);
1268     const PREPARE_PREFETCH_TYPE = Cardinal(1);
1269     const PREPARE_PREFETCH_INPUT_PARAMETERS = Cardinal(2);
1270     const PREPARE_PREFETCH_OUTPUT_PARAMETERS = Cardinal(4);
1271     const PREPARE_PREFETCH_LEGACY_PLAN = Cardinal(8);
1272     const PREPARE_PREFETCH_DETAILED_PLAN = Cardinal(16);
1273     const PREPARE_PREFETCH_AFFECTED_RECORDS = Cardinal(32);
1274     const PREPARE_PREFETCH_FLAGS = Cardinal(64);
1275     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);
1276     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);
1277     const FLAG_HAS_CURSOR = Cardinal(1);
1278     const FLAG_REPEAT_EXECUTE = Cardinal(2);
1279     const CURSOR_TYPE_SCROLLABLE = Cardinal(1);
1280    
1281     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1282     function getType(status: IStatus): Cardinal;
1283     function getPlan(status: IStatus; detailed: Boolean): PAnsiChar;
1284     function getAffectedRecords(status: IStatus): QWord;
1285     function getInputMetadata(status: IStatus): IMessageMetadata;
1286     function getOutputMetadata(status: IStatus): IMessageMetadata;
1287     function execute(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
1288     function openCursor(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet;
1289     procedure setCursorName(status: IStatus; name: PAnsiChar);
1290     procedure free(status: IStatus);
1291     function getFlags(status: IStatus): Cardinal;
1292     end;
1293    
1294     IStatementImpl = class(IStatement)
1295     constructor create;
1296    
1297     procedure addRef(); virtual; abstract;
1298     function release(): Integer; virtual; abstract;
1299     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1300     function getType(status: IStatus): Cardinal; virtual; abstract;
1301     function getPlan(status: IStatus; detailed: Boolean): PAnsiChar; virtual; abstract;
1302     function getAffectedRecords(status: IStatus): QWord; virtual; abstract;
1303     function getInputMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1304     function getOutputMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
1305     function execute(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; virtual; abstract;
1306     function openCursor(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet; virtual; abstract;
1307     procedure setCursorName(status: IStatus; name: PAnsiChar); virtual; abstract;
1308     procedure free(status: IStatus); virtual; abstract;
1309     function getFlags(status: IStatus): Cardinal; virtual; abstract;
1310     end;
1311    
1312     RequestVTable = class(ReferenceCountedVTable)
1313     receive: IRequest_receivePtr;
1314     send: IRequest_sendPtr;
1315     getInfo: IRequest_getInfoPtr;
1316     start: IRequest_startPtr;
1317     startAndSend: IRequest_startAndSendPtr;
1318     unwind: IRequest_unwindPtr;
1319     free: IRequest_freePtr;
1320     end;
1321    
1322     IRequest = class(IReferenceCounted)
1323     const VERSION = 9;
1324    
1325     procedure receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
1326     procedure send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
1327     procedure getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1328     procedure start(status: IStatus; tra: ITransaction; level: Integer);
1329     procedure startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
1330     procedure unwind(status: IStatus; level: Integer);
1331     procedure free(status: IStatus);
1332     end;
1333    
1334     IRequestImpl = class(IRequest)
1335     constructor create;
1336    
1337     procedure addRef(); virtual; abstract;
1338     function release(): Integer; virtual; abstract;
1339     procedure receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); virtual; abstract;
1340     procedure send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); virtual; abstract;
1341     procedure getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1342     procedure start(status: IStatus; tra: ITransaction; level: Integer); virtual; abstract;
1343     procedure startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); virtual; abstract;
1344     procedure unwind(status: IStatus; level: Integer); virtual; abstract;
1345     procedure free(status: IStatus); virtual; abstract;
1346     end;
1347    
1348     EventsVTable = class(ReferenceCountedVTable)
1349     cancel: IEvents_cancelPtr;
1350     end;
1351    
1352     IEvents = class(IReferenceCounted)
1353     const VERSION = 3;
1354    
1355     procedure cancel(status: IStatus);
1356     end;
1357    
1358     IEventsImpl = class(IEvents)
1359     constructor create;
1360    
1361     procedure addRef(); virtual; abstract;
1362     function release(): Integer; virtual; abstract;
1363     procedure cancel(status: IStatus); virtual; abstract;
1364     end;
1365    
1366     AttachmentVTable = class(ReferenceCountedVTable)
1367     getInfo: IAttachment_getInfoPtr;
1368     startTransaction: IAttachment_startTransactionPtr;
1369     reconnectTransaction: IAttachment_reconnectTransactionPtr;
1370     compileRequest: IAttachment_compileRequestPtr;
1371     transactRequest: IAttachment_transactRequestPtr;
1372     createBlob: IAttachment_createBlobPtr;
1373     openBlob: IAttachment_openBlobPtr;
1374     getSlice: IAttachment_getSlicePtr;
1375     putSlice: IAttachment_putSlicePtr;
1376     executeDyn: IAttachment_executeDynPtr;
1377     prepare: IAttachment_preparePtr;
1378     execute: IAttachment_executePtr;
1379     openCursor: IAttachment_openCursorPtr;
1380     queEvents: IAttachment_queEventsPtr;
1381     cancelOperation: IAttachment_cancelOperationPtr;
1382     ping: IAttachment_pingPtr;
1383     detach: IAttachment_detachPtr;
1384     dropDatabase: IAttachment_dropDatabasePtr;
1385     end;
1386    
1387     IAttachment = class(IReferenceCounted)
1388     const VERSION = 20;
1389    
1390     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1391     function startTransaction(status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction;
1392     function reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction;
1393     function compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest;
1394     procedure transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr);
1395     function createBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob;
1396     function openBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob;
1397     function getSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer;
1398     procedure putSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr);
1399     procedure executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr);
1400     function prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement;
1401     function execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
1402     function openCursor(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet;
1403     function queEvents(status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents;
1404     procedure cancelOperation(status: IStatus; option: Integer);
1405     procedure ping(status: IStatus);
1406     procedure detach(status: IStatus);
1407     procedure dropDatabase(status: IStatus);
1408     end;
1409    
1410     IAttachmentImpl = class(IAttachment)
1411     constructor create;
1412    
1413     procedure addRef(); virtual; abstract;
1414     function release(): Integer; virtual; abstract;
1415     procedure getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1416     function startTransaction(status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction; virtual; abstract;
1417     function reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction; virtual; abstract;
1418     function compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest; virtual; abstract;
1419     procedure transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr); virtual; abstract;
1420     function createBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; virtual; abstract;
1421     function openBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; virtual; abstract;
1422     function getSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer; virtual; abstract;
1423     procedure putSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr); virtual; abstract;
1424     procedure executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr); virtual; abstract;
1425     function prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement; virtual; abstract;
1426     function execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; virtual; abstract;
1427     function openCursor(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet; virtual; abstract;
1428     function queEvents(status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents; virtual; abstract;
1429     procedure cancelOperation(status: IStatus; option: Integer); virtual; abstract;
1430     procedure ping(status: IStatus); virtual; abstract;
1431     procedure detach(status: IStatus); virtual; abstract;
1432     procedure dropDatabase(status: IStatus); virtual; abstract;
1433     end;
1434    
1435     ServiceVTable = class(ReferenceCountedVTable)
1436     detach: IService_detachPtr;
1437     query: IService_queryPtr;
1438     start: IService_startPtr;
1439     end;
1440    
1441     IService = class(IReferenceCounted)
1442     const VERSION = 5;
1443    
1444     procedure detach(status: IStatus);
1445     procedure query(status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
1446     procedure start(status: IStatus; spbLength: Cardinal; spb: BytePtr);
1447     end;
1448    
1449     IServiceImpl = class(IService)
1450     constructor create;
1451    
1452     procedure addRef(); virtual; abstract;
1453     function release(): Integer; virtual; abstract;
1454     procedure detach(status: IStatus); virtual; abstract;
1455     procedure query(status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr); virtual; abstract;
1456     procedure start(status: IStatus; spbLength: Cardinal; spb: BytePtr); virtual; abstract;
1457     end;
1458    
1459     ProviderVTable = class(PluginBaseVTable)
1460     attachDatabase: IProvider_attachDatabasePtr;
1461     createDatabase: IProvider_createDatabasePtr;
1462     attachServiceManager: IProvider_attachServiceManagerPtr;
1463     shutdown: IProvider_shutdownPtr;
1464     setDbCryptCallback: IProvider_setDbCryptCallbackPtr;
1465     end;
1466    
1467     IProvider = class(IPluginBase)
1468     const VERSION = 9;
1469    
1470     function attachDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
1471     function createDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
1472     function attachServiceManager(status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService;
1473     procedure shutdown(status: IStatus; timeout: Cardinal; reason: Integer);
1474     procedure setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
1475     end;
1476    
1477     IProviderImpl = class(IProvider)
1478     constructor create;
1479    
1480     procedure addRef(); virtual; abstract;
1481     function release(): Integer; virtual; abstract;
1482     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1483     function getOwner(): IReferenceCounted; virtual; abstract;
1484     function attachDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; virtual; abstract;
1485     function createDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; virtual; abstract;
1486     function attachServiceManager(status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService; virtual; abstract;
1487     procedure shutdown(status: IStatus; timeout: Cardinal; reason: Integer); virtual; abstract;
1488     procedure setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback); virtual; abstract;
1489     end;
1490    
1491     DtcStartVTable = class(DisposableVTable)
1492     addAttachment: IDtcStart_addAttachmentPtr;
1493     addWithTpb: IDtcStart_addWithTpbPtr;
1494     start: IDtcStart_startPtr;
1495     end;
1496    
1497     IDtcStart = class(IDisposable)
1498     const VERSION = 4;
1499    
1500     procedure addAttachment(status: IStatus; att: IAttachment);
1501     procedure addWithTpb(status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr);
1502     function start(status: IStatus): ITransaction;
1503     end;
1504    
1505     IDtcStartImpl = class(IDtcStart)
1506     constructor create;
1507    
1508     procedure dispose(); virtual; abstract;
1509     procedure addAttachment(status: IStatus; att: IAttachment); virtual; abstract;
1510     procedure addWithTpb(status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr); virtual; abstract;
1511     function start(status: IStatus): ITransaction; virtual; abstract;
1512     end;
1513    
1514     DtcVTable = class(VersionedVTable)
1515     join: IDtc_joinPtr;
1516     startBuilder: IDtc_startBuilderPtr;
1517     end;
1518    
1519     IDtc = class(IVersioned)
1520     const VERSION = 2;
1521    
1522     function join(status: IStatus; one: ITransaction; two: ITransaction): ITransaction;
1523     function startBuilder(status: IStatus): IDtcStart;
1524     end;
1525    
1526     IDtcImpl = class(IDtc)
1527     constructor create;
1528    
1529     function join(status: IStatus; one: ITransaction; two: ITransaction): ITransaction; virtual; abstract;
1530     function startBuilder(status: IStatus): IDtcStart; virtual; abstract;
1531     end;
1532    
1533     AuthVTable = class(PluginBaseVTable)
1534     end;
1535    
1536     IAuth = class(IPluginBase)
1537     const VERSION = 4;
1538     const AUTH_FAILED = Integer(-1);
1539     const AUTH_SUCCESS = Integer(0);
1540     const AUTH_MORE_DATA = Integer(1);
1541     const AUTH_CONTINUE = Integer(2);
1542    
1543     end;
1544    
1545     IAuthImpl = class(IAuth)
1546     constructor create;
1547    
1548     procedure addRef(); virtual; abstract;
1549     function release(): Integer; virtual; abstract;
1550     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1551     function getOwner(): IReferenceCounted; virtual; abstract;
1552     end;
1553    
1554     WriterVTable = class(VersionedVTable)
1555     reset: IWriter_resetPtr;
1556     add: IWriter_addPtr;
1557     setType: IWriter_setTypePtr;
1558     setDb: IWriter_setDbPtr;
1559     end;
1560    
1561     IWriter = class(IVersioned)
1562     const VERSION = 4;
1563    
1564     procedure reset();
1565     procedure add(status: IStatus; name: PAnsiChar);
1566     procedure setType(status: IStatus; value: PAnsiChar);
1567     procedure setDb(status: IStatus; value: PAnsiChar);
1568     end;
1569    
1570     IWriterImpl = class(IWriter)
1571     constructor create;
1572    
1573     procedure reset(); virtual; abstract;
1574     procedure add(status: IStatus; name: PAnsiChar); virtual; abstract;
1575     procedure setType(status: IStatus; value: PAnsiChar); virtual; abstract;
1576     procedure setDb(status: IStatus; value: PAnsiChar); virtual; abstract;
1577     end;
1578    
1579     ServerBlockVTable = class(VersionedVTable)
1580     getLogin: IServerBlock_getLoginPtr;
1581     getData: IServerBlock_getDataPtr;
1582     putData: IServerBlock_putDataPtr;
1583     newKey: IServerBlock_newKeyPtr;
1584     end;
1585    
1586     IServerBlock = class(IVersioned)
1587     const VERSION = 4;
1588    
1589     function getLogin(): PAnsiChar;
1590     function getData(length: CardinalPtr): BytePtr;
1591     procedure putData(status: IStatus; length: Cardinal; data: Pointer);
1592     function newKey(status: IStatus): ICryptKey;
1593     end;
1594    
1595     IServerBlockImpl = class(IServerBlock)
1596     constructor create;
1597    
1598     function getLogin(): PAnsiChar; virtual; abstract;
1599     function getData(length: CardinalPtr): BytePtr; virtual; abstract;
1600     procedure putData(status: IStatus; length: Cardinal; data: Pointer); virtual; abstract;
1601     function newKey(status: IStatus): ICryptKey; virtual; abstract;
1602     end;
1603    
1604     ClientBlockVTable = class(ReferenceCountedVTable)
1605     getLogin: IClientBlock_getLoginPtr;
1606     getPassword: IClientBlock_getPasswordPtr;
1607     getData: IClientBlock_getDataPtr;
1608     putData: IClientBlock_putDataPtr;
1609     newKey: IClientBlock_newKeyPtr;
1610     end;
1611    
1612     IClientBlock = class(IReferenceCounted)
1613     const VERSION = 7;
1614    
1615     function getLogin(): PAnsiChar;
1616     function getPassword(): PAnsiChar;
1617     function getData(length: CardinalPtr): BytePtr;
1618     procedure putData(status: IStatus; length: Cardinal; data: Pointer);
1619     function newKey(status: IStatus): ICryptKey;
1620     end;
1621    
1622     IClientBlockImpl = class(IClientBlock)
1623     constructor create;
1624    
1625     procedure addRef(); virtual; abstract;
1626     function release(): Integer; virtual; abstract;
1627     function getLogin(): PAnsiChar; virtual; abstract;
1628     function getPassword(): PAnsiChar; virtual; abstract;
1629     function getData(length: CardinalPtr): BytePtr; virtual; abstract;
1630     procedure putData(status: IStatus; length: Cardinal; data: Pointer); virtual; abstract;
1631     function newKey(status: IStatus): ICryptKey; virtual; abstract;
1632     end;
1633    
1634     ServerVTable = class(AuthVTable)
1635     authenticate: IServer_authenticatePtr;
1636     end;
1637    
1638     IServer = class(IAuth)
1639     const VERSION = 5;
1640    
1641     function authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer;
1642     end;
1643    
1644     IServerImpl = class(IServer)
1645     constructor create;
1646    
1647     procedure addRef(); virtual; abstract;
1648     function release(): Integer; virtual; abstract;
1649     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1650     function getOwner(): IReferenceCounted; virtual; abstract;
1651     function authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer; virtual; abstract;
1652     end;
1653    
1654     ClientVTable = class(AuthVTable)
1655     authenticate: IClient_authenticatePtr;
1656     end;
1657    
1658     IClient = class(IAuth)
1659     const VERSION = 5;
1660    
1661     function authenticate(status: IStatus; cBlock: IClientBlock): Integer;
1662     end;
1663    
1664     IClientImpl = class(IClient)
1665     constructor create;
1666    
1667     procedure addRef(); virtual; abstract;
1668     function release(): Integer; virtual; abstract;
1669     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1670     function getOwner(): IReferenceCounted; virtual; abstract;
1671     function authenticate(status: IStatus; cBlock: IClientBlock): Integer; virtual; abstract;
1672     end;
1673    
1674     UserFieldVTable = class(VersionedVTable)
1675     entered: IUserField_enteredPtr;
1676     specified: IUserField_specifiedPtr;
1677     setEntered: IUserField_setEnteredPtr;
1678     end;
1679    
1680     IUserField = class(IVersioned)
1681     const VERSION = 3;
1682    
1683     function entered(): Integer;
1684     function specified(): Integer;
1685     procedure setEntered(status: IStatus; newValue: Integer);
1686     end;
1687    
1688     IUserFieldImpl = class(IUserField)
1689     constructor create;
1690    
1691     function entered(): Integer; virtual; abstract;
1692     function specified(): Integer; virtual; abstract;
1693     procedure setEntered(status: IStatus; newValue: Integer); virtual; abstract;
1694     end;
1695    
1696     CharUserFieldVTable = class(UserFieldVTable)
1697     get: ICharUserField_getPtr;
1698     set_: ICharUserField_set_Ptr;
1699     end;
1700    
1701     ICharUserField = class(IUserField)
1702     const VERSION = 5;
1703    
1704     function get(): PAnsiChar;
1705     procedure set_(status: IStatus; newValue: PAnsiChar);
1706     end;
1707    
1708     ICharUserFieldImpl = class(ICharUserField)
1709     constructor create;
1710    
1711     function entered(): Integer; virtual; abstract;
1712     function specified(): Integer; virtual; abstract;
1713     procedure setEntered(status: IStatus; newValue: Integer); virtual; abstract;
1714     function get(): PAnsiChar; virtual; abstract;
1715     procedure set_(status: IStatus; newValue: PAnsiChar); virtual; abstract;
1716     end;
1717    
1718     IntUserFieldVTable = class(UserFieldVTable)
1719     get: IIntUserField_getPtr;
1720     set_: IIntUserField_set_Ptr;
1721     end;
1722    
1723     IIntUserField = class(IUserField)
1724     const VERSION = 5;
1725    
1726     function get(): Integer;
1727     procedure set_(status: IStatus; newValue: Integer);
1728     end;
1729    
1730     IIntUserFieldImpl = class(IIntUserField)
1731     constructor create;
1732    
1733     function entered(): Integer; virtual; abstract;
1734     function specified(): Integer; virtual; abstract;
1735     procedure setEntered(status: IStatus; newValue: Integer); virtual; abstract;
1736     function get(): Integer; virtual; abstract;
1737     procedure set_(status: IStatus; newValue: Integer); virtual; abstract;
1738     end;
1739    
1740     UserVTable = class(VersionedVTable)
1741     operation: IUser_operationPtr;
1742     userName: IUser_userNamePtr;
1743     password: IUser_passwordPtr;
1744     firstName: IUser_firstNamePtr;
1745     lastName: IUser_lastNamePtr;
1746     middleName: IUser_middleNamePtr;
1747     comment: IUser_commentPtr;
1748     attributes: IUser_attributesPtr;
1749     active: IUser_activePtr;
1750     admin: IUser_adminPtr;
1751     clear: IUser_clearPtr;
1752     end;
1753    
1754     IUser = class(IVersioned)
1755     const VERSION = 11;
1756     const OP_USER_ADD = Cardinal(1);
1757     const OP_USER_MODIFY = Cardinal(2);
1758     const OP_USER_DELETE = Cardinal(3);
1759     const OP_USER_DISPLAY = Cardinal(4);
1760     const OP_USER_SET_MAP = Cardinal(5);
1761     const OP_USER_DROP_MAP = Cardinal(6);
1762    
1763     function operation(): Cardinal;
1764     function userName(): ICharUserField;
1765     function password(): ICharUserField;
1766     function firstName(): ICharUserField;
1767     function lastName(): ICharUserField;
1768     function middleName(): ICharUserField;
1769     function comment(): ICharUserField;
1770     function attributes(): ICharUserField;
1771     function active(): IIntUserField;
1772     function admin(): IIntUserField;
1773     procedure clear(status: IStatus);
1774     end;
1775    
1776     IUserImpl = class(IUser)
1777     constructor create;
1778    
1779     function operation(): Cardinal; virtual; abstract;
1780     function userName(): ICharUserField; virtual; abstract;
1781     function password(): ICharUserField; virtual; abstract;
1782     function firstName(): ICharUserField; virtual; abstract;
1783     function lastName(): ICharUserField; virtual; abstract;
1784     function middleName(): ICharUserField; virtual; abstract;
1785     function comment(): ICharUserField; virtual; abstract;
1786     function attributes(): ICharUserField; virtual; abstract;
1787     function active(): IIntUserField; virtual; abstract;
1788     function admin(): IIntUserField; virtual; abstract;
1789     procedure clear(status: IStatus); virtual; abstract;
1790     end;
1791    
1792     ListUsersVTable = class(VersionedVTable)
1793     list: IListUsers_listPtr;
1794     end;
1795    
1796     IListUsers = class(IVersioned)
1797     const VERSION = 1;
1798    
1799     procedure list(status: IStatus; user: IUser);
1800     end;
1801    
1802     IListUsersImpl = class(IListUsers)
1803     constructor create;
1804    
1805     procedure list(status: IStatus; user: IUser); virtual; abstract;
1806     end;
1807    
1808     LogonInfoVTable = class(VersionedVTable)
1809     name: ILogonInfo_namePtr;
1810     role: ILogonInfo_rolePtr;
1811     networkProtocol: ILogonInfo_networkProtocolPtr;
1812     remoteAddress: ILogonInfo_remoteAddressPtr;
1813     authBlock: ILogonInfo_authBlockPtr;
1814     end;
1815    
1816     ILogonInfo = class(IVersioned)
1817     const VERSION = 5;
1818    
1819     function name(): PAnsiChar;
1820     function role(): PAnsiChar;
1821     function networkProtocol(): PAnsiChar;
1822     function remoteAddress(): PAnsiChar;
1823     function authBlock(length: CardinalPtr): BytePtr;
1824     end;
1825    
1826     ILogonInfoImpl = class(ILogonInfo)
1827     constructor create;
1828    
1829     function name(): PAnsiChar; virtual; abstract;
1830     function role(): PAnsiChar; virtual; abstract;
1831     function networkProtocol(): PAnsiChar; virtual; abstract;
1832     function remoteAddress(): PAnsiChar; virtual; abstract;
1833     function authBlock(length: CardinalPtr): BytePtr; virtual; abstract;
1834     end;
1835    
1836     ManagementVTable = class(PluginBaseVTable)
1837     start: IManagement_startPtr;
1838     execute: IManagement_executePtr;
1839     commit: IManagement_commitPtr;
1840     rollback: IManagement_rollbackPtr;
1841     end;
1842    
1843     IManagement = class(IPluginBase)
1844     const VERSION = 8;
1845    
1846     procedure start(status: IStatus; logonInfo: ILogonInfo);
1847     function execute(status: IStatus; user: IUser; callback: IListUsers): Integer;
1848     procedure commit(status: IStatus);
1849     procedure rollback(status: IStatus);
1850     end;
1851    
1852     IManagementImpl = class(IManagement)
1853     constructor create;
1854    
1855     procedure addRef(); virtual; abstract;
1856     function release(): Integer; virtual; abstract;
1857     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1858     function getOwner(): IReferenceCounted; virtual; abstract;
1859     procedure start(status: IStatus; logonInfo: ILogonInfo); virtual; abstract;
1860     function execute(status: IStatus; user: IUser; callback: IListUsers): Integer; virtual; abstract;
1861     procedure commit(status: IStatus); virtual; abstract;
1862     procedure rollback(status: IStatus); virtual; abstract;
1863     end;
1864    
1865     WireCryptPluginVTable = class(PluginBaseVTable)
1866     getKnownTypes: IWireCryptPlugin_getKnownTypesPtr;
1867     setKey: IWireCryptPlugin_setKeyPtr;
1868     encrypt: IWireCryptPlugin_encryptPtr;
1869     decrypt: IWireCryptPlugin_decryptPtr;
1870     end;
1871    
1872     IWireCryptPlugin = class(IPluginBase)
1873     const VERSION = 8;
1874    
1875     function getKnownTypes(status: IStatus): PAnsiChar;
1876     procedure setKey(status: IStatus; key: ICryptKey);
1877     procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
1878     procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
1879     end;
1880    
1881     IWireCryptPluginImpl = class(IWireCryptPlugin)
1882     constructor create;
1883    
1884     procedure addRef(); virtual; abstract;
1885     function release(): Integer; virtual; abstract;
1886     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1887     function getOwner(): IReferenceCounted; virtual; abstract;
1888     function getKnownTypes(status: IStatus): PAnsiChar; virtual; abstract;
1889     procedure setKey(status: IStatus; key: ICryptKey); virtual; abstract;
1890     procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
1891     procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
1892     end;
1893    
1894     CryptKeyCallbackVTable = class(VersionedVTable)
1895     callback: ICryptKeyCallback_callbackPtr;
1896     end;
1897    
1898     ICryptKeyCallback = class(IVersioned)
1899     const VERSION = 1;
1900    
1901     function callback(dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal;
1902     end;
1903    
1904     ICryptKeyCallbackImpl = class(ICryptKeyCallback)
1905     constructor create;
1906    
1907     function callback(dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal; virtual; abstract;
1908     end;
1909    
1910     KeyHolderPluginVTable = class(PluginBaseVTable)
1911     keyCallback: IKeyHolderPlugin_keyCallbackPtr;
1912     keyHandle: IKeyHolderPlugin_keyHandlePtr;
1913     end;
1914    
1915     IKeyHolderPlugin = class(IPluginBase)
1916     const VERSION = 6;
1917    
1918     function keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer;
1919     function keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback;
1920     end;
1921    
1922     IKeyHolderPluginImpl = class(IKeyHolderPlugin)
1923     constructor create;
1924    
1925     procedure addRef(); virtual; abstract;
1926     function release(): Integer; virtual; abstract;
1927     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1928     function getOwner(): IReferenceCounted; virtual; abstract;
1929     function keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer; virtual; abstract;
1930     function keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback; virtual; abstract;
1931     end;
1932    
1933     DbCryptPluginVTable = class(PluginBaseVTable)
1934     setKey: IDbCryptPlugin_setKeyPtr;
1935     encrypt: IDbCryptPlugin_encryptPtr;
1936     decrypt: IDbCryptPlugin_decryptPtr;
1937     end;
1938    
1939     IDbCryptPlugin = class(IPluginBase)
1940     const VERSION = 7;
1941    
1942     procedure setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar);
1943     procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
1944     procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
1945     end;
1946    
1947     IDbCryptPluginImpl = class(IDbCryptPlugin)
1948     constructor create;
1949    
1950     procedure addRef(); virtual; abstract;
1951     function release(): Integer; virtual; abstract;
1952     procedure setOwner(r: IReferenceCounted); virtual; abstract;
1953     function getOwner(): IReferenceCounted; virtual; abstract;
1954     procedure setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar); virtual; abstract;
1955     procedure encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
1956     procedure decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); virtual; abstract;
1957     end;
1958    
1959     ExternalContextVTable = class(VersionedVTable)
1960     getMaster: IExternalContext_getMasterPtr;
1961     getEngine: IExternalContext_getEnginePtr;
1962     getAttachment: IExternalContext_getAttachmentPtr;
1963     getTransaction: IExternalContext_getTransactionPtr;
1964     getUserName: IExternalContext_getUserNamePtr;
1965     getDatabaseName: IExternalContext_getDatabaseNamePtr;
1966     getClientCharSet: IExternalContext_getClientCharSetPtr;
1967     obtainInfoCode: IExternalContext_obtainInfoCodePtr;
1968     getInfo: IExternalContext_getInfoPtr;
1969     setInfo: IExternalContext_setInfoPtr;
1970     end;
1971    
1972     IExternalContext = class(IVersioned)
1973     const VERSION = 10;
1974    
1975     function getMaster(): IMaster;
1976     function getEngine(status: IStatus): IExternalEngine;
1977     function getAttachment(status: IStatus): IAttachment;
1978     function getTransaction(status: IStatus): ITransaction;
1979     function getUserName(): PAnsiChar;
1980     function getDatabaseName(): PAnsiChar;
1981     function getClientCharSet(): PAnsiChar;
1982     function obtainInfoCode(): Integer;
1983     function getInfo(code: Integer): Pointer;
1984     function setInfo(code: Integer; value: Pointer): Pointer;
1985     end;
1986    
1987     IExternalContextImpl = class(IExternalContext)
1988     constructor create;
1989    
1990     function getMaster(): IMaster; virtual; abstract;
1991     function getEngine(status: IStatus): IExternalEngine; virtual; abstract;
1992     function getAttachment(status: IStatus): IAttachment; virtual; abstract;
1993     function getTransaction(status: IStatus): ITransaction; virtual; abstract;
1994     function getUserName(): PAnsiChar; virtual; abstract;
1995     function getDatabaseName(): PAnsiChar; virtual; abstract;
1996     function getClientCharSet(): PAnsiChar; virtual; abstract;
1997     function obtainInfoCode(): Integer; virtual; abstract;
1998     function getInfo(code: Integer): Pointer; virtual; abstract;
1999     function setInfo(code: Integer; value: Pointer): Pointer; virtual; abstract;
2000     end;
2001    
2002     ExternalResultSetVTable = class(DisposableVTable)
2003     fetch: IExternalResultSet_fetchPtr;
2004     end;
2005    
2006     IExternalResultSet = class(IDisposable)
2007     const VERSION = 2;
2008    
2009     function fetch(status: IStatus): Boolean;
2010     end;
2011    
2012     IExternalResultSetImpl = class(IExternalResultSet)
2013     constructor create;
2014    
2015     procedure dispose(); virtual; abstract;
2016     function fetch(status: IStatus): Boolean; virtual; abstract;
2017     end;
2018    
2019     ExternalFunctionVTable = class(DisposableVTable)
2020     getCharSet: IExternalFunction_getCharSetPtr;
2021     execute: IExternalFunction_executePtr;
2022     end;
2023    
2024     IExternalFunction = class(IDisposable)
2025     const VERSION = 3;
2026    
2027     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
2028     procedure execute(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer);
2029     end;
2030    
2031     IExternalFunctionImpl = class(IExternalFunction)
2032     constructor create;
2033    
2034     procedure dispose(); virtual; abstract;
2035     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); virtual; abstract;
2036     procedure execute(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer); virtual; abstract;
2037     end;
2038    
2039     ExternalProcedureVTable = class(DisposableVTable)
2040     getCharSet: IExternalProcedure_getCharSetPtr;
2041     open: IExternalProcedure_openPtr;
2042     end;
2043    
2044     IExternalProcedure = class(IDisposable)
2045     const VERSION = 3;
2046    
2047     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
2048     function open(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet;
2049     end;
2050    
2051     IExternalProcedureImpl = class(IExternalProcedure)
2052     constructor create;
2053    
2054     procedure dispose(); virtual; abstract;
2055     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); virtual; abstract;
2056     function open(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet; virtual; abstract;
2057     end;
2058    
2059     ExternalTriggerVTable = class(DisposableVTable)
2060     getCharSet: IExternalTrigger_getCharSetPtr;
2061     execute: IExternalTrigger_executePtr;
2062     end;
2063    
2064     IExternalTrigger = class(IDisposable)
2065     const VERSION = 3;
2066     const TYPE_BEFORE = Cardinal(1);
2067     const TYPE_AFTER = Cardinal(2);
2068     const TYPE_DATABASE = Cardinal(3);
2069     const ACTION_INSERT = Cardinal(1);
2070     const ACTION_UPDATE = Cardinal(2);
2071     const ACTION_DELETE = Cardinal(3);
2072     const ACTION_CONNECT = Cardinal(4);
2073     const ACTION_DISCONNECT = Cardinal(5);
2074     const ACTION_TRANS_START = Cardinal(6);
2075     const ACTION_TRANS_COMMIT = Cardinal(7);
2076     const ACTION_TRANS_ROLLBACK = Cardinal(8);
2077     const ACTION_DDL = Cardinal(9);
2078    
2079     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
2080     procedure execute(status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer);
2081     end;
2082    
2083     IExternalTriggerImpl = class(IExternalTrigger)
2084     constructor create;
2085    
2086     procedure dispose(); virtual; abstract;
2087     procedure getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); virtual; abstract;
2088     procedure execute(status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer); virtual; abstract;
2089     end;
2090    
2091     RoutineMetadataVTable = class(VersionedVTable)
2092     getPackage: IRoutineMetadata_getPackagePtr;
2093     getName: IRoutineMetadata_getNamePtr;
2094     getEntryPoint: IRoutineMetadata_getEntryPointPtr;
2095     getBody: IRoutineMetadata_getBodyPtr;
2096     getInputMetadata: IRoutineMetadata_getInputMetadataPtr;
2097     getOutputMetadata: IRoutineMetadata_getOutputMetadataPtr;
2098     getTriggerMetadata: IRoutineMetadata_getTriggerMetadataPtr;
2099     getTriggerTable: IRoutineMetadata_getTriggerTablePtr;
2100     getTriggerType: IRoutineMetadata_getTriggerTypePtr;
2101     end;
2102    
2103     IRoutineMetadata = class(IVersioned)
2104     const VERSION = 9;
2105    
2106     function getPackage(status: IStatus): PAnsiChar;
2107     function getName(status: IStatus): PAnsiChar;
2108     function getEntryPoint(status: IStatus): PAnsiChar;
2109     function getBody(status: IStatus): PAnsiChar;
2110     function getInputMetadata(status: IStatus): IMessageMetadata;
2111     function getOutputMetadata(status: IStatus): IMessageMetadata;
2112     function getTriggerMetadata(status: IStatus): IMessageMetadata;
2113     function getTriggerTable(status: IStatus): PAnsiChar;
2114     function getTriggerType(status: IStatus): Cardinal;
2115     end;
2116    
2117     IRoutineMetadataImpl = class(IRoutineMetadata)
2118     constructor create;
2119    
2120     function getPackage(status: IStatus): PAnsiChar; virtual; abstract;
2121     function getName(status: IStatus): PAnsiChar; virtual; abstract;
2122     function getEntryPoint(status: IStatus): PAnsiChar; virtual; abstract;
2123     function getBody(status: IStatus): PAnsiChar; virtual; abstract;
2124     function getInputMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
2125     function getOutputMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
2126     function getTriggerMetadata(status: IStatus): IMessageMetadata; virtual; abstract;
2127     function getTriggerTable(status: IStatus): PAnsiChar; virtual; abstract;
2128     function getTriggerType(status: IStatus): Cardinal; virtual; abstract;
2129     end;
2130    
2131     ExternalEngineVTable = class(PluginBaseVTable)
2132     open: IExternalEngine_openPtr;
2133     openAttachment: IExternalEngine_openAttachmentPtr;
2134     closeAttachment: IExternalEngine_closeAttachmentPtr;
2135     makeFunction: IExternalEngine_makeFunctionPtr;
2136     makeProcedure: IExternalEngine_makeProcedurePtr;
2137     makeTrigger: IExternalEngine_makeTriggerPtr;
2138     end;
2139    
2140     IExternalEngine = class(IPluginBase)
2141     const VERSION = 10;
2142    
2143     procedure open(status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal);
2144     procedure openAttachment(status: IStatus; context: IExternalContext);
2145     procedure closeAttachment(status: IStatus; context: IExternalContext);
2146     function makeFunction(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction;
2147     function makeProcedure(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure;
2148     function makeTrigger(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger;
2149     end;
2150    
2151     IExternalEngineImpl = class(IExternalEngine)
2152     constructor create;
2153    
2154     procedure addRef(); virtual; abstract;
2155     function release(): Integer; virtual; abstract;
2156     procedure setOwner(r: IReferenceCounted); virtual; abstract;
2157     function getOwner(): IReferenceCounted; virtual; abstract;
2158     procedure open(status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal); virtual; abstract;
2159     procedure openAttachment(status: IStatus; context: IExternalContext); virtual; abstract;
2160     procedure closeAttachment(status: IStatus; context: IExternalContext); virtual; abstract;
2161     function makeFunction(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction; virtual; abstract;
2162     function makeProcedure(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure; virtual; abstract;
2163     function makeTrigger(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger; virtual; abstract;
2164     end;
2165    
2166     TimerVTable = class(ReferenceCountedVTable)
2167     handler: ITimer_handlerPtr;
2168     end;
2169    
2170     ITimer = class(IReferenceCounted)
2171     const VERSION = 3;
2172    
2173     procedure handler();
2174     end;
2175    
2176     ITimerImpl = class(ITimer)
2177     constructor create;
2178    
2179     procedure addRef(); virtual; abstract;
2180     function release(): Integer; virtual; abstract;
2181     procedure handler(); virtual; abstract;
2182     end;
2183    
2184     TimerControlVTable = class(VersionedVTable)
2185     start: ITimerControl_startPtr;
2186     stop: ITimerControl_stopPtr;
2187     end;
2188    
2189     ITimerControl = class(IVersioned)
2190     const VERSION = 2;
2191    
2192     procedure start(status: IStatus; timer: ITimer; microSeconds: QWord);
2193     procedure stop(status: IStatus; timer: ITimer);
2194     end;
2195    
2196     ITimerControlImpl = class(ITimerControl)
2197     constructor create;
2198    
2199     procedure start(status: IStatus; timer: ITimer; microSeconds: QWord); virtual; abstract;
2200     procedure stop(status: IStatus; timer: ITimer); virtual; abstract;
2201     end;
2202    
2203     VersionCallbackVTable = class(VersionedVTable)
2204     callback: IVersionCallback_callbackPtr;
2205     end;
2206    
2207     IVersionCallback = class(IVersioned)
2208     const VERSION = 1;
2209    
2210     procedure callback(status: IStatus; text: PAnsiChar);
2211     end;
2212    
2213     IVersionCallbackImpl = class(IVersionCallback)
2214     constructor create;
2215    
2216     procedure callback(status: IStatus; text: PAnsiChar); virtual; abstract;
2217     end;
2218    
2219     UtilVTable = class(VersionedVTable)
2220     getFbVersion: IUtil_getFbVersionPtr;
2221     loadBlob: IUtil_loadBlobPtr;
2222     dumpBlob: IUtil_dumpBlobPtr;
2223     getPerfCounters: IUtil_getPerfCountersPtr;
2224     executeCreateDatabase: IUtil_executeCreateDatabasePtr;
2225     decodeDate: IUtil_decodeDatePtr;
2226     decodeTime: IUtil_decodeTimePtr;
2227     encodeDate: IUtil_encodeDatePtr;
2228     encodeTime: IUtil_encodeTimePtr;
2229     formatStatus: IUtil_formatStatusPtr;
2230     getClientVersion: IUtil_getClientVersionPtr;
2231     getXpbBuilder: IUtil_getXpbBuilderPtr;
2232     setOffsets: IUtil_setOffsetsPtr;
2233     end;
2234    
2235     IUtil = class(IVersioned)
2236     const VERSION = 13;
2237    
2238     procedure getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback);
2239     procedure loadBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
2240     procedure dumpBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
2241     procedure getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr);
2242     function executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment;
2243     procedure decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr);
2244     procedure decodeTime(time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr);
2245     function encodeDate(year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE;
2246     function encodeTime(hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME;
2247     function formatStatus(buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal;
2248     function getClientVersion(): Cardinal;
2249     function getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder;
2250     function setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal;
2251     end;
2252    
2253     IUtilImpl = class(IUtil)
2254     constructor create;
2255    
2256     procedure getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback); virtual; abstract;
2257     procedure loadBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); virtual; abstract;
2258     procedure dumpBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); virtual; abstract;
2259     procedure getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr); virtual; abstract;
2260     function executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment; virtual; abstract;
2261     procedure decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr); virtual; abstract;
2262     procedure decodeTime(time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr); virtual; abstract;
2263     function encodeDate(year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE; virtual; abstract;
2264     function encodeTime(hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME; virtual; abstract;
2265     function formatStatus(buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal; virtual; abstract;
2266     function getClientVersion(): Cardinal; virtual; abstract;
2267     function getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder; virtual; abstract;
2268     function setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal; virtual; abstract;
2269     end;
2270    
2271     OffsetsCallbackVTable = class(VersionedVTable)
2272     setOffset: IOffsetsCallback_setOffsetPtr;
2273     end;
2274    
2275     IOffsetsCallback = class(IVersioned)
2276     const VERSION = 1;
2277    
2278     procedure setOffset(status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal);
2279     end;
2280    
2281     IOffsetsCallbackImpl = class(IOffsetsCallback)
2282     constructor create;
2283    
2284     procedure setOffset(status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal); virtual; abstract;
2285     end;
2286    
2287     XpbBuilderVTable = class(DisposableVTable)
2288     clear: IXpbBuilder_clearPtr;
2289     removeCurrent: IXpbBuilder_removeCurrentPtr;
2290     insertInt: IXpbBuilder_insertIntPtr;
2291     insertBigInt: IXpbBuilder_insertBigIntPtr;
2292     insertBytes: IXpbBuilder_insertBytesPtr;
2293     insertString: IXpbBuilder_insertStringPtr;
2294     insertTag: IXpbBuilder_insertTagPtr;
2295     isEof: IXpbBuilder_isEofPtr;
2296     moveNext: IXpbBuilder_moveNextPtr;
2297     rewind: IXpbBuilder_rewindPtr;
2298     findFirst: IXpbBuilder_findFirstPtr;
2299     findNext: IXpbBuilder_findNextPtr;
2300     getTag: IXpbBuilder_getTagPtr;
2301     getLength: IXpbBuilder_getLengthPtr;
2302     getInt: IXpbBuilder_getIntPtr;
2303     getBigInt: IXpbBuilder_getBigIntPtr;
2304     getString: IXpbBuilder_getStringPtr;
2305     getBytes: IXpbBuilder_getBytesPtr;
2306     getBufferLength: IXpbBuilder_getBufferLengthPtr;
2307     getBuffer: IXpbBuilder_getBufferPtr;
2308     end;
2309    
2310     IXpbBuilder = class(IDisposable)
2311     const VERSION = 21;
2312     const DPB = Cardinal(1);
2313     const SPB_ATTACH = Cardinal(2);
2314     const SPB_START = Cardinal(3);
2315     const TPB = Cardinal(4);
2316    
2317     procedure clear(status: IStatus);
2318     procedure removeCurrent(status: IStatus);
2319     procedure insertInt(status: IStatus; tag: Byte; value: Integer);
2320     procedure insertBigInt(status: IStatus; tag: Byte; value: Int64);
2321     procedure insertBytes(status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal);
2322     procedure insertString(status: IStatus; tag: Byte; str: PAnsiChar);
2323     procedure insertTag(status: IStatus; tag: Byte);
2324     function isEof(status: IStatus): Boolean;
2325     procedure moveNext(status: IStatus);
2326     procedure rewind(status: IStatus);
2327     function findFirst(status: IStatus; tag: Byte): Boolean;
2328     function findNext(status: IStatus): Boolean;
2329     function getTag(status: IStatus): Byte;
2330     function getLength(status: IStatus): Cardinal;
2331     function getInt(status: IStatus): Integer;
2332     function getBigInt(status: IStatus): Int64;
2333     function getString(status: IStatus): PAnsiChar;
2334     function getBytes(status: IStatus): BytePtr;
2335     function getBufferLength(status: IStatus): Cardinal;
2336     function getBuffer(status: IStatus): BytePtr;
2337     end;
2338    
2339     IXpbBuilderImpl = class(IXpbBuilder)
2340     constructor create;
2341    
2342     procedure dispose(); virtual; abstract;
2343     procedure clear(status: IStatus); virtual; abstract;
2344     procedure removeCurrent(status: IStatus); virtual; abstract;
2345     procedure insertInt(status: IStatus; tag: Byte; value: Integer); virtual; abstract;
2346     procedure insertBigInt(status: IStatus; tag: Byte; value: Int64); virtual; abstract;
2347     procedure insertBytes(status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal); virtual; abstract;
2348     procedure insertString(status: IStatus; tag: Byte; str: PAnsiChar); virtual; abstract;
2349     procedure insertTag(status: IStatus; tag: Byte); virtual; abstract;
2350     function isEof(status: IStatus): Boolean; virtual; abstract;
2351     procedure moveNext(status: IStatus); virtual; abstract;
2352     procedure rewind(status: IStatus); virtual; abstract;
2353     function findFirst(status: IStatus; tag: Byte): Boolean; virtual; abstract;
2354     function findNext(status: IStatus): Boolean; virtual; abstract;
2355     function getTag(status: IStatus): Byte; virtual; abstract;
2356     function getLength(status: IStatus): Cardinal; virtual; abstract;
2357     function getInt(status: IStatus): Integer; virtual; abstract;
2358     function getBigInt(status: IStatus): Int64; virtual; abstract;
2359     function getString(status: IStatus): PAnsiChar; virtual; abstract;
2360     function getBytes(status: IStatus): BytePtr; virtual; abstract;
2361     function getBufferLength(status: IStatus): Cardinal; virtual; abstract;
2362     function getBuffer(status: IStatus): BytePtr; virtual; abstract;
2363     end;
2364    
2365     TraceConnectionVTable = class(VersionedVTable)
2366     getKind: ITraceConnection_getKindPtr;
2367     getProcessID: ITraceConnection_getProcessIDPtr;
2368     getUserName: ITraceConnection_getUserNamePtr;
2369     getRoleName: ITraceConnection_getRoleNamePtr;
2370     getCharSet: ITraceConnection_getCharSetPtr;
2371     getRemoteProtocol: ITraceConnection_getRemoteProtocolPtr;
2372     getRemoteAddress: ITraceConnection_getRemoteAddressPtr;
2373     getRemoteProcessID: ITraceConnection_getRemoteProcessIDPtr;
2374     getRemoteProcessName: ITraceConnection_getRemoteProcessNamePtr;
2375     end;
2376    
2377     ITraceConnection = class(IVersioned)
2378     const VERSION = 9;
2379     const KIND_DATABASE = Cardinal(1);
2380     const KIND_SERVICE = Cardinal(2);
2381    
2382     function getKind(): Cardinal;
2383     function getProcessID(): Integer;
2384     function getUserName(): PAnsiChar;
2385     function getRoleName(): PAnsiChar;
2386     function getCharSet(): PAnsiChar;
2387     function getRemoteProtocol(): PAnsiChar;
2388     function getRemoteAddress(): PAnsiChar;
2389     function getRemoteProcessID(): Integer;
2390     function getRemoteProcessName(): PAnsiChar;
2391     end;
2392    
2393     ITraceConnectionImpl = class(ITraceConnection)
2394     constructor create;
2395    
2396     function getKind(): Cardinal; virtual; abstract;
2397     function getProcessID(): Integer; virtual; abstract;
2398     function getUserName(): PAnsiChar; virtual; abstract;
2399     function getRoleName(): PAnsiChar; virtual; abstract;
2400     function getCharSet(): PAnsiChar; virtual; abstract;
2401     function getRemoteProtocol(): PAnsiChar; virtual; abstract;
2402     function getRemoteAddress(): PAnsiChar; virtual; abstract;
2403     function getRemoteProcessID(): Integer; virtual; abstract;
2404     function getRemoteProcessName(): PAnsiChar; virtual; abstract;
2405     end;
2406    
2407     TraceDatabaseConnectionVTable = class(TraceConnectionVTable)
2408     getConnectionID: ITraceDatabaseConnection_getConnectionIDPtr;
2409     getDatabaseName: ITraceDatabaseConnection_getDatabaseNamePtr;
2410     end;
2411    
2412     ITraceDatabaseConnection = class(ITraceConnection)
2413     const VERSION = 11;
2414    
2415     function getConnectionID(): Int64;
2416     function getDatabaseName(): PAnsiChar;
2417     end;
2418    
2419     ITraceDatabaseConnectionImpl = class(ITraceDatabaseConnection)
2420     constructor create;
2421    
2422     function getKind(): Cardinal; virtual; abstract;
2423     function getProcessID(): Integer; virtual; abstract;
2424     function getUserName(): PAnsiChar; virtual; abstract;
2425     function getRoleName(): PAnsiChar; virtual; abstract;
2426     function getCharSet(): PAnsiChar; virtual; abstract;
2427     function getRemoteProtocol(): PAnsiChar; virtual; abstract;
2428     function getRemoteAddress(): PAnsiChar; virtual; abstract;
2429     function getRemoteProcessID(): Integer; virtual; abstract;
2430     function getRemoteProcessName(): PAnsiChar; virtual; abstract;
2431     function getConnectionID(): Int64; virtual; abstract;
2432     function getDatabaseName(): PAnsiChar; virtual; abstract;
2433     end;
2434    
2435     TraceTransactionVTable = class(VersionedVTable)
2436     getTransactionID: ITraceTransaction_getTransactionIDPtr;
2437     getReadOnly: ITraceTransaction_getReadOnlyPtr;
2438     getWait: ITraceTransaction_getWaitPtr;
2439     getIsolation: ITraceTransaction_getIsolationPtr;
2440     getPerf: ITraceTransaction_getPerfPtr;
2441     end;
2442    
2443     ITraceTransaction = class(IVersioned)
2444     const VERSION = 5;
2445     const ISOLATION_CONSISTENCY = Cardinal(1);
2446     const ISOLATION_CONCURRENCY = Cardinal(2);
2447     const ISOLATION_READ_COMMITTED_RECVER = Cardinal(3);
2448     const ISOLATION_READ_COMMITTED_NORECVER = Cardinal(4);
2449    
2450     function getTransactionID(): Int64;
2451     function getReadOnly(): Boolean;
2452     function getWait(): Integer;
2453     function getIsolation(): Cardinal;
2454     function getPerf(): PerformanceInfoPtr;
2455     end;
2456    
2457     ITraceTransactionImpl = class(ITraceTransaction)
2458     constructor create;
2459    
2460     function getTransactionID(): Int64; virtual; abstract;
2461     function getReadOnly(): Boolean; virtual; abstract;
2462     function getWait(): Integer; virtual; abstract;
2463     function getIsolation(): Cardinal; virtual; abstract;
2464     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2465     end;
2466    
2467     TraceParamsVTable = class(VersionedVTable)
2468     getCount: ITraceParams_getCountPtr;
2469     getParam: ITraceParams_getParamPtr;
2470     end;
2471    
2472     ITraceParams = class(IVersioned)
2473     const VERSION = 2;
2474    
2475     function getCount(): Cardinal;
2476     function getParam(idx: Cardinal): dscPtr;
2477     end;
2478    
2479     ITraceParamsImpl = class(ITraceParams)
2480     constructor create;
2481    
2482     function getCount(): Cardinal; virtual; abstract;
2483     function getParam(idx: Cardinal): dscPtr; virtual; abstract;
2484     end;
2485    
2486     TraceStatementVTable = class(VersionedVTable)
2487     getStmtID: ITraceStatement_getStmtIDPtr;
2488     getPerf: ITraceStatement_getPerfPtr;
2489     end;
2490    
2491     ITraceStatement = class(IVersioned)
2492     const VERSION = 2;
2493    
2494     function getStmtID(): Int64;
2495     function getPerf(): PerformanceInfoPtr;
2496     end;
2497    
2498     ITraceStatementImpl = class(ITraceStatement)
2499     constructor create;
2500    
2501     function getStmtID(): Int64; virtual; abstract;
2502     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2503     end;
2504    
2505     TraceSQLStatementVTable = class(TraceStatementVTable)
2506     getText: ITraceSQLStatement_getTextPtr;
2507     getPlan: ITraceSQLStatement_getPlanPtr;
2508     getInputs: ITraceSQLStatement_getInputsPtr;
2509     getTextUTF8: ITraceSQLStatement_getTextUTF8Ptr;
2510     getExplainedPlan: ITraceSQLStatement_getExplainedPlanPtr;
2511     end;
2512    
2513     ITraceSQLStatement = class(ITraceStatement)
2514     const VERSION = 7;
2515    
2516     function getText(): PAnsiChar;
2517     function getPlan(): PAnsiChar;
2518     function getInputs(): ITraceParams;
2519     function getTextUTF8(): PAnsiChar;
2520     function getExplainedPlan(): PAnsiChar;
2521     end;
2522    
2523     ITraceSQLStatementImpl = class(ITraceSQLStatement)
2524     constructor create;
2525    
2526     function getStmtID(): Int64; virtual; abstract;
2527     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2528     function getText(): PAnsiChar; virtual; abstract;
2529     function getPlan(): PAnsiChar; virtual; abstract;
2530     function getInputs(): ITraceParams; virtual; abstract;
2531     function getTextUTF8(): PAnsiChar; virtual; abstract;
2532     function getExplainedPlan(): PAnsiChar; virtual; abstract;
2533     end;
2534    
2535     TraceBLRStatementVTable = class(TraceStatementVTable)
2536     getData: ITraceBLRStatement_getDataPtr;
2537     getDataLength: ITraceBLRStatement_getDataLengthPtr;
2538     getText: ITraceBLRStatement_getTextPtr;
2539     end;
2540    
2541     ITraceBLRStatement = class(ITraceStatement)
2542     const VERSION = 5;
2543    
2544     function getData(): BytePtr;
2545     function getDataLength(): Cardinal;
2546     function getText(): PAnsiChar;
2547     end;
2548    
2549     ITraceBLRStatementImpl = class(ITraceBLRStatement)
2550     constructor create;
2551    
2552     function getStmtID(): Int64; virtual; abstract;
2553     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2554     function getData(): BytePtr; virtual; abstract;
2555     function getDataLength(): Cardinal; virtual; abstract;
2556     function getText(): PAnsiChar; virtual; abstract;
2557     end;
2558    
2559     TraceDYNRequestVTable = class(VersionedVTable)
2560     getData: ITraceDYNRequest_getDataPtr;
2561     getDataLength: ITraceDYNRequest_getDataLengthPtr;
2562     getText: ITraceDYNRequest_getTextPtr;
2563     end;
2564    
2565     ITraceDYNRequest = class(IVersioned)
2566     const VERSION = 3;
2567    
2568     function getData(): BytePtr;
2569     function getDataLength(): Cardinal;
2570     function getText(): PAnsiChar;
2571     end;
2572    
2573     ITraceDYNRequestImpl = class(ITraceDYNRequest)
2574     constructor create;
2575    
2576     function getData(): BytePtr; virtual; abstract;
2577     function getDataLength(): Cardinal; virtual; abstract;
2578     function getText(): PAnsiChar; virtual; abstract;
2579     end;
2580    
2581     TraceContextVariableVTable = class(VersionedVTable)
2582     getNameSpace: ITraceContextVariable_getNameSpacePtr;
2583     getVarName: ITraceContextVariable_getVarNamePtr;
2584     getVarValue: ITraceContextVariable_getVarValuePtr;
2585     end;
2586    
2587     ITraceContextVariable = class(IVersioned)
2588     const VERSION = 3;
2589    
2590     function getNameSpace(): PAnsiChar;
2591     function getVarName(): PAnsiChar;
2592     function getVarValue(): PAnsiChar;
2593     end;
2594    
2595     ITraceContextVariableImpl = class(ITraceContextVariable)
2596     constructor create;
2597    
2598     function getNameSpace(): PAnsiChar; virtual; abstract;
2599     function getVarName(): PAnsiChar; virtual; abstract;
2600     function getVarValue(): PAnsiChar; virtual; abstract;
2601     end;
2602    
2603     TraceProcedureVTable = class(VersionedVTable)
2604     getProcName: ITraceProcedure_getProcNamePtr;
2605     getInputs: ITraceProcedure_getInputsPtr;
2606     getPerf: ITraceProcedure_getPerfPtr;
2607     end;
2608    
2609     ITraceProcedure = class(IVersioned)
2610     const VERSION = 3;
2611    
2612     function getProcName(): PAnsiChar;
2613     function getInputs(): ITraceParams;
2614     function getPerf(): PerformanceInfoPtr;
2615     end;
2616    
2617     ITraceProcedureImpl = class(ITraceProcedure)
2618     constructor create;
2619    
2620     function getProcName(): PAnsiChar; virtual; abstract;
2621     function getInputs(): ITraceParams; virtual; abstract;
2622     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2623     end;
2624    
2625     TraceFunctionVTable = class(VersionedVTable)
2626     getFuncName: ITraceFunction_getFuncNamePtr;
2627     getInputs: ITraceFunction_getInputsPtr;
2628     getResult: ITraceFunction_getResultPtr;
2629     getPerf: ITraceFunction_getPerfPtr;
2630     end;
2631    
2632     ITraceFunction = class(IVersioned)
2633     const VERSION = 4;
2634    
2635     function getFuncName(): PAnsiChar;
2636     function getInputs(): ITraceParams;
2637     function getResult(): ITraceParams;
2638     function getPerf(): PerformanceInfoPtr;
2639     end;
2640    
2641     ITraceFunctionImpl = class(ITraceFunction)
2642     constructor create;
2643    
2644     function getFuncName(): PAnsiChar; virtual; abstract;
2645     function getInputs(): ITraceParams; virtual; abstract;
2646     function getResult(): ITraceParams; virtual; abstract;
2647     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2648     end;
2649    
2650     TraceTriggerVTable = class(VersionedVTable)
2651     getTriggerName: ITraceTrigger_getTriggerNamePtr;
2652     getRelationName: ITraceTrigger_getRelationNamePtr;
2653     getAction: ITraceTrigger_getActionPtr;
2654     getWhich: ITraceTrigger_getWhichPtr;
2655     getPerf: ITraceTrigger_getPerfPtr;
2656     end;
2657    
2658     ITraceTrigger = class(IVersioned)
2659     const VERSION = 5;
2660     const TYPE_ALL = Cardinal(0);
2661     const TYPE_BEFORE = Cardinal(1);
2662     const TYPE_AFTER = Cardinal(2);
2663    
2664     function getTriggerName(): PAnsiChar;
2665     function getRelationName(): PAnsiChar;
2666     function getAction(): Integer;
2667     function getWhich(): Integer;
2668     function getPerf(): PerformanceInfoPtr;
2669     end;
2670    
2671     ITraceTriggerImpl = class(ITraceTrigger)
2672     constructor create;
2673    
2674     function getTriggerName(): PAnsiChar; virtual; abstract;
2675     function getRelationName(): PAnsiChar; virtual; abstract;
2676     function getAction(): Integer; virtual; abstract;
2677     function getWhich(): Integer; virtual; abstract;
2678     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2679     end;
2680    
2681     TraceServiceConnectionVTable = class(TraceConnectionVTable)
2682     getServiceID: ITraceServiceConnection_getServiceIDPtr;
2683     getServiceMgr: ITraceServiceConnection_getServiceMgrPtr;
2684     getServiceName: ITraceServiceConnection_getServiceNamePtr;
2685     end;
2686    
2687     ITraceServiceConnection = class(ITraceConnection)
2688     const VERSION = 12;
2689    
2690     function getServiceID(): Pointer;
2691     function getServiceMgr(): PAnsiChar;
2692     function getServiceName(): PAnsiChar;
2693     end;
2694    
2695     ITraceServiceConnectionImpl = class(ITraceServiceConnection)
2696     constructor create;
2697    
2698     function getKind(): Cardinal; virtual; abstract;
2699     function getProcessID(): Integer; virtual; abstract;
2700     function getUserName(): PAnsiChar; virtual; abstract;
2701     function getRoleName(): PAnsiChar; virtual; abstract;
2702     function getCharSet(): PAnsiChar; virtual; abstract;
2703     function getRemoteProtocol(): PAnsiChar; virtual; abstract;
2704     function getRemoteAddress(): PAnsiChar; virtual; abstract;
2705     function getRemoteProcessID(): Integer; virtual; abstract;
2706     function getRemoteProcessName(): PAnsiChar; virtual; abstract;
2707     function getServiceID(): Pointer; virtual; abstract;
2708     function getServiceMgr(): PAnsiChar; virtual; abstract;
2709     function getServiceName(): PAnsiChar; virtual; abstract;
2710     end;
2711    
2712     TraceStatusVectorVTable = class(VersionedVTable)
2713     hasError: ITraceStatusVector_hasErrorPtr;
2714     hasWarning: ITraceStatusVector_hasWarningPtr;
2715     getStatus: ITraceStatusVector_getStatusPtr;
2716     getText: ITraceStatusVector_getTextPtr;
2717     end;
2718    
2719     ITraceStatusVector = class(IVersioned)
2720     const VERSION = 4;
2721    
2722     function hasError(): Boolean;
2723     function hasWarning(): Boolean;
2724     function getStatus(): IStatus;
2725     function getText(): PAnsiChar;
2726     end;
2727    
2728     ITraceStatusVectorImpl = class(ITraceStatusVector)
2729     constructor create;
2730    
2731     function hasError(): Boolean; virtual; abstract;
2732     function hasWarning(): Boolean; virtual; abstract;
2733     function getStatus(): IStatus; virtual; abstract;
2734     function getText(): PAnsiChar; virtual; abstract;
2735     end;
2736    
2737     TraceSweepInfoVTable = class(VersionedVTable)
2738     getOIT: ITraceSweepInfo_getOITPtr;
2739     getOST: ITraceSweepInfo_getOSTPtr;
2740     getOAT: ITraceSweepInfo_getOATPtr;
2741     getNext: ITraceSweepInfo_getNextPtr;
2742     getPerf: ITraceSweepInfo_getPerfPtr;
2743     end;
2744    
2745     ITraceSweepInfo = class(IVersioned)
2746     const VERSION = 5;
2747    
2748     function getOIT(): Int64;
2749     function getOST(): Int64;
2750     function getOAT(): Int64;
2751     function getNext(): Int64;
2752     function getPerf(): PerformanceInfoPtr;
2753     end;
2754    
2755     ITraceSweepInfoImpl = class(ITraceSweepInfo)
2756     constructor create;
2757    
2758     function getOIT(): Int64; virtual; abstract;
2759     function getOST(): Int64; virtual; abstract;
2760     function getOAT(): Int64; virtual; abstract;
2761     function getNext(): Int64; virtual; abstract;
2762     function getPerf(): PerformanceInfoPtr; virtual; abstract;
2763     end;
2764    
2765     TraceLogWriterVTable = class(ReferenceCountedVTable)
2766     write: ITraceLogWriter_writePtr;
2767     end;
2768    
2769     ITraceLogWriter = class(IReferenceCounted)
2770     const VERSION = 3;
2771    
2772     function write(buf: Pointer; size: Cardinal): Cardinal;
2773     end;
2774    
2775     ITraceLogWriterImpl = class(ITraceLogWriter)
2776     constructor create;
2777    
2778     procedure addRef(); virtual; abstract;
2779     function release(): Integer; virtual; abstract;
2780     function write(buf: Pointer; size: Cardinal): Cardinal; virtual; abstract;
2781     end;
2782    
2783     TraceInitInfoVTable = class(VersionedVTable)
2784     getConfigText: ITraceInitInfo_getConfigTextPtr;
2785     getTraceSessionID: ITraceInitInfo_getTraceSessionIDPtr;
2786     getTraceSessionName: ITraceInitInfo_getTraceSessionNamePtr;
2787     getFirebirdRootDirectory: ITraceInitInfo_getFirebirdRootDirectoryPtr;
2788     getDatabaseName: ITraceInitInfo_getDatabaseNamePtr;
2789     getConnection: ITraceInitInfo_getConnectionPtr;
2790     getLogWriter: ITraceInitInfo_getLogWriterPtr;
2791     end;
2792    
2793     ITraceInitInfo = class(IVersioned)
2794     const VERSION = 7;
2795    
2796     function getConfigText(): PAnsiChar;
2797     function getTraceSessionID(): Integer;
2798     function getTraceSessionName(): PAnsiChar;
2799     function getFirebirdRootDirectory(): PAnsiChar;
2800     function getDatabaseName(): PAnsiChar;
2801     function getConnection(): ITraceDatabaseConnection;
2802     function getLogWriter(): ITraceLogWriter;
2803     end;
2804    
2805     ITraceInitInfoImpl = class(ITraceInitInfo)
2806     constructor create;
2807    
2808     function getConfigText(): PAnsiChar; virtual; abstract;
2809     function getTraceSessionID(): Integer; virtual; abstract;
2810     function getTraceSessionName(): PAnsiChar; virtual; abstract;
2811     function getFirebirdRootDirectory(): PAnsiChar; virtual; abstract;
2812     function getDatabaseName(): PAnsiChar; virtual; abstract;
2813     function getConnection(): ITraceDatabaseConnection; virtual; abstract;
2814     function getLogWriter(): ITraceLogWriter; virtual; abstract;
2815     end;
2816    
2817     TracePluginVTable = class(ReferenceCountedVTable)
2818     trace_get_error: ITracePlugin_trace_get_errorPtr;
2819     trace_attach: ITracePlugin_trace_attachPtr;
2820     trace_detach: ITracePlugin_trace_detachPtr;
2821     trace_transaction_start: ITracePlugin_trace_transaction_startPtr;
2822     trace_transaction_end: ITracePlugin_trace_transaction_endPtr;
2823     trace_proc_execute: ITracePlugin_trace_proc_executePtr;
2824     trace_trigger_execute: ITracePlugin_trace_trigger_executePtr;
2825     trace_set_context: ITracePlugin_trace_set_contextPtr;
2826     trace_dsql_prepare: ITracePlugin_trace_dsql_preparePtr;
2827     trace_dsql_free: ITracePlugin_trace_dsql_freePtr;
2828     trace_dsql_execute: ITracePlugin_trace_dsql_executePtr;
2829     trace_blr_compile: ITracePlugin_trace_blr_compilePtr;
2830     trace_blr_execute: ITracePlugin_trace_blr_executePtr;
2831     trace_dyn_execute: ITracePlugin_trace_dyn_executePtr;
2832     trace_service_attach: ITracePlugin_trace_service_attachPtr;
2833     trace_service_start: ITracePlugin_trace_service_startPtr;
2834     trace_service_query: ITracePlugin_trace_service_queryPtr;
2835     trace_service_detach: ITracePlugin_trace_service_detachPtr;
2836     trace_event_error: ITracePlugin_trace_event_errorPtr;
2837     trace_event_sweep: ITracePlugin_trace_event_sweepPtr;
2838     trace_func_execute: ITracePlugin_trace_func_executePtr;
2839     end;
2840    
2841     ITracePlugin = class(IReferenceCounted)
2842     const VERSION = 23;
2843     const RESULT_SUCCESS = Cardinal(0);
2844     const RESULT_FAILED = Cardinal(1);
2845     const RESULT_UNAUTHORIZED = Cardinal(2);
2846     const SWEEP_STATE_STARTED = Cardinal(1);
2847     const SWEEP_STATE_FINISHED = Cardinal(2);
2848     const SWEEP_STATE_FAILED = Cardinal(3);
2849     const SWEEP_STATE_PROGRESS = Cardinal(4);
2850    
2851     function trace_get_error(): PAnsiChar;
2852     function trace_attach(connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean;
2853     function trace_detach(connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean;
2854     function trace_transaction_start(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean;
2855     function trace_transaction_end(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean;
2856     function trace_proc_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean;
2857     function trace_trigger_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean;
2858     function trace_set_context(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean;
2859     function trace_dsql_prepare(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean;
2860     function trace_dsql_free(connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean;
2861     function trace_dsql_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean;
2862     function trace_blr_compile(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean;
2863     function trace_blr_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean;
2864     function trace_dyn_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean;
2865     function trace_service_attach(service: ITraceServiceConnection; att_result: Cardinal): Boolean;
2866     function trace_service_start(service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean;
2867     function trace_service_query(service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean;
2868     function trace_service_detach(service: ITraceServiceConnection; detach_result: Cardinal): Boolean;
2869     function trace_event_error(connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean;
2870     function trace_event_sweep(connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean;
2871     function trace_func_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean;
2872     end;
2873    
2874     ITracePluginImpl = class(ITracePlugin)
2875     constructor create;
2876    
2877     procedure addRef(); virtual; abstract;
2878     function release(): Integer; virtual; abstract;
2879     function trace_get_error(): PAnsiChar; virtual; abstract;
2880     function trace_attach(connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean; virtual; abstract;
2881     function trace_detach(connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean; virtual; abstract;
2882     function trace_transaction_start(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean; virtual; abstract;
2883     function trace_transaction_end(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean; virtual; abstract;
2884     function trace_proc_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean; virtual; abstract;
2885     function trace_trigger_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean; virtual; abstract;
2886     function trace_set_context(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean; virtual; abstract;
2887     function trace_dsql_prepare(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean; virtual; abstract;
2888     function trace_dsql_free(connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean; virtual; abstract;
2889     function trace_dsql_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean; virtual; abstract;
2890     function trace_blr_compile(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean; virtual; abstract;
2891     function trace_blr_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean; virtual; abstract;
2892     function trace_dyn_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean; virtual; abstract;
2893     function trace_service_attach(service: ITraceServiceConnection; att_result: Cardinal): Boolean; virtual; abstract;
2894     function trace_service_start(service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean; virtual; abstract;
2895     function trace_service_query(service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean; virtual; abstract;
2896     function trace_service_detach(service: ITraceServiceConnection; detach_result: Cardinal): Boolean; virtual; abstract;
2897     function trace_event_error(connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean; virtual; abstract;
2898     function trace_event_sweep(connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean; virtual; abstract;
2899     function trace_func_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean; virtual; abstract;
2900     end;
2901    
2902     TraceFactoryVTable = class(PluginBaseVTable)
2903     trace_needs: ITraceFactory_trace_needsPtr;
2904     trace_create: ITraceFactory_trace_createPtr;
2905     end;
2906    
2907     ITraceFactory = class(IPluginBase)
2908     const VERSION = 6;
2909     const TRACE_EVENT_ATTACH = Cardinal(0);
2910     const TRACE_EVENT_DETACH = Cardinal(1);
2911     const TRACE_EVENT_TRANSACTION_START = Cardinal(2);
2912     const TRACE_EVENT_TRANSACTION_END = Cardinal(3);
2913     const TRACE_EVENT_SET_CONTEXT = Cardinal(4);
2914     const TRACE_EVENT_PROC_EXECUTE = Cardinal(5);
2915     const TRACE_EVENT_TRIGGER_EXECUTE = Cardinal(6);
2916     const TRACE_EVENT_DSQL_PREPARE = Cardinal(7);
2917     const TRACE_EVENT_DSQL_FREE = Cardinal(8);
2918     const TRACE_EVENT_DSQL_EXECUTE = Cardinal(9);
2919     const TRACE_EVENT_BLR_COMPILE = Cardinal(10);
2920     const TRACE_EVENT_BLR_EXECUTE = Cardinal(11);
2921     const TRACE_EVENT_DYN_EXECUTE = Cardinal(12);
2922     const TRACE_EVENT_SERVICE_ATTACH = Cardinal(13);
2923     const TRACE_EVENT_SERVICE_START = Cardinal(14);
2924     const TRACE_EVENT_SERVICE_QUERY = Cardinal(15);
2925     const TRACE_EVENT_SERVICE_DETACH = Cardinal(16);
2926     const TRACE_EVENT_ERROR = Cardinal(17);
2927     const TRACE_EVENT_SWEEP = Cardinal(18);
2928     const TRACE_EVENT_FUNC_EXECUTE = Cardinal(19);
2929     const TRACE_EVENT_MAX = Cardinal(20);
2930    
2931     function trace_needs(): QWord;
2932     function trace_create(status: IStatus; init_info: ITraceInitInfo): ITracePlugin;
2933     end;
2934    
2935     ITraceFactoryImpl = class(ITraceFactory)
2936     constructor create;
2937    
2938     procedure addRef(); virtual; abstract;
2939     function release(): Integer; virtual; abstract;
2940     procedure setOwner(r: IReferenceCounted); virtual; abstract;
2941     function getOwner(): IReferenceCounted; virtual; abstract;
2942     function trace_needs(): QWord; virtual; abstract;
2943     function trace_create(status: IStatus; init_info: ITraceInitInfo): ITracePlugin; virtual; abstract;
2944     end;
2945    
2946     UdrFunctionFactoryVTable = class(DisposableVTable)
2947     setup: IUdrFunctionFactory_setupPtr;
2948     newItem: IUdrFunctionFactory_newItemPtr;
2949     end;
2950    
2951     IUdrFunctionFactory = class(IDisposable)
2952     const VERSION = 3;
2953    
2954     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
2955     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction;
2956     end;
2957    
2958     IUdrFunctionFactoryImpl = class(IUdrFunctionFactory)
2959     constructor create;
2960    
2961     procedure dispose(); virtual; abstract;
2962     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); virtual; abstract;
2963     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction; virtual; abstract;
2964     end;
2965    
2966     UdrProcedureFactoryVTable = class(DisposableVTable)
2967     setup: IUdrProcedureFactory_setupPtr;
2968     newItem: IUdrProcedureFactory_newItemPtr;
2969     end;
2970    
2971     IUdrProcedureFactory = class(IDisposable)
2972     const VERSION = 3;
2973    
2974     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
2975     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure;
2976     end;
2977    
2978     IUdrProcedureFactoryImpl = class(IUdrProcedureFactory)
2979     constructor create;
2980    
2981     procedure dispose(); virtual; abstract;
2982     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); virtual; abstract;
2983     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure; virtual; abstract;
2984     end;
2985    
2986     UdrTriggerFactoryVTable = class(DisposableVTable)
2987     setup: IUdrTriggerFactory_setupPtr;
2988     newItem: IUdrTriggerFactory_newItemPtr;
2989     end;
2990    
2991     IUdrTriggerFactory = class(IDisposable)
2992     const VERSION = 3;
2993    
2994     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder);
2995     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger;
2996     end;
2997    
2998     IUdrTriggerFactoryImpl = class(IUdrTriggerFactory)
2999     constructor create;
3000    
3001     procedure dispose(); virtual; abstract;
3002     procedure setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder); virtual; abstract;
3003     function newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger; virtual; abstract;
3004     end;
3005    
3006     UdrPluginVTable = class(VersionedVTable)
3007     getMaster: IUdrPlugin_getMasterPtr;
3008     registerFunction: IUdrPlugin_registerFunctionPtr;
3009     registerProcedure: IUdrPlugin_registerProcedurePtr;
3010     registerTrigger: IUdrPlugin_registerTriggerPtr;
3011     end;
3012    
3013     IUdrPlugin = class(IVersioned)
3014     const VERSION = 4;
3015    
3016     function getMaster(): IMaster;
3017     procedure registerFunction(status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory);
3018     procedure registerProcedure(status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory);
3019     procedure registerTrigger(status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory);
3020     end;
3021    
3022     IUdrPluginImpl = class(IUdrPlugin)
3023     constructor create;
3024    
3025     function getMaster(): IMaster; virtual; abstract;
3026     procedure registerFunction(status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory); virtual; abstract;
3027     procedure registerProcedure(status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory); virtual; abstract;
3028     procedure registerTrigger(status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory); virtual; abstract;
3029     end;
3030    
3031     // function fb_get_master_interface : IMaster; cdecl; external 'fbclient';
3032    
3033     const
3034     { isc_dpb_version1 = byte(1);
3035     isc_dpb_version2 = byte(2);
3036     isc_dpb_cdd_pathname = byte(1);
3037     isc_dpb_allocation = byte(2);
3038     isc_dpb_journal = byte(3);
3039     isc_dpb_page_size = byte(4);
3040     isc_dpb_num_buffers = byte(5);
3041     isc_dpb_buffer_length = byte(6);
3042     isc_dpb_debug = byte(7);
3043     isc_dpb_garbage_collect = byte(8);
3044     isc_dpb_verify = byte(9);
3045     isc_dpb_sweep = byte(10);
3046     isc_dpb_enable_journal = byte(11);
3047     isc_dpb_disable_journal = byte(12);
3048     isc_dpb_dbkey_scope = byte(13);
3049     isc_dpb_number_of_users = byte(14);
3050     isc_dpb_trace = byte(15);
3051     isc_dpb_no_garbage_collect = byte(16);
3052     isc_dpb_damaged = byte(17);
3053     isc_dpb_license = byte(18);
3054     isc_dpb_sys_user_name = byte(19);
3055     isc_dpb_encrypt_key = byte(20);
3056     isc_dpb_activate_shadow = byte(21);
3057     isc_dpb_sweep_interval = byte(22);
3058     isc_dpb_delete_shadow = byte(23);
3059     isc_dpb_force_write = byte(24);
3060     isc_dpb_begin_log = byte(25);
3061     isc_dpb_quit_log = byte(26);
3062     isc_dpb_no_reserve = byte(27);
3063     isc_dpb_user_name = byte(28);
3064     isc_dpb_password = byte(29);
3065     isc_dpb_password_enc = byte(30);
3066     isc_dpb_sys_user_name_enc = byte(31);
3067     isc_dpb_interp = byte(32);
3068     isc_dpb_online_dump = byte(33);
3069     isc_dpb_old_file_size = byte(34);
3070     isc_dpb_old_num_files = byte(35);
3071     isc_dpb_old_file = byte(36);
3072     isc_dpb_old_start_page = byte(37);
3073     isc_dpb_old_start_seqno = byte(38);
3074     isc_dpb_old_start_file = byte(39);
3075     isc_dpb_drop_walfile = byte(40);
3076     isc_dpb_old_dump_id = byte(41);
3077     isc_dpb_wal_backup_dir = byte(42);
3078     isc_dpb_wal_chkptlen = byte(43);
3079     isc_dpb_wal_numbufs = byte(44);
3080     isc_dpb_wal_bufsize = byte(45);
3081     isc_dpb_wal_grp_cmt_wait = byte(46);
3082     isc_dpb_lc_messages = byte(47);
3083     isc_dpb_lc_ctype = byte(48);
3084     isc_dpb_cache_manager = byte(49);
3085     isc_dpb_shutdown = byte(50);
3086     isc_dpb_online = byte(51);
3087     isc_dpb_shutdown_delay = byte(52);
3088     isc_dpb_reserved = byte(53);
3089     isc_dpb_overwrite = byte(54);
3090     isc_dpb_sec_attach = byte(55);
3091     isc_dpb_disable_wal = byte(56);
3092     isc_dpb_connect_timeout = byte(57);
3093     isc_dpb_dummy_packet_interval = byte(58);
3094     isc_dpb_gbak_attach = byte(59);
3095     isc_dpb_sql_role_name = byte(60);
3096     isc_dpb_set_page_buffers = byte(61);
3097     isc_dpb_working_directory = byte(62);
3098     isc_dpb_sql_dialect = byte(63);
3099     isc_dpb_set_db_readonly = byte(64);
3100     isc_dpb_set_db_sql_dialect = byte(65);
3101     isc_dpb_gfix_attach = byte(66);
3102     isc_dpb_gstat_attach = byte(67);
3103     isc_dpb_set_db_charset = byte(68);
3104     isc_dpb_gsec_attach = byte(69);
3105     isc_dpb_address_path = byte(70);
3106     isc_dpb_process_id = byte(71);
3107     isc_dpb_no_db_triggers = byte(72);
3108     isc_dpb_trusted_auth = byte(73);
3109     isc_dpb_process_name = byte(74);
3110     isc_dpb_trusted_role = byte(75);
3111     isc_dpb_org_filename = byte(76);
3112     isc_dpb_utf8_filename = byte(77);
3113     isc_dpb_ext_call_depth = byte(78);
3114     isc_dpb_auth_block = byte(79);
3115     isc_dpb_client_version = byte(80);
3116     isc_dpb_remote_protocol = byte(81);
3117     isc_dpb_host_name = byte(82);
3118     isc_dpb_os_user = byte(83);
3119     isc_dpb_specific_auth_data = byte(84);
3120     isc_dpb_auth_plugin_list = byte(85);
3121     isc_dpb_auth_plugin_name = byte(86);
3122     isc_dpb_config = byte(87);
3123     isc_dpb_nolinger = byte(88);
3124     isc_dpb_reset_icu = byte(89);
3125     isc_dpb_map_attach = byte(90);
3126     isc_dpb_address = byte(1);
3127     isc_dpb_addr_protocol = byte(1);
3128     isc_dpb_addr_endpoint = byte(2);
3129     isc_dpb_pages = byte(1);
3130     isc_dpb_records = byte(2);
3131     isc_dpb_indices = byte(4);
3132     isc_dpb_transactions = byte(8);
3133     isc_dpb_no_update = byte(16);
3134     isc_dpb_repair = byte(32);
3135     isc_dpb_ignore = byte(64);
3136     isc_dpb_shut_cache = $1;
3137     isc_dpb_shut_attachment = $2;
3138     isc_dpb_shut_transaction = $4;
3139     isc_dpb_shut_force = $8;
3140     isc_dpb_shut_mode_mask = $70;
3141     isc_dpb_shut_default = $0;
3142     isc_dpb_shut_normal = $10;
3143     isc_dpb_shut_multi = $20;
3144     isc_dpb_shut_single = $30;
3145     isc_dpb_shut_full = $40;
3146     RDB_system = byte(1);
3147     RDB_id_assigned = byte(2);
3148     isc_tpb_version1 = byte(1);
3149     isc_tpb_version3 = byte(3);
3150     isc_tpb_consistency = byte(1);
3151     isc_tpb_concurrency = byte(2);
3152     isc_tpb_shared = byte(3);
3153     isc_tpb_protected = byte(4);
3154     isc_tpb_exclusive = byte(5);
3155     isc_tpb_wait = byte(6);
3156     isc_tpb_nowait = byte(7);
3157     isc_tpb_read = byte(8);
3158     isc_tpb_write = byte(9);
3159     isc_tpb_lock_read = byte(10);
3160     isc_tpb_lock_write = byte(11);
3161     isc_tpb_verb_time = byte(12);
3162     isc_tpb_commit_time = byte(13);
3163     isc_tpb_ignore_limbo = byte(14);
3164     isc_tpb_read_committed = byte(15);
3165     isc_tpb_autocommit = byte(16);
3166     isc_tpb_rec_version = byte(17);
3167     isc_tpb_no_rec_version = byte(18);
3168     isc_tpb_restart_requests = byte(19);
3169     isc_tpb_no_auto_undo = byte(20);
3170     isc_tpb_lock_timeout = byte(21);
3171     isc_bpb_version1 = byte(1);
3172     isc_bpb_source_type = byte(1);
3173     isc_bpb_target_type = byte(2);
3174     isc_bpb_type = byte(3);
3175     isc_bpb_source_interp = byte(4);
3176     isc_bpb_target_interp = byte(5);
3177     isc_bpb_filter_parameter = byte(6);
3178     isc_bpb_storage = byte(7);
3179     isc_bpb_type_segmented = $0;
3180     isc_bpb_type_stream = $1;
3181     isc_bpb_storage_main = $0;
3182     isc_bpb_storage_temp = $2;
3183     isc_spb_version1 = byte(1);
3184     isc_spb_current_version = byte(2);
3185     isc_spb_version3 = byte(3);
3186     isc_spb_command_line = byte(105);
3187     isc_spb_dbname = byte(106);
3188     isc_spb_verbose = byte(107);
3189     isc_spb_options = byte(108);
3190     isc_spb_address_path = byte(109);
3191     isc_spb_process_id = byte(110);
3192     isc_spb_trusted_auth = byte(111);
3193     isc_spb_process_name = byte(112);
3194     isc_spb_trusted_role = byte(113);
3195     isc_spb_verbint = byte(114);
3196     isc_spb_auth_block = byte(115);
3197     isc_spb_auth_plugin_name = byte(116);
3198     isc_spb_auth_plugin_list = byte(117);
3199     isc_spb_utf8_filename = byte(118);
3200     isc_spb_client_version = byte(119);
3201     isc_spb_remote_protocol = byte(120);
3202     isc_spb_host_name = byte(121);
3203     isc_spb_os_user = byte(122);
3204     isc_spb_config = byte(123);
3205     isc_spb_expected_db = byte(124);
3206     isc_action_svc_backup = byte(1);
3207     isc_action_svc_restore = byte(2);
3208     isc_action_svc_repair = byte(3);
3209     isc_action_svc_add_user = byte(4);
3210     isc_action_svc_delete_user = byte(5);
3211     isc_action_svc_modify_user = byte(6);
3212     isc_action_svc_display_user = byte(7);
3213     isc_action_svc_properties = byte(8);
3214     isc_action_svc_add_license = byte(9);
3215     isc_action_svc_remove_license = byte(10);
3216     isc_action_svc_db_stats = byte(11);
3217     isc_action_svc_get_ib_log = byte(12);
3218     isc_action_svc_get_fb_log = byte(12);
3219     isc_action_svc_nbak = byte(20);
3220     isc_action_svc_nrest = byte(21);
3221     isc_action_svc_trace_start = byte(22);
3222     isc_action_svc_trace_stop = byte(23);
3223     isc_action_svc_trace_suspend = byte(24);
3224     isc_action_svc_trace_resume = byte(25);
3225     isc_action_svc_trace_list = byte(26);
3226     isc_action_svc_set_mapping = byte(27);
3227     isc_action_svc_drop_mapping = byte(28);
3228     isc_action_svc_display_user_adm = byte(29);
3229     isc_action_svc_validate = byte(30);
3230     isc_action_svc_last = byte(31);
3231     isc_info_svc_svr_db_info = byte(50);
3232     isc_info_svc_get_license = byte(51);
3233     isc_info_svc_get_license_mask = byte(52);
3234     isc_info_svc_get_config = byte(53);
3235     isc_info_svc_version = byte(54);
3236     isc_info_svc_server_version = byte(55);
3237     isc_info_svc_implementation = byte(56);
3238     isc_info_svc_capabilities = byte(57);
3239     isc_info_svc_user_dbpath = byte(58);
3240     isc_info_svc_get_env = byte(59);
3241     isc_info_svc_get_env_lock = byte(60);
3242     isc_info_svc_get_env_msg = byte(61);
3243     isc_info_svc_line = byte(62);
3244     isc_info_svc_to_eof = byte(63);
3245     isc_info_svc_timeout = byte(64);
3246     isc_info_svc_get_licensed_users = byte(65);
3247     isc_info_svc_limbo_trans = byte(66);
3248     isc_info_svc_running = byte(67);
3249     isc_info_svc_get_users = byte(68);
3250     isc_info_svc_auth_block = byte(69);
3251     isc_info_svc_stdin = byte(78);
3252     isc_spb_sec_userid = byte(5);
3253     isc_spb_sec_groupid = byte(6);
3254     isc_spb_sec_username = byte(7);
3255     isc_spb_sec_password = byte(8);
3256     isc_spb_sec_groupname = byte(9);
3257     isc_spb_sec_firstname = byte(10);
3258     isc_spb_sec_middlename = byte(11);
3259     isc_spb_sec_lastname = byte(12);
3260     isc_spb_sec_admin = byte(13);
3261     isc_spb_lic_key = byte(5);
3262     isc_spb_lic_id = byte(6);
3263     isc_spb_lic_desc = byte(7);
3264     isc_spb_bkp_file = byte(5);
3265     isc_spb_bkp_factor = byte(6);
3266     isc_spb_bkp_length = byte(7);
3267     isc_spb_bkp_skip_data = byte(8);
3268     isc_spb_bkp_stat = byte(15);
3269     isc_spb_bkp_ignore_checksums = $01;
3270     isc_spb_bkp_ignore_limbo = $02;
3271     isc_spb_bkp_metadata_only = $04;
3272     isc_spb_bkp_no_garbage_collect = $08;
3273     isc_spb_bkp_old_descriptions = $10;
3274     isc_spb_bkp_non_transportable = $20;
3275     isc_spb_bkp_convert = $40;
3276     isc_spb_bkp_expand = $80;
3277     isc_spb_bkp_no_triggers = $8000;
3278     isc_spb_prp_page_buffers = byte(5);
3279     isc_spb_prp_sweep_interval = byte(6);
3280     isc_spb_prp_shutdown_db = byte(7);
3281     isc_spb_prp_deny_new_attachments = byte(9);
3282     isc_spb_prp_deny_new_transactions = byte(10);
3283     isc_spb_prp_reserve_space = byte(11);
3284     isc_spb_prp_write_mode = byte(12);
3285     isc_spb_prp_access_mode = byte(13);
3286     isc_spb_prp_set_sql_dialect = byte(14);
3287     isc_spb_prp_activate = $0100;
3288     isc_spb_prp_db_online = $0200;
3289     isc_spb_prp_nolinger = $0400;
3290     isc_spb_prp_force_shutdown = byte(41);
3291     isc_spb_prp_attachments_shutdown = byte(42);
3292     isc_spb_prp_transactions_shutdown = byte(43);
3293     isc_spb_prp_shutdown_mode = byte(44);
3294     isc_spb_prp_online_mode = byte(45);
3295     isc_spb_prp_sm_normal = byte(0);
3296     isc_spb_prp_sm_multi = byte(1);
3297     isc_spb_prp_sm_single = byte(2);
3298     isc_spb_prp_sm_full = byte(3);
3299     isc_spb_prp_res_use_full = byte(35);
3300     isc_spb_prp_res = byte(36);
3301     isc_spb_prp_wm_async = byte(37);
3302     isc_spb_prp_wm_sync = byte(38);
3303     isc_spb_prp_am_readonly = byte(39);
3304     isc_spb_prp_am_readwrite = byte(40);
3305     isc_spb_rpr_commit_trans = byte(15);
3306     isc_spb_rpr_rollback_trans = byte(34);
3307     isc_spb_rpr_recover_two_phase = byte(17);
3308     isc_spb_tra_id = byte(18);
3309     isc_spb_single_tra_id = byte(19);
3310     isc_spb_multi_tra_id = byte(20);
3311     isc_spb_tra_state = byte(21);
3312     isc_spb_tra_state_limbo = byte(22);
3313     isc_spb_tra_state_commit = byte(23);
3314     isc_spb_tra_state_rollback = byte(24);
3315     isc_spb_tra_state_unknown = byte(25);
3316     isc_spb_tra_host_site = byte(26);
3317     isc_spb_tra_remote_site = byte(27);
3318     isc_spb_tra_db_path = byte(28);
3319     isc_spb_tra_advise = byte(29);
3320     isc_spb_tra_advise_commit = byte(30);
3321     isc_spb_tra_advise_rollback = byte(31);
3322     isc_spb_tra_advise_unknown = byte(33);
3323     isc_spb_tra_id_64 = byte(46);
3324     isc_spb_single_tra_id_64 = byte(47);
3325     isc_spb_multi_tra_id_64 = byte(48);
3326     isc_spb_rpr_validate_db = $01;
3327     isc_spb_rpr_sweep_db = $02;
3328     isc_spb_rpr_mend_db = $04;
3329     isc_spb_rpr_list_limbo_trans = $08;
3330     isc_spb_rpr_check_db = $10;
3331     isc_spb_rpr_ignore_checksum = $20;
3332     isc_spb_rpr_kill_shadows = $40;
3333     isc_spb_rpr_full = $80;
3334     isc_spb_rpr_icu = $0800;
3335     isc_spb_res_buffers = byte(9);
3336     isc_spb_res_page_size = byte(10);
3337     isc_spb_res_length = byte(11);
3338     isc_spb_res_access_mode = byte(12);
3339     isc_spb_res_fix_fss_data = byte(13);
3340     isc_spb_res_fix_fss_metadata = byte(14);
3341     isc_spb_res_deactivate_idx = $0100;
3342     isc_spb_res_no_shadow = $0200;
3343     isc_spb_res_no_validity = $0400;
3344     isc_spb_res_one_at_a_time = $0800;
3345     isc_spb_res_replace = $1000;
3346     isc_spb_res_create = $2000;
3347     isc_spb_res_use_all_space = $4000;
3348     isc_spb_val_tab_incl = byte(1);
3349     isc_spb_val_tab_excl = byte(2);
3350     isc_spb_val_idx_incl = byte(3);
3351     isc_spb_val_idx_excl = byte(4);
3352     isc_spb_val_lock_timeout = byte(5);
3353     isc_spb_num_att = byte(5);
3354     isc_spb_num_db = byte(6);
3355     isc_spb_sts_table = byte(64);
3356     isc_spb_sts_data_pages = $01;
3357     isc_spb_sts_db_log = $02;
3358     isc_spb_sts_hdr_pages = $04;
3359     isc_spb_sts_idx_pages = $08;
3360     isc_spb_sts_sys_relations = $10;
3361     isc_spb_sts_record_versions = $20;
3362     isc_spb_sts_nocreation = $80;
3363     isc_spb_sts_encryption = $100;
3364     isc_spb_nbk_level = byte(5);
3365     isc_spb_nbk_file = byte(6);
3366     isc_spb_nbk_direct = byte(7);
3367     isc_spb_nbk_no_triggers = $01;
3368     isc_spb_trc_id = byte(1);
3369     isc_spb_trc_name = byte(2);
3370     isc_spb_trc_cfg = byte(3);
3371     isc_sdl_version1 = byte(1);
3372     isc_sdl_eoc = byte(255);
3373     isc_sdl_relation = byte(2);
3374     isc_sdl_rid = byte(3);
3375     isc_sdl_field = byte(4);
3376     isc_sdl_fid = byte(5);
3377     isc_sdl_struct = byte(6);
3378     isc_sdl_variable = byte(7);
3379     isc_sdl_scalar = byte(8);
3380     isc_sdl_tiny_integer = byte(9);
3381     isc_sdl_short_integer = byte(10);
3382     isc_sdl_long_integer = byte(11);
3383     isc_sdl_add = byte(13);
3384     isc_sdl_subtract = byte(14);
3385     isc_sdl_multiply = byte(15);
3386     isc_sdl_divide = byte(16);
3387     isc_sdl_negate = byte(17);
3388     isc_sdl_begin = byte(31);
3389     isc_sdl_end = byte(32);
3390     isc_sdl_do3 = byte(33);
3391     isc_sdl_do2 = byte(34);
3392     isc_sdl_do1 = byte(35);
3393     isc_sdl_element = byte(36);
3394     isc_blob_untyped = byte(0);
3395     isc_blob_text = byte(1);
3396     isc_blob_blr = byte(2);
3397     isc_blob_acl = byte(3);
3398     isc_blob_ranges = byte(4);
3399     isc_blob_summary = byte(5);
3400     isc_blob_format = byte(6);
3401     isc_blob_tra = byte(7);
3402     isc_blob_extfile = byte(8);
3403     isc_blob_debug_info = byte(9);
3404     isc_blob_max_predefined_subtype = byte(10);
3405     fb_shut_confirmation = byte(1);
3406     fb_shut_preproviders = byte(2);
3407     fb_shut_postproviders = byte(4);
3408     fb_shut_finish = byte(8);
3409     fb_shut_exit = byte(16);
3410     fb_cancel_disable = byte(1);
3411     fb_cancel_enable = byte(2);
3412     fb_cancel_raise = byte(3);
3413     fb_cancel_abort = byte(4);
3414     fb_dbg_version = byte(1);
3415     fb_dbg_end = byte(255);
3416     fb_dbg_map_src2blr = byte(2);
3417     fb_dbg_map_varname = byte(3);
3418     fb_dbg_map_argument = byte(4);
3419     fb_dbg_subproc = byte(5);
3420     fb_dbg_subfunc = byte(6);
3421     fb_dbg_map_curname = byte(7);
3422     fb_dbg_arg_input = byte(0);
3423     fb_dbg_arg_output = byte(1);}
3424     isc_facility = 20;
3425     isc_err_base = 335544320;
3426     isc_err_factor = 1;
3427     isc_arg_end = 0; (* end of argument list *)
3428     isc_arg_gds = 1; (* generic DSRI status value *)
3429     isc_arg_string = 2; (* string argument *)
3430     isc_arg_cstring = 3; (* count & string argument *)
3431     isc_arg_number = 4; (* numeric argument (long) *)
3432     isc_arg_interpreted = 5; (* interpreted status code (string) *)
3433     isc_arg_vms = 6; (* VAX/VMS status code (long) *)
3434     isc_arg_unix = 7; (* UNIX error code *)
3435     isc_arg_domain = 8; (* Apollo/Domain error code *)
3436     isc_arg_dos = 9; (* MSDOS/OS2 error code *)
3437     { isc_arith_except = 335544321;
3438     isc_bad_dbkey = 335544322;
3439     isc_bad_db_format = 335544323;
3440     isc_bad_db_handle = 335544324;
3441     isc_bad_dpb_content = 335544325;
3442     isc_bad_dpb_form = 335544326;
3443     isc_bad_req_handle = 335544327;
3444     isc_bad_segstr_handle = 335544328;
3445     isc_bad_segstr_id = 335544329;
3446     isc_bad_tpb_content = 335544330;
3447     isc_bad_tpb_form = 335544331;
3448     isc_bad_trans_handle = 335544332;
3449     isc_bug_check = 335544333;
3450     isc_convert_error = 335544334;
3451     isc_db_corrupt = 335544335;
3452     isc_deadlock = 335544336;
3453     isc_excess_trans = 335544337;
3454     isc_from_no_match = 335544338;
3455     isc_infinap = 335544339;
3456     isc_infona = 335544340;
3457     isc_infunk = 335544341;
3458     isc_integ_fail = 335544342;
3459     isc_invalid_blr = 335544343;
3460     isc_io_error = 335544344;
3461     isc_lock_conflict = 335544345;
3462     isc_metadata_corrupt = 335544346;
3463     isc_not_valid = 335544347;
3464     isc_no_cur_rec = 335544348;
3465     isc_no_dup = 335544349;
3466     isc_no_finish = 335544350;
3467     isc_no_meta_update = 335544351;
3468     isc_no_priv = 335544352;
3469     isc_no_recon = 335544353;
3470     isc_no_record = 335544354;
3471     isc_no_segstr_close = 335544355;
3472     isc_obsolete_metadata = 335544356;
3473     isc_open_trans = 335544357;
3474     isc_port_len = 335544358;
3475     isc_read_only_field = 335544359;
3476     isc_read_only_rel = 335544360;
3477     isc_read_only_trans = 335544361;
3478     isc_read_only_view = 335544362;
3479     isc_req_no_trans = 335544363;
3480     isc_req_sync = 335544364;
3481     isc_req_wrong_db = 335544365;
3482     isc_segment = 335544366;
3483     isc_segstr_eof = 335544367;
3484     isc_segstr_no_op = 335544368;
3485     isc_segstr_no_read = 335544369;
3486     isc_segstr_no_trans = 335544370;
3487     isc_segstr_no_write = 335544371;
3488     isc_segstr_wrong_db = 335544372;
3489     isc_sys_request = 335544373;
3490     isc_stream_eof = 335544374;
3491     isc_unavailable = 335544375;
3492     isc_unres_rel = 335544376;
3493     isc_uns_ext = 335544377;
3494     isc_wish_list = 335544378;
3495     isc_wrong_ods = 335544379;
3496     isc_wronumarg = 335544380;
3497     isc_imp_exc = 335544381;
3498     isc_random = 335544382;
3499     isc_fatal_conflict = 335544383;
3500     isc_badblk = 335544384;
3501     isc_invpoolcl = 335544385;
3502     isc_nopoolids = 335544386;
3503     isc_relbadblk = 335544387;
3504     isc_blktoobig = 335544388;
3505     isc_bufexh = 335544389;
3506     isc_syntaxerr = 335544390;
3507     isc_bufinuse = 335544391;
3508     isc_bdbincon = 335544392;
3509     isc_reqinuse = 335544393;
3510     isc_badodsver = 335544394;
3511     isc_relnotdef = 335544395;
3512     isc_fldnotdef = 335544396;
3513     isc_dirtypage = 335544397;
3514     isc_waifortra = 335544398;
3515     isc_doubleloc = 335544399;
3516     isc_nodnotfnd = 335544400;
3517     isc_dupnodfnd = 335544401;
3518     isc_locnotmar = 335544402;
3519     isc_badpagtyp = 335544403;
3520     isc_corrupt = 335544404;
3521     isc_badpage = 335544405;
3522     isc_badindex = 335544406;
3523     isc_dbbnotzer = 335544407;
3524     isc_tranotzer = 335544408;
3525     isc_trareqmis = 335544409;
3526     isc_badhndcnt = 335544410;
3527     isc_wrotpbver = 335544411;
3528     isc_wroblrver = 335544412;
3529     isc_wrodpbver = 335544413;
3530     isc_blobnotsup = 335544414;
3531     isc_badrelation = 335544415;
3532     isc_nodetach = 335544416;
3533     isc_notremote = 335544417;
3534     isc_trainlim = 335544418;
3535     isc_notinlim = 335544419;
3536     isc_traoutsta = 335544420;
3537     isc_connect_reject = 335544421;
3538     isc_dbfile = 335544422;
3539     isc_orphan = 335544423;
3540     isc_no_lock_mgr = 335544424;
3541     isc_ctxinuse = 335544425;
3542     isc_ctxnotdef = 335544426;
3543     isc_datnotsup = 335544427;
3544     isc_badmsgnum = 335544428;
3545     isc_badparnum = 335544429;
3546     isc_virmemexh = 335544430;
3547     isc_blocking_signal = 335544431;
3548     isc_lockmanerr = 335544432;
3549     isc_journerr = 335544433;
3550     isc_keytoobig = 335544434;
3551     isc_nullsegkey = 335544435;
3552     isc_sqlerr = 335544436;
3553     isc_wrodynver = 335544437;
3554     isc_funnotdef = 335544438;
3555     isc_funmismat = 335544439;
3556     isc_bad_msg_vec = 335544440;
3557     isc_bad_detach = 335544441;
3558     isc_noargacc_read = 335544442;
3559     isc_noargacc_write = 335544443;
3560     isc_read_only = 335544444;
3561     isc_ext_err = 335544445;
3562     isc_non_updatable = 335544446;
3563     isc_no_rollback = 335544447;
3564     isc_bad_sec_info = 335544448;
3565     isc_invalid_sec_info = 335544449;
3566     isc_misc_interpreted = 335544450;
3567     isc_update_conflict = 335544451;
3568     isc_unlicensed = 335544452;
3569     isc_obj_in_use = 335544453;
3570     isc_nofilter = 335544454;
3571     isc_shadow_accessed = 335544455;
3572     isc_invalid_sdl = 335544456;
3573     isc_out_of_bounds = 335544457;
3574     isc_invalid_dimension = 335544458;
3575     isc_rec_in_limbo = 335544459;
3576     isc_shadow_missing = 335544460;
3577     isc_cant_validate = 335544461;
3578     isc_cant_start_journal = 335544462;
3579     isc_gennotdef = 335544463;
3580     isc_cant_start_logging = 335544464;
3581     isc_bad_segstr_type = 335544465;
3582     isc_foreign_key = 335544466;
3583     isc_high_minor = 335544467;
3584     isc_tra_state = 335544468;
3585     isc_trans_invalid = 335544469;
3586     isc_buf_invalid = 335544470;
3587     isc_indexnotdefined = 335544471;
3588     isc_login = 335544472;
3589     isc_invalid_bookmark = 335544473;
3590     isc_bad_lock_level = 335544474;
3591     isc_relation_lock = 335544475;
3592     isc_record_lock = 335544476;
3593     isc_max_idx = 335544477;
3594     isc_jrn_enable = 335544478;
3595     isc_old_failure = 335544479;
3596     isc_old_in_progress = 335544480;
3597     isc_old_no_space = 335544481;
3598     isc_no_wal_no_jrn = 335544482;
3599     isc_num_old_files = 335544483;
3600     isc_wal_file_open = 335544484;
3601     isc_bad_stmt_handle = 335544485;
3602     isc_wal_failure = 335544486;
3603     isc_walw_err = 335544487;
3604     isc_logh_small = 335544488;
3605     isc_logh_inv_version = 335544489;
3606     isc_logh_open_flag = 335544490;
3607     isc_logh_open_flag2 = 335544491;
3608     isc_logh_diff_dbname = 335544492;
3609     isc_logf_unexpected_eof = 335544493;
3610     isc_logr_incomplete = 335544494;
3611     isc_logr_header_small = 335544495;
3612     isc_logb_small = 335544496;
3613     isc_wal_illegal_attach = 335544497;
3614     isc_wal_invalid_wpb = 335544498;
3615     isc_wal_err_rollover = 335544499;
3616     isc_no_wal = 335544500;
3617     isc_drop_wal = 335544501;
3618     isc_stream_not_defined = 335544502;
3619     isc_wal_subsys_error = 335544503;
3620     isc_wal_subsys_corrupt = 335544504;
3621     isc_no_archive = 335544505;
3622     isc_shutinprog = 335544506;
3623     isc_range_in_use = 335544507;
3624     isc_range_not_found = 335544508;
3625     isc_charset_not_found = 335544509;
3626     isc_lock_timeout = 335544510;
3627     isc_prcnotdef = 335544511;
3628     isc_prcmismat = 335544512;
3629     isc_wal_bugcheck = 335544513;
3630     isc_wal_cant_expand = 335544514;
3631     isc_codnotdef = 335544515;
3632     isc_xcpnotdef = 335544516;
3633     isc_except = 335544517;
3634     isc_cache_restart = 335544518;
3635     isc_bad_lock_handle = 335544519;
3636     isc_jrn_present = 335544520;
3637     isc_wal_err_rollover2 = 335544521;
3638     isc_wal_err_logwrite = 335544522;
3639     isc_wal_err_jrn_comm = 335544523;
3640     isc_wal_err_expansion = 335544524;
3641     isc_wal_err_setup = 335544525;
3642     isc_wal_err_ww_sync = 335544526;
3643     isc_wal_err_ww_start = 335544527;
3644     isc_shutdown = 335544528;
3645     isc_existing_priv_mod = 335544529;
3646     isc_primary_key_ref = 335544530;
3647     isc_primary_key_notnull = 335544531;
3648     isc_ref_cnstrnt_notfound = 335544532;
3649     isc_foreign_key_notfound = 335544533;
3650     isc_ref_cnstrnt_update = 335544534;
3651     isc_check_cnstrnt_update = 335544535;
3652     isc_check_cnstrnt_del = 335544536;
3653     isc_integ_index_seg_del = 335544537;
3654     isc_integ_index_seg_mod = 335544538;
3655     isc_integ_index_del = 335544539;
3656     isc_integ_index_mod = 335544540;
3657     isc_check_trig_del = 335544541;
3658     isc_check_trig_update = 335544542;
3659     isc_cnstrnt_fld_del = 335544543;
3660     isc_cnstrnt_fld_rename = 335544544;
3661     isc_rel_cnstrnt_update = 335544545;
3662     isc_constaint_on_view = 335544546;
3663     isc_invld_cnstrnt_type = 335544547;
3664     isc_primary_key_exists = 335544548;
3665     isc_systrig_update = 335544549;
3666     isc_not_rel_owner = 335544550;
3667     isc_grant_obj_notfound = 335544551;
3668     isc_grant_fld_notfound = 335544552;
3669     isc_grant_nopriv = 335544553;
3670     isc_nonsql_security_rel = 335544554;
3671     isc_nonsql_security_fld = 335544555;
3672     isc_wal_cache_err = 335544556;
3673     isc_shutfail = 335544557;
3674     isc_check_constraint = 335544558;
3675     isc_bad_svc_handle = 335544559;
3676     isc_shutwarn = 335544560;
3677     isc_wrospbver = 335544561;
3678     isc_bad_spb_form = 335544562;
3679     isc_svcnotdef = 335544563;
3680     isc_no_jrn = 335544564;
3681     isc_transliteration_failed = 335544565;
3682     isc_start_cm_for_wal = 335544566;
3683     isc_wal_ovflow_log_required = 335544567;
3684     isc_text_subtype = 335544568;
3685     isc_dsql_error = 335544569;
3686     isc_dsql_command_err = 335544570;
3687     isc_dsql_constant_err = 335544571;
3688     isc_dsql_cursor_err = 335544572;
3689     isc_dsql_datatype_err = 335544573;
3690     isc_dsql_decl_err = 335544574;
3691     isc_dsql_cursor_update_err = 335544575;
3692     isc_dsql_cursor_open_err = 335544576;
3693     isc_dsql_cursor_close_err = 335544577;
3694     isc_dsql_field_err = 335544578;
3695     isc_dsql_internal_err = 335544579;
3696     isc_dsql_relation_err = 335544580;
3697     isc_dsql_procedure_err = 335544581;
3698     isc_dsql_request_err = 335544582;
3699     isc_dsql_sqlda_err = 335544583;
3700     isc_dsql_var_count_err = 335544584;
3701     isc_dsql_stmt_handle = 335544585;
3702     isc_dsql_function_err = 335544586;
3703     isc_dsql_blob_err = 335544587;
3704     isc_collation_not_found = 335544588;
3705     isc_collation_not_for_charset = 335544589;
3706     isc_dsql_dup_option = 335544590;
3707     isc_dsql_tran_err = 335544591;
3708     isc_dsql_invalid_array = 335544592;
3709     isc_dsql_max_arr_dim_exceeded = 335544593;
3710     isc_dsql_arr_range_error = 335544594;
3711     isc_dsql_trigger_err = 335544595;
3712     isc_dsql_subselect_err = 335544596;
3713     isc_dsql_crdb_prepare_err = 335544597;
3714     isc_specify_field_err = 335544598;
3715     isc_num_field_err = 335544599;
3716     isc_col_name_err = 335544600;
3717     isc_where_err = 335544601;
3718     isc_table_view_err = 335544602;
3719     isc_distinct_err = 335544603;
3720     isc_key_field_count_err = 335544604;
3721     isc_subquery_err = 335544605;
3722     isc_expression_eval_err = 335544606;
3723     isc_node_err = 335544607;
3724     isc_command_end_err = 335544608;
3725     isc_index_name = 335544609;
3726     isc_exception_name = 335544610;
3727     isc_field_name = 335544611;
3728     isc_token_err = 335544612;
3729     isc_union_err = 335544613;
3730     isc_dsql_construct_err = 335544614;
3731     isc_field_aggregate_err = 335544615;
3732     isc_field_ref_err = 335544616;
3733     isc_order_by_err = 335544617;
3734     isc_return_mode_err = 335544618;
3735     isc_extern_func_err = 335544619;
3736     isc_alias_conflict_err = 335544620;
3737     isc_procedure_conflict_error = 335544621;
3738     isc_relation_conflict_err = 335544622;
3739     isc_dsql_domain_err = 335544623;
3740     isc_idx_seg_err = 335544624;
3741     isc_node_name_err = 335544625;
3742     isc_table_name = 335544626;
3743     isc_proc_name = 335544627;
3744     isc_idx_create_err = 335544628;
3745     isc_wal_shadow_err = 335544629;
3746     isc_dependency = 335544630;
3747     isc_idx_key_err = 335544631;
3748     isc_dsql_file_length_err = 335544632;
3749     isc_dsql_shadow_number_err = 335544633;
3750     isc_dsql_token_unk_err = 335544634;
3751     isc_dsql_no_relation_alias = 335544635;
3752     isc_indexname = 335544636;
3753     isc_no_stream_plan = 335544637;
3754     isc_stream_twice = 335544638;
3755     isc_stream_not_found = 335544639;
3756     isc_collation_requires_text = 335544640;
3757     isc_dsql_domain_not_found = 335544641;
3758     isc_index_unused = 335544642;
3759     isc_dsql_self_join = 335544643;
3760     isc_stream_bof = 335544644;
3761     isc_stream_crack = 335544645;
3762     isc_db_or_file_exists = 335544646;
3763     isc_invalid_operator = 335544647;
3764     isc_conn_lost = 335544648;
3765     isc_bad_checksum = 335544649;
3766     isc_page_type_err = 335544650;
3767     isc_ext_readonly_err = 335544651;
3768     isc_sing_select_err = 335544652;
3769     isc_psw_attach = 335544653;
3770     isc_psw_start_trans = 335544654;
3771     isc_invalid_direction = 335544655;
3772     isc_dsql_var_conflict = 335544656;
3773     isc_dsql_no_blob_array = 335544657;
3774     isc_dsql_base_table = 335544658;
3775     isc_duplicate_base_table = 335544659;
3776     isc_view_alias = 335544660;
3777     isc_index_root_page_full = 335544661;
3778     isc_dsql_blob_type_unknown = 335544662;
3779     isc_req_max_clones_exceeded = 335544663;
3780     isc_dsql_duplicate_spec = 335544664;
3781     isc_unique_key_violation = 335544665;
3782     isc_srvr_version_too_old = 335544666;
3783     isc_drdb_completed_with_errs = 335544667;
3784     isc_dsql_procedure_use_err = 335544668;
3785     isc_dsql_count_mismatch = 335544669;
3786     isc_blob_idx_err = 335544670;
3787     isc_array_idx_err = 335544671;
3788     isc_key_field_err = 335544672;
3789     isc_no_delete = 335544673;
3790     isc_del_last_field = 335544674;
3791     isc_sort_err = 335544675;
3792     isc_sort_mem_err = 335544676;
3793     isc_version_err = 335544677;
3794     isc_inval_key_posn = 335544678;
3795     isc_no_segments_err = 335544679;
3796     isc_crrp_data_err = 335544680;
3797     isc_rec_size_err = 335544681;
3798     isc_dsql_field_ref = 335544682;
3799     isc_req_depth_exceeded = 335544683;
3800     isc_no_field_access = 335544684;
3801     isc_no_dbkey = 335544685;
3802     isc_jrn_format_err = 335544686;
3803     isc_jrn_file_full = 335544687;
3804     isc_dsql_open_cursor_request = 335544688;
3805     isc_ib_error = 335544689;
3806     isc_cache_redef = 335544690;
3807     isc_cache_too_small = 335544691;
3808     isc_log_redef = 335544692;
3809     isc_log_too_small = 335544693;
3810     isc_partition_too_small = 335544694;
3811     isc_partition_not_supp = 335544695;
3812     isc_log_length_spec = 335544696;
3813     isc_precision_err = 335544697;
3814     isc_scale_nogt = 335544698;
3815     isc_expec_short = 335544699;
3816     isc_expec_long = 335544700;
3817     isc_expec_ushort = 335544701;
3818     isc_escape_invalid = 335544702;
3819     isc_svcnoexe = 335544703;
3820     isc_net_lookup_err = 335544704;
3821     isc_service_unknown = 335544705;
3822     isc_host_unknown = 335544706;
3823     isc_grant_nopriv_on_base = 335544707;
3824     isc_dyn_fld_ambiguous = 335544708;
3825     isc_dsql_agg_ref_err = 335544709;
3826     isc_complex_view = 335544710;
3827     isc_unprepared_stmt = 335544711;
3828     isc_expec_positive = 335544712;
3829     isc_dsql_sqlda_value_err = 335544713;
3830     isc_invalid_array_id = 335544714;
3831     isc_extfile_uns_op = 335544715;
3832     isc_svc_in_use = 335544716;
3833     isc_err_stack_limit = 335544717;
3834     isc_invalid_key = 335544718;
3835     isc_net_init_error = 335544719;
3836     isc_loadlib_failure = 335544720;
3837     isc_network_error = 335544721;
3838     isc_net_connect_err = 335544722;
3839     isc_net_connect_listen_err = 335544723;
3840     isc_net_event_connect_err = 335544724;
3841     isc_net_event_listen_err = 335544725;
3842     isc_net_read_err = 335544726;
3843     isc_net_write_err = 335544727;
3844     isc_integ_index_deactivate = 335544728;
3845     isc_integ_deactivate_primary = 335544729;
3846     isc_cse_not_supported = 335544730;
3847     isc_tra_must_sweep = 335544731;
3848     isc_unsupported_network_drive = 335544732;
3849     isc_io_create_err = 335544733;
3850     isc_io_open_err = 335544734;
3851     isc_io_close_err = 335544735;
3852     isc_io_read_err = 335544736;
3853     isc_io_write_err = 335544737;
3854     isc_io_delete_err = 335544738;
3855     isc_io_access_err = 335544739;
3856     isc_udf_exception = 335544740;
3857     isc_lost_db_connection = 335544741;
3858     isc_no_write_user_priv = 335544742;
3859     isc_token_too_long = 335544743;
3860     isc_max_att_exceeded = 335544744;
3861     isc_login_same_as_role_name = 335544745;
3862     isc_reftable_requires_pk = 335544746;
3863     isc_usrname_too_long = 335544747;
3864     isc_password_too_long = 335544748;
3865     isc_usrname_required = 335544749;
3866     isc_password_required = 335544750;
3867     isc_bad_protocol = 335544751;
3868     isc_dup_usrname_found = 335544752;
3869     isc_usrname_not_found = 335544753;
3870     isc_error_adding_sec_record = 335544754;
3871     isc_error_modifying_sec_record = 335544755;
3872     isc_error_deleting_sec_record = 335544756;
3873     isc_error_updating_sec_db = 335544757;
3874     isc_sort_rec_size_err = 335544758;
3875     isc_bad_default_value = 335544759;
3876     isc_invalid_clause = 335544760;
3877     isc_too_many_handles = 335544761;
3878     isc_optimizer_blk_exc = 335544762;
3879     isc_invalid_string_constant = 335544763;
3880     isc_transitional_date = 335544764;
3881     isc_read_only_database = 335544765;
3882     isc_must_be_dialect_2_and_up = 335544766;
3883     isc_blob_filter_exception = 335544767;
3884     isc_exception_access_violation = 335544768;
3885     isc_exception_datatype_missalignment = 335544769;
3886     isc_exception_array_bounds_exceeded = 335544770;
3887     isc_exception_float_denormal_operand = 335544771;
3888     isc_exception_float_divide_by_zero = 335544772;
3889     isc_exception_float_inexact_result = 335544773;
3890     isc_exception_float_invalid_operand = 335544774;
3891     isc_exception_float_overflow = 335544775;
3892     isc_exception_float_stack_check = 335544776;
3893     isc_exception_float_underflow = 335544777;
3894     isc_exception_integer_divide_by_zero = 335544778;
3895     isc_exception_integer_overflow = 335544779;
3896     isc_exception_unknown = 335544780;
3897     isc_exception_stack_overflow = 335544781;
3898     isc_exception_sigsegv = 335544782;
3899     isc_exception_sigill = 335544783;
3900     isc_exception_sigbus = 335544784;
3901     isc_exception_sigfpe = 335544785;
3902     isc_ext_file_delete = 335544786;
3903     isc_ext_file_modify = 335544787;
3904     isc_adm_task_denied = 335544788;
3905     isc_extract_input_mismatch = 335544789;
3906     isc_insufficient_svc_privileges = 335544790;
3907     isc_file_in_use = 335544791;
3908     isc_service_att_err = 335544792;
3909     isc_ddl_not_allowed_by_db_sql_dial = 335544793;
3910     isc_cancelled = 335544794;
3911     isc_unexp_spb_form = 335544795;
3912     isc_sql_dialect_datatype_unsupport = 335544796;
3913     isc_svcnouser = 335544797;
3914     isc_depend_on_uncommitted_rel = 335544798;
3915     isc_svc_name_missing = 335544799;
3916     isc_too_many_contexts = 335544800;
3917     isc_datype_notsup = 335544801;
3918     isc_dialect_reset_warning = 335544802;
3919     isc_dialect_not_changed = 335544803;
3920     isc_database_create_failed = 335544804;
3921     isc_inv_dialect_specified = 335544805;
3922     isc_valid_db_dialects = 335544806;
3923     isc_sqlwarn = 335544807;
3924     isc_dtype_renamed = 335544808;
3925     isc_extern_func_dir_error = 335544809;
3926     isc_date_range_exceeded = 335544810;
3927     isc_inv_client_dialect_specified = 335544811;
3928     isc_valid_client_dialects = 335544812;
3929     isc_optimizer_between_err = 335544813;
3930     isc_service_not_supported = 335544814;
3931     isc_generator_name = 335544815;
3932     isc_udf_name = 335544816;
3933     isc_bad_limit_param = 335544817;
3934     isc_bad_skip_param = 335544818;
3935     isc_io_32bit_exceeded_err = 335544819;
3936     isc_invalid_savepoint = 335544820;
3937     isc_dsql_column_pos_err = 335544821;
3938     isc_dsql_agg_where_err = 335544822;
3939     isc_dsql_agg_group_err = 335544823;
3940     isc_dsql_agg_column_err = 335544824;
3941     isc_dsql_agg_having_err = 335544825;
3942     isc_dsql_agg_nested_err = 335544826;
3943     isc_exec_sql_invalid_arg = 335544827;
3944     isc_exec_sql_invalid_req = 335544828;
3945     isc_exec_sql_invalid_var = 335544829;
3946     isc_exec_sql_max_call_exceeded = 335544830;
3947     isc_conf_access_denied = 335544831;
3948     isc_wrong_backup_state = 335544832;
3949     isc_wal_backup_err = 335544833;
3950     isc_cursor_not_open = 335544834;
3951     isc_bad_shutdown_mode = 335544835;
3952     isc_concat_overflow = 335544836;
3953     isc_bad_substring_offset = 335544837;
3954     isc_foreign_key_target_doesnt_exist = 335544838;
3955     isc_foreign_key_references_present = 335544839;
3956     isc_no_update = 335544840;
3957     isc_cursor_already_open = 335544841;
3958     isc_stack_trace = 335544842;
3959     isc_ctx_var_not_found = 335544843;
3960     isc_ctx_namespace_invalid = 335544844;
3961     isc_ctx_too_big = 335544845;
3962     isc_ctx_bad_argument = 335544846;
3963     isc_identifier_too_long = 335544847;
3964     isc_except2 = 335544848;
3965     isc_malformed_string = 335544849;
3966     isc_prc_out_param_mismatch = 335544850;
3967     isc_command_end_err2 = 335544851;
3968     isc_partner_idx_incompat_type = 335544852;
3969     isc_bad_substring_length = 335544853;
3970     isc_charset_not_installed = 335544854;
3971     isc_collation_not_installed = 335544855;
3972     isc_att_shutdown = 335544856;
3973     isc_blobtoobig = 335544857;
3974     isc_must_have_phys_field = 335544858;
3975     isc_invalid_time_precision = 335544859;
3976     isc_blob_convert_error = 335544860;
3977     isc_array_convert_error = 335544861;
3978     isc_record_lock_not_supp = 335544862;
3979     isc_partner_idx_not_found = 335544863;
3980     isc_tra_num_exc = 335544864;
3981     isc_field_disappeared = 335544865;
3982     isc_met_wrong_gtt_scope = 335544866;
3983     isc_subtype_for_internal_use = 335544867;
3984     isc_illegal_prc_type = 335544868;
3985     isc_invalid_sort_datatype = 335544869;
3986     isc_collation_name = 335544870;
3987     isc_domain_name = 335544871;
3988     isc_domnotdef = 335544872;
3989     isc_array_max_dimensions = 335544873;
3990     isc_max_db_per_trans_allowed = 335544874;
3991     isc_bad_debug_format = 335544875;
3992     isc_bad_proc_BLR = 335544876;
3993     isc_key_too_big = 335544877;
3994     isc_concurrent_transaction = 335544878;
3995     isc_not_valid_for_var = 335544879;
3996     isc_not_valid_for = 335544880;
3997     isc_need_difference = 335544881;
3998     isc_long_login = 335544882;
3999     isc_fldnotdef2 = 335544883;
4000     isc_invalid_similar_pattern = 335544884;
4001     isc_bad_teb_form = 335544885;
4002     isc_tpb_multiple_txn_isolation = 335544886;
4003     isc_tpb_reserv_before_table = 335544887;
4004     isc_tpb_multiple_spec = 335544888;
4005     isc_tpb_option_without_rc = 335544889;
4006     isc_tpb_conflicting_options = 335544890;
4007     isc_tpb_reserv_missing_tlen = 335544891;
4008     isc_tpb_reserv_long_tlen = 335544892;
4009     isc_tpb_reserv_missing_tname = 335544893;
4010     isc_tpb_reserv_corrup_tlen = 335544894;
4011     isc_tpb_reserv_null_tlen = 335544895;
4012     isc_tpb_reserv_relnotfound = 335544896;
4013     isc_tpb_reserv_baserelnotfound = 335544897;
4014     isc_tpb_missing_len = 335544898;
4015     isc_tpb_missing_value = 335544899;
4016     isc_tpb_corrupt_len = 335544900;
4017     isc_tpb_null_len = 335544901;
4018     isc_tpb_overflow_len = 335544902;
4019     isc_tpb_invalid_value = 335544903;
4020     isc_tpb_reserv_stronger_wng = 335544904;
4021     isc_tpb_reserv_stronger = 335544905;
4022     isc_tpb_reserv_max_recursion = 335544906;
4023     isc_tpb_reserv_virtualtbl = 335544907;
4024     isc_tpb_reserv_systbl = 335544908;
4025     isc_tpb_reserv_temptbl = 335544909;
4026     isc_tpb_readtxn_after_writelock = 335544910;
4027     isc_tpb_writelock_after_readtxn = 335544911;
4028     isc_time_range_exceeded = 335544912;
4029     isc_datetime_range_exceeded = 335544913;
4030     isc_string_truncation = 335544914;
4031     isc_blob_truncation = 335544915;
4032     isc_numeric_out_of_range = 335544916;
4033     isc_shutdown_timeout = 335544917;
4034     isc_att_handle_busy = 335544918;
4035     isc_bad_udf_freeit = 335544919;
4036     isc_eds_provider_not_found = 335544920;
4037     isc_eds_connection = 335544921;
4038     isc_eds_preprocess = 335544922;
4039     isc_eds_stmt_expected = 335544923;
4040     isc_eds_prm_name_expected = 335544924;
4041     isc_eds_unclosed_comment = 335544925;
4042     isc_eds_statement = 335544926;
4043     isc_eds_input_prm_mismatch = 335544927;
4044     isc_eds_output_prm_mismatch = 335544928;
4045     isc_eds_input_prm_not_set = 335544929;
4046     isc_too_big_blr = 335544930;
4047     isc_montabexh = 335544931;
4048     isc_modnotfound = 335544932;
4049     isc_nothing_to_cancel = 335544933;
4050     isc_ibutil_not_loaded = 335544934;
4051     isc_circular_computed = 335544935;
4052     isc_psw_db_error = 335544936;
4053     isc_invalid_type_datetime_op = 335544937;
4054     isc_onlycan_add_timetodate = 335544938;
4055     isc_onlycan_add_datetotime = 335544939;
4056     isc_onlycansub_tstampfromtstamp = 335544940;
4057     isc_onlyoneop_mustbe_tstamp = 335544941;
4058     isc_invalid_extractpart_time = 335544942;
4059     isc_invalid_extractpart_date = 335544943;
4060     isc_invalidarg_extract = 335544944;
4061     isc_sysf_argmustbe_exact = 335544945;
4062     isc_sysf_argmustbe_exact_or_fp = 335544946;
4063     isc_sysf_argviolates_uuidtype = 335544947;
4064     isc_sysf_argviolates_uuidlen = 335544948;
4065     isc_sysf_argviolates_uuidfmt = 335544949;
4066     isc_sysf_argviolates_guidigits = 335544950;
4067     isc_sysf_invalid_addpart_time = 335544951;
4068     isc_sysf_invalid_add_datetime = 335544952;
4069     isc_sysf_invalid_addpart_dtime = 335544953;
4070     isc_sysf_invalid_add_dtime_rc = 335544954;
4071     isc_sysf_invalid_diff_dtime = 335544955;
4072     isc_sysf_invalid_timediff = 335544956;
4073     isc_sysf_invalid_tstamptimediff = 335544957;
4074     isc_sysf_invalid_datetimediff = 335544958;
4075     isc_sysf_invalid_diffpart = 335544959;
4076     isc_sysf_argmustbe_positive = 335544960;
4077     isc_sysf_basemustbe_positive = 335544961;
4078     isc_sysf_argnmustbe_nonneg = 335544962;
4079     isc_sysf_argnmustbe_positive = 335544963;
4080     isc_sysf_invalid_zeropowneg = 335544964;
4081     isc_sysf_invalid_negpowfp = 335544965;
4082     isc_sysf_invalid_scale = 335544966;
4083     isc_sysf_argmustbe_nonneg = 335544967;
4084     isc_sysf_binuuid_mustbe_str = 335544968;
4085     isc_sysf_binuuid_wrongsize = 335544969;
4086     isc_missing_required_spb = 335544970;
4087     isc_net_server_shutdown = 335544971;
4088     isc_bad_conn_str = 335544972;
4089     isc_bad_epb_form = 335544973;
4090     isc_no_threads = 335544974;
4091     isc_net_event_connect_timeout = 335544975;
4092     isc_sysf_argmustbe_nonzero = 335544976;
4093     isc_sysf_argmustbe_range_inc1_1 = 335544977;
4094     isc_sysf_argmustbe_gteq_one = 335544978;
4095     isc_sysf_argmustbe_range_exc1_1 = 335544979;
4096     isc_internal_rejected_params = 335544980;
4097     isc_sysf_fp_overflow = 335544981;
4098     isc_udf_fp_overflow = 335544982;
4099     isc_udf_fp_nan = 335544983;
4100     isc_instance_conflict = 335544984;
4101     isc_out_of_temp_space = 335544985;
4102     isc_eds_expl_tran_ctrl = 335544986;
4103     isc_no_trusted_spb = 335544987;
4104     isc_package_name = 335544988;
4105     isc_cannot_make_not_null = 335544989;
4106     isc_feature_removed = 335544990;
4107     isc_view_name = 335544991;
4108     isc_lock_dir_access = 335544992;
4109     isc_invalid_fetch_option = 335544993;
4110     isc_bad_fun_BLR = 335544994;
4111     isc_func_pack_not_implemented = 335544995;
4112     isc_proc_pack_not_implemented = 335544996;
4113     isc_eem_func_not_returned = 335544997;
4114     isc_eem_proc_not_returned = 335544998;
4115     isc_eem_trig_not_returned = 335544999;
4116     isc_eem_bad_plugin_ver = 335545000;
4117     isc_eem_engine_notfound = 335545001;
4118     isc_attachment_in_use = 335545002;
4119     isc_transaction_in_use = 335545003;
4120     isc_pman_cannot_load_plugin = 335545004;
4121     isc_pman_module_notfound = 335545005;
4122     isc_pman_entrypoint_notfound = 335545006;
4123     isc_pman_module_bad = 335545007;
4124     isc_pman_plugin_notfound = 335545008;
4125     isc_sysf_invalid_trig_namespace = 335545009;
4126     isc_unexpected_null = 335545010;
4127     isc_type_notcompat_blob = 335545011;
4128     isc_invalid_date_val = 335545012;
4129     isc_invalid_time_val = 335545013;
4130     isc_invalid_timestamp_val = 335545014;
4131     isc_invalid_index_val = 335545015;
4132     isc_formatted_exception = 335545016;
4133     isc_async_active = 335545017;
4134     isc_private_function = 335545018;
4135     isc_private_procedure = 335545019;
4136     isc_request_outdated = 335545020;
4137     isc_bad_events_handle = 335545021;
4138     isc_cannot_copy_stmt = 335545022;
4139     isc_invalid_boolean_usage = 335545023;
4140     isc_sysf_argscant_both_be_zero = 335545024;
4141     isc_spb_no_id = 335545025;
4142     isc_ee_blr_mismatch_null = 335545026;
4143     isc_ee_blr_mismatch_length = 335545027;
4144     isc_ss_out_of_bounds = 335545028;
4145     isc_missing_data_structures = 335545029;
4146     isc_protect_sys_tab = 335545030;
4147     isc_libtommath_generic = 335545031;
4148     isc_wroblrver2 = 335545032;
4149     isc_trunc_limits = 335545033;
4150     isc_info_access = 335545034;
4151     isc_svc_no_stdin = 335545035;
4152     isc_svc_start_failed = 335545036;
4153     isc_svc_no_switches = 335545037;
4154     isc_svc_bad_size = 335545038;
4155     isc_no_crypt_plugin = 335545039;
4156     isc_cp_name_too_long = 335545040;
4157     isc_cp_process_active = 335545041;
4158     isc_cp_already_crypted = 335545042;
4159     isc_decrypt_error = 335545043;
4160     isc_no_providers = 335545044;
4161     isc_null_spb = 335545045;
4162     isc_max_args_exceeded = 335545046;
4163     isc_ee_blr_mismatch_names_count = 335545047;
4164     isc_ee_blr_mismatch_name_not_found = 335545048;
4165     isc_bad_result_set = 335545049;
4166     isc_wrong_message_length = 335545050;
4167     isc_no_output_format = 335545051;
4168     isc_item_finish = 335545052;
4169     isc_miss_config = 335545053;
4170     isc_conf_line = 335545054;
4171     isc_conf_include = 335545055;
4172     isc_include_depth = 335545056;
4173     isc_include_miss = 335545057;
4174     isc_protect_ownership = 335545058;
4175     isc_badvarnum = 335545059;
4176     isc_sec_context = 335545060;
4177     isc_multi_segment = 335545061;
4178     isc_login_changed = 335545062;
4179     isc_auth_handshake_limit = 335545063;
4180     isc_wirecrypt_incompatible = 335545064;
4181     isc_miss_wirecrypt = 335545065;
4182     isc_wirecrypt_key = 335545066;
4183     isc_wirecrypt_plugin = 335545067;
4184     isc_secdb_name = 335545068;
4185     isc_auth_data = 335545069;
4186     isc_auth_datalength = 335545070;
4187     isc_info_unprepared_stmt = 335545071;
4188     isc_idx_key_value = 335545072;
4189     isc_forupdate_virtualtbl = 335545073;
4190     isc_forupdate_systbl = 335545074;
4191     isc_forupdate_temptbl = 335545075;
4192     isc_cant_modify_sysobj = 335545076;
4193     isc_server_misconfigured = 335545077;
4194     isc_alter_role = 335545078;
4195     isc_map_already_exists = 335545079;
4196     isc_map_not_exists = 335545080;
4197     isc_map_load = 335545081;
4198     isc_map_aster = 335545082;
4199     isc_map_multi = 335545083;
4200     isc_map_undefined = 335545084;
4201     isc_baddpb_damaged_mode = 335545085;
4202     isc_baddpb_buffers_range = 335545086;
4203     isc_baddpb_temp_buffers = 335545087;
4204     isc_map_nodb = 335545088;
4205     isc_map_notable = 335545089;
4206     isc_miss_trusted_role = 335545090;
4207     isc_set_invalid_role = 335545091;
4208     isc_cursor_not_positioned = 335545092;
4209     isc_dup_attribute = 335545093;
4210     isc_dyn_no_priv = 335545094;
4211     isc_dsql_cant_grant_option = 335545095;
4212     isc_read_conflict = 335545096;
4213     isc_crdb_load = 335545097;
4214     isc_crdb_nodb = 335545098;
4215     isc_crdb_notable = 335545099;
4216     isc_interface_version_too_old = 335545100;
4217     isc_fun_param_mismatch = 335545101;
4218     isc_savepoint_backout_err = 335545102;
4219     isc_domain_primary_key_notnull = 335545103;
4220     isc_invalid_attachment_charset = 335545104;
4221     isc_map_down = 335545105;
4222     isc_login_error = 335545106;
4223     isc_already_opened = 335545107;
4224     isc_bad_crypt_key = 335545108;
4225     isc_encrypt_error = 335545109;
4226     isc_gfix_db_name = 335740929;
4227     isc_gfix_invalid_sw = 335740930;
4228     isc_gfix_incmp_sw = 335740932;
4229     isc_gfix_replay_req = 335740933;
4230     isc_gfix_pgbuf_req = 335740934;
4231     isc_gfix_val_req = 335740935;
4232     isc_gfix_pval_req = 335740936;
4233     isc_gfix_trn_req = 335740937;
4234     isc_gfix_full_req = 335740940;
4235     isc_gfix_usrname_req = 335740941;
4236     isc_gfix_pass_req = 335740942;
4237     isc_gfix_subs_name = 335740943;
4238     isc_gfix_wal_req = 335740944;
4239     isc_gfix_sec_req = 335740945;
4240     isc_gfix_nval_req = 335740946;
4241     isc_gfix_type_shut = 335740947;
4242     isc_gfix_retry = 335740948;
4243     isc_gfix_retry_db = 335740951;
4244     isc_gfix_exceed_max = 335740991;
4245     isc_gfix_corrupt_pool = 335740992;
4246     isc_gfix_mem_exhausted = 335740993;
4247     isc_gfix_bad_pool = 335740994;
4248     isc_gfix_trn_not_valid = 335740995;
4249     isc_gfix_unexp_eoi = 335741012;
4250     isc_gfix_recon_fail = 335741018;
4251     isc_gfix_trn_unknown = 335741036;
4252     isc_gfix_mode_req = 335741038;
4253     isc_gfix_pzval_req = 335741042;
4254     isc_dsql_dbkey_from_non_table = 336003074;
4255     isc_dsql_transitional_numeric = 336003075;
4256     isc_dsql_dialect_warning_expr = 336003076;
4257     isc_sql_db_dialect_dtype_unsupport = 336003077;
4258     isc_sql_dialect_conflict_num = 336003079;
4259     isc_dsql_warning_number_ambiguous = 336003080;
4260     isc_dsql_warning_number_ambiguous1 = 336003081;
4261     isc_dsql_warn_precision_ambiguous = 336003082;
4262     isc_dsql_warn_precision_ambiguous1 = 336003083;
4263     isc_dsql_warn_precision_ambiguous2 = 336003084;
4264     isc_dsql_ambiguous_field_name = 336003085;
4265     isc_dsql_udf_return_pos_err = 336003086;
4266     isc_dsql_invalid_label = 336003087;
4267     isc_dsql_datatypes_not_comparable = 336003088;
4268     isc_dsql_cursor_invalid = 336003089;
4269     isc_dsql_cursor_redefined = 336003090;
4270     isc_dsql_cursor_not_found = 336003091;
4271     isc_dsql_cursor_exists = 336003092;
4272     isc_dsql_cursor_rel_ambiguous = 336003093;
4273     isc_dsql_cursor_rel_not_found = 336003094;
4274     isc_dsql_cursor_not_open = 336003095;
4275     isc_dsql_type_not_supp_ext_tab = 336003096;
4276     isc_dsql_feature_not_supported_ods = 336003097;
4277     isc_primary_key_required = 336003098;
4278     isc_upd_ins_doesnt_match_pk = 336003099;
4279     isc_upd_ins_doesnt_match_matching = 336003100;
4280     isc_upd_ins_with_complex_view = 336003101;
4281     isc_dsql_incompatible_trigger_type = 336003102;
4282     isc_dsql_db_trigger_type_cant_change = 336003103;
4283     isc_dsql_record_version_table = 336003104;
4284     isc_dsql_invalid_sqlda_version = 336003105;
4285     isc_dsql_sqlvar_index = 336003106;
4286     isc_dsql_no_sqlind = 336003107;
4287     isc_dsql_no_sqldata = 336003108;
4288     isc_dsql_no_input_sqlda = 336003109;
4289     isc_dsql_no_output_sqlda = 336003110;
4290     isc_dsql_wrong_param_num = 336003111;
4291     isc_dyn_filter_not_found = 336068645;
4292     isc_dyn_func_not_found = 336068649;
4293     isc_dyn_index_not_found = 336068656;
4294     isc_dyn_view_not_found = 336068662;
4295     isc_dyn_domain_not_found = 336068697;
4296     isc_dyn_cant_modify_auto_trig = 336068717;
4297     isc_dyn_dup_table = 336068740;
4298     isc_dyn_proc_not_found = 336068748;
4299     isc_dyn_exception_not_found = 336068752;
4300     isc_dyn_proc_param_not_found = 336068754;
4301     isc_dyn_trig_not_found = 336068755;
4302     isc_dyn_charset_not_found = 336068759;
4303     isc_dyn_collation_not_found = 336068760;
4304     isc_dyn_role_not_found = 336068763;
4305     isc_dyn_name_longer = 336068767;
4306     isc_dyn_column_does_not_exist = 336068784;
4307     isc_dyn_role_does_not_exist = 336068796;
4308     isc_dyn_no_grant_admin_opt = 336068797;
4309     isc_dyn_user_not_role_member = 336068798;
4310     isc_dyn_delete_role_failed = 336068799;
4311     isc_dyn_grant_role_to_user = 336068800;
4312     isc_dyn_inv_sql_role_name = 336068801;
4313     isc_dyn_dup_sql_role = 336068802;
4314     isc_dyn_kywd_spec_for_role = 336068803;
4315     isc_dyn_roles_not_supported = 336068804;
4316     isc_dyn_domain_name_exists = 336068812;
4317     isc_dyn_field_name_exists = 336068813;
4318     isc_dyn_dependency_exists = 336068814;
4319     isc_dyn_dtype_invalid = 336068815;
4320     isc_dyn_char_fld_too_small = 336068816;
4321     isc_dyn_invalid_dtype_conversion = 336068817;
4322     isc_dyn_dtype_conv_invalid = 336068818;
4323     isc_dyn_zero_len_id = 336068820;
4324     isc_dyn_gen_not_found = 336068822;
4325     isc_max_coll_per_charset = 336068829;
4326     isc_invalid_coll_attr = 336068830;
4327     isc_dyn_wrong_gtt_scope = 336068840;
4328     isc_dyn_coll_used_table = 336068843;
4329     isc_dyn_coll_used_domain = 336068844;
4330     isc_dyn_cannot_del_syscoll = 336068845;
4331     isc_dyn_cannot_del_def_coll = 336068846;
4332     isc_dyn_table_not_found = 336068849;
4333     isc_dyn_coll_used_procedure = 336068851;
4334     isc_dyn_scale_too_big = 336068852;
4335     isc_dyn_precision_too_small = 336068853;
4336     isc_dyn_miss_priv_warning = 336068855;
4337     isc_dyn_ods_not_supp_feature = 336068856;
4338     isc_dyn_cannot_addrem_computed = 336068857;
4339     isc_dyn_no_empty_pw = 336068858;
4340     isc_dyn_dup_index = 336068859;
4341     isc_dyn_package_not_found = 336068864;
4342     isc_dyn_schema_not_found = 336068865;
4343     isc_dyn_cannot_mod_sysproc = 336068866;
4344     isc_dyn_cannot_mod_systrig = 336068867;
4345     isc_dyn_cannot_mod_sysfunc = 336068868;
4346     isc_dyn_invalid_ddl_proc = 336068869;
4347     isc_dyn_invalid_ddl_trig = 336068870;
4348     isc_dyn_funcnotdef_package = 336068871;
4349     isc_dyn_procnotdef_package = 336068872;
4350     isc_dyn_funcsignat_package = 336068873;
4351     isc_dyn_procsignat_package = 336068874;
4352     isc_dyn_defvaldecl_package_proc = 336068875;
4353     isc_dyn_package_body_exists = 336068877;
4354     isc_dyn_invalid_ddl_func = 336068878;
4355     isc_dyn_newfc_oldsyntax = 336068879;
4356     isc_dyn_func_param_not_found = 336068886;
4357     isc_dyn_routine_param_not_found = 336068887;
4358     isc_dyn_routine_param_ambiguous = 336068888;
4359     isc_dyn_coll_used_function = 336068889;
4360     isc_dyn_domain_used_function = 336068890;
4361     isc_dyn_alter_user_no_clause = 336068891;
4362     isc_dyn_duplicate_package_item = 336068894;
4363     isc_dyn_cant_modify_sysobj = 336068895;
4364     isc_dyn_cant_use_zero_increment = 336068896;
4365     isc_dyn_cant_use_in_foreignkey = 336068897;
4366     isc_dyn_defvaldecl_package_func = 336068898;
4367     isc_gbak_unknown_switch = 336330753;
4368     isc_gbak_page_size_missing = 336330754;
4369     isc_gbak_page_size_toobig = 336330755;
4370     isc_gbak_redir_ouput_missing = 336330756;
4371     isc_gbak_switches_conflict = 336330757;
4372     isc_gbak_unknown_device = 336330758;
4373     isc_gbak_no_protection = 336330759;
4374     isc_gbak_page_size_not_allowed = 336330760;
4375     isc_gbak_multi_source_dest = 336330761;
4376     isc_gbak_filename_missing = 336330762;
4377     isc_gbak_dup_inout_names = 336330763;
4378     isc_gbak_inv_page_size = 336330764;
4379     isc_gbak_db_specified = 336330765;
4380     isc_gbak_db_exists = 336330766;
4381     isc_gbak_unk_device = 336330767;
4382     isc_gbak_blob_info_failed = 336330772;
4383     isc_gbak_unk_blob_item = 336330773;
4384     isc_gbak_get_seg_failed = 336330774;
4385     isc_gbak_close_blob_failed = 336330775;
4386     isc_gbak_open_blob_failed = 336330776;
4387     isc_gbak_put_blr_gen_id_failed = 336330777;
4388     isc_gbak_unk_type = 336330778;
4389     isc_gbak_comp_req_failed = 336330779;
4390     isc_gbak_start_req_failed = 336330780;
4391     isc_gbak_rec_failed = 336330781;
4392     isc_gbak_rel_req_failed = 336330782;
4393     isc_gbak_db_info_failed = 336330783;
4394     isc_gbak_no_db_desc = 336330784;
4395     isc_gbak_db_create_failed = 336330785;
4396     isc_gbak_decomp_len_error = 336330786;
4397     isc_gbak_tbl_missing = 336330787;
4398     isc_gbak_blob_col_missing = 336330788;
4399     isc_gbak_create_blob_failed = 336330789;
4400     isc_gbak_put_seg_failed = 336330790;
4401     isc_gbak_rec_len_exp = 336330791;
4402     isc_gbak_inv_rec_len = 336330792;
4403     isc_gbak_exp_data_type = 336330793;
4404     isc_gbak_gen_id_failed = 336330794;
4405     isc_gbak_unk_rec_type = 336330795;
4406     isc_gbak_inv_bkup_ver = 336330796;
4407     isc_gbak_missing_bkup_desc = 336330797;
4408     isc_gbak_string_trunc = 336330798;
4409     isc_gbak_cant_rest_record = 336330799;
4410     isc_gbak_send_failed = 336330800;
4411     isc_gbak_no_tbl_name = 336330801;
4412     isc_gbak_unexp_eof = 336330802;
4413     isc_gbak_db_format_too_old = 336330803;
4414     isc_gbak_inv_array_dim = 336330804;
4415     isc_gbak_xdr_len_expected = 336330807;
4416     isc_gbak_open_bkup_error = 336330817;
4417     isc_gbak_open_error = 336330818;
4418     isc_gbak_missing_block_fac = 336330934;
4419     isc_gbak_inv_block_fac = 336330935;
4420     isc_gbak_block_fac_specified = 336330936;
4421     isc_gbak_missing_username = 336330940;
4422     isc_gbak_missing_password = 336330941;
4423     isc_gbak_missing_skipped_bytes = 336330952;
4424     isc_gbak_inv_skipped_bytes = 336330953;
4425     isc_gbak_err_restore_charset = 336330965;
4426     isc_gbak_err_restore_collation = 336330967;
4427     isc_gbak_read_error = 336330972;
4428     isc_gbak_write_error = 336330973;
4429     isc_gbak_db_in_use = 336330985;
4430     isc_gbak_sysmemex = 336330990;
4431     isc_gbak_restore_role_failed = 336331002;
4432     isc_gbak_role_op_missing = 336331005;
4433     isc_gbak_page_buffers_missing = 336331010;
4434     isc_gbak_page_buffers_wrong_param = 336331011;
4435     isc_gbak_page_buffers_restore = 336331012;
4436     isc_gbak_inv_size = 336331014;
4437     isc_gbak_file_outof_sequence = 336331015;
4438     isc_gbak_join_file_missing = 336331016;
4439     isc_gbak_stdin_not_supptd = 336331017;
4440     isc_gbak_stdout_not_supptd = 336331018;
4441     isc_gbak_bkup_corrupt = 336331019;
4442     isc_gbak_unk_db_file_spec = 336331020;
4443     isc_gbak_hdr_write_failed = 336331021;
4444     isc_gbak_disk_space_ex = 336331022;
4445     isc_gbak_size_lt_min = 336331023;
4446     isc_gbak_svc_name_missing = 336331025;
4447     isc_gbak_not_ownr = 336331026;
4448     isc_gbak_mode_req = 336331031;
4449     isc_gbak_just_data = 336331033;
4450     isc_gbak_data_only = 336331034;
4451     isc_gbak_missing_interval = 336331078;
4452     isc_gbak_wrong_interval = 336331079;
4453     isc_gbak_verify_verbint = 336331081;
4454     isc_gbak_option_only_restore = 336331082;
4455     isc_gbak_option_only_backup = 336331083;
4456     isc_gbak_option_conflict = 336331084;
4457     isc_gbak_param_conflict = 336331085;
4458     isc_gbak_option_repeated = 336331086;
4459     isc_gbak_max_dbkey_recursion = 336331091;
4460     isc_gbak_max_dbkey_length = 336331092;
4461     isc_gbak_invalid_metadata = 336331093;
4462     isc_gbak_invalid_data = 336331094;
4463     isc_gbak_inv_bkup_ver2 = 336331096;
4464     isc_gbak_db_format_too_old2 = 336331100;
4465     isc_dsql_too_old_ods = 336397205;
4466     isc_dsql_table_not_found = 336397206;
4467     isc_dsql_view_not_found = 336397207;
4468     isc_dsql_line_col_error = 336397208;
4469     isc_dsql_unknown_pos = 336397209;
4470     isc_dsql_no_dup_name = 336397210;
4471     isc_dsql_too_many_values = 336397211;
4472     isc_dsql_no_array_computed = 336397212;
4473     isc_dsql_implicit_domain_name = 336397213;
4474     isc_dsql_only_can_subscript_array = 336397214;
4475     isc_dsql_max_sort_items = 336397215;
4476     isc_dsql_max_group_items = 336397216;
4477     isc_dsql_conflicting_sort_field = 336397217;
4478     isc_dsql_derived_table_more_columns = 336397218;
4479     isc_dsql_derived_table_less_columns = 336397219;
4480     isc_dsql_derived_field_unnamed = 336397220;
4481     isc_dsql_derived_field_dup_name = 336397221;
4482     isc_dsql_derived_alias_select = 336397222;
4483     isc_dsql_derived_alias_field = 336397223;
4484     isc_dsql_auto_field_bad_pos = 336397224;
4485     isc_dsql_cte_wrong_reference = 336397225;
4486     isc_dsql_cte_cycle = 336397226;
4487     isc_dsql_cte_outer_join = 336397227;
4488     isc_dsql_cte_mult_references = 336397228;
4489     isc_dsql_cte_not_a_union = 336397229;
4490     isc_dsql_cte_nonrecurs_after_recurs = 336397230;
4491     isc_dsql_cte_wrong_clause = 336397231;
4492     isc_dsql_cte_union_all = 336397232;
4493     isc_dsql_cte_miss_nonrecursive = 336397233;
4494     isc_dsql_cte_nested_with = 336397234;
4495     isc_dsql_col_more_than_once_using = 336397235;
4496     isc_dsql_unsupp_feature_dialect = 336397236;
4497     isc_dsql_cte_not_used = 336397237;
4498     isc_dsql_col_more_than_once_view = 336397238;
4499     isc_dsql_unsupported_in_auto_trans = 336397239;
4500     isc_dsql_eval_unknode = 336397240;
4501     isc_dsql_agg_wrongarg = 336397241;
4502     isc_dsql_agg2_wrongarg = 336397242;
4503     isc_dsql_nodateortime_pm_string = 336397243;
4504     isc_dsql_invalid_datetime_subtract = 336397244;
4505     isc_dsql_invalid_dateortime_add = 336397245;
4506     isc_dsql_invalid_type_minus_date = 336397246;
4507     isc_dsql_nostring_addsub_dial3 = 336397247;
4508     isc_dsql_invalid_type_addsub_dial3 = 336397248;
4509     isc_dsql_invalid_type_multip_dial1 = 336397249;
4510     isc_dsql_nostring_multip_dial3 = 336397250;
4511     isc_dsql_invalid_type_multip_dial3 = 336397251;
4512     isc_dsql_mustuse_numeric_div_dial1 = 336397252;
4513     isc_dsql_nostring_div_dial3 = 336397253;
4514     isc_dsql_invalid_type_div_dial3 = 336397254;
4515     isc_dsql_nostring_neg_dial3 = 336397255;
4516     isc_dsql_invalid_type_neg = 336397256;
4517     isc_dsql_max_distinct_items = 336397257;
4518     isc_dsql_alter_charset_failed = 336397258;
4519     isc_dsql_comment_on_failed = 336397259;
4520     isc_dsql_create_func_failed = 336397260;
4521     isc_dsql_alter_func_failed = 336397261;
4522     isc_dsql_create_alter_func_failed = 336397262;
4523     isc_dsql_drop_func_failed = 336397263;
4524     isc_dsql_recreate_func_failed = 336397264;
4525     isc_dsql_create_proc_failed = 336397265;
4526     isc_dsql_alter_proc_failed = 336397266;
4527     isc_dsql_create_alter_proc_failed = 336397267;
4528     isc_dsql_drop_proc_failed = 336397268;
4529     isc_dsql_recreate_proc_failed = 336397269;
4530     isc_dsql_create_trigger_failed = 336397270;
4531     isc_dsql_alter_trigger_failed = 336397271;
4532     isc_dsql_create_alter_trigger_failed = 336397272;
4533     isc_dsql_drop_trigger_failed = 336397273;
4534     isc_dsql_recreate_trigger_failed = 336397274;
4535     isc_dsql_create_collation_failed = 336397275;
4536     isc_dsql_drop_collation_failed = 336397276;
4537     isc_dsql_create_domain_failed = 336397277;
4538     isc_dsql_alter_domain_failed = 336397278;
4539     isc_dsql_drop_domain_failed = 336397279;
4540     isc_dsql_create_except_failed = 336397280;
4541     isc_dsql_alter_except_failed = 336397281;
4542     isc_dsql_create_alter_except_failed = 336397282;
4543     isc_dsql_recreate_except_failed = 336397283;
4544     isc_dsql_drop_except_failed = 336397284;
4545     isc_dsql_create_sequence_failed = 336397285;
4546     isc_dsql_create_table_failed = 336397286;
4547     isc_dsql_alter_table_failed = 336397287;
4548     isc_dsql_drop_table_failed = 336397288;
4549     isc_dsql_recreate_table_failed = 336397289;
4550     isc_dsql_create_pack_failed = 336397290;
4551     isc_dsql_alter_pack_failed = 336397291;
4552     isc_dsql_create_alter_pack_failed = 336397292;
4553     isc_dsql_drop_pack_failed = 336397293;
4554     isc_dsql_recreate_pack_failed = 336397294;
4555     isc_dsql_create_pack_body_failed = 336397295;
4556     isc_dsql_drop_pack_body_failed = 336397296;
4557     isc_dsql_recreate_pack_body_failed = 336397297;
4558     isc_dsql_create_view_failed = 336397298;
4559     isc_dsql_alter_view_failed = 336397299;
4560     isc_dsql_create_alter_view_failed = 336397300;
4561     isc_dsql_recreate_view_failed = 336397301;
4562     isc_dsql_drop_view_failed = 336397302;
4563     isc_dsql_drop_sequence_failed = 336397303;
4564     isc_dsql_recreate_sequence_failed = 336397304;
4565     isc_dsql_drop_index_failed = 336397305;
4566     isc_dsql_drop_filter_failed = 336397306;
4567     isc_dsql_drop_shadow_failed = 336397307;
4568     isc_dsql_drop_role_failed = 336397308;
4569     isc_dsql_drop_user_failed = 336397309;
4570     isc_dsql_create_role_failed = 336397310;
4571     isc_dsql_alter_role_failed = 336397311;
4572     isc_dsql_alter_index_failed = 336397312;
4573     isc_dsql_alter_database_failed = 336397313;
4574     isc_dsql_create_shadow_failed = 336397314;
4575     isc_dsql_create_filter_failed = 336397315;
4576     isc_dsql_create_index_failed = 336397316;
4577     isc_dsql_create_user_failed = 336397317;
4578     isc_dsql_alter_user_failed = 336397318;
4579     isc_dsql_grant_failed = 336397319;
4580     isc_dsql_revoke_failed = 336397320;
4581     isc_dsql_cte_recursive_aggregate = 336397321;
4582     isc_dsql_mapping_failed = 336397322;
4583     isc_dsql_alter_sequence_failed = 336397323;
4584     isc_dsql_create_generator_failed = 336397324;
4585     isc_dsql_set_generator_failed = 336397325;
4586     isc_dsql_wlock_simple = 336397326;
4587     isc_dsql_firstskip_rows = 336397327;
4588     isc_dsql_wlock_aggregates = 336397328;
4589     isc_dsql_wlock_conflict = 336397329;
4590     isc_dsql_max_exception_arguments = 336397330;
4591     isc_dsql_string_byte_length = 336397331;
4592     isc_dsql_string_char_length = 336397332;
4593     isc_dsql_max_nesting = 336397333;
4594     isc_gsec_cant_open_db = 336723983;
4595     isc_gsec_switches_error = 336723984;
4596     isc_gsec_no_op_spec = 336723985;
4597     isc_gsec_no_usr_name = 336723986;
4598     isc_gsec_err_add = 336723987;
4599     isc_gsec_err_modify = 336723988;
4600     isc_gsec_err_find_mod = 336723989;
4601     isc_gsec_err_rec_not_found = 336723990;
4602     isc_gsec_err_delete = 336723991;
4603     isc_gsec_err_find_del = 336723992;
4604     isc_gsec_err_find_disp = 336723996;
4605     isc_gsec_inv_param = 336723997;
4606     isc_gsec_op_specified = 336723998;
4607     isc_gsec_pw_specified = 336723999;
4608     isc_gsec_uid_specified = 336724000;
4609     isc_gsec_gid_specified = 336724001;
4610     isc_gsec_proj_specified = 336724002;
4611     isc_gsec_org_specified = 336724003;
4612     isc_gsec_fname_specified = 336724004;
4613     isc_gsec_mname_specified = 336724005;
4614     isc_gsec_lname_specified = 336724006;
4615     isc_gsec_inv_switch = 336724008;
4616     isc_gsec_amb_switch = 336724009;
4617     isc_gsec_no_op_specified = 336724010;
4618     isc_gsec_params_not_allowed = 336724011;
4619     isc_gsec_incompat_switch = 336724012;
4620     isc_gsec_inv_username = 336724044;
4621     isc_gsec_inv_pw_length = 336724045;
4622     isc_gsec_db_specified = 336724046;
4623     isc_gsec_db_admin_specified = 336724047;
4624     isc_gsec_db_admin_pw_specified = 336724048;
4625     isc_gsec_sql_role_specified = 336724049;
4626     isc_gstat_unknown_switch = 336920577;
4627     isc_gstat_retry = 336920578;
4628     isc_gstat_wrong_ods = 336920579;
4629     isc_gstat_unexpected_eof = 336920580;
4630     isc_gstat_open_err = 336920605;
4631     isc_gstat_read_err = 336920606;
4632     isc_gstat_sysmemex = 336920607;
4633     isc_fbsvcmgr_bad_am = 336986113;
4634     isc_fbsvcmgr_bad_wm = 336986114;
4635     isc_fbsvcmgr_bad_rs = 336986115;
4636     isc_fbsvcmgr_info_err = 336986116;
4637     isc_fbsvcmgr_query_err = 336986117;
4638     isc_fbsvcmgr_switch_unknown = 336986118;
4639     isc_fbsvcmgr_bad_sm = 336986159;
4640     isc_fbsvcmgr_fp_open = 336986160;
4641     isc_fbsvcmgr_fp_read = 336986161;
4642     isc_fbsvcmgr_fp_empty = 336986162;
4643     isc_fbsvcmgr_bad_arg = 336986164;
4644     isc_utl_trusted_switch = 337051649;
4645     isc_nbackup_missing_param = 337117213;
4646     isc_nbackup_allowed_switches = 337117214;
4647     isc_nbackup_unknown_param = 337117215;
4648     isc_nbackup_unknown_switch = 337117216;
4649     isc_nbackup_nofetchpw_svc = 337117217;
4650     isc_nbackup_pwfile_error = 337117218;
4651     isc_nbackup_size_with_lock = 337117219;
4652     isc_nbackup_no_switch = 337117220;
4653     isc_nbackup_err_read = 337117223;
4654     isc_nbackup_err_write = 337117224;
4655     isc_nbackup_err_seek = 337117225;
4656     isc_nbackup_err_opendb = 337117226;
4657     isc_nbackup_err_fadvice = 337117227;
4658     isc_nbackup_err_createdb = 337117228;
4659     isc_nbackup_err_openbk = 337117229;
4660     isc_nbackup_err_createbk = 337117230;
4661     isc_nbackup_err_eofdb = 337117231;
4662     isc_nbackup_fixup_wrongstate = 337117232;
4663     isc_nbackup_err_db = 337117233;
4664     isc_nbackup_userpw_toolong = 337117234;
4665     isc_nbackup_lostrec_db = 337117235;
4666     isc_nbackup_lostguid_db = 337117236;
4667     isc_nbackup_err_eofhdrdb = 337117237;
4668     isc_nbackup_db_notlock = 337117238;
4669     isc_nbackup_lostguid_bk = 337117239;
4670     isc_nbackup_page_changed = 337117240;
4671     isc_nbackup_dbsize_inconsistent = 337117241;
4672     isc_nbackup_failed_lzbk = 337117242;
4673     isc_nbackup_err_eofhdrbk = 337117243;
4674     isc_nbackup_invalid_incbk = 337117244;
4675     isc_nbackup_unsupvers_incbk = 337117245;
4676     isc_nbackup_invlevel_incbk = 337117246;
4677     isc_nbackup_wrong_orderbk = 337117247;
4678     isc_nbackup_err_eofbk = 337117248;
4679     isc_nbackup_err_copy = 337117249;
4680     isc_nbackup_err_eofhdr_restdb = 337117250;
4681     isc_nbackup_lostguid_l0bk = 337117251;
4682     isc_nbackup_switchd_parameter = 337117255;
4683     isc_nbackup_user_stop = 337117257;
4684     isc_nbackup_deco_parse = 337117259;
4685     isc_trace_conflict_acts = 337182750;
4686     isc_trace_act_notfound = 337182751;
4687     isc_trace_switch_once = 337182752;
4688     isc_trace_param_val_miss = 337182753;
4689     isc_trace_param_invalid = 337182754;
4690     isc_trace_switch_unknown = 337182755;
4691     isc_trace_switch_svc_only = 337182756;
4692     isc_trace_switch_user_only = 337182757;
4693     isc_trace_switch_param_miss = 337182758;
4694     isc_trace_param_act_notcompat = 337182759;
4695     isc_trace_mandatory_switch_miss = 337182760;
4696     }
4697     implementation
4698    
4699     uses IBErrorCodes;
4700    
4701     procedure IReferenceCounted.addRef();
4702     begin
4703     ReferenceCountedVTable(vTable).addRef(Self);
4704     end;
4705    
4706     function IReferenceCounted.release(): Integer;
4707     begin
4708     Result := ReferenceCountedVTable(vTable).release(Self);
4709     end;
4710    
4711     procedure IDisposable.dispose();
4712     begin
4713     DisposableVTable(vTable).dispose(Self);
4714     end;
4715    
4716     procedure IStatus.init();
4717     begin
4718     StatusVTable(vTable).init(Self);
4719     end;
4720    
4721     function IStatus.getState(): Cardinal;
4722     begin
4723     Result := StatusVTable(vTable).getState(Self);
4724     end;
4725    
4726     procedure IStatus.setErrors2(length: Cardinal; value: NativeIntPtr);
4727     begin
4728     StatusVTable(vTable).setErrors2(Self, length, value);
4729     end;
4730    
4731     procedure IStatus.setWarnings2(length: Cardinal; value: NativeIntPtr);
4732     begin
4733     StatusVTable(vTable).setWarnings2(Self, length, value);
4734     end;
4735    
4736     procedure IStatus.setErrors(value: NativeIntPtr);
4737     begin
4738     StatusVTable(vTable).setErrors(Self, value);
4739     end;
4740    
4741     procedure IStatus.setWarnings(value: NativeIntPtr);
4742     begin
4743     StatusVTable(vTable).setWarnings(Self, value);
4744     end;
4745    
4746     function IStatus.getErrors(): NativeIntPtr;
4747     begin
4748     Result := StatusVTable(vTable).getErrors(Self);
4749     end;
4750    
4751     function IStatus.getWarnings(): NativeIntPtr;
4752     begin
4753     Result := StatusVTable(vTable).getWarnings(Self);
4754     end;
4755    
4756     function IStatus.clone(): IStatus;
4757     begin
4758     Result := StatusVTable(vTable).clone(Self);
4759     end;
4760    
4761     function IMaster.getStatus(): IStatus;
4762     begin
4763     Result := MasterVTable(vTable).getStatus(Self);
4764     end;
4765    
4766     function IMaster.getDispatcher(): IProvider;
4767     begin
4768     Result := MasterVTable(vTable).getDispatcher(Self);
4769     end;
4770    
4771     function IMaster.getPluginManager(): IPluginManager;
4772     begin
4773     Result := MasterVTable(vTable).getPluginManager(Self);
4774     end;
4775    
4776     function IMaster.getTimerControl(): ITimerControl;
4777     begin
4778     Result := MasterVTable(vTable).getTimerControl(Self);
4779     end;
4780    
4781     function IMaster.getDtc(): IDtc;
4782     begin
4783     Result := MasterVTable(vTable).getDtc(Self);
4784     end;
4785    
4786     function IMaster.registerAttachment(provider: IProvider; attachment: IAttachment): IAttachment;
4787     begin
4788     Result := MasterVTable(vTable).registerAttachment(Self, provider, attachment);
4789     end;
4790    
4791     function IMaster.registerTransaction(attachment: IAttachment; transaction: ITransaction): ITransaction;
4792     begin
4793     Result := MasterVTable(vTable).registerTransaction(Self, attachment, transaction);
4794     end;
4795    
4796     function IMaster.getMetadataBuilder(status: IStatus; fieldCount: Cardinal): IMetadataBuilder;
4797     begin
4798     Result := MasterVTable(vTable).getMetadataBuilder(Self, status, fieldCount);
4799     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4800     end;
4801    
4802     function IMaster.serverMode(mode: Integer): Integer;
4803     begin
4804     Result := MasterVTable(vTable).serverMode(Self, mode);
4805     end;
4806    
4807     function IMaster.getUtilInterface(): IUtil;
4808     begin
4809     Result := MasterVTable(vTable).getUtilInterface(Self);
4810     end;
4811    
4812     function IMaster.getConfigManager(): IConfigManager;
4813     begin
4814     Result := MasterVTable(vTable).getConfigManager(Self);
4815     end;
4816    
4817     function IMaster.getProcessExiting(): Boolean;
4818     begin
4819     Result := MasterVTable(vTable).getProcessExiting(Self);
4820     end;
4821    
4822     procedure IPluginBase.setOwner(r: IReferenceCounted);
4823     begin
4824     PluginBaseVTable(vTable).setOwner(Self, r);
4825     end;
4826    
4827     function IPluginBase.getOwner(): IReferenceCounted;
4828     begin
4829     Result := PluginBaseVTable(vTable).getOwner(Self);
4830     end;
4831    
4832     function IPluginSet.getName(): PAnsiChar;
4833     begin
4834     Result := PluginSetVTable(vTable).getName(Self);
4835     end;
4836    
4837     function IPluginSet.getModuleName(): PAnsiChar;
4838     begin
4839     Result := PluginSetVTable(vTable).getModuleName(Self);
4840     end;
4841    
4842     function IPluginSet.getPlugin(status: IStatus): IPluginBase;
4843     begin
4844     Result := PluginSetVTable(vTable).getPlugin(Self, status);
4845     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4846     end;
4847    
4848     procedure IPluginSet.next(status: IStatus);
4849     begin
4850     PluginSetVTable(vTable).next(Self, status);
4851     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4852     end;
4853    
4854     procedure IPluginSet.set_(status: IStatus; s: PAnsiChar);
4855     begin
4856     PluginSetVTable(vTable).set_(Self, status, s);
4857     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4858     end;
4859    
4860     function IConfigEntry.getName(): PAnsiChar;
4861     begin
4862     Result := ConfigEntryVTable(vTable).getName(Self);
4863     end;
4864    
4865     function IConfigEntry.getValue(): PAnsiChar;
4866     begin
4867     Result := ConfigEntryVTable(vTable).getValue(Self);
4868     end;
4869    
4870     function IConfigEntry.getIntValue(): Int64;
4871     begin
4872     Result := ConfigEntryVTable(vTable).getIntValue(Self);
4873     end;
4874    
4875     function IConfigEntry.getBoolValue(): Boolean;
4876     begin
4877     Result := ConfigEntryVTable(vTable).getBoolValue(Self);
4878     end;
4879    
4880     function IConfigEntry.getSubConfig(status: IStatus): IConfig;
4881     begin
4882     Result := ConfigEntryVTable(vTable).getSubConfig(Self, status);
4883     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4884     end;
4885    
4886     function IConfig.find(status: IStatus; name: PAnsiChar): IConfigEntry;
4887     begin
4888     Result := ConfigVTable(vTable).find(Self, status, name);
4889     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4890     end;
4891    
4892     function IConfig.findValue(status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry;
4893     begin
4894     Result := ConfigVTable(vTable).findValue(Self, status, name, value);
4895     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4896     end;
4897    
4898     function IConfig.findPos(status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry;
4899     begin
4900     Result := ConfigVTable(vTable).findPos(Self, status, name, pos);
4901     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4902     end;
4903    
4904     function IFirebirdConf.getKey(name: PAnsiChar): Cardinal;
4905     begin
4906     Result := FirebirdConfVTable(vTable).getKey(Self, name);
4907     end;
4908    
4909     function IFirebirdConf.asInteger(key: Cardinal): Int64;
4910     begin
4911     Result := FirebirdConfVTable(vTable).asInteger(Self, key);
4912     end;
4913    
4914     function IFirebirdConf.asString(key: Cardinal): PAnsiChar;
4915     begin
4916     Result := FirebirdConfVTable(vTable).asString(Self, key);
4917     end;
4918    
4919     function IFirebirdConf.asBoolean(key: Cardinal): Boolean;
4920     begin
4921     Result := FirebirdConfVTable(vTable).asBoolean(Self, key);
4922     end;
4923    
4924     function IPluginConfig.getConfigFileName(): PAnsiChar;
4925     begin
4926     Result := PluginConfigVTable(vTable).getConfigFileName(Self);
4927     end;
4928    
4929     function IPluginConfig.getDefaultConfig(status: IStatus): IConfig;
4930     begin
4931     Result := PluginConfigVTable(vTable).getDefaultConfig(Self, status);
4932     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4933     end;
4934    
4935     function IPluginConfig.getFirebirdConf(status: IStatus): IFirebirdConf;
4936     begin
4937     Result := PluginConfigVTable(vTable).getFirebirdConf(Self, status);
4938     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4939     end;
4940    
4941     procedure IPluginConfig.setReleaseDelay(status: IStatus; microSeconds: QWord);
4942     begin
4943     PluginConfigVTable(vTable).setReleaseDelay(Self, status, microSeconds);
4944     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4945     end;
4946    
4947     function IPluginFactory.createPlugin(status: IStatus; factoryParameter: IPluginConfig): IPluginBase;
4948     begin
4949     Result := PluginFactoryVTable(vTable).createPlugin(Self, status, factoryParameter);
4950     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4951     end;
4952    
4953     procedure IPluginModule.doClean();
4954     begin
4955     PluginModuleVTable(vTable).doClean(Self);
4956     end;
4957    
4958     procedure IPluginManager.registerPluginFactory(pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory);
4959     begin
4960     PluginManagerVTable(vTable).registerPluginFactory(Self, pluginType, defaultName, factory);
4961     end;
4962    
4963     procedure IPluginManager.registerModule(cleanup: IPluginModule);
4964     begin
4965     PluginManagerVTable(vTable).registerModule(Self, cleanup);
4966     end;
4967    
4968     procedure IPluginManager.unregisterModule(cleanup: IPluginModule);
4969     begin
4970     PluginManagerVTable(vTable).unregisterModule(Self, cleanup);
4971     end;
4972    
4973     function IPluginManager.getPlugins(status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet;
4974     begin
4975     Result := PluginManagerVTable(vTable).getPlugins(Self, status, pluginType, namesList, firebirdConf);
4976     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4977     end;
4978    
4979     function IPluginManager.getConfig(status: IStatus; filename: PAnsiChar): IConfig;
4980     begin
4981     Result := PluginManagerVTable(vTable).getConfig(Self, status, filename);
4982     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4983     end;
4984    
4985     procedure IPluginManager.releasePlugin(plugin: IPluginBase);
4986     begin
4987     PluginManagerVTable(vTable).releasePlugin(Self, plugin);
4988     end;
4989    
4990     procedure ICryptKey.setSymmetric(status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer);
4991     begin
4992     CryptKeyVTable(vTable).setSymmetric(Self, status, type_, keyLength, key);
4993     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
4994     end;
4995    
4996     procedure ICryptKey.setAsymmetric(status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer);
4997     begin
4998     CryptKeyVTable(vTable).setAsymmetric(Self, status, type_, encryptKeyLength, encryptKey, decryptKeyLength, decryptKey);
4999     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5000     end;
5001    
5002     function ICryptKey.getEncryptKey(length: CardinalPtr): Pointer;
5003     begin
5004     Result := CryptKeyVTable(vTable).getEncryptKey(Self, length);
5005     end;
5006    
5007     function ICryptKey.getDecryptKey(length: CardinalPtr): Pointer;
5008     begin
5009     Result := CryptKeyVTable(vTable).getDecryptKey(Self, length);
5010     end;
5011    
5012     function IConfigManager.getDirectory(code: Cardinal): PAnsiChar;
5013     begin
5014     Result := ConfigManagerVTable(vTable).getDirectory(Self, code);
5015     end;
5016    
5017     function IConfigManager.getFirebirdConf(): IFirebirdConf;
5018     begin
5019     Result := ConfigManagerVTable(vTable).getFirebirdConf(Self);
5020     end;
5021    
5022     function IConfigManager.getDatabaseConf(dbName: PAnsiChar): IFirebirdConf;
5023     begin
5024     Result := ConfigManagerVTable(vTable).getDatabaseConf(Self, dbName);
5025     end;
5026    
5027     function IConfigManager.getPluginConfig(configuredPlugin: PAnsiChar): IConfig;
5028     begin
5029     Result := ConfigManagerVTable(vTable).getPluginConfig(Self, configuredPlugin);
5030     end;
5031    
5032     function IConfigManager.getInstallDirectory(): PAnsiChar;
5033     begin
5034     Result := ConfigManagerVTable(vTable).getInstallDirectory(Self);
5035     end;
5036    
5037     function IConfigManager.getRootDirectory(): PAnsiChar;
5038     begin
5039     Result := ConfigManagerVTable(vTable).getRootDirectory(Self);
5040     end;
5041    
5042     procedure IEventCallback.eventCallbackFunction(length: Cardinal; events: BytePtr);
5043     begin
5044     EventCallbackVTable(vTable).eventCallbackFunction(Self, length, events);
5045     end;
5046    
5047     procedure IBlob.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
5048     begin
5049     BlobVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
5050     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5051     end;
5052    
5053     function IBlob.getSegment(status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer;
5054     begin
5055     Result := BlobVTable(vTable).getSegment(Self, status, bufferLength, buffer, segmentLength);
5056     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5057     end;
5058    
5059     procedure IBlob.putSegment(status: IStatus; length: Cardinal; buffer: Pointer);
5060     begin
5061     BlobVTable(vTable).putSegment(Self, status, length, buffer);
5062     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5063     end;
5064    
5065     procedure IBlob.cancel(status: IStatus);
5066     begin
5067     BlobVTable(vTable).cancel(Self, status);
5068     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5069     end;
5070    
5071     procedure IBlob.close(status: IStatus);
5072     begin
5073     BlobVTable(vTable).close(Self, status);
5074     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5075     end;
5076    
5077     function IBlob.seek(status: IStatus; mode: Integer; offset: Integer): Integer;
5078     begin
5079     Result := BlobVTable(vTable).seek(Self, status, mode, offset);
5080     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5081     end;
5082    
5083     procedure ITransaction.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
5084     begin
5085     TransactionVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
5086     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5087     end;
5088    
5089     procedure ITransaction.prepare(status: IStatus; msgLength: Cardinal; message: BytePtr);
5090     begin
5091     TransactionVTable(vTable).prepare(Self, status, msgLength, message);
5092     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5093     end;
5094    
5095     procedure ITransaction.commit(status: IStatus);
5096     begin
5097     TransactionVTable(vTable).commit(Self, status);
5098     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5099     end;
5100    
5101     procedure ITransaction.commitRetaining(status: IStatus);
5102     begin
5103     TransactionVTable(vTable).commitRetaining(Self, status);
5104     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5105     end;
5106    
5107     procedure ITransaction.rollback(status: IStatus);
5108     begin
5109     TransactionVTable(vTable).rollback(Self, status);
5110     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5111     end;
5112    
5113     procedure ITransaction.rollbackRetaining(status: IStatus);
5114     begin
5115     TransactionVTable(vTable).rollbackRetaining(Self, status);
5116     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5117     end;
5118    
5119     procedure ITransaction.disconnect(status: IStatus);
5120     begin
5121     TransactionVTable(vTable).disconnect(Self, status);
5122     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5123     end;
5124    
5125     function ITransaction.join(status: IStatus; transaction: ITransaction): ITransaction;
5126     begin
5127     Result := TransactionVTable(vTable).join(Self, status, transaction);
5128     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5129     end;
5130    
5131     function ITransaction.validate(status: IStatus; attachment: IAttachment): ITransaction;
5132     begin
5133     Result := TransactionVTable(vTable).validate(Self, status, attachment);
5134     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5135     end;
5136    
5137     function ITransaction.enterDtc(status: IStatus): ITransaction;
5138     begin
5139     Result := TransactionVTable(vTable).enterDtc(Self, status);
5140     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5141     end;
5142    
5143     function IMessageMetadata.getCount(status: IStatus): Cardinal;
5144     begin
5145     Result := MessageMetadataVTable(vTable).getCount(Self, status);
5146     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5147     end;
5148    
5149     function IMessageMetadata.getField(status: IStatus; index: Cardinal): PAnsiChar;
5150     begin
5151     Result := MessageMetadataVTable(vTable).getField(Self, status, index);
5152     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5153     end;
5154    
5155     function IMessageMetadata.getRelation(status: IStatus; index: Cardinal): PAnsiChar;
5156     begin
5157     Result := MessageMetadataVTable(vTable).getRelation(Self, status, index);
5158     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5159     end;
5160    
5161     function IMessageMetadata.getOwner(status: IStatus; index: Cardinal): PAnsiChar;
5162     begin
5163     Result := MessageMetadataVTable(vTable).getOwner(Self, status, index);
5164     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5165     end;
5166    
5167     function IMessageMetadata.getAlias(status: IStatus; index: Cardinal): PAnsiChar;
5168     begin
5169     Result := MessageMetadataVTable(vTable).getAlias(Self, status, index);
5170     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5171     end;
5172    
5173     function IMessageMetadata.getType(status: IStatus; index: Cardinal): Cardinal;
5174     begin
5175     Result := MessageMetadataVTable(vTable).getType(Self, status, index);
5176     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5177     end;
5178    
5179     function IMessageMetadata.isNullable(status: IStatus; index: Cardinal): Boolean;
5180     begin
5181     Result := MessageMetadataVTable(vTable).isNullable(Self, status, index);
5182     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5183     end;
5184    
5185     function IMessageMetadata.getSubType(status: IStatus; index: Cardinal): Integer;
5186     begin
5187     Result := MessageMetadataVTable(vTable).getSubType(Self, status, index);
5188     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5189     end;
5190    
5191     function IMessageMetadata.getLength(status: IStatus; index: Cardinal): Cardinal;
5192     begin
5193     Result := MessageMetadataVTable(vTable).getLength(Self, status, index);
5194     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5195     end;
5196    
5197     function IMessageMetadata.getScale(status: IStatus; index: Cardinal): Integer;
5198     begin
5199     Result := MessageMetadataVTable(vTable).getScale(Self, status, index);
5200     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5201     end;
5202    
5203     function IMessageMetadata.getCharSet(status: IStatus; index: Cardinal): Cardinal;
5204     begin
5205     Result := MessageMetadataVTable(vTable).getCharSet(Self, status, index);
5206     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5207     end;
5208    
5209     function IMessageMetadata.getOffset(status: IStatus; index: Cardinal): Cardinal;
5210     begin
5211     Result := MessageMetadataVTable(vTable).getOffset(Self, status, index);
5212     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5213     end;
5214    
5215     function IMessageMetadata.getNullOffset(status: IStatus; index: Cardinal): Cardinal;
5216     begin
5217     Result := MessageMetadataVTable(vTable).getNullOffset(Self, status, index);
5218     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5219     end;
5220    
5221     function IMessageMetadata.getBuilder(status: IStatus): IMetadataBuilder;
5222     begin
5223     Result := MessageMetadataVTable(vTable).getBuilder(Self, status);
5224     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5225     end;
5226    
5227     function IMessageMetadata.getMessageLength(status: IStatus): Cardinal;
5228     begin
5229     Result := MessageMetadataVTable(vTable).getMessageLength(Self, status);
5230     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5231     end;
5232    
5233     procedure IMetadataBuilder.setType(status: IStatus; index: Cardinal; type_: Cardinal);
5234     begin
5235     MetadataBuilderVTable(vTable).setType(Self, status, index, type_);
5236     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5237     end;
5238    
5239     procedure IMetadataBuilder.setSubType(status: IStatus; index: Cardinal; subType: Integer);
5240     begin
5241     MetadataBuilderVTable(vTable).setSubType(Self, status, index, subType);
5242     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5243     end;
5244    
5245     procedure IMetadataBuilder.setLength(status: IStatus; index: Cardinal; length: Cardinal);
5246     begin
5247     MetadataBuilderVTable(vTable).setLength(Self, status, index, length);
5248     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5249     end;
5250    
5251     procedure IMetadataBuilder.setCharSet(status: IStatus; index: Cardinal; charSet: Cardinal);
5252     begin
5253     MetadataBuilderVTable(vTable).setCharSet(Self, status, index, charSet);
5254     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5255     end;
5256    
5257     procedure IMetadataBuilder.setScale(status: IStatus; index: Cardinal; scale: integer);
5258     begin
5259     MetadataBuilderVTable(vTable).setScale(Self, status, index, scale);
5260     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5261     end;
5262    
5263     procedure IMetadataBuilder.truncate(status: IStatus; count: Cardinal);
5264     begin
5265     MetadataBuilderVTable(vTable).truncate(Self, status, count);
5266     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5267     end;
5268    
5269     procedure IMetadataBuilder.moveNameToIndex(status: IStatus; name: PAnsiChar; index: Cardinal);
5270     begin
5271     MetadataBuilderVTable(vTable).moveNameToIndex(Self, status, name, index);
5272     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5273     end;
5274    
5275     procedure IMetadataBuilder.remove(status: IStatus; index: Cardinal);
5276     begin
5277     MetadataBuilderVTable(vTable).remove(Self, status, index);
5278     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5279     end;
5280    
5281     function IMetadataBuilder.addField(status: IStatus): Cardinal;
5282     begin
5283     Result := MetadataBuilderVTable(vTable).addField(Self, status);
5284     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5285     end;
5286    
5287     function IMetadataBuilder.getMetadata(status: IStatus): IMessageMetadata;
5288     begin
5289     Result := MetadataBuilderVTable(vTable).getMetadata(Self, status);
5290     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5291     end;
5292    
5293     function IResultSet.fetchNext(status: IStatus; message: Pointer): Integer;
5294     begin
5295     Result := ResultSetVTable(vTable).fetchNext(Self, status, message);
5296     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5297     end;
5298    
5299     function IResultSet.fetchPrior(status: IStatus; message: Pointer): Integer;
5300     begin
5301     Result := ResultSetVTable(vTable).fetchPrior(Self, status, message);
5302     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5303     end;
5304    
5305     function IResultSet.fetchFirst(status: IStatus; message: Pointer): Integer;
5306     begin
5307     Result := ResultSetVTable(vTable).fetchFirst(Self, status, message);
5308     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5309     end;
5310    
5311     function IResultSet.fetchLast(status: IStatus; message: Pointer): Integer;
5312     begin
5313     Result := ResultSetVTable(vTable).fetchLast(Self, status, message);
5314     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5315     end;
5316    
5317     function IResultSet.fetchAbsolute(status: IStatus; position: Integer; message: Pointer): Integer;
5318     begin
5319     Result := ResultSetVTable(vTable).fetchAbsolute(Self, status, position, message);
5320     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5321     end;
5322    
5323     function IResultSet.fetchRelative(status: IStatus; offset: Integer; message: Pointer): Integer;
5324     begin
5325     Result := ResultSetVTable(vTable).fetchRelative(Self, status, offset, message);
5326     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5327     end;
5328    
5329     function IResultSet.isEof(status: IStatus): Boolean;
5330     begin
5331     Result := ResultSetVTable(vTable).isEof(Self, status);
5332     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5333     end;
5334    
5335     function IResultSet.isBof(status: IStatus): Boolean;
5336     begin
5337     Result := ResultSetVTable(vTable).isBof(Self, status);
5338     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5339     end;
5340    
5341     function IResultSet.getMetadata(status: IStatus): IMessageMetadata;
5342     begin
5343     Result := ResultSetVTable(vTable).getMetadata(Self, status);
5344     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5345     end;
5346    
5347     procedure IResultSet.close(status: IStatus);
5348     begin
5349     ResultSetVTable(vTable).close(Self, status);
5350     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5351     end;
5352    
5353     procedure IResultSet.setDelayedOutputFormat(status: IStatus; format: IMessageMetadata);
5354     begin
5355     ResultSetVTable(vTable).setDelayedOutputFormat(Self, status, format);
5356     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5357     end;
5358    
5359     procedure IStatement.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
5360     begin
5361     StatementVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
5362     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5363     end;
5364    
5365     function IStatement.getType(status: IStatus): Cardinal;
5366     begin
5367     Result := StatementVTable(vTable).getType(Self, status);
5368     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5369     end;
5370    
5371     function IStatement.getPlan(status: IStatus; detailed: Boolean): PAnsiChar;
5372     begin
5373     Result := StatementVTable(vTable).getPlan(Self, status, detailed);
5374     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5375     end;
5376    
5377     function IStatement.getAffectedRecords(status: IStatus): QWord;
5378     begin
5379     Result := StatementVTable(vTable).getAffectedRecords(Self, status);
5380     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5381     end;
5382    
5383     function IStatement.getInputMetadata(status: IStatus): IMessageMetadata;
5384     begin
5385     Result := StatementVTable(vTable).getInputMetadata(Self, status);
5386     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5387     end;
5388    
5389     function IStatement.getOutputMetadata(status: IStatus): IMessageMetadata;
5390     begin
5391     Result := StatementVTable(vTable).getOutputMetadata(Self, status);
5392     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5393     end;
5394    
5395     function IStatement.execute(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
5396     begin
5397     Result := StatementVTable(vTable).execute(Self, status, transaction, inMetadata, inBuffer, outMetadata, outBuffer);
5398     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5399     end;
5400    
5401     function IStatement.openCursor(status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet;
5402     begin
5403     Result := StatementVTable(vTable).openCursor(Self, status, transaction, inMetadata, inBuffer, outMetadata, flags);
5404     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5405     end;
5406    
5407     procedure IStatement.setCursorName(status: IStatus; name: PAnsiChar);
5408     begin
5409     StatementVTable(vTable).setCursorName(Self, status, name);
5410     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5411     end;
5412    
5413     procedure IStatement.free(status: IStatus);
5414     begin
5415     StatementVTable(vTable).free(Self, status);
5416     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5417     end;
5418    
5419     function IStatement.getFlags(status: IStatus): Cardinal;
5420     begin
5421     Result := StatementVTable(vTable).getFlags(Self, status);
5422     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5423     end;
5424    
5425     procedure IRequest.receive(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
5426     begin
5427     RequestVTable(vTable).receive(Self, status, level, msgType, length, message);
5428     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5429     end;
5430    
5431     procedure IRequest.send(status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
5432     begin
5433     RequestVTable(vTable).send(Self, status, level, msgType, length, message);
5434     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5435     end;
5436    
5437     procedure IRequest.getInfo(status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
5438     begin
5439     RequestVTable(vTable).getInfo(Self, status, level, itemsLength, items, bufferLength, buffer);
5440     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5441     end;
5442    
5443     procedure IRequest.start(status: IStatus; tra: ITransaction; level: Integer);
5444     begin
5445     RequestVTable(vTable).start(Self, status, tra, level);
5446     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5447     end;
5448    
5449     procedure IRequest.startAndSend(status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr);
5450     begin
5451     RequestVTable(vTable).startAndSend(Self, status, tra, level, msgType, length, message);
5452     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5453     end;
5454    
5455     procedure IRequest.unwind(status: IStatus; level: Integer);
5456     begin
5457     RequestVTable(vTable).unwind(Self, status, level);
5458     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5459     end;
5460    
5461     procedure IRequest.free(status: IStatus);
5462     begin
5463     RequestVTable(vTable).free(Self, status);
5464     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5465     end;
5466    
5467     procedure IEvents.cancel(status: IStatus);
5468     begin
5469     EventsVTable(vTable).cancel(Self, status);
5470     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5471     end;
5472    
5473     procedure IAttachment.getInfo(status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
5474     begin
5475     AttachmentVTable(vTable).getInfo(Self, status, itemsLength, items, bufferLength, buffer);
5476     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5477     end;
5478    
5479     function IAttachment.startTransaction(status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction;
5480     begin
5481     Result := AttachmentVTable(vTable).startTransaction(Self, status, tpbLength, tpb);
5482     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5483     end;
5484    
5485     function IAttachment.reconnectTransaction(status: IStatus; length: Cardinal; id: BytePtr): ITransaction;
5486     begin
5487     Result := AttachmentVTable(vTable).reconnectTransaction(Self, status, length, id);
5488     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5489     end;
5490    
5491     function IAttachment.compileRequest(status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest;
5492     begin
5493     Result := AttachmentVTable(vTable).compileRequest(Self, status, blrLength, blr);
5494     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5495     end;
5496    
5497     procedure IAttachment.transactRequest(status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr);
5498     begin
5499     AttachmentVTable(vTable).transactRequest(Self, status, transaction, blrLength, blr, inMsgLength, inMsg, outMsgLength, outMsg);
5500     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5501     end;
5502    
5503     function IAttachment.createBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob;
5504     begin
5505     Result := AttachmentVTable(vTable).createBlob(Self, status, transaction, id, bpbLength, bpb);
5506     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5507     end;
5508    
5509     function IAttachment.openBlob(status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob;
5510     begin
5511     Result := AttachmentVTable(vTable).openBlob(Self, status, transaction, id, bpbLength, bpb);
5512     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5513     end;
5514    
5515     function IAttachment.getSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr): Integer;
5516     begin
5517     Result := AttachmentVTable(vTable).getSlice(Self, status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
5518     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5519     end;
5520    
5521     procedure IAttachment.putSlice(status: IStatus; transaction: ITransaction; id: PISC_QUAD; sdlLength: Cardinal; sdl: BytePtr; paramLength: Cardinal; param: BytePtr; sliceLength: Integer; slice: BytePtr);
5522     begin
5523     AttachmentVTable(vTable).putSlice(Self, status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
5524     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5525     end;
5526    
5527     procedure IAttachment.executeDyn(status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr);
5528     begin
5529     AttachmentVTable(vTable).executeDyn(Self, status, transaction, length, dyn);
5530     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5531     end;
5532    
5533     function IAttachment.prepare(status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement;
5534     begin
5535     Result := AttachmentVTable(vTable).prepare(Self, status, tra, stmtLength, sqlStmt, dialect, flags);
5536     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5537     end;
5538    
5539     function IAttachment.execute(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction;
5540     begin
5541     Result := AttachmentVTable(vTable).execute(Self, status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, outBuffer);
5542     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5543     end;
5544    
5545     function IAttachment.openCursor(status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet;
5546     begin
5547     Result := AttachmentVTable(vTable).openCursor(Self, status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, cursorName, cursorFlags);
5548     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5549     end;
5550    
5551     function IAttachment.queEvents(status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents;
5552     begin
5553     Result := AttachmentVTable(vTable).queEvents(Self, status, callback, length, events);
5554     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5555     end;
5556    
5557     procedure IAttachment.cancelOperation(status: IStatus; option: Integer);
5558     begin
5559     AttachmentVTable(vTable).cancelOperation(Self, status, option);
5560     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5561     end;
5562    
5563     procedure IAttachment.ping(status: IStatus);
5564     begin
5565     AttachmentVTable(vTable).ping(Self, status);
5566     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5567     end;
5568    
5569     procedure IAttachment.detach(status: IStatus);
5570     begin
5571     AttachmentVTable(vTable).detach(Self, status);
5572     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5573     end;
5574    
5575     procedure IAttachment.dropDatabase(status: IStatus);
5576     begin
5577     AttachmentVTable(vTable).dropDatabase(Self, status);
5578     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5579     end;
5580    
5581     procedure IService.detach(status: IStatus);
5582     begin
5583     ServiceVTable(vTable).detach(Self, status);
5584     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5585     end;
5586    
5587     procedure IService.query(status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr);
5588     begin
5589     ServiceVTable(vTable).query(Self, status, sendLength, sendItems, receiveLength, receiveItems, bufferLength, buffer);
5590     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5591     end;
5592    
5593     procedure IService.start(status: IStatus; spbLength: Cardinal; spb: BytePtr);
5594     begin
5595     ServiceVTable(vTable).start(Self, status, spbLength, spb);
5596     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5597     end;
5598    
5599     function IProvider.attachDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
5600     begin
5601     Result := ProviderVTable(vTable).attachDatabase(Self, status, fileName, dpbLength, dpb);
5602     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5603     end;
5604    
5605     function IProvider.createDatabase(status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment;
5606     begin
5607     Result := ProviderVTable(vTable).createDatabase(Self, status, fileName, dpbLength, dpb);
5608     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5609     end;
5610    
5611     function IProvider.attachServiceManager(status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService;
5612     begin
5613     Result := ProviderVTable(vTable).attachServiceManager(Self, status, service, spbLength, spb);
5614     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5615     end;
5616    
5617     procedure IProvider.shutdown(status: IStatus; timeout: Cardinal; reason: Integer);
5618     begin
5619     ProviderVTable(vTable).shutdown(Self, status, timeout, reason);
5620     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5621     end;
5622    
5623     procedure IProvider.setDbCryptCallback(status: IStatus; cryptCallback: ICryptKeyCallback);
5624     begin
5625     ProviderVTable(vTable).setDbCryptCallback(Self, status, cryptCallback);
5626     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5627     end;
5628    
5629     procedure IDtcStart.addAttachment(status: IStatus; att: IAttachment);
5630     begin
5631     DtcStartVTable(vTable).addAttachment(Self, status, att);
5632     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5633     end;
5634    
5635     procedure IDtcStart.addWithTpb(status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr);
5636     begin
5637     DtcStartVTable(vTable).addWithTpb(Self, status, att, length, tpb);
5638     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5639     end;
5640    
5641     function IDtcStart.start(status: IStatus): ITransaction;
5642     begin
5643     Result := DtcStartVTable(vTable).start(Self, status);
5644     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5645     end;
5646    
5647     function IDtc.join(status: IStatus; one: ITransaction; two: ITransaction): ITransaction;
5648     begin
5649     Result := DtcVTable(vTable).join(Self, status, one, two);
5650     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5651     end;
5652    
5653     function IDtc.startBuilder(status: IStatus): IDtcStart;
5654     begin
5655     Result := DtcVTable(vTable).startBuilder(Self, status);
5656     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5657     end;
5658    
5659     procedure IWriter.reset();
5660     begin
5661     WriterVTable(vTable).reset(Self);
5662     end;
5663    
5664     procedure IWriter.add(status: IStatus; name: PAnsiChar);
5665     begin
5666     WriterVTable(vTable).add(Self, status, name);
5667     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5668     end;
5669    
5670     procedure IWriter.setType(status: IStatus; value: PAnsiChar);
5671     begin
5672     WriterVTable(vTable).setType(Self, status, value);
5673     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5674     end;
5675    
5676     procedure IWriter.setDb(status: IStatus; value: PAnsiChar);
5677     begin
5678     WriterVTable(vTable).setDb(Self, status, value);
5679     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5680     end;
5681    
5682     function IServerBlock.getLogin(): PAnsiChar;
5683     begin
5684     Result := ServerBlockVTable(vTable).getLogin(Self);
5685     end;
5686    
5687     function IServerBlock.getData(length: CardinalPtr): BytePtr;
5688     begin
5689     Result := ServerBlockVTable(vTable).getData(Self, length);
5690     end;
5691    
5692     procedure IServerBlock.putData(status: IStatus; length: Cardinal; data: Pointer);
5693     begin
5694     ServerBlockVTable(vTable).putData(Self, status, length, data);
5695     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5696     end;
5697    
5698     function IServerBlock.newKey(status: IStatus): ICryptKey;
5699     begin
5700     Result := ServerBlockVTable(vTable).newKey(Self, status);
5701     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5702     end;
5703    
5704     function IClientBlock.getLogin(): PAnsiChar;
5705     begin
5706     Result := ClientBlockVTable(vTable).getLogin(Self);
5707     end;
5708    
5709     function IClientBlock.getPassword(): PAnsiChar;
5710     begin
5711     Result := ClientBlockVTable(vTable).getPassword(Self);
5712     end;
5713    
5714     function IClientBlock.getData(length: CardinalPtr): BytePtr;
5715     begin
5716     Result := ClientBlockVTable(vTable).getData(Self, length);
5717     end;
5718    
5719     procedure IClientBlock.putData(status: IStatus; length: Cardinal; data: Pointer);
5720     begin
5721     ClientBlockVTable(vTable).putData(Self, status, length, data);
5722     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5723     end;
5724    
5725     function IClientBlock.newKey(status: IStatus): ICryptKey;
5726     begin
5727     Result := ClientBlockVTable(vTable).newKey(Self, status);
5728     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5729     end;
5730    
5731     function IServer.authenticate(status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer;
5732     begin
5733     Result := ServerVTable(vTable).authenticate(Self, status, sBlock, writerInterface);
5734     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5735     end;
5736    
5737     function IClient.authenticate(status: IStatus; cBlock: IClientBlock): Integer;
5738     begin
5739     Result := ClientVTable(vTable).authenticate(Self, status, cBlock);
5740     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5741     end;
5742    
5743     function IUserField.entered(): Integer;
5744     begin
5745     Result := UserFieldVTable(vTable).entered(Self);
5746     end;
5747    
5748     function IUserField.specified(): Integer;
5749     begin
5750     Result := UserFieldVTable(vTable).specified(Self);
5751     end;
5752    
5753     procedure IUserField.setEntered(status: IStatus; newValue: Integer);
5754     begin
5755     UserFieldVTable(vTable).setEntered(Self, status, newValue);
5756     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5757     end;
5758    
5759     function ICharUserField.get(): PAnsiChar;
5760     begin
5761     Result := CharUserFieldVTable(vTable).get(Self);
5762     end;
5763    
5764     procedure ICharUserField.set_(status: IStatus; newValue: PAnsiChar);
5765     begin
5766     CharUserFieldVTable(vTable).set_(Self, status, newValue);
5767     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5768     end;
5769    
5770     function IIntUserField.get(): Integer;
5771     begin
5772     Result := IntUserFieldVTable(vTable).get(Self);
5773     end;
5774    
5775     procedure IIntUserField.set_(status: IStatus; newValue: Integer);
5776     begin
5777     IntUserFieldVTable(vTable).set_(Self, status, newValue);
5778     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5779     end;
5780    
5781     function IUser.operation(): Cardinal;
5782     begin
5783     Result := UserVTable(vTable).operation(Self);
5784     end;
5785    
5786     function IUser.userName(): ICharUserField;
5787     begin
5788     Result := UserVTable(vTable).userName(Self);
5789     end;
5790    
5791     function IUser.password(): ICharUserField;
5792     begin
5793     Result := UserVTable(vTable).password(Self);
5794     end;
5795    
5796     function IUser.firstName(): ICharUserField;
5797     begin
5798     Result := UserVTable(vTable).firstName(Self);
5799     end;
5800    
5801     function IUser.lastName(): ICharUserField;
5802     begin
5803     Result := UserVTable(vTable).lastName(Self);
5804     end;
5805    
5806     function IUser.middleName(): ICharUserField;
5807     begin
5808     Result := UserVTable(vTable).middleName(Self);
5809     end;
5810    
5811     function IUser.comment(): ICharUserField;
5812     begin
5813     Result := UserVTable(vTable).comment(Self);
5814     end;
5815    
5816     function IUser.attributes(): ICharUserField;
5817     begin
5818     Result := UserVTable(vTable).attributes(Self);
5819     end;
5820    
5821     function IUser.active(): IIntUserField;
5822     begin
5823     Result := UserVTable(vTable).active(Self);
5824     end;
5825    
5826     function IUser.admin(): IIntUserField;
5827     begin
5828     Result := UserVTable(vTable).admin(Self);
5829     end;
5830    
5831     procedure IUser.clear(status: IStatus);
5832     begin
5833     UserVTable(vTable).clear(Self, status);
5834     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5835     end;
5836    
5837     procedure IListUsers.list(status: IStatus; user: IUser);
5838     begin
5839     ListUsersVTable(vTable).list(Self, status, user);
5840     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5841     end;
5842    
5843     function ILogonInfo.name(): PAnsiChar;
5844     begin
5845     Result := LogonInfoVTable(vTable).name(Self);
5846     end;
5847    
5848     function ILogonInfo.role(): PAnsiChar;
5849     begin
5850     Result := LogonInfoVTable(vTable).role(Self);
5851     end;
5852    
5853     function ILogonInfo.networkProtocol(): PAnsiChar;
5854     begin
5855     Result := LogonInfoVTable(vTable).networkProtocol(Self);
5856     end;
5857    
5858     function ILogonInfo.remoteAddress(): PAnsiChar;
5859     begin
5860     Result := LogonInfoVTable(vTable).remoteAddress(Self);
5861     end;
5862    
5863     function ILogonInfo.authBlock(length: CardinalPtr): BytePtr;
5864     begin
5865     Result := LogonInfoVTable(vTable).authBlock(Self, length);
5866     end;
5867    
5868     procedure IManagement.start(status: IStatus; logonInfo: ILogonInfo);
5869     begin
5870     ManagementVTable(vTable).start(Self, status, logonInfo);
5871     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5872     end;
5873    
5874     function IManagement.execute(status: IStatus; user: IUser; callback: IListUsers): Integer;
5875     begin
5876     Result := ManagementVTable(vTable).execute(Self, status, user, callback);
5877     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5878     end;
5879    
5880     procedure IManagement.commit(status: IStatus);
5881     begin
5882     ManagementVTable(vTable).commit(Self, status);
5883     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5884     end;
5885    
5886     procedure IManagement.rollback(status: IStatus);
5887     begin
5888     ManagementVTable(vTable).rollback(Self, status);
5889     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5890     end;
5891    
5892     function IWireCryptPlugin.getKnownTypes(status: IStatus): PAnsiChar;
5893     begin
5894     Result := WireCryptPluginVTable(vTable).getKnownTypes(Self, status);
5895     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5896     end;
5897    
5898     procedure IWireCryptPlugin.setKey(status: IStatus; key: ICryptKey);
5899     begin
5900     WireCryptPluginVTable(vTable).setKey(Self, status, key);
5901     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5902     end;
5903    
5904     procedure IWireCryptPlugin.encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5905     begin
5906     WireCryptPluginVTable(vTable).encrypt(Self, status, length, from, to_);
5907     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5908     end;
5909    
5910     procedure IWireCryptPlugin.decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5911     begin
5912     WireCryptPluginVTable(vTable).decrypt(Self, status, length, from, to_);
5913     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5914     end;
5915    
5916     function ICryptKeyCallback.callback(dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal;
5917     begin
5918     Result := CryptKeyCallbackVTable(vTable).callback(Self, dataLength, data, bufferLength, buffer);
5919     end;
5920    
5921     function IKeyHolderPlugin.keyCallback(status: IStatus; callback: ICryptKeyCallback): Integer;
5922     begin
5923     Result := KeyHolderPluginVTable(vTable).keyCallback(Self, status, callback);
5924     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5925     end;
5926    
5927     function IKeyHolderPlugin.keyHandle(status: IStatus; keyName: PAnsiChar): ICryptKeyCallback;
5928     begin
5929     Result := KeyHolderPluginVTable(vTable).keyHandle(Self, status, keyName);
5930     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5931     end;
5932    
5933     procedure IDbCryptPlugin.setKey(status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar);
5934     begin
5935     DbCryptPluginVTable(vTable).setKey(Self, status, length, sources, keyName);
5936     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5937     end;
5938    
5939     procedure IDbCryptPlugin.encrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5940     begin
5941     DbCryptPluginVTable(vTable).encrypt(Self, status, length, from, to_);
5942     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5943     end;
5944    
5945     procedure IDbCryptPlugin.decrypt(status: IStatus; length: Cardinal; from: Pointer; to_: Pointer);
5946     begin
5947     DbCryptPluginVTable(vTable).decrypt(Self, status, length, from, to_);
5948     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5949     end;
5950    
5951     function IExternalContext.getMaster(): IMaster;
5952     begin
5953     Result := ExternalContextVTable(vTable).getMaster(Self);
5954     end;
5955    
5956     function IExternalContext.getEngine(status: IStatus): IExternalEngine;
5957     begin
5958     Result := ExternalContextVTable(vTable).getEngine(Self, status);
5959     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5960     end;
5961    
5962     function IExternalContext.getAttachment(status: IStatus): IAttachment;
5963     begin
5964     Result := ExternalContextVTable(vTable).getAttachment(Self, status);
5965     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5966     end;
5967    
5968     function IExternalContext.getTransaction(status: IStatus): ITransaction;
5969     begin
5970     Result := ExternalContextVTable(vTable).getTransaction(Self, status);
5971     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
5972     end;
5973    
5974     function IExternalContext.getUserName(): PAnsiChar;
5975     begin
5976     Result := ExternalContextVTable(vTable).getUserName(Self);
5977     end;
5978    
5979     function IExternalContext.getDatabaseName(): PAnsiChar;
5980     begin
5981     Result := ExternalContextVTable(vTable).getDatabaseName(Self);
5982     end;
5983    
5984     function IExternalContext.getClientCharSet(): PAnsiChar;
5985     begin
5986     Result := ExternalContextVTable(vTable).getClientCharSet(Self);
5987     end;
5988    
5989     function IExternalContext.obtainInfoCode(): Integer;
5990     begin
5991     Result := ExternalContextVTable(vTable).obtainInfoCode(Self);
5992     end;
5993    
5994     function IExternalContext.getInfo(code: Integer): Pointer;
5995     begin
5996     Result := ExternalContextVTable(vTable).getInfo(Self, code);
5997     end;
5998    
5999     function IExternalContext.setInfo(code: Integer; value: Pointer): Pointer;
6000     begin
6001     Result := ExternalContextVTable(vTable).setInfo(Self, code, value);
6002     end;
6003    
6004     function IExternalResultSet.fetch(status: IStatus): Boolean;
6005     begin
6006     Result := ExternalResultSetVTable(vTable).fetch(Self, status);
6007     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6008     end;
6009    
6010     procedure IExternalFunction.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
6011     begin
6012     ExternalFunctionVTable(vTable).getCharSet(Self, status, context, name, nameSize);
6013     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6014     end;
6015    
6016     procedure IExternalFunction.execute(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer);
6017     begin
6018     ExternalFunctionVTable(vTable).execute(Self, status, context, inMsg, outMsg);
6019     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6020     end;
6021    
6022     procedure IExternalProcedure.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
6023     begin
6024     ExternalProcedureVTable(vTable).getCharSet(Self, status, context, name, nameSize);
6025     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6026     end;
6027    
6028     function IExternalProcedure.open(status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet;
6029     begin
6030     Result := ExternalProcedureVTable(vTable).open(Self, status, context, inMsg, outMsg);
6031     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6032     end;
6033    
6034     procedure IExternalTrigger.getCharSet(status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal);
6035     begin
6036     ExternalTriggerVTable(vTable).getCharSet(Self, status, context, name, nameSize);
6037     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6038     end;
6039    
6040     procedure IExternalTrigger.execute(status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer);
6041     begin
6042     ExternalTriggerVTable(vTable).execute(Self, status, context, action, oldMsg, newMsg);
6043     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6044     end;
6045    
6046     function IRoutineMetadata.getPackage(status: IStatus): PAnsiChar;
6047     begin
6048     Result := RoutineMetadataVTable(vTable).getPackage(Self, status);
6049     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6050     end;
6051    
6052     function IRoutineMetadata.getName(status: IStatus): PAnsiChar;
6053     begin
6054     Result := RoutineMetadataVTable(vTable).getName(Self, status);
6055     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6056     end;
6057    
6058     function IRoutineMetadata.getEntryPoint(status: IStatus): PAnsiChar;
6059     begin
6060     Result := RoutineMetadataVTable(vTable).getEntryPoint(Self, status);
6061     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6062     end;
6063    
6064     function IRoutineMetadata.getBody(status: IStatus): PAnsiChar;
6065     begin
6066     Result := RoutineMetadataVTable(vTable).getBody(Self, status);
6067     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6068     end;
6069    
6070     function IRoutineMetadata.getInputMetadata(status: IStatus): IMessageMetadata;
6071     begin
6072     Result := RoutineMetadataVTable(vTable).getInputMetadata(Self, status);
6073     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6074     end;
6075    
6076     function IRoutineMetadata.getOutputMetadata(status: IStatus): IMessageMetadata;
6077     begin
6078     Result := RoutineMetadataVTable(vTable).getOutputMetadata(Self, status);
6079     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6080     end;
6081    
6082     function IRoutineMetadata.getTriggerMetadata(status: IStatus): IMessageMetadata;
6083     begin
6084     Result := RoutineMetadataVTable(vTable).getTriggerMetadata(Self, status);
6085     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6086     end;
6087    
6088     function IRoutineMetadata.getTriggerTable(status: IStatus): PAnsiChar;
6089     begin
6090     Result := RoutineMetadataVTable(vTable).getTriggerTable(Self, status);
6091     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6092     end;
6093    
6094     function IRoutineMetadata.getTriggerType(status: IStatus): Cardinal;
6095     begin
6096     Result := RoutineMetadataVTable(vTable).getTriggerType(Self, status);
6097     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6098     end;
6099    
6100     procedure IExternalEngine.open(status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal);
6101     begin
6102     ExternalEngineVTable(vTable).open(Self, status, context, charSet, charSetSize);
6103     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6104     end;
6105    
6106     procedure IExternalEngine.openAttachment(status: IStatus; context: IExternalContext);
6107     begin
6108     ExternalEngineVTable(vTable).openAttachment(Self, status, context);
6109     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6110     end;
6111    
6112     procedure IExternalEngine.closeAttachment(status: IStatus; context: IExternalContext);
6113     begin
6114     ExternalEngineVTable(vTable).closeAttachment(Self, status, context);
6115     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6116     end;
6117    
6118     function IExternalEngine.makeFunction(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction;
6119     begin
6120     Result := ExternalEngineVTable(vTable).makeFunction(Self, status, context, metadata, inBuilder, outBuilder);
6121     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6122     end;
6123    
6124     function IExternalEngine.makeProcedure(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure;
6125     begin
6126     Result := ExternalEngineVTable(vTable).makeProcedure(Self, status, context, metadata, inBuilder, outBuilder);
6127     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6128     end;
6129    
6130     function IExternalEngine.makeTrigger(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger;
6131     begin
6132     Result := ExternalEngineVTable(vTable).makeTrigger(Self, status, context, metadata, fieldsBuilder);
6133     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6134     end;
6135    
6136     procedure ITimer.handler();
6137     begin
6138     TimerVTable(vTable).handler(Self);
6139     end;
6140    
6141     procedure ITimerControl.start(status: IStatus; timer: ITimer; microSeconds: QWord);
6142     begin
6143     TimerControlVTable(vTable).start(Self, status, timer, microSeconds);
6144     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6145     end;
6146    
6147     procedure ITimerControl.stop(status: IStatus; timer: ITimer);
6148     begin
6149     TimerControlVTable(vTable).stop(Self, status, timer);
6150     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6151     end;
6152    
6153     procedure IVersionCallback.callback(status: IStatus; text: PAnsiChar);
6154     begin
6155     VersionCallbackVTable(vTable).callback(Self, status, text);
6156     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6157     end;
6158    
6159     procedure IUtil.getFbVersion(status: IStatus; att: IAttachment; callback: IVersionCallback);
6160     begin
6161     UtilVTable(vTable).getFbVersion(Self, status, att, callback);
6162     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6163     end;
6164    
6165     procedure IUtil.loadBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
6166     begin
6167     UtilVTable(vTable).loadBlob(Self, status, blobId, att, tra, file_, txt);
6168     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6169     end;
6170    
6171     procedure IUtil.dumpBlob(status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean);
6172     begin
6173     UtilVTable(vTable).dumpBlob(Self, status, blobId, att, tra, file_, txt);
6174     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6175     end;
6176    
6177     procedure IUtil.getPerfCounters(status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr);
6178     begin
6179     UtilVTable(vTable).getPerfCounters(Self, status, att, countersSet, counters);
6180     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6181     end;
6182    
6183     function IUtil.executeCreateDatabase(status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment;
6184     begin
6185     Result := UtilVTable(vTable).executeCreateDatabase(Self, status, stmtLength, creatDBstatement, dialect, stmtIsCreateDb);
6186     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6187     end;
6188    
6189     procedure IUtil.decodeDate(date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr);
6190     begin
6191     UtilVTable(vTable).decodeDate(Self, date, year, month, day);
6192     end;
6193    
6194     procedure IUtil.decodeTime(time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr);
6195     begin
6196     UtilVTable(vTable).decodeTime(Self, time, hours, minutes, seconds, fractions);
6197     end;
6198    
6199     function IUtil.encodeDate(year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE;
6200     begin
6201     Result := UtilVTable(vTable).encodeDate(Self, year, month, day);
6202     end;
6203    
6204     function IUtil.encodeTime(hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME;
6205     begin
6206     Result := UtilVTable(vTable).encodeTime(Self, hours, minutes, seconds, fractions);
6207     end;
6208    
6209     function IUtil.formatStatus(buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal;
6210     begin
6211     Result := UtilVTable(vTable).formatStatus(Self, buffer, bufferSize, status);
6212     end;
6213    
6214     function IUtil.getClientVersion(): Cardinal;
6215     begin
6216     Result := UtilVTable(vTable).getClientVersion(Self);
6217     end;
6218    
6219     function IUtil.getXpbBuilder(status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder;
6220     begin
6221     Result := UtilVTable(vTable).getXpbBuilder(Self, status, kind, buf, len);
6222     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6223     end;
6224    
6225     function IUtil.setOffsets(status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal;
6226     begin
6227     Result := UtilVTable(vTable).setOffsets(Self, status, metadata, callback);
6228     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6229     end;
6230    
6231     procedure IOffsetsCallback.setOffset(status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal);
6232     begin
6233     OffsetsCallbackVTable(vTable).setOffset(Self, status, index, offset, nullOffset);
6234     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6235     end;
6236    
6237     procedure IXpbBuilder.clear(status: IStatus);
6238     begin
6239     XpbBuilderVTable(vTable).clear(Self, status);
6240     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6241     end;
6242    
6243     procedure IXpbBuilder.removeCurrent(status: IStatus);
6244     begin
6245     XpbBuilderVTable(vTable).removeCurrent(Self, status);
6246     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6247     end;
6248    
6249     procedure IXpbBuilder.insertInt(status: IStatus; tag: Byte; value: Integer);
6250     begin
6251     XpbBuilderVTable(vTable).insertInt(Self, status, tag, value);
6252     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6253     end;
6254    
6255     procedure IXpbBuilder.insertBigInt(status: IStatus; tag: Byte; value: Int64);
6256     begin
6257     XpbBuilderVTable(vTable).insertBigInt(Self, status, tag, value);
6258     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6259     end;
6260    
6261     procedure IXpbBuilder.insertBytes(status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal);
6262     begin
6263     XpbBuilderVTable(vTable).insertBytes(Self, status, tag, bytes, length);
6264     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6265     end;
6266    
6267     procedure IXpbBuilder.insertString(status: IStatus; tag: Byte; str: PAnsiChar);
6268     begin
6269     XpbBuilderVTable(vTable).insertString(Self, status, tag, str);
6270     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6271     end;
6272    
6273     procedure IXpbBuilder.insertTag(status: IStatus; tag: Byte);
6274     begin
6275     XpbBuilderVTable(vTable).insertTag(Self, status, tag);
6276     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6277     end;
6278    
6279     function IXpbBuilder.isEof(status: IStatus): Boolean;
6280     begin
6281     Result := XpbBuilderVTable(vTable).isEof(Self, status);
6282     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6283     end;
6284    
6285     procedure IXpbBuilder.moveNext(status: IStatus);
6286     begin
6287     XpbBuilderVTable(vTable).moveNext(Self, status);
6288     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6289     end;
6290    
6291     procedure IXpbBuilder.rewind(status: IStatus);
6292     begin
6293     XpbBuilderVTable(vTable).rewind(Self, status);
6294     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6295     end;
6296    
6297     function IXpbBuilder.findFirst(status: IStatus; tag: Byte): Boolean;
6298     begin
6299     Result := XpbBuilderVTable(vTable).findFirst(Self, status, tag);
6300     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6301     end;
6302    
6303     function IXpbBuilder.findNext(status: IStatus): Boolean;
6304     begin
6305     Result := XpbBuilderVTable(vTable).findNext(Self, status);
6306     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6307     end;
6308    
6309     function IXpbBuilder.getTag(status: IStatus): Byte;
6310     begin
6311     Result := XpbBuilderVTable(vTable).getTag(Self, status);
6312     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6313     end;
6314    
6315     function IXpbBuilder.getLength(status: IStatus): Cardinal;
6316     begin
6317     Result := XpbBuilderVTable(vTable).getLength(Self, status);
6318     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6319     end;
6320    
6321     function IXpbBuilder.getInt(status: IStatus): Integer;
6322     begin
6323     Result := XpbBuilderVTable(vTable).getInt(Self, status);
6324     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6325     end;
6326    
6327     function IXpbBuilder.getBigInt(status: IStatus): Int64;
6328     begin
6329     Result := XpbBuilderVTable(vTable).getBigInt(Self, status);
6330     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6331     end;
6332    
6333     function IXpbBuilder.getString(status: IStatus): PAnsiChar;
6334     begin
6335     Result := XpbBuilderVTable(vTable).getString(Self, status);
6336     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6337     end;
6338    
6339     function IXpbBuilder.getBytes(status: IStatus): BytePtr;
6340     begin
6341     Result := XpbBuilderVTable(vTable).getBytes(Self, status);
6342     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6343     end;
6344    
6345     function IXpbBuilder.getBufferLength(status: IStatus): Cardinal;
6346     begin
6347     Result := XpbBuilderVTable(vTable).getBufferLength(Self, status);
6348     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6349     end;
6350    
6351     function IXpbBuilder.getBuffer(status: IStatus): BytePtr;
6352     begin
6353     Result := XpbBuilderVTable(vTable).getBuffer(Self, status);
6354     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6355     end;
6356    
6357     function ITraceConnection.getKind(): Cardinal;
6358     begin
6359     Result := TraceConnectionVTable(vTable).getKind(Self);
6360     end;
6361    
6362     function ITraceConnection.getProcessID(): Integer;
6363     begin
6364     Result := TraceConnectionVTable(vTable).getProcessID(Self);
6365     end;
6366    
6367     function ITraceConnection.getUserName(): PAnsiChar;
6368     begin
6369     Result := TraceConnectionVTable(vTable).getUserName(Self);
6370     end;
6371    
6372     function ITraceConnection.getRoleName(): PAnsiChar;
6373     begin
6374     Result := TraceConnectionVTable(vTable).getRoleName(Self);
6375     end;
6376    
6377     function ITraceConnection.getCharSet(): PAnsiChar;
6378     begin
6379     Result := TraceConnectionVTable(vTable).getCharSet(Self);
6380     end;
6381    
6382     function ITraceConnection.getRemoteProtocol(): PAnsiChar;
6383     begin
6384     Result := TraceConnectionVTable(vTable).getRemoteProtocol(Self);
6385     end;
6386    
6387     function ITraceConnection.getRemoteAddress(): PAnsiChar;
6388     begin
6389     Result := TraceConnectionVTable(vTable).getRemoteAddress(Self);
6390     end;
6391    
6392     function ITraceConnection.getRemoteProcessID(): Integer;
6393     begin
6394     Result := TraceConnectionVTable(vTable).getRemoteProcessID(Self);
6395     end;
6396    
6397     function ITraceConnection.getRemoteProcessName(): PAnsiChar;
6398     begin
6399     Result := TraceConnectionVTable(vTable).getRemoteProcessName(Self);
6400     end;
6401    
6402     function ITraceDatabaseConnection.getConnectionID(): Int64;
6403     begin
6404     Result := TraceDatabaseConnectionVTable(vTable).getConnectionID(Self);
6405     end;
6406    
6407     function ITraceDatabaseConnection.getDatabaseName(): PAnsiChar;
6408     begin
6409     Result := TraceDatabaseConnectionVTable(vTable).getDatabaseName(Self);
6410     end;
6411    
6412     function ITraceTransaction.getTransactionID(): Int64;
6413     begin
6414     Result := TraceTransactionVTable(vTable).getTransactionID(Self);
6415     end;
6416    
6417     function ITraceTransaction.getReadOnly(): Boolean;
6418     begin
6419     Result := TraceTransactionVTable(vTable).getReadOnly(Self);
6420     end;
6421    
6422     function ITraceTransaction.getWait(): Integer;
6423     begin
6424     Result := TraceTransactionVTable(vTable).getWait(Self);
6425     end;
6426    
6427     function ITraceTransaction.getIsolation(): Cardinal;
6428     begin
6429     Result := TraceTransactionVTable(vTable).getIsolation(Self);
6430     end;
6431    
6432     function ITraceTransaction.getPerf(): PerformanceInfoPtr;
6433     begin
6434     Result := TraceTransactionVTable(vTable).getPerf(Self);
6435     end;
6436    
6437     function ITraceParams.getCount(): Cardinal;
6438     begin
6439     Result := TraceParamsVTable(vTable).getCount(Self);
6440     end;
6441    
6442     function ITraceParams.getParam(idx: Cardinal): dscPtr;
6443     begin
6444     Result := TraceParamsVTable(vTable).getParam(Self, idx);
6445     end;
6446    
6447     function ITraceStatement.getStmtID(): Int64;
6448     begin
6449     Result := TraceStatementVTable(vTable).getStmtID(Self);
6450     end;
6451    
6452     function ITraceStatement.getPerf(): PerformanceInfoPtr;
6453     begin
6454     Result := TraceStatementVTable(vTable).getPerf(Self);
6455     end;
6456    
6457     function ITraceSQLStatement.getText(): PAnsiChar;
6458     begin
6459     Result := TraceSQLStatementVTable(vTable).getText(Self);
6460     end;
6461    
6462     function ITraceSQLStatement.getPlan(): PAnsiChar;
6463     begin
6464     Result := TraceSQLStatementVTable(vTable).getPlan(Self);
6465     end;
6466    
6467     function ITraceSQLStatement.getInputs(): ITraceParams;
6468     begin
6469     Result := TraceSQLStatementVTable(vTable).getInputs(Self);
6470     end;
6471    
6472     function ITraceSQLStatement.getTextUTF8(): PAnsiChar;
6473     begin
6474     Result := TraceSQLStatementVTable(vTable).getTextUTF8(Self);
6475     end;
6476    
6477     function ITraceSQLStatement.getExplainedPlan(): PAnsiChar;
6478     begin
6479     Result := TraceSQLStatementVTable(vTable).getExplainedPlan(Self);
6480     end;
6481    
6482     function ITraceBLRStatement.getData(): BytePtr;
6483     begin
6484     Result := TraceBLRStatementVTable(vTable).getData(Self);
6485     end;
6486    
6487     function ITraceBLRStatement.getDataLength(): Cardinal;
6488     begin
6489     Result := TraceBLRStatementVTable(vTable).getDataLength(Self);
6490     end;
6491    
6492     function ITraceBLRStatement.getText(): PAnsiChar;
6493     begin
6494     Result := TraceBLRStatementVTable(vTable).getText(Self);
6495     end;
6496    
6497     function ITraceDYNRequest.getData(): BytePtr;
6498     begin
6499     Result := TraceDYNRequestVTable(vTable).getData(Self);
6500     end;
6501    
6502     function ITraceDYNRequest.getDataLength(): Cardinal;
6503     begin
6504     Result := TraceDYNRequestVTable(vTable).getDataLength(Self);
6505     end;
6506    
6507     function ITraceDYNRequest.getText(): PAnsiChar;
6508     begin
6509     Result := TraceDYNRequestVTable(vTable).getText(Self);
6510     end;
6511    
6512     function ITraceContextVariable.getNameSpace(): PAnsiChar;
6513     begin
6514     Result := TraceContextVariableVTable(vTable).getNameSpace(Self);
6515     end;
6516    
6517     function ITraceContextVariable.getVarName(): PAnsiChar;
6518     begin
6519     Result := TraceContextVariableVTable(vTable).getVarName(Self);
6520     end;
6521    
6522     function ITraceContextVariable.getVarValue(): PAnsiChar;
6523     begin
6524     Result := TraceContextVariableVTable(vTable).getVarValue(Self);
6525     end;
6526    
6527     function ITraceProcedure.getProcName(): PAnsiChar;
6528     begin
6529     Result := TraceProcedureVTable(vTable).getProcName(Self);
6530     end;
6531    
6532     function ITraceProcedure.getInputs(): ITraceParams;
6533     begin
6534     Result := TraceProcedureVTable(vTable).getInputs(Self);
6535     end;
6536    
6537     function ITraceProcedure.getPerf(): PerformanceInfoPtr;
6538     begin
6539     Result := TraceProcedureVTable(vTable).getPerf(Self);
6540     end;
6541    
6542     function ITraceFunction.getFuncName(): PAnsiChar;
6543     begin
6544     Result := TraceFunctionVTable(vTable).getFuncName(Self);
6545     end;
6546    
6547     function ITraceFunction.getInputs(): ITraceParams;
6548     begin
6549     Result := TraceFunctionVTable(vTable).getInputs(Self);
6550     end;
6551    
6552     function ITraceFunction.getResult(): ITraceParams;
6553     begin
6554     Result := TraceFunctionVTable(vTable).getResult(Self);
6555     end;
6556    
6557     function ITraceFunction.getPerf(): PerformanceInfoPtr;
6558     begin
6559     Result := TraceFunctionVTable(vTable).getPerf(Self);
6560     end;
6561    
6562     function ITraceTrigger.getTriggerName(): PAnsiChar;
6563     begin
6564     Result := TraceTriggerVTable(vTable).getTriggerName(Self);
6565     end;
6566    
6567     function ITraceTrigger.getRelationName(): PAnsiChar;
6568     begin
6569     Result := TraceTriggerVTable(vTable).getRelationName(Self);
6570     end;
6571    
6572     function ITraceTrigger.getAction(): Integer;
6573     begin
6574     Result := TraceTriggerVTable(vTable).getAction(Self);
6575     end;
6576    
6577     function ITraceTrigger.getWhich(): Integer;
6578     begin
6579     Result := TraceTriggerVTable(vTable).getWhich(Self);
6580     end;
6581    
6582     function ITraceTrigger.getPerf(): PerformanceInfoPtr;
6583     begin
6584     Result := TraceTriggerVTable(vTable).getPerf(Self);
6585     end;
6586    
6587     function ITraceServiceConnection.getServiceID(): Pointer;
6588     begin
6589     Result := TraceServiceConnectionVTable(vTable).getServiceID(Self);
6590     end;
6591    
6592     function ITraceServiceConnection.getServiceMgr(): PAnsiChar;
6593     begin
6594     Result := TraceServiceConnectionVTable(vTable).getServiceMgr(Self);
6595     end;
6596    
6597     function ITraceServiceConnection.getServiceName(): PAnsiChar;
6598     begin
6599     Result := TraceServiceConnectionVTable(vTable).getServiceName(Self);
6600     end;
6601    
6602     function ITraceStatusVector.hasError(): Boolean;
6603     begin
6604     Result := TraceStatusVectorVTable(vTable).hasError(Self);
6605     end;
6606    
6607     function ITraceStatusVector.hasWarning(): Boolean;
6608     begin
6609     Result := TraceStatusVectorVTable(vTable).hasWarning(Self);
6610     end;
6611    
6612     function ITraceStatusVector.getStatus(): IStatus;
6613     begin
6614     Result := TraceStatusVectorVTable(vTable).getStatus(Self);
6615     end;
6616    
6617     function ITraceStatusVector.getText(): PAnsiChar;
6618     begin
6619     Result := TraceStatusVectorVTable(vTable).getText(Self);
6620     end;
6621    
6622     function ITraceSweepInfo.getOIT(): Int64;
6623     begin
6624     Result := TraceSweepInfoVTable(vTable).getOIT(Self);
6625     end;
6626    
6627     function ITraceSweepInfo.getOST(): Int64;
6628     begin
6629     Result := TraceSweepInfoVTable(vTable).getOST(Self);
6630     end;
6631    
6632     function ITraceSweepInfo.getOAT(): Int64;
6633     begin
6634     Result := TraceSweepInfoVTable(vTable).getOAT(Self);
6635     end;
6636    
6637     function ITraceSweepInfo.getNext(): Int64;
6638     begin
6639     Result := TraceSweepInfoVTable(vTable).getNext(Self);
6640     end;
6641    
6642     function ITraceSweepInfo.getPerf(): PerformanceInfoPtr;
6643     begin
6644     Result := TraceSweepInfoVTable(vTable).getPerf(Self);
6645     end;
6646    
6647     function ITraceLogWriter.write(buf: Pointer; size: Cardinal): Cardinal;
6648     begin
6649     Result := TraceLogWriterVTable(vTable).write(Self, buf, size);
6650     end;
6651    
6652     function ITraceInitInfo.getConfigText(): PAnsiChar;
6653     begin
6654     Result := TraceInitInfoVTable(vTable).getConfigText(Self);
6655     end;
6656    
6657     function ITraceInitInfo.getTraceSessionID(): Integer;
6658     begin
6659     Result := TraceInitInfoVTable(vTable).getTraceSessionID(Self);
6660     end;
6661    
6662     function ITraceInitInfo.getTraceSessionName(): PAnsiChar;
6663     begin
6664     Result := TraceInitInfoVTable(vTable).getTraceSessionName(Self);
6665     end;
6666    
6667     function ITraceInitInfo.getFirebirdRootDirectory(): PAnsiChar;
6668     begin
6669     Result := TraceInitInfoVTable(vTable).getFirebirdRootDirectory(Self);
6670     end;
6671    
6672     function ITraceInitInfo.getDatabaseName(): PAnsiChar;
6673     begin
6674     Result := TraceInitInfoVTable(vTable).getDatabaseName(Self);
6675     end;
6676    
6677     function ITraceInitInfo.getConnection(): ITraceDatabaseConnection;
6678     begin
6679     Result := TraceInitInfoVTable(vTable).getConnection(Self);
6680     end;
6681    
6682     function ITraceInitInfo.getLogWriter(): ITraceLogWriter;
6683     begin
6684     Result := TraceInitInfoVTable(vTable).getLogWriter(Self);
6685     end;
6686    
6687     function ITracePlugin.trace_get_error(): PAnsiChar;
6688     begin
6689     Result := TracePluginVTable(vTable).trace_get_error(Self);
6690     end;
6691    
6692     function ITracePlugin.trace_attach(connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean;
6693     begin
6694     Result := TracePluginVTable(vTable).trace_attach(Self, connection, create_db, att_result);
6695     end;
6696    
6697     function ITracePlugin.trace_detach(connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean;
6698     begin
6699     Result := TracePluginVTable(vTable).trace_detach(Self, connection, drop_db);
6700     end;
6701    
6702     function ITracePlugin.trace_transaction_start(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean;
6703     begin
6704     Result := TracePluginVTable(vTable).trace_transaction_start(Self, connection, transaction, tpb_length, tpb, tra_result);
6705     end;
6706    
6707     function ITracePlugin.trace_transaction_end(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean;
6708     begin
6709     Result := TracePluginVTable(vTable).trace_transaction_end(Self, connection, transaction, commit, retain_context, tra_result);
6710     end;
6711    
6712     function ITracePlugin.trace_proc_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean;
6713     begin
6714     Result := TracePluginVTable(vTable).trace_proc_execute(Self, connection, transaction, procedure_, started, proc_result);
6715     end;
6716    
6717     function ITracePlugin.trace_trigger_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean;
6718     begin
6719     Result := TracePluginVTable(vTable).trace_trigger_execute(Self, connection, transaction, trigger, started, trig_result);
6720     end;
6721    
6722     function ITracePlugin.trace_set_context(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean;
6723     begin
6724     Result := TracePluginVTable(vTable).trace_set_context(Self, connection, transaction, variable);
6725     end;
6726    
6727     function ITracePlugin.trace_dsql_prepare(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean;
6728     begin
6729     Result := TracePluginVTable(vTable).trace_dsql_prepare(Self, connection, transaction, statement, time_millis, req_result);
6730     end;
6731    
6732     function ITracePlugin.trace_dsql_free(connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean;
6733     begin
6734     Result := TracePluginVTable(vTable).trace_dsql_free(Self, connection, statement, option);
6735     end;
6736    
6737     function ITracePlugin.trace_dsql_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean;
6738     begin
6739     Result := TracePluginVTable(vTable).trace_dsql_execute(Self, connection, transaction, statement, started, req_result);
6740     end;
6741    
6742     function ITracePlugin.trace_blr_compile(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean;
6743     begin
6744     Result := TracePluginVTable(vTable).trace_blr_compile(Self, connection, transaction, statement, time_millis, req_result);
6745     end;
6746    
6747     function ITracePlugin.trace_blr_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean;
6748     begin
6749     Result := TracePluginVTable(vTable).trace_blr_execute(Self, connection, transaction, statement, req_result);
6750     end;
6751    
6752     function ITracePlugin.trace_dyn_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean;
6753     begin
6754     Result := TracePluginVTable(vTable).trace_dyn_execute(Self, connection, transaction, request, time_millis, req_result);
6755     end;
6756    
6757     function ITracePlugin.trace_service_attach(service: ITraceServiceConnection; att_result: Cardinal): Boolean;
6758     begin
6759     Result := TracePluginVTable(vTable).trace_service_attach(Self, service, att_result);
6760     end;
6761    
6762     function ITracePlugin.trace_service_start(service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean;
6763     begin
6764     Result := TracePluginVTable(vTable).trace_service_start(Self, service, switches_length, switches, start_result);
6765     end;
6766    
6767     function ITracePlugin.trace_service_query(service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean;
6768     begin
6769     Result := TracePluginVTable(vTable).trace_service_query(Self, service, send_item_length, send_items, recv_item_length, recv_items, query_result);
6770     end;
6771    
6772     function ITracePlugin.trace_service_detach(service: ITraceServiceConnection; detach_result: Cardinal): Boolean;
6773     begin
6774     Result := TracePluginVTable(vTable).trace_service_detach(Self, service, detach_result);
6775     end;
6776    
6777     function ITracePlugin.trace_event_error(connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean;
6778     begin
6779     Result := TracePluginVTable(vTable).trace_event_error(Self, connection, status, function_);
6780     end;
6781    
6782     function ITracePlugin.trace_event_sweep(connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean;
6783     begin
6784     Result := TracePluginVTable(vTable).trace_event_sweep(Self, connection, sweep, sweep_state);
6785     end;
6786    
6787     function ITracePlugin.trace_func_execute(connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean;
6788     begin
6789     Result := TracePluginVTable(vTable).trace_func_execute(Self, connection, transaction, function_, started, func_result);
6790     end;
6791    
6792     function ITraceFactory.trace_needs(): QWord;
6793     begin
6794     Result := TraceFactoryVTable(vTable).trace_needs(Self);
6795     end;
6796    
6797     function ITraceFactory.trace_create(status: IStatus; init_info: ITraceInitInfo): ITracePlugin;
6798     begin
6799     Result := TraceFactoryVTable(vTable).trace_create(Self, status, init_info);
6800     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6801     end;
6802    
6803     procedure IUdrFunctionFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
6804     begin
6805     UdrFunctionFactoryVTable(vTable).setup(Self, status, context, metadata, inBuilder, outBuilder);
6806     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6807     end;
6808    
6809     function IUdrFunctionFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction;
6810     begin
6811     Result := UdrFunctionFactoryVTable(vTable).newItem(Self, status, context, metadata);
6812     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6813     end;
6814    
6815     procedure IUdrProcedureFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder);
6816     begin
6817     UdrProcedureFactoryVTable(vTable).setup(Self, status, context, metadata, inBuilder, outBuilder);
6818     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6819     end;
6820    
6821     function IUdrProcedureFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure;
6822     begin
6823     Result := UdrProcedureFactoryVTable(vTable).newItem(Self, status, context, metadata);
6824     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6825     end;
6826    
6827     procedure IUdrTriggerFactory.setup(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder);
6828     begin
6829     UdrTriggerFactoryVTable(vTable).setup(Self, status, context, metadata, fieldsBuilder);
6830     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6831     end;
6832    
6833     function IUdrTriggerFactory.newItem(status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger;
6834     begin
6835     Result := UdrTriggerFactoryVTable(vTable).newItem(Self, status, context, metadata);
6836     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6837     end;
6838    
6839     function IUdrPlugin.getMaster(): IMaster;
6840     begin
6841     Result := UdrPluginVTable(vTable).getMaster(Self);
6842     end;
6843    
6844     procedure IUdrPlugin.registerFunction(status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory);
6845     begin
6846     UdrPluginVTable(vTable).registerFunction(Self, status, name, factory);
6847     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6848     end;
6849    
6850     procedure IUdrPlugin.registerProcedure(status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory);
6851     begin
6852     UdrPluginVTable(vTable).registerProcedure(Self, status, name, factory);
6853     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6854     end;
6855    
6856     procedure IUdrPlugin.registerTrigger(status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory);
6857     begin
6858     UdrPluginVTable(vTable).registerTrigger(Self, status, name, factory);
6859     {$IFDEF USEFBEXCEPTION}FbException.checkException(status); {$ENDIF}
6860     end;
6861    
6862     var
6863     IVersionedImpl_vTable: VersionedVTable;
6864    
6865     constructor IVersionedImpl.create;
6866     begin
6867     vTable := IVersionedImpl_vTable;
6868     end;
6869    
6870     procedure IReferenceCountedImpl_addRefDispatcher(this: IReferenceCounted); cdecl;
6871     begin
6872     try
6873     IReferenceCountedImpl(this).addRef();
6874     except
6875     on e: Exception do FbException.catchException(nil, e);
6876     end
6877     end;
6878    
6879     function IReferenceCountedImpl_releaseDispatcher(this: IReferenceCounted): Integer; cdecl;
6880     begin
6881     try
6882     Result := IReferenceCountedImpl(this).release();
6883     except
6884     on e: Exception do FbException.catchException(nil, e);
6885     end
6886     end;
6887    
6888     var
6889     IReferenceCountedImpl_vTable: ReferenceCountedVTable;
6890    
6891     constructor IReferenceCountedImpl.create;
6892     begin
6893     vTable := IReferenceCountedImpl_vTable;
6894     end;
6895    
6896     procedure IDisposableImpl_disposeDispatcher(this: IDisposable); cdecl;
6897     begin
6898     try
6899     IDisposableImpl(this).dispose();
6900     except
6901     on e: Exception do FbException.catchException(nil, e);
6902     end
6903     end;
6904    
6905     var
6906     IDisposableImpl_vTable: DisposableVTable;
6907    
6908     constructor IDisposableImpl.create;
6909     begin
6910     vTable := IDisposableImpl_vTable;
6911     end;
6912    
6913     procedure IStatusImpl_disposeDispatcher(this: IStatus); cdecl;
6914     begin
6915     try
6916     IStatusImpl(this).dispose();
6917     except
6918     on e: Exception do FbException.catchException(nil, e);
6919     end
6920     end;
6921    
6922     procedure IStatusImpl_initDispatcher(this: IStatus); cdecl;
6923     begin
6924     try
6925     IStatusImpl(this).init();
6926     except
6927     on e: Exception do FbException.catchException(nil, e);
6928     end
6929     end;
6930    
6931     function IStatusImpl_getStateDispatcher(this: IStatus): Cardinal; cdecl;
6932     begin
6933     try
6934     Result := IStatusImpl(this).getState();
6935     except
6936     on e: Exception do FbException.catchException(nil, e);
6937     end
6938     end;
6939    
6940     procedure IStatusImpl_setErrors2Dispatcher(this: IStatus; length: Cardinal; value: NativeIntPtr); cdecl;
6941     begin
6942     try
6943     IStatusImpl(this).setErrors2(length, value);
6944     except
6945     on e: Exception do FbException.catchException(nil, e);
6946     end
6947     end;
6948    
6949     procedure IStatusImpl_setWarnings2Dispatcher(this: IStatus; length: Cardinal; value: NativeIntPtr); cdecl;
6950     begin
6951     try
6952     IStatusImpl(this).setWarnings2(length, value);
6953     except
6954     on e: Exception do FbException.catchException(nil, e);
6955     end
6956     end;
6957    
6958     procedure IStatusImpl_setErrorsDispatcher(this: IStatus; value: NativeIntPtr); cdecl;
6959     begin
6960     try
6961     IStatusImpl(this).setErrors(value);
6962     except
6963     on e: Exception do FbException.catchException(nil, e);
6964     end
6965     end;
6966    
6967     procedure IStatusImpl_setWarningsDispatcher(this: IStatus; value: NativeIntPtr); cdecl;
6968     begin
6969     try
6970     IStatusImpl(this).setWarnings(value);
6971     except
6972     on e: Exception do FbException.catchException(nil, e);
6973     end
6974     end;
6975    
6976     function IStatusImpl_getErrorsDispatcher(this: IStatus): NativeIntPtr; cdecl;
6977     begin
6978     try
6979     Result := IStatusImpl(this).getErrors();
6980     except
6981     on e: Exception do FbException.catchException(nil, e);
6982     end
6983     end;
6984    
6985     function IStatusImpl_getWarningsDispatcher(this: IStatus): NativeIntPtr; cdecl;
6986     begin
6987     try
6988     Result := IStatusImpl(this).getWarnings();
6989     except
6990     on e: Exception do FbException.catchException(nil, e);
6991     end
6992     end;
6993    
6994     function IStatusImpl_cloneDispatcher(this: IStatus): IStatus; cdecl;
6995     begin
6996     try
6997     Result := IStatusImpl(this).clone();
6998     except
6999     on e: Exception do FbException.catchException(nil, e);
7000     end
7001     end;
7002    
7003     var
7004     IStatusImpl_vTable: StatusVTable;
7005    
7006     constructor IStatusImpl.create;
7007     begin
7008     vTable := IStatusImpl_vTable;
7009     end;
7010    
7011     function IMasterImpl_getStatusDispatcher(this: IMaster): IStatus; cdecl;
7012     begin
7013     try
7014     Result := IMasterImpl(this).getStatus();
7015     except
7016     on e: Exception do FbException.catchException(nil, e);
7017     end
7018     end;
7019    
7020     function IMasterImpl_getDispatcherDispatcher(this: IMaster): IProvider; cdecl;
7021     begin
7022     try
7023     Result := IMasterImpl(this).getDispatcher();
7024     except
7025     on e: Exception do FbException.catchException(nil, e);
7026     end
7027     end;
7028    
7029     function IMasterImpl_getPluginManagerDispatcher(this: IMaster): IPluginManager; cdecl;
7030     begin
7031     try
7032     Result := IMasterImpl(this).getPluginManager();
7033     except
7034     on e: Exception do FbException.catchException(nil, e);
7035     end
7036     end;
7037    
7038     function IMasterImpl_getTimerControlDispatcher(this: IMaster): ITimerControl; cdecl;
7039     begin
7040     try
7041     Result := IMasterImpl(this).getTimerControl();
7042     except
7043     on e: Exception do FbException.catchException(nil, e);
7044     end
7045     end;
7046    
7047     function IMasterImpl_getDtcDispatcher(this: IMaster): IDtc; cdecl;
7048     begin
7049     try
7050     Result := IMasterImpl(this).getDtc();
7051     except
7052     on e: Exception do FbException.catchException(nil, e);
7053     end
7054     end;
7055    
7056     function IMasterImpl_registerAttachmentDispatcher(this: IMaster; provider: IProvider; attachment: IAttachment): IAttachment; cdecl;
7057     begin
7058     try
7059     Result := IMasterImpl(this).registerAttachment(provider, attachment);
7060     except
7061     on e: Exception do FbException.catchException(nil, e);
7062     end
7063     end;
7064    
7065     function IMasterImpl_registerTransactionDispatcher(this: IMaster; attachment: IAttachment; transaction: ITransaction): ITransaction; cdecl;
7066     begin
7067     try
7068     Result := IMasterImpl(this).registerTransaction(attachment, transaction);
7069     except
7070     on e: Exception do FbException.catchException(nil, e);
7071     end
7072     end;
7073    
7074     function IMasterImpl_getMetadataBuilderDispatcher(this: IMaster; status: IStatus; fieldCount: Cardinal): IMetadataBuilder; cdecl;
7075     begin
7076     try
7077     Result := IMasterImpl(this).getMetadataBuilder(status, fieldCount);
7078     except
7079     on e: Exception do FbException.catchException(status, e);
7080     end
7081     end;
7082    
7083     function IMasterImpl_serverModeDispatcher(this: IMaster; mode: Integer): Integer; cdecl;
7084     begin
7085     try
7086     Result := IMasterImpl(this).serverMode(mode);
7087     except
7088     on e: Exception do FbException.catchException(nil, e);
7089     end
7090     end;
7091    
7092     function IMasterImpl_getUtilInterfaceDispatcher(this: IMaster): IUtil; cdecl;
7093     begin
7094     try
7095     Result := IMasterImpl(this).getUtilInterface();
7096     except
7097     on e: Exception do FbException.catchException(nil, e);
7098     end
7099     end;
7100    
7101     function IMasterImpl_getConfigManagerDispatcher(this: IMaster): IConfigManager; cdecl;
7102     begin
7103     try
7104     Result := IMasterImpl(this).getConfigManager();
7105     except
7106     on e: Exception do FbException.catchException(nil, e);
7107     end
7108     end;
7109    
7110     function IMasterImpl_getProcessExitingDispatcher(this: IMaster): Boolean; cdecl;
7111     begin
7112     try
7113     Result := IMasterImpl(this).getProcessExiting();
7114     except
7115     on e: Exception do FbException.catchException(nil, e);
7116     end
7117     end;
7118    
7119     var
7120     IMasterImpl_vTable: MasterVTable;
7121    
7122     constructor IMasterImpl.create;
7123     begin
7124     vTable := IMasterImpl_vTable;
7125     end;
7126    
7127     procedure IPluginBaseImpl_addRefDispatcher(this: IPluginBase); cdecl;
7128     begin
7129     try
7130     IPluginBaseImpl(this).addRef();
7131     except
7132     on e: Exception do FbException.catchException(nil, e);
7133     end
7134     end;
7135    
7136     function IPluginBaseImpl_releaseDispatcher(this: IPluginBase): Integer; cdecl;
7137     begin
7138     try
7139     Result := IPluginBaseImpl(this).release();
7140     except
7141     on e: Exception do FbException.catchException(nil, e);
7142     end
7143     end;
7144    
7145     procedure IPluginBaseImpl_setOwnerDispatcher(this: IPluginBase; r: IReferenceCounted); cdecl;
7146     begin
7147     try
7148     IPluginBaseImpl(this).setOwner(r);
7149     except
7150     on e: Exception do FbException.catchException(nil, e);
7151     end
7152     end;
7153    
7154     function IPluginBaseImpl_getOwnerDispatcher(this: IPluginBase): IReferenceCounted; cdecl;
7155     begin
7156     try
7157     Result := IPluginBaseImpl(this).getOwner();
7158     except
7159     on e: Exception do FbException.catchException(nil, e);
7160     end
7161     end;
7162    
7163     var
7164     IPluginBaseImpl_vTable: PluginBaseVTable;
7165    
7166     constructor IPluginBaseImpl.create;
7167     begin
7168     vTable := IPluginBaseImpl_vTable;
7169     end;
7170    
7171     procedure IPluginSetImpl_addRefDispatcher(this: IPluginSet); cdecl;
7172     begin
7173     try
7174     IPluginSetImpl(this).addRef();
7175     except
7176     on e: Exception do FbException.catchException(nil, e);
7177     end
7178     end;
7179    
7180     function IPluginSetImpl_releaseDispatcher(this: IPluginSet): Integer; cdecl;
7181     begin
7182     try
7183     Result := IPluginSetImpl(this).release();
7184     except
7185     on e: Exception do FbException.catchException(nil, e);
7186     end
7187     end;
7188    
7189     function IPluginSetImpl_getNameDispatcher(this: IPluginSet): PAnsiChar; cdecl;
7190     begin
7191     try
7192     Result := IPluginSetImpl(this).getName();
7193     except
7194     on e: Exception do FbException.catchException(nil, e);
7195     end
7196     end;
7197    
7198     function IPluginSetImpl_getModuleNameDispatcher(this: IPluginSet): PAnsiChar; cdecl;
7199     begin
7200     try
7201     Result := IPluginSetImpl(this).getModuleName();
7202     except
7203     on e: Exception do FbException.catchException(nil, e);
7204     end
7205     end;
7206    
7207     function IPluginSetImpl_getPluginDispatcher(this: IPluginSet; status: IStatus): IPluginBase; cdecl;
7208     begin
7209     try
7210     Result := IPluginSetImpl(this).getPlugin(status);
7211     except
7212     on e: Exception do FbException.catchException(status, e);
7213     end
7214     end;
7215    
7216     procedure IPluginSetImpl_nextDispatcher(this: IPluginSet; status: IStatus); cdecl;
7217     begin
7218     try
7219     IPluginSetImpl(this).next(status);
7220     except
7221     on e: Exception do FbException.catchException(status, e);
7222     end
7223     end;
7224    
7225     procedure IPluginSetImpl_set_Dispatcher(this: IPluginSet; status: IStatus; s: PAnsiChar); cdecl;
7226     begin
7227     try
7228     IPluginSetImpl(this).set_(status, s);
7229     except
7230     on e: Exception do FbException.catchException(status, e);
7231     end
7232     end;
7233    
7234     var
7235     IPluginSetImpl_vTable: PluginSetVTable;
7236    
7237     constructor IPluginSetImpl.create;
7238     begin
7239     vTable := IPluginSetImpl_vTable;
7240     end;
7241    
7242     procedure IConfigEntryImpl_addRefDispatcher(this: IConfigEntry); cdecl;
7243     begin
7244     try
7245     IConfigEntryImpl(this).addRef();
7246     except
7247     on e: Exception do FbException.catchException(nil, e);
7248     end
7249     end;
7250    
7251     function IConfigEntryImpl_releaseDispatcher(this: IConfigEntry): Integer; cdecl;
7252     begin
7253     try
7254     Result := IConfigEntryImpl(this).release();
7255     except
7256     on e: Exception do FbException.catchException(nil, e);
7257     end
7258     end;
7259    
7260     function IConfigEntryImpl_getNameDispatcher(this: IConfigEntry): PAnsiChar; cdecl;
7261     begin
7262     try
7263     Result := IConfigEntryImpl(this).getName();
7264     except
7265     on e: Exception do FbException.catchException(nil, e);
7266     end
7267     end;
7268    
7269     function IConfigEntryImpl_getValueDispatcher(this: IConfigEntry): PAnsiChar; cdecl;
7270     begin
7271     try
7272     Result := IConfigEntryImpl(this).getValue();
7273     except
7274     on e: Exception do FbException.catchException(nil, e);
7275     end
7276     end;
7277    
7278     function IConfigEntryImpl_getIntValueDispatcher(this: IConfigEntry): Int64; cdecl;
7279     begin
7280     try
7281     Result := IConfigEntryImpl(this).getIntValue();
7282     except
7283     on e: Exception do FbException.catchException(nil, e);
7284     end
7285     end;
7286    
7287     function IConfigEntryImpl_getBoolValueDispatcher(this: IConfigEntry): Boolean; cdecl;
7288     begin
7289     try
7290     Result := IConfigEntryImpl(this).getBoolValue();
7291     except
7292     on e: Exception do FbException.catchException(nil, e);
7293     end
7294     end;
7295    
7296     function IConfigEntryImpl_getSubConfigDispatcher(this: IConfigEntry; status: IStatus): IConfig; cdecl;
7297     begin
7298     try
7299     Result := IConfigEntryImpl(this).getSubConfig(status);
7300     except
7301     on e: Exception do FbException.catchException(status, e);
7302     end
7303     end;
7304    
7305     var
7306     IConfigEntryImpl_vTable: ConfigEntryVTable;
7307    
7308     constructor IConfigEntryImpl.create;
7309     begin
7310     vTable := IConfigEntryImpl_vTable;
7311     end;
7312    
7313     procedure IConfigImpl_addRefDispatcher(this: IConfig); cdecl;
7314     begin
7315     try
7316     IConfigImpl(this).addRef();
7317     except
7318     on e: Exception do FbException.catchException(nil, e);
7319     end
7320     end;
7321    
7322     function IConfigImpl_releaseDispatcher(this: IConfig): Integer; cdecl;
7323     begin
7324     try
7325     Result := IConfigImpl(this).release();
7326     except
7327     on e: Exception do FbException.catchException(nil, e);
7328     end
7329     end;
7330    
7331     function IConfigImpl_findDispatcher(this: IConfig; status: IStatus; name: PAnsiChar): IConfigEntry; cdecl;
7332     begin
7333     try
7334     Result := IConfigImpl(this).find(status, name);
7335     except
7336     on e: Exception do FbException.catchException(status, e);
7337     end
7338     end;
7339    
7340     function IConfigImpl_findValueDispatcher(this: IConfig; status: IStatus; name: PAnsiChar; value: PAnsiChar): IConfigEntry; cdecl;
7341     begin
7342     try
7343     Result := IConfigImpl(this).findValue(status, name, value);
7344     except
7345     on e: Exception do FbException.catchException(status, e);
7346     end
7347     end;
7348    
7349     function IConfigImpl_findPosDispatcher(this: IConfig; status: IStatus; name: PAnsiChar; pos: Cardinal): IConfigEntry; cdecl;
7350     begin
7351     try
7352     Result := IConfigImpl(this).findPos(status, name, pos);
7353     except
7354     on e: Exception do FbException.catchException(status, e);
7355     end
7356     end;
7357    
7358     var
7359     IConfigImpl_vTable: ConfigVTable;
7360    
7361     constructor IConfigImpl.create;
7362     begin
7363     vTable := IConfigImpl_vTable;
7364     end;
7365    
7366     procedure IFirebirdConfImpl_addRefDispatcher(this: IFirebirdConf); cdecl;
7367     begin
7368     try
7369     IFirebirdConfImpl(this).addRef();
7370     except
7371     on e: Exception do FbException.catchException(nil, e);
7372     end
7373     end;
7374    
7375     function IFirebirdConfImpl_releaseDispatcher(this: IFirebirdConf): Integer; cdecl;
7376     begin
7377     try
7378     Result := IFirebirdConfImpl(this).release();
7379     except
7380     on e: Exception do FbException.catchException(nil, e);
7381     end
7382     end;
7383    
7384     function IFirebirdConfImpl_getKeyDispatcher(this: IFirebirdConf; name: PAnsiChar): Cardinal; cdecl;
7385     begin
7386     try
7387     Result := IFirebirdConfImpl(this).getKey(name);
7388     except
7389     on e: Exception do FbException.catchException(nil, e);
7390     end
7391     end;
7392    
7393     function IFirebirdConfImpl_asIntegerDispatcher(this: IFirebirdConf; key: Cardinal): Int64; cdecl;
7394     begin
7395     try
7396     Result := IFirebirdConfImpl(this).asInteger(key);
7397     except
7398     on e: Exception do FbException.catchException(nil, e);
7399     end
7400     end;
7401    
7402     function IFirebirdConfImpl_asStringDispatcher(this: IFirebirdConf; key: Cardinal): PAnsiChar; cdecl;
7403     begin
7404     try
7405     Result := IFirebirdConfImpl(this).asString(key);
7406     except
7407     on e: Exception do FbException.catchException(nil, e);
7408     end
7409     end;
7410    
7411     function IFirebirdConfImpl_asBooleanDispatcher(this: IFirebirdConf; key: Cardinal): Boolean; cdecl;
7412     begin
7413     try
7414     Result := IFirebirdConfImpl(this).asBoolean(key);
7415     except
7416     on e: Exception do FbException.catchException(nil, e);
7417     end
7418     end;
7419    
7420     var
7421     IFirebirdConfImpl_vTable: FirebirdConfVTable;
7422    
7423     constructor IFirebirdConfImpl.create;
7424     begin
7425     vTable := IFirebirdConfImpl_vTable;
7426     end;
7427    
7428     procedure IPluginConfigImpl_addRefDispatcher(this: IPluginConfig); cdecl;
7429     begin
7430     try
7431     IPluginConfigImpl(this).addRef();
7432     except
7433     on e: Exception do FbException.catchException(nil, e);
7434     end
7435     end;
7436    
7437     function IPluginConfigImpl_releaseDispatcher(this: IPluginConfig): Integer; cdecl;
7438     begin
7439     try
7440     Result := IPluginConfigImpl(this).release();
7441     except
7442     on e: Exception do FbException.catchException(nil, e);
7443     end
7444     end;
7445    
7446     function IPluginConfigImpl_getConfigFileNameDispatcher(this: IPluginConfig): PAnsiChar; cdecl;
7447     begin
7448     try
7449     Result := IPluginConfigImpl(this).getConfigFileName();
7450     except
7451     on e: Exception do FbException.catchException(nil, e);
7452     end
7453     end;
7454    
7455     function IPluginConfigImpl_getDefaultConfigDispatcher(this: IPluginConfig; status: IStatus): IConfig; cdecl;
7456     begin
7457     try
7458     Result := IPluginConfigImpl(this).getDefaultConfig(status);
7459     except
7460     on e: Exception do FbException.catchException(status, e);
7461     end
7462     end;
7463    
7464     function IPluginConfigImpl_getFirebirdConfDispatcher(this: IPluginConfig; status: IStatus): IFirebirdConf; cdecl;
7465     begin
7466     try
7467     Result := IPluginConfigImpl(this).getFirebirdConf(status);
7468     except
7469     on e: Exception do FbException.catchException(status, e);
7470     end
7471     end;
7472    
7473     procedure IPluginConfigImpl_setReleaseDelayDispatcher(this: IPluginConfig; status: IStatus; microSeconds: QWord); cdecl;
7474     begin
7475     try
7476     IPluginConfigImpl(this).setReleaseDelay(status, microSeconds);
7477     except
7478     on e: Exception do FbException.catchException(status, e);
7479     end
7480     end;
7481    
7482     var
7483     IPluginConfigImpl_vTable: PluginConfigVTable;
7484    
7485     constructor IPluginConfigImpl.create;
7486     begin
7487     vTable := IPluginConfigImpl_vTable;
7488     end;
7489    
7490     function IPluginFactoryImpl_createPluginDispatcher(this: IPluginFactory; status: IStatus; factoryParameter: IPluginConfig): IPluginBase; cdecl;
7491     begin
7492     try
7493     Result := IPluginFactoryImpl(this).createPlugin(status, factoryParameter);
7494     except
7495     on e: Exception do FbException.catchException(status, e);
7496     end
7497     end;
7498    
7499     var
7500     IPluginFactoryImpl_vTable: PluginFactoryVTable;
7501    
7502     constructor IPluginFactoryImpl.create;
7503     begin
7504     vTable := IPluginFactoryImpl_vTable;
7505     end;
7506    
7507     procedure IPluginModuleImpl_doCleanDispatcher(this: IPluginModule); cdecl;
7508     begin
7509     try
7510     IPluginModuleImpl(this).doClean();
7511     except
7512     on e: Exception do FbException.catchException(nil, e);
7513     end
7514     end;
7515    
7516     var
7517     IPluginModuleImpl_vTable: PluginModuleVTable;
7518    
7519     constructor IPluginModuleImpl.create;
7520     begin
7521     vTable := IPluginModuleImpl_vTable;
7522     end;
7523    
7524     procedure IPluginManagerImpl_registerPluginFactoryDispatcher(this: IPluginManager; pluginType: Cardinal; defaultName: PAnsiChar; factory: IPluginFactory); cdecl;
7525     begin
7526     try
7527     IPluginManagerImpl(this).registerPluginFactory(pluginType, defaultName, factory);
7528     except
7529     on e: Exception do FbException.catchException(nil, e);
7530     end
7531     end;
7532    
7533     procedure IPluginManagerImpl_registerModuleDispatcher(this: IPluginManager; cleanup: IPluginModule); cdecl;
7534     begin
7535     try
7536     IPluginManagerImpl(this).registerModule(cleanup);
7537     except
7538     on e: Exception do FbException.catchException(nil, e);
7539     end
7540     end;
7541    
7542     procedure IPluginManagerImpl_unregisterModuleDispatcher(this: IPluginManager; cleanup: IPluginModule); cdecl;
7543     begin
7544     try
7545     IPluginManagerImpl(this).unregisterModule(cleanup);
7546     except
7547     on e: Exception do FbException.catchException(nil, e);
7548     end
7549     end;
7550    
7551     function IPluginManagerImpl_getPluginsDispatcher(this: IPluginManager; status: IStatus; pluginType: Cardinal; namesList: PAnsiChar; firebirdConf: IFirebirdConf): IPluginSet; cdecl;
7552     begin
7553     try
7554     Result := IPluginManagerImpl(this).getPlugins(status, pluginType, namesList, firebirdConf);
7555     except
7556     on e: Exception do FbException.catchException(status, e);
7557     end
7558     end;
7559    
7560     function IPluginManagerImpl_getConfigDispatcher(this: IPluginManager; status: IStatus; filename: PAnsiChar): IConfig; cdecl;
7561     begin
7562     try
7563     Result := IPluginManagerImpl(this).getConfig(status, filename);
7564     except
7565     on e: Exception do FbException.catchException(status, e);
7566     end
7567     end;
7568    
7569     procedure IPluginManagerImpl_releasePluginDispatcher(this: IPluginManager; plugin: IPluginBase); cdecl;
7570     begin
7571     try
7572     IPluginManagerImpl(this).releasePlugin(plugin);
7573     except
7574     on e: Exception do FbException.catchException(nil, e);
7575     end
7576     end;
7577    
7578     var
7579     IPluginManagerImpl_vTable: PluginManagerVTable;
7580    
7581     constructor IPluginManagerImpl.create;
7582     begin
7583     vTable := IPluginManagerImpl_vTable;
7584     end;
7585    
7586     procedure ICryptKeyImpl_setSymmetricDispatcher(this: ICryptKey; status: IStatus; type_: PAnsiChar; keyLength: Cardinal; key: Pointer); cdecl;
7587     begin
7588     try
7589     ICryptKeyImpl(this).setSymmetric(status, type_, keyLength, key);
7590     except
7591     on e: Exception do FbException.catchException(status, e);
7592     end
7593     end;
7594    
7595     procedure ICryptKeyImpl_setAsymmetricDispatcher(this: ICryptKey; status: IStatus; type_: PAnsiChar; encryptKeyLength: Cardinal; encryptKey: Pointer; decryptKeyLength: Cardinal; decryptKey: Pointer); cdecl;
7596     begin
7597     try
7598     ICryptKeyImpl(this).setAsymmetric(status, type_, encryptKeyLength, encryptKey, decryptKeyLength, decryptKey);
7599     except
7600     on e: Exception do FbException.catchException(status, e);
7601     end
7602     end;
7603    
7604     function ICryptKeyImpl_getEncryptKeyDispatcher(this: ICryptKey; length: CardinalPtr): Pointer; cdecl;
7605     begin
7606     try
7607     Result := ICryptKeyImpl(this).getEncryptKey(length);
7608     except
7609     on e: Exception do FbException.catchException(nil, e);
7610     end
7611     end;
7612    
7613     function ICryptKeyImpl_getDecryptKeyDispatcher(this: ICryptKey; length: CardinalPtr): Pointer; cdecl;
7614     begin
7615     try
7616     Result := ICryptKeyImpl(this).getDecryptKey(length);
7617     except
7618     on e: Exception do FbException.catchException(nil, e);
7619     end
7620     end;
7621    
7622     var
7623     ICryptKeyImpl_vTable: CryptKeyVTable;
7624    
7625     constructor ICryptKeyImpl.create;
7626     begin
7627     vTable := ICryptKeyImpl_vTable;
7628     end;
7629    
7630     function IConfigManagerImpl_getDirectoryDispatcher(this: IConfigManager; code: Cardinal): PAnsiChar; cdecl;
7631     begin
7632     try
7633     Result := IConfigManagerImpl(this).getDirectory(code);
7634     except
7635     on e: Exception do FbException.catchException(nil, e);
7636     end
7637     end;
7638    
7639     function IConfigManagerImpl_getFirebirdConfDispatcher(this: IConfigManager): IFirebirdConf; cdecl;
7640     begin
7641     try
7642     Result := IConfigManagerImpl(this).getFirebirdConf();
7643     except
7644     on e: Exception do FbException.catchException(nil, e);
7645     end
7646     end;
7647    
7648     function IConfigManagerImpl_getDatabaseConfDispatcher(this: IConfigManager; dbName: PAnsiChar): IFirebirdConf; cdecl;
7649     begin
7650     try
7651     Result := IConfigManagerImpl(this).getDatabaseConf(dbName);
7652     except
7653     on e: Exception do FbException.catchException(nil, e);
7654     end
7655     end;
7656    
7657     function IConfigManagerImpl_getPluginConfigDispatcher(this: IConfigManager; configuredPlugin: PAnsiChar): IConfig; cdecl;
7658     begin
7659     try
7660     Result := IConfigManagerImpl(this).getPluginConfig(configuredPlugin);
7661     except
7662     on e: Exception do FbException.catchException(nil, e);
7663     end
7664     end;
7665    
7666     function IConfigManagerImpl_getInstallDirectoryDispatcher(this: IConfigManager): PAnsiChar; cdecl;
7667     begin
7668     try
7669     Result := IConfigManagerImpl(this).getInstallDirectory();
7670     except
7671     on e: Exception do FbException.catchException(nil, e);
7672     end
7673     end;
7674    
7675     function IConfigManagerImpl_getRootDirectoryDispatcher(this: IConfigManager): PAnsiChar; cdecl;
7676     begin
7677     try
7678     Result := IConfigManagerImpl(this).getRootDirectory();
7679     except
7680     on e: Exception do FbException.catchException(nil, e);
7681     end
7682     end;
7683    
7684     var
7685     IConfigManagerImpl_vTable: ConfigManagerVTable;
7686    
7687     constructor IConfigManagerImpl.create;
7688     begin
7689     vTable := IConfigManagerImpl_vTable;
7690     end;
7691    
7692     procedure IEventCallbackImpl_addRefDispatcher(this: IEventCallback); cdecl;
7693     begin
7694     try
7695     IEventCallbackImpl(this).addRef();
7696     except
7697     on e: Exception do FbException.catchException(nil, e);
7698     end
7699     end;
7700    
7701     function IEventCallbackImpl_releaseDispatcher(this: IEventCallback): Integer; cdecl;
7702     begin
7703     try
7704     Result := IEventCallbackImpl(this).release();
7705     except
7706     on e: Exception do FbException.catchException(nil, e);
7707     end
7708     end;
7709    
7710     procedure IEventCallbackImpl_eventCallbackFunctionDispatcher(this: IEventCallback; length: Cardinal; events: BytePtr); cdecl;
7711     begin
7712     try
7713     IEventCallbackImpl(this).eventCallbackFunction(length, events);
7714     except
7715     on e: Exception do FbException.catchException(nil, e);
7716     end
7717     end;
7718    
7719     var
7720     IEventCallbackImpl_vTable: EventCallbackVTable;
7721    
7722     constructor IEventCallbackImpl.create;
7723     begin
7724     vTable := IEventCallbackImpl_vTable;
7725     end;
7726    
7727     procedure IBlobImpl_addRefDispatcher(this: IBlob); cdecl;
7728     begin
7729     try
7730     IBlobImpl(this).addRef();
7731     except
7732     on e: Exception do FbException.catchException(nil, e);
7733     end
7734     end;
7735    
7736     function IBlobImpl_releaseDispatcher(this: IBlob): Integer; cdecl;
7737     begin
7738     try
7739     Result := IBlobImpl(this).release();
7740     except
7741     on e: Exception do FbException.catchException(nil, e);
7742     end
7743     end;
7744    
7745     procedure IBlobImpl_getInfoDispatcher(this: IBlob; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
7746     begin
7747     try
7748     IBlobImpl(this).getInfo(status, itemsLength, items, bufferLength, buffer);
7749     except
7750     on e: Exception do FbException.catchException(status, e);
7751     end
7752     end;
7753    
7754     function IBlobImpl_getSegmentDispatcher(this: IBlob; status: IStatus; bufferLength: Cardinal; buffer: Pointer; segmentLength: CardinalPtr): Integer; cdecl;
7755     begin
7756     try
7757     Result := IBlobImpl(this).getSegment(status, bufferLength, buffer, segmentLength);
7758     except
7759     on e: Exception do FbException.catchException(status, e);
7760     end
7761     end;
7762    
7763     procedure IBlobImpl_putSegmentDispatcher(this: IBlob; status: IStatus; length: Cardinal; buffer: Pointer); cdecl;
7764     begin
7765     try
7766     IBlobImpl(this).putSegment(status, length, buffer);
7767     except
7768     on e: Exception do FbException.catchException(status, e);
7769     end
7770     end;
7771    
7772     procedure IBlobImpl_cancelDispatcher(this: IBlob; status: IStatus); cdecl;
7773     begin
7774     try
7775     IBlobImpl(this).cancel(status);
7776     except
7777     on e: Exception do FbException.catchException(status, e);
7778     end
7779     end;
7780    
7781     procedure IBlobImpl_closeDispatcher(this: IBlob; status: IStatus); cdecl;
7782     begin
7783     try
7784     IBlobImpl(this).close(status);
7785     except
7786     on e: Exception do FbException.catchException(status, e);
7787     end
7788     end;
7789    
7790     function IBlobImpl_seekDispatcher(this: IBlob; status: IStatus; mode: Integer; offset: Integer): Integer; cdecl;
7791     begin
7792     try
7793     Result := IBlobImpl(this).seek(status, mode, offset);
7794     except
7795     on e: Exception do FbException.catchException(status, e);
7796     end
7797     end;
7798    
7799     var
7800     IBlobImpl_vTable: BlobVTable;
7801    
7802     constructor IBlobImpl.create;
7803     begin
7804     vTable := IBlobImpl_vTable;
7805     end;
7806    
7807     procedure ITransactionImpl_addRefDispatcher(this: ITransaction); cdecl;
7808     begin
7809     try
7810     ITransactionImpl(this).addRef();
7811     except
7812     on e: Exception do FbException.catchException(nil, e);
7813     end
7814     end;
7815    
7816     function ITransactionImpl_releaseDispatcher(this: ITransaction): Integer; cdecl;
7817     begin
7818     try
7819     Result := ITransactionImpl(this).release();
7820     except
7821     on e: Exception do FbException.catchException(nil, e);
7822     end
7823     end;
7824    
7825     procedure ITransactionImpl_getInfoDispatcher(this: ITransaction; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
7826     begin
7827     try
7828     ITransactionImpl(this).getInfo(status, itemsLength, items, bufferLength, buffer);
7829     except
7830     on e: Exception do FbException.catchException(status, e);
7831     end
7832     end;
7833    
7834     procedure ITransactionImpl_prepareDispatcher(this: ITransaction; status: IStatus; msgLength: Cardinal; message: BytePtr); cdecl;
7835     begin
7836     try
7837     ITransactionImpl(this).prepare(status, msgLength, message);
7838     except
7839     on e: Exception do FbException.catchException(status, e);
7840     end
7841     end;
7842    
7843     procedure ITransactionImpl_commitDispatcher(this: ITransaction; status: IStatus); cdecl;
7844     begin
7845     try
7846     ITransactionImpl(this).commit(status);
7847     except
7848     on e: Exception do FbException.catchException(status, e);
7849     end
7850     end;
7851    
7852     procedure ITransactionImpl_commitRetainingDispatcher(this: ITransaction; status: IStatus); cdecl;
7853     begin
7854     try
7855     ITransactionImpl(this).commitRetaining(status);
7856     except
7857     on e: Exception do FbException.catchException(status, e);
7858     end
7859     end;
7860    
7861     procedure ITransactionImpl_rollbackDispatcher(this: ITransaction; status: IStatus); cdecl;
7862     begin
7863     try
7864     ITransactionImpl(this).rollback(status);
7865     except
7866     on e: Exception do FbException.catchException(status, e);
7867     end
7868     end;
7869    
7870     procedure ITransactionImpl_rollbackRetainingDispatcher(this: ITransaction; status: IStatus); cdecl;
7871     begin
7872     try
7873     ITransactionImpl(this).rollbackRetaining(status);
7874     except
7875     on e: Exception do FbException.catchException(status, e);
7876     end
7877     end;
7878    
7879     procedure ITransactionImpl_disconnectDispatcher(this: ITransaction; status: IStatus); cdecl;
7880     begin
7881     try
7882     ITransactionImpl(this).disconnect(status);
7883     except
7884     on e: Exception do FbException.catchException(status, e);
7885     end
7886     end;
7887    
7888     function ITransactionImpl_joinDispatcher(this: ITransaction; status: IStatus; transaction: ITransaction): ITransaction; cdecl;
7889     begin
7890     try
7891     Result := ITransactionImpl(this).join(status, transaction);
7892     except
7893     on e: Exception do FbException.catchException(status, e);
7894     end
7895     end;
7896    
7897     function ITransactionImpl_validateDispatcher(this: ITransaction; status: IStatus; attachment: IAttachment): ITransaction; cdecl;
7898     begin
7899     try
7900     Result := ITransactionImpl(this).validate(status, attachment);
7901     except
7902     on e: Exception do FbException.catchException(status, e);
7903     end
7904     end;
7905    
7906     function ITransactionImpl_enterDtcDispatcher(this: ITransaction; status: IStatus): ITransaction; cdecl;
7907     begin
7908     try
7909     Result := ITransactionImpl(this).enterDtc(status);
7910     except
7911     on e: Exception do FbException.catchException(status, e);
7912     end
7913     end;
7914    
7915     var
7916     ITransactionImpl_vTable: TransactionVTable;
7917    
7918     constructor ITransactionImpl.create;
7919     begin
7920     vTable := ITransactionImpl_vTable;
7921     end;
7922    
7923     procedure IMessageMetadataImpl_addRefDispatcher(this: IMessageMetadata); cdecl;
7924     begin
7925     try
7926     IMessageMetadataImpl(this).addRef();
7927     except
7928     on e: Exception do FbException.catchException(nil, e);
7929     end
7930     end;
7931    
7932     function IMessageMetadataImpl_releaseDispatcher(this: IMessageMetadata): Integer; cdecl;
7933     begin
7934     try
7935     Result := IMessageMetadataImpl(this).release();
7936     except
7937     on e: Exception do FbException.catchException(nil, e);
7938     end
7939     end;
7940    
7941     function IMessageMetadataImpl_getCountDispatcher(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
7942     begin
7943     try
7944     Result := IMessageMetadataImpl(this).getCount(status);
7945     except
7946     on e: Exception do FbException.catchException(status, e);
7947     end
7948     end;
7949    
7950     function IMessageMetadataImpl_getFieldDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
7951     begin
7952     try
7953     Result := IMessageMetadataImpl(this).getField(status, index);
7954     except
7955     on e: Exception do FbException.catchException(status, e);
7956     end
7957     end;
7958    
7959     function IMessageMetadataImpl_getRelationDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
7960     begin
7961     try
7962     Result := IMessageMetadataImpl(this).getRelation(status, index);
7963     except
7964     on e: Exception do FbException.catchException(status, e);
7965     end
7966     end;
7967    
7968     function IMessageMetadataImpl_getOwnerDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
7969     begin
7970     try
7971     Result := IMessageMetadataImpl(this).getOwner(status, index);
7972     except
7973     on e: Exception do FbException.catchException(status, e);
7974     end
7975     end;
7976    
7977     function IMessageMetadataImpl_getAliasDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): PAnsiChar; cdecl;
7978     begin
7979     try
7980     Result := IMessageMetadataImpl(this).getAlias(status, index);
7981     except
7982     on e: Exception do FbException.catchException(status, e);
7983     end
7984     end;
7985    
7986     function IMessageMetadataImpl_getTypeDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
7987     begin
7988     try
7989     Result := IMessageMetadataImpl(this).getType(status, index);
7990     except
7991     on e: Exception do FbException.catchException(status, e);
7992     end
7993     end;
7994    
7995     function IMessageMetadataImpl_isNullableDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Boolean; cdecl;
7996     begin
7997     try
7998     Result := IMessageMetadataImpl(this).isNullable(status, index);
7999     except
8000     on e: Exception do FbException.catchException(status, e);
8001     end
8002     end;
8003    
8004     function IMessageMetadataImpl_getSubTypeDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Integer; cdecl;
8005     begin
8006     try
8007     Result := IMessageMetadataImpl(this).getSubType(status, index);
8008     except
8009     on e: Exception do FbException.catchException(status, e);
8010     end
8011     end;
8012    
8013     function IMessageMetadataImpl_getLengthDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
8014     begin
8015     try
8016     Result := IMessageMetadataImpl(this).getLength(status, index);
8017     except
8018     on e: Exception do FbException.catchException(status, e);
8019     end
8020     end;
8021    
8022     function IMessageMetadataImpl_getScaleDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Integer; cdecl;
8023     begin
8024     try
8025     Result := IMessageMetadataImpl(this).getScale(status, index);
8026     except
8027     on e: Exception do FbException.catchException(status, e);
8028     end
8029     end;
8030    
8031     function IMessageMetadataImpl_getCharSetDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
8032     begin
8033     try
8034     Result := IMessageMetadataImpl(this).getCharSet(status, index);
8035     except
8036     on e: Exception do FbException.catchException(status, e);
8037     end
8038     end;
8039    
8040     function IMessageMetadataImpl_getOffsetDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
8041     begin
8042     try
8043     Result := IMessageMetadataImpl(this).getOffset(status, index);
8044     except
8045     on e: Exception do FbException.catchException(status, e);
8046     end
8047     end;
8048    
8049     function IMessageMetadataImpl_getNullOffsetDispatcher(this: IMessageMetadata; status: IStatus; index: Cardinal): Cardinal; cdecl;
8050     begin
8051     try
8052     Result := IMessageMetadataImpl(this).getNullOffset(status, index);
8053     except
8054     on e: Exception do FbException.catchException(status, e);
8055     end
8056     end;
8057    
8058     function IMessageMetadataImpl_getBuilderDispatcher(this: IMessageMetadata; status: IStatus): IMetadataBuilder; cdecl;
8059     begin
8060     try
8061     Result := IMessageMetadataImpl(this).getBuilder(status);
8062     except
8063     on e: Exception do FbException.catchException(status, e);
8064     end
8065     end;
8066    
8067     function IMessageMetadataImpl_getMessageLengthDispatcher(this: IMessageMetadata; status: IStatus): Cardinal; cdecl;
8068     begin
8069     try
8070     Result := IMessageMetadataImpl(this).getMessageLength(status);
8071     except
8072     on e: Exception do FbException.catchException(status, e);
8073     end
8074     end;
8075    
8076     var
8077     IMessageMetadataImpl_vTable: MessageMetadataVTable;
8078    
8079     constructor IMessageMetadataImpl.create;
8080     begin
8081     vTable := IMessageMetadataImpl_vTable;
8082     end;
8083    
8084     procedure IMetadataBuilderImpl_addRefDispatcher(this: IMetadataBuilder); cdecl;
8085     begin
8086     try
8087     IMetadataBuilderImpl(this).addRef();
8088     except
8089     on e: Exception do FbException.catchException(nil, e);
8090     end
8091     end;
8092    
8093     function IMetadataBuilderImpl_releaseDispatcher(this: IMetadataBuilder): Integer; cdecl;
8094     begin
8095     try
8096     Result := IMetadataBuilderImpl(this).release();
8097     except
8098     on e: Exception do FbException.catchException(nil, e);
8099     end
8100     end;
8101    
8102     procedure IMetadataBuilderImpl_setTypeDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; type_: Cardinal); cdecl;
8103     begin
8104     try
8105     IMetadataBuilderImpl(this).setType(status, index, type_);
8106     except
8107     on e: Exception do FbException.catchException(status, e);
8108     end
8109     end;
8110    
8111     procedure IMetadataBuilderImpl_setSubTypeDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; subType: Integer); cdecl;
8112     begin
8113     try
8114     IMetadataBuilderImpl(this).setSubType(status, index, subType);
8115     except
8116     on e: Exception do FbException.catchException(status, e);
8117     end
8118     end;
8119    
8120     procedure IMetadataBuilderImpl_setLengthDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; length: Cardinal); cdecl;
8121     begin
8122     try
8123     IMetadataBuilderImpl(this).setLength(status, index, length);
8124     except
8125     on e: Exception do FbException.catchException(status, e);
8126     end
8127     end;
8128    
8129     procedure IMetadataBuilderImpl_setCharSetDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; charSet: Cardinal); cdecl;
8130     begin
8131     try
8132     IMetadataBuilderImpl(this).setCharSet(status, index, charSet);
8133     except
8134     on e: Exception do FbException.catchException(status, e);
8135     end
8136     end;
8137    
8138     procedure IMetadataBuilderImpl_setScaleDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal; scale: integer); cdecl;
8139     begin
8140     try
8141     IMetadataBuilderImpl(this).setScale(status, index, scale);
8142     except
8143     on e: Exception do FbException.catchException(status, e);
8144     end
8145     end;
8146    
8147     procedure IMetadataBuilderImpl_truncateDispatcher(this: IMetadataBuilder; status: IStatus; count: Cardinal); cdecl;
8148     begin
8149     try
8150     IMetadataBuilderImpl(this).truncate(status, count);
8151     except
8152     on e: Exception do FbException.catchException(status, e);
8153     end
8154     end;
8155    
8156     procedure IMetadataBuilderImpl_moveNameToIndexDispatcher(this: IMetadataBuilder; status: IStatus; name: PAnsiChar; index: Cardinal); cdecl;
8157     begin
8158     try
8159     IMetadataBuilderImpl(this).moveNameToIndex(status, name, index);
8160     except
8161     on e: Exception do FbException.catchException(status, e);
8162     end
8163     end;
8164    
8165     procedure IMetadataBuilderImpl_removeDispatcher(this: IMetadataBuilder; status: IStatus; index: Cardinal); cdecl;
8166     begin
8167     try
8168     IMetadataBuilderImpl(this).remove(status, index);
8169     except
8170     on e: Exception do FbException.catchException(status, e);
8171     end
8172     end;
8173    
8174     function IMetadataBuilderImpl_addFieldDispatcher(this: IMetadataBuilder; status: IStatus): Cardinal; cdecl;
8175     begin
8176     try
8177     Result := IMetadataBuilderImpl(this).addField(status);
8178     except
8179     on e: Exception do FbException.catchException(status, e);
8180     end
8181     end;
8182    
8183     function IMetadataBuilderImpl_getMetadataDispatcher(this: IMetadataBuilder; status: IStatus): IMessageMetadata; cdecl;
8184     begin
8185     try
8186     Result := IMetadataBuilderImpl(this).getMetadata(status);
8187     except
8188     on e: Exception do FbException.catchException(status, e);
8189     end
8190     end;
8191    
8192     var
8193     IMetadataBuilderImpl_vTable: MetadataBuilderVTable;
8194    
8195     constructor IMetadataBuilderImpl.create;
8196     begin
8197     vTable := IMetadataBuilderImpl_vTable;
8198     end;
8199    
8200     procedure IResultSetImpl_addRefDispatcher(this: IResultSet); cdecl;
8201     begin
8202     try
8203     IResultSetImpl(this).addRef();
8204     except
8205     on e: Exception do FbException.catchException(nil, e);
8206     end
8207     end;
8208    
8209     function IResultSetImpl_releaseDispatcher(this: IResultSet): Integer; cdecl;
8210     begin
8211     try
8212     Result := IResultSetImpl(this).release();
8213     except
8214     on e: Exception do FbException.catchException(nil, e);
8215     end
8216     end;
8217    
8218     function IResultSetImpl_fetchNextDispatcher(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
8219     begin
8220     try
8221     Result := IResultSetImpl(this).fetchNext(status, message);
8222     except
8223     on e: Exception do FbException.catchException(status, e);
8224     end
8225     end;
8226    
8227     function IResultSetImpl_fetchPriorDispatcher(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
8228     begin
8229     try
8230     Result := IResultSetImpl(this).fetchPrior(status, message);
8231     except
8232     on e: Exception do FbException.catchException(status, e);
8233     end
8234     end;
8235    
8236     function IResultSetImpl_fetchFirstDispatcher(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
8237     begin
8238     try
8239     Result := IResultSetImpl(this).fetchFirst(status, message);
8240     except
8241     on e: Exception do FbException.catchException(status, e);
8242     end
8243     end;
8244    
8245     function IResultSetImpl_fetchLastDispatcher(this: IResultSet; status: IStatus; message: Pointer): Integer; cdecl;
8246     begin
8247     try
8248     Result := IResultSetImpl(this).fetchLast(status, message);
8249     except
8250     on e: Exception do FbException.catchException(status, e);
8251     end
8252     end;
8253    
8254     function IResultSetImpl_fetchAbsoluteDispatcher(this: IResultSet; status: IStatus; position: Integer; message: Pointer): Integer; cdecl;
8255     begin
8256     try
8257     Result := IResultSetImpl(this).fetchAbsolute(status, position, message);
8258     except
8259     on e: Exception do FbException.catchException(status, e);
8260     end
8261     end;
8262    
8263     function IResultSetImpl_fetchRelativeDispatcher(this: IResultSet; status: IStatus; offset: Integer; message: Pointer): Integer; cdecl;
8264     begin
8265     try
8266     Result := IResultSetImpl(this).fetchRelative(status, offset, message);
8267     except
8268     on e: Exception do FbException.catchException(status, e);
8269     end
8270     end;
8271    
8272     function IResultSetImpl_isEofDispatcher(this: IResultSet; status: IStatus): Boolean; cdecl;
8273     begin
8274     try
8275     Result := IResultSetImpl(this).isEof(status);
8276     except
8277     on e: Exception do FbException.catchException(status, e);
8278     end
8279     end;
8280    
8281     function IResultSetImpl_isBofDispatcher(this: IResultSet; status: IStatus): Boolean; cdecl;
8282     begin
8283     try
8284     Result := IResultSetImpl(this).isBof(status);
8285     except
8286     on e: Exception do FbException.catchException(status, e);
8287     end
8288     end;
8289    
8290     function IResultSetImpl_getMetadataDispatcher(this: IResultSet; status: IStatus): IMessageMetadata; cdecl;
8291     begin
8292     try
8293     Result := IResultSetImpl(this).getMetadata(status);
8294     except
8295     on e: Exception do FbException.catchException(status, e);
8296     end
8297     end;
8298    
8299     procedure IResultSetImpl_closeDispatcher(this: IResultSet; status: IStatus); cdecl;
8300     begin
8301     try
8302     IResultSetImpl(this).close(status);
8303     except
8304     on e: Exception do FbException.catchException(status, e);
8305     end
8306     end;
8307    
8308     procedure IResultSetImpl_setDelayedOutputFormatDispatcher(this: IResultSet; status: IStatus; format: IMessageMetadata); cdecl;
8309     begin
8310     try
8311     IResultSetImpl(this).setDelayedOutputFormat(status, format);
8312     except
8313     on e: Exception do FbException.catchException(status, e);
8314     end
8315     end;
8316    
8317     var
8318     IResultSetImpl_vTable: ResultSetVTable;
8319    
8320     constructor IResultSetImpl.create;
8321     begin
8322     vTable := IResultSetImpl_vTable;
8323     end;
8324    
8325     procedure IStatementImpl_addRefDispatcher(this: IStatement); cdecl;
8326     begin
8327     try
8328     IStatementImpl(this).addRef();
8329     except
8330     on e: Exception do FbException.catchException(nil, e);
8331     end
8332     end;
8333    
8334     function IStatementImpl_releaseDispatcher(this: IStatement): Integer; cdecl;
8335     begin
8336     try
8337     Result := IStatementImpl(this).release();
8338     except
8339     on e: Exception do FbException.catchException(nil, e);
8340     end
8341     end;
8342    
8343     procedure IStatementImpl_getInfoDispatcher(this: IStatement; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
8344     begin
8345     try
8346     IStatementImpl(this).getInfo(status, itemsLength, items, bufferLength, buffer);
8347     except
8348     on e: Exception do FbException.catchException(status, e);
8349     end
8350     end;
8351    
8352     function IStatementImpl_getTypeDispatcher(this: IStatement; status: IStatus): Cardinal; cdecl;
8353     begin
8354     try
8355     Result := IStatementImpl(this).getType(status);
8356     except
8357     on e: Exception do FbException.catchException(status, e);
8358     end
8359     end;
8360    
8361     function IStatementImpl_getPlanDispatcher(this: IStatement; status: IStatus; detailed: Boolean): PAnsiChar; cdecl;
8362     begin
8363     try
8364     Result := IStatementImpl(this).getPlan(status, detailed);
8365     except
8366     on e: Exception do FbException.catchException(status, e);
8367     end
8368     end;
8369    
8370     function IStatementImpl_getAffectedRecordsDispatcher(this: IStatement; status: IStatus): QWord; cdecl;
8371     begin
8372     try
8373     Result := IStatementImpl(this).getAffectedRecords(status);
8374     except
8375     on e: Exception do FbException.catchException(status, e);
8376     end
8377     end;
8378    
8379     function IStatementImpl_getInputMetadataDispatcher(this: IStatement; status: IStatus): IMessageMetadata; cdecl;
8380     begin
8381     try
8382     Result := IStatementImpl(this).getInputMetadata(status);
8383     except
8384     on e: Exception do FbException.catchException(status, e);
8385     end
8386     end;
8387    
8388     function IStatementImpl_getOutputMetadataDispatcher(this: IStatement; status: IStatus): IMessageMetadata; cdecl;
8389     begin
8390     try
8391     Result := IStatementImpl(this).getOutputMetadata(status);
8392     except
8393     on e: Exception do FbException.catchException(status, e);
8394     end
8395     end;
8396    
8397     function IStatementImpl_executeDispatcher(this: IStatement; status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; cdecl;
8398     begin
8399     try
8400     Result := IStatementImpl(this).execute(status, transaction, inMetadata, inBuffer, outMetadata, outBuffer);
8401     except
8402     on e: Exception do FbException.catchException(status, e);
8403     end
8404     end;
8405    
8406     function IStatementImpl_openCursorDispatcher(this: IStatement; status: IStatus; transaction: ITransaction; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; flags: Cardinal): IResultSet; cdecl;
8407     begin
8408     try
8409     Result := IStatementImpl(this).openCursor(status, transaction, inMetadata, inBuffer, outMetadata, flags);
8410     except
8411     on e: Exception do FbException.catchException(status, e);
8412     end
8413     end;
8414    
8415     procedure IStatementImpl_setCursorNameDispatcher(this: IStatement; status: IStatus; name: PAnsiChar); cdecl;
8416     begin
8417     try
8418     IStatementImpl(this).setCursorName(status, name);
8419     except
8420     on e: Exception do FbException.catchException(status, e);
8421     end
8422     end;
8423    
8424     procedure IStatementImpl_freeDispatcher(this: IStatement; status: IStatus); cdecl;
8425     begin
8426     try
8427     IStatementImpl(this).free(status);
8428     except
8429     on e: Exception do FbException.catchException(status, e);
8430     end
8431     end;
8432    
8433     function IStatementImpl_getFlagsDispatcher(this: IStatement; status: IStatus): Cardinal; cdecl;
8434     begin
8435     try
8436     Result := IStatementImpl(this).getFlags(status);
8437     except
8438     on e: Exception do FbException.catchException(status, e);
8439     end
8440     end;
8441    
8442     var
8443     IStatementImpl_vTable: StatementVTable;
8444    
8445     constructor IStatementImpl.create;
8446     begin
8447     vTable := IStatementImpl_vTable;
8448     end;
8449    
8450     procedure IRequestImpl_addRefDispatcher(this: IRequest); cdecl;
8451     begin
8452     try
8453     IRequestImpl(this).addRef();
8454     except
8455     on e: Exception do FbException.catchException(nil, e);
8456     end
8457     end;
8458    
8459     function IRequestImpl_releaseDispatcher(this: IRequest): Integer; cdecl;
8460     begin
8461     try
8462     Result := IRequestImpl(this).release();
8463     except
8464     on e: Exception do FbException.catchException(nil, e);
8465     end
8466     end;
8467    
8468     procedure IRequestImpl_receiveDispatcher(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
8469     begin
8470     try
8471     IRequestImpl(this).receive(status, level, msgType, length, message);
8472     except
8473     on e: Exception do FbException.catchException(status, e);
8474     end
8475     end;
8476    
8477     procedure IRequestImpl_sendDispatcher(this: IRequest; status: IStatus; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
8478     begin
8479     try
8480     IRequestImpl(this).send(status, level, msgType, length, message);
8481     except
8482     on e: Exception do FbException.catchException(status, e);
8483     end
8484     end;
8485    
8486     procedure IRequestImpl_getInfoDispatcher(this: IRequest; status: IStatus; level: Integer; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
8487     begin
8488     try
8489     IRequestImpl(this).getInfo(status, level, itemsLength, items, bufferLength, buffer);
8490     except
8491     on e: Exception do FbException.catchException(status, e);
8492     end
8493     end;
8494    
8495     procedure IRequestImpl_startDispatcher(this: IRequest; status: IStatus; tra: ITransaction; level: Integer); cdecl;
8496     begin
8497     try
8498     IRequestImpl(this).start(status, tra, level);
8499     except
8500     on e: Exception do FbException.catchException(status, e);
8501     end
8502     end;
8503    
8504     procedure IRequestImpl_startAndSendDispatcher(this: IRequest; status: IStatus; tra: ITransaction; level: Integer; msgType: Cardinal; length: Cardinal; message: BytePtr); cdecl;
8505     begin
8506     try
8507     IRequestImpl(this).startAndSend(status, tra, level, msgType, length, message);
8508     except
8509     on e: Exception do FbException.catchException(status, e);
8510     end
8511     end;
8512    
8513     procedure IRequestImpl_unwindDispatcher(this: IRequest; status: IStatus; level: Integer); cdecl;
8514     begin
8515     try
8516     IRequestImpl(this).unwind(status, level);
8517     except
8518     on e: Exception do FbException.catchException(status, e);
8519     end
8520     end;
8521    
8522     procedure IRequestImpl_freeDispatcher(this: IRequest; status: IStatus); cdecl;
8523     begin
8524     try
8525     IRequestImpl(this).free(status);
8526     except
8527     on e: Exception do FbException.catchException(status, e);
8528     end
8529     end;
8530    
8531     var
8532     IRequestImpl_vTable: RequestVTable;
8533    
8534     constructor IRequestImpl.create;
8535     begin
8536     vTable := IRequestImpl_vTable;
8537     end;
8538    
8539     procedure IEventsImpl_addRefDispatcher(this: IEvents); cdecl;
8540     begin
8541     try
8542     IEventsImpl(this).addRef();
8543     except
8544     on e: Exception do FbException.catchException(nil, e);
8545     end
8546     end;
8547    
8548     function IEventsImpl_releaseDispatcher(this: IEvents): Integer; cdecl;
8549     begin
8550     try
8551     Result := IEventsImpl(this).release();
8552     except
8553     on e: Exception do FbException.catchException(nil, e);
8554     end
8555     end;
8556    
8557     procedure IEventsImpl_cancelDispatcher(this: IEvents; status: IStatus); cdecl;
8558     begin
8559     try
8560     IEventsImpl(this).cancel(status);
8561     except
8562     on e: Exception do FbException.catchException(status, e);
8563     end
8564     end;
8565    
8566     var
8567     IEventsImpl_vTable: EventsVTable;
8568    
8569     constructor IEventsImpl.create;
8570     begin
8571     vTable := IEventsImpl_vTable;
8572     end;
8573    
8574     procedure IAttachmentImpl_addRefDispatcher(this: IAttachment); cdecl;
8575     begin
8576     try
8577     IAttachmentImpl(this).addRef();
8578     except
8579     on e: Exception do FbException.catchException(nil, e);
8580     end
8581     end;
8582    
8583     function IAttachmentImpl_releaseDispatcher(this: IAttachment): Integer; cdecl;
8584     begin
8585     try
8586     Result := IAttachmentImpl(this).release();
8587     except
8588     on e: Exception do FbException.catchException(nil, e);
8589     end
8590     end;
8591    
8592     procedure IAttachmentImpl_getInfoDispatcher(this: IAttachment; status: IStatus; itemsLength: Cardinal; items: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
8593     begin
8594     try
8595     IAttachmentImpl(this).getInfo(status, itemsLength, items, bufferLength, buffer);
8596     except
8597     on e: Exception do FbException.catchException(status, e);
8598     end
8599     end;
8600    
8601     function IAttachmentImpl_startTransactionDispatcher(this: IAttachment; status: IStatus; tpbLength: Cardinal; tpb: BytePtr): ITransaction; cdecl;
8602     begin
8603     try
8604     Result := IAttachmentImpl(this).startTransaction(status, tpbLength, tpb);
8605     except
8606     on e: Exception do FbException.catchException(status, e);
8607     end
8608     end;
8609    
8610     function IAttachmentImpl_reconnectTransactionDispatcher(this: IAttachment; status: IStatus; length: Cardinal; id: BytePtr): ITransaction; cdecl;
8611     begin
8612     try
8613     Result := IAttachmentImpl(this).reconnectTransaction(status, length, id);
8614     except
8615     on e: Exception do FbException.catchException(status, e);
8616     end
8617     end;
8618    
8619     function IAttachmentImpl_compileRequestDispatcher(this: IAttachment; status: IStatus; blrLength: Cardinal; blr: BytePtr): IRequest; cdecl;
8620     begin
8621     try
8622     Result := IAttachmentImpl(this).compileRequest(status, blrLength, blr);
8623     except
8624     on e: Exception do FbException.catchException(status, e);
8625     end
8626     end;
8627    
8628     procedure IAttachmentImpl_transactRequestDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; blrLength: Cardinal; blr: BytePtr; inMsgLength: Cardinal; inMsg: BytePtr; outMsgLength: Cardinal; outMsg: BytePtr); cdecl;
8629     begin
8630     try
8631     IAttachmentImpl(this).transactRequest(status, transaction, blrLength, blr, inMsgLength, inMsg, outMsgLength, outMsg);
8632     except
8633     on e: Exception do FbException.catchException(status, e);
8634     end
8635     end;
8636    
8637     function IAttachmentImpl_createBlobDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
8638     begin
8639     try
8640     Result := IAttachmentImpl(this).createBlob(status, transaction, id, bpbLength, bpb);
8641     except
8642     on e: Exception do FbException.catchException(status, e);
8643     end
8644     end;
8645    
8646     function IAttachmentImpl_openBlobDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; id: PISC_QUAD; bpbLength: Cardinal; bpb: BytePtr): IBlob; cdecl;
8647     begin
8648     try
8649     Result := IAttachmentImpl(this).openBlob(status, transaction, id, bpbLength, bpb);
8650     except
8651     on e: Exception do FbException.catchException(status, e);
8652     end
8653     end;
8654    
8655     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;
8656     begin
8657     try
8658     Result := IAttachmentImpl(this).getSlice(status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
8659     except
8660     on e: Exception do FbException.catchException(status, e);
8661     end
8662     end;
8663    
8664     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;
8665     begin
8666     try
8667     IAttachmentImpl(this).putSlice(status, transaction, id, sdlLength, sdl, paramLength, param, sliceLength, slice);
8668     except
8669     on e: Exception do FbException.catchException(status, e);
8670     end
8671     end;
8672    
8673     procedure IAttachmentImpl_executeDynDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; length: Cardinal; dyn: BytePtr); cdecl;
8674     begin
8675     try
8676     IAttachmentImpl(this).executeDyn(status, transaction, length, dyn);
8677     except
8678     on e: Exception do FbException.catchException(status, e);
8679     end
8680     end;
8681    
8682     function IAttachmentImpl_prepareDispatcher(this: IAttachment; status: IStatus; tra: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; flags: Cardinal): IStatement; cdecl;
8683     begin
8684     try
8685     Result := IAttachmentImpl(this).prepare(status, tra, stmtLength, sqlStmt, dialect, flags);
8686     except
8687     on e: Exception do FbException.catchException(status, e);
8688     end
8689     end;
8690    
8691     function IAttachmentImpl_executeDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; outBuffer: Pointer): ITransaction; cdecl;
8692     begin
8693     try
8694     Result := IAttachmentImpl(this).execute(status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, outBuffer);
8695     except
8696     on e: Exception do FbException.catchException(status, e);
8697     end
8698     end;
8699    
8700     function IAttachmentImpl_openCursorDispatcher(this: IAttachment; status: IStatus; transaction: ITransaction; stmtLength: Cardinal; sqlStmt: PAnsiChar; dialect: Cardinal; inMetadata: IMessageMetadata; inBuffer: Pointer; outMetadata: IMessageMetadata; cursorName: PAnsiChar; cursorFlags: Cardinal): IResultSet; cdecl;
8701     begin
8702     try
8703     Result := IAttachmentImpl(this).openCursor(status, transaction, stmtLength, sqlStmt, dialect, inMetadata, inBuffer, outMetadata, cursorName, cursorFlags);
8704     except
8705     on e: Exception do FbException.catchException(status, e);
8706     end
8707     end;
8708    
8709     function IAttachmentImpl_queEventsDispatcher(this: IAttachment; status: IStatus; callback: IEventCallback; length: Cardinal; events: BytePtr): IEvents; cdecl;
8710     begin
8711     try
8712     Result := IAttachmentImpl(this).queEvents(status, callback, length, events);
8713     except
8714     on e: Exception do FbException.catchException(status, e);
8715     end
8716     end;
8717    
8718     procedure IAttachmentImpl_cancelOperationDispatcher(this: IAttachment; status: IStatus; option: Integer); cdecl;
8719     begin
8720     try
8721     IAttachmentImpl(this).cancelOperation(status, option);
8722     except
8723     on e: Exception do FbException.catchException(status, e);
8724     end
8725     end;
8726    
8727     procedure IAttachmentImpl_pingDispatcher(this: IAttachment; status: IStatus); cdecl;
8728     begin
8729     try
8730     IAttachmentImpl(this).ping(status);
8731     except
8732     on e: Exception do FbException.catchException(status, e);
8733     end
8734     end;
8735    
8736     procedure IAttachmentImpl_detachDispatcher(this: IAttachment; status: IStatus); cdecl;
8737     begin
8738     try
8739     IAttachmentImpl(this).detach(status);
8740     except
8741     on e: Exception do FbException.catchException(status, e);
8742     end
8743     end;
8744    
8745     procedure IAttachmentImpl_dropDatabaseDispatcher(this: IAttachment; status: IStatus); cdecl;
8746     begin
8747     try
8748     IAttachmentImpl(this).dropDatabase(status);
8749     except
8750     on e: Exception do FbException.catchException(status, e);
8751     end
8752     end;
8753    
8754     var
8755     IAttachmentImpl_vTable: AttachmentVTable;
8756    
8757     constructor IAttachmentImpl.create;
8758     begin
8759     vTable := IAttachmentImpl_vTable;
8760     end;
8761    
8762     procedure IServiceImpl_addRefDispatcher(this: IService); cdecl;
8763     begin
8764     try
8765     IServiceImpl(this).addRef();
8766     except
8767     on e: Exception do FbException.catchException(nil, e);
8768     end
8769     end;
8770    
8771     function IServiceImpl_releaseDispatcher(this: IService): Integer; cdecl;
8772     begin
8773     try
8774     Result := IServiceImpl(this).release();
8775     except
8776     on e: Exception do FbException.catchException(nil, e);
8777     end
8778     end;
8779    
8780     procedure IServiceImpl_detachDispatcher(this: IService; status: IStatus); cdecl;
8781     begin
8782     try
8783     IServiceImpl(this).detach(status);
8784     except
8785     on e: Exception do FbException.catchException(status, e);
8786     end
8787     end;
8788    
8789     procedure IServiceImpl_queryDispatcher(this: IService; status: IStatus; sendLength: Cardinal; sendItems: BytePtr; receiveLength: Cardinal; receiveItems: BytePtr; bufferLength: Cardinal; buffer: BytePtr); cdecl;
8790     begin
8791     try
8792     IServiceImpl(this).query(status, sendLength, sendItems, receiveLength, receiveItems, bufferLength, buffer);
8793     except
8794     on e: Exception do FbException.catchException(status, e);
8795     end
8796     end;
8797    
8798     procedure IServiceImpl_startDispatcher(this: IService; status: IStatus; spbLength: Cardinal; spb: BytePtr); cdecl;
8799     begin
8800     try
8801     IServiceImpl(this).start(status, spbLength, spb);
8802     except
8803     on e: Exception do FbException.catchException(status, e);
8804     end
8805     end;
8806    
8807     var
8808     IServiceImpl_vTable: ServiceVTable;
8809    
8810     constructor IServiceImpl.create;
8811     begin
8812     vTable := IServiceImpl_vTable;
8813     end;
8814    
8815     procedure IProviderImpl_addRefDispatcher(this: IProvider); cdecl;
8816     begin
8817     try
8818     IProviderImpl(this).addRef();
8819     except
8820     on e: Exception do FbException.catchException(nil, e);
8821     end
8822     end;
8823    
8824     function IProviderImpl_releaseDispatcher(this: IProvider): Integer; cdecl;
8825     begin
8826     try
8827     Result := IProviderImpl(this).release();
8828     except
8829     on e: Exception do FbException.catchException(nil, e);
8830     end
8831     end;
8832    
8833     procedure IProviderImpl_setOwnerDispatcher(this: IProvider; r: IReferenceCounted); cdecl;
8834     begin
8835     try
8836     IProviderImpl(this).setOwner(r);
8837     except
8838     on e: Exception do FbException.catchException(nil, e);
8839     end
8840     end;
8841    
8842     function IProviderImpl_getOwnerDispatcher(this: IProvider): IReferenceCounted; cdecl;
8843     begin
8844     try
8845     Result := IProviderImpl(this).getOwner();
8846     except
8847     on e: Exception do FbException.catchException(nil, e);
8848     end
8849     end;
8850    
8851     function IProviderImpl_attachDatabaseDispatcher(this: IProvider; status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; cdecl;
8852     begin
8853     try
8854     Result := IProviderImpl(this).attachDatabase(status, fileName, dpbLength, dpb);
8855     except
8856     on e: Exception do FbException.catchException(status, e);
8857     end
8858     end;
8859    
8860     function IProviderImpl_createDatabaseDispatcher(this: IProvider; status: IStatus; fileName: PAnsiChar; dpbLength: Cardinal; dpb: BytePtr): IAttachment; cdecl;
8861     begin
8862     try
8863     Result := IProviderImpl(this).createDatabase(status, fileName, dpbLength, dpb);
8864     except
8865     on e: Exception do FbException.catchException(status, e);
8866     end
8867     end;
8868    
8869     function IProviderImpl_attachServiceManagerDispatcher(this: IProvider; status: IStatus; service: PAnsiChar; spbLength: Cardinal; spb: BytePtr): IService; cdecl;
8870     begin
8871     try
8872     Result := IProviderImpl(this).attachServiceManager(status, service, spbLength, spb);
8873     except
8874     on e: Exception do FbException.catchException(status, e);
8875     end
8876     end;
8877    
8878     procedure IProviderImpl_shutdownDispatcher(this: IProvider; status: IStatus; timeout: Cardinal; reason: Integer); cdecl;
8879     begin
8880     try
8881     IProviderImpl(this).shutdown(status, timeout, reason);
8882     except
8883     on e: Exception do FbException.catchException(status, e);
8884     end
8885     end;
8886    
8887     procedure IProviderImpl_setDbCryptCallbackDispatcher(this: IProvider; status: IStatus; cryptCallback: ICryptKeyCallback); cdecl;
8888     begin
8889     try
8890     IProviderImpl(this).setDbCryptCallback(status, cryptCallback);
8891     except
8892     on e: Exception do FbException.catchException(status, e);
8893     end
8894     end;
8895    
8896     var
8897     IProviderImpl_vTable: ProviderVTable;
8898    
8899     constructor IProviderImpl.create;
8900     begin
8901     vTable := IProviderImpl_vTable;
8902     end;
8903    
8904     procedure IDtcStartImpl_disposeDispatcher(this: IDtcStart); cdecl;
8905     begin
8906     try
8907     IDtcStartImpl(this).dispose();
8908     except
8909     on e: Exception do FbException.catchException(nil, e);
8910     end
8911     end;
8912    
8913     procedure IDtcStartImpl_addAttachmentDispatcher(this: IDtcStart; status: IStatus; att: IAttachment); cdecl;
8914     begin
8915     try
8916     IDtcStartImpl(this).addAttachment(status, att);
8917     except
8918     on e: Exception do FbException.catchException(status, e);
8919     end
8920     end;
8921    
8922     procedure IDtcStartImpl_addWithTpbDispatcher(this: IDtcStart; status: IStatus; att: IAttachment; length: Cardinal; tpb: BytePtr); cdecl;
8923     begin
8924     try
8925     IDtcStartImpl(this).addWithTpb(status, att, length, tpb);
8926     except
8927     on e: Exception do FbException.catchException(status, e);
8928     end
8929     end;
8930    
8931     function IDtcStartImpl_startDispatcher(this: IDtcStart; status: IStatus): ITransaction; cdecl;
8932     begin
8933     try
8934     Result := IDtcStartImpl(this).start(status);
8935     except
8936     on e: Exception do FbException.catchException(status, e);
8937     end
8938     end;
8939    
8940     var
8941     IDtcStartImpl_vTable: DtcStartVTable;
8942    
8943     constructor IDtcStartImpl.create;
8944     begin
8945     vTable := IDtcStartImpl_vTable;
8946     end;
8947    
8948     function IDtcImpl_joinDispatcher(this: IDtc; status: IStatus; one: ITransaction; two: ITransaction): ITransaction; cdecl;
8949     begin
8950     try
8951     Result := IDtcImpl(this).join(status, one, two);
8952     except
8953     on e: Exception do FbException.catchException(status, e);
8954     end
8955     end;
8956    
8957     function IDtcImpl_startBuilderDispatcher(this: IDtc; status: IStatus): IDtcStart; cdecl;
8958     begin
8959     try
8960     Result := IDtcImpl(this).startBuilder(status);
8961     except
8962     on e: Exception do FbException.catchException(status, e);
8963     end
8964     end;
8965    
8966     var
8967     IDtcImpl_vTable: DtcVTable;
8968    
8969     constructor IDtcImpl.create;
8970     begin
8971     vTable := IDtcImpl_vTable;
8972     end;
8973    
8974     procedure IAuthImpl_addRefDispatcher(this: IAuth); cdecl;
8975     begin
8976     try
8977     IAuthImpl(this).addRef();
8978     except
8979     on e: Exception do FbException.catchException(nil, e);
8980     end
8981     end;
8982    
8983     function IAuthImpl_releaseDispatcher(this: IAuth): Integer; cdecl;
8984     begin
8985     try
8986     Result := IAuthImpl(this).release();
8987     except
8988     on e: Exception do FbException.catchException(nil, e);
8989     end
8990     end;
8991    
8992     procedure IAuthImpl_setOwnerDispatcher(this: IAuth; r: IReferenceCounted); cdecl;
8993     begin
8994     try
8995     IAuthImpl(this).setOwner(r);
8996     except
8997     on e: Exception do FbException.catchException(nil, e);
8998     end
8999     end;
9000    
9001     function IAuthImpl_getOwnerDispatcher(this: IAuth): IReferenceCounted; cdecl;
9002     begin
9003     try
9004     Result := IAuthImpl(this).getOwner();
9005     except
9006     on e: Exception do FbException.catchException(nil, e);
9007     end
9008     end;
9009    
9010     var
9011     IAuthImpl_vTable: AuthVTable;
9012    
9013     constructor IAuthImpl.create;
9014     begin
9015     vTable := IAuthImpl_vTable;
9016     end;
9017    
9018     procedure IWriterImpl_resetDispatcher(this: IWriter); cdecl;
9019     begin
9020     try
9021     IWriterImpl(this).reset();
9022     except
9023     on e: Exception do FbException.catchException(nil, e);
9024     end
9025     end;
9026    
9027     procedure IWriterImpl_addDispatcher(this: IWriter; status: IStatus; name: PAnsiChar); cdecl;
9028     begin
9029     try
9030     IWriterImpl(this).add(status, name);
9031     except
9032     on e: Exception do FbException.catchException(status, e);
9033     end
9034     end;
9035    
9036     procedure IWriterImpl_setTypeDispatcher(this: IWriter; status: IStatus; value: PAnsiChar); cdecl;
9037     begin
9038     try
9039     IWriterImpl(this).setType(status, value);
9040     except
9041     on e: Exception do FbException.catchException(status, e);
9042     end
9043     end;
9044    
9045     procedure IWriterImpl_setDbDispatcher(this: IWriter; status: IStatus; value: PAnsiChar); cdecl;
9046     begin
9047     try
9048     IWriterImpl(this).setDb(status, value);
9049     except
9050     on e: Exception do FbException.catchException(status, e);
9051     end
9052     end;
9053    
9054     var
9055     IWriterImpl_vTable: WriterVTable;
9056    
9057     constructor IWriterImpl.create;
9058     begin
9059     vTable := IWriterImpl_vTable;
9060     end;
9061    
9062     function IServerBlockImpl_getLoginDispatcher(this: IServerBlock): PAnsiChar; cdecl;
9063     begin
9064     try
9065     Result := IServerBlockImpl(this).getLogin();
9066     except
9067     on e: Exception do FbException.catchException(nil, e);
9068     end
9069     end;
9070    
9071     function IServerBlockImpl_getDataDispatcher(this: IServerBlock; length: CardinalPtr): BytePtr; cdecl;
9072     begin
9073     try
9074     Result := IServerBlockImpl(this).getData(length);
9075     except
9076     on e: Exception do FbException.catchException(nil, e);
9077     end
9078     end;
9079    
9080     procedure IServerBlockImpl_putDataDispatcher(this: IServerBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
9081     begin
9082     try
9083     IServerBlockImpl(this).putData(status, length, data);
9084     except
9085     on e: Exception do FbException.catchException(status, e);
9086     end
9087     end;
9088    
9089     function IServerBlockImpl_newKeyDispatcher(this: IServerBlock; status: IStatus): ICryptKey; cdecl;
9090     begin
9091     try
9092     Result := IServerBlockImpl(this).newKey(status);
9093     except
9094     on e: Exception do FbException.catchException(status, e);
9095     end
9096     end;
9097    
9098     var
9099     IServerBlockImpl_vTable: ServerBlockVTable;
9100    
9101     constructor IServerBlockImpl.create;
9102     begin
9103     vTable := IServerBlockImpl_vTable;
9104     end;
9105    
9106     procedure IClientBlockImpl_addRefDispatcher(this: IClientBlock); cdecl;
9107     begin
9108     try
9109     IClientBlockImpl(this).addRef();
9110     except
9111     on e: Exception do FbException.catchException(nil, e);
9112     end
9113     end;
9114    
9115     function IClientBlockImpl_releaseDispatcher(this: IClientBlock): Integer; cdecl;
9116     begin
9117     try
9118     Result := IClientBlockImpl(this).release();
9119     except
9120     on e: Exception do FbException.catchException(nil, e);
9121     end
9122     end;
9123    
9124     function IClientBlockImpl_getLoginDispatcher(this: IClientBlock): PAnsiChar; cdecl;
9125     begin
9126     try
9127     Result := IClientBlockImpl(this).getLogin();
9128     except
9129     on e: Exception do FbException.catchException(nil, e);
9130     end
9131     end;
9132    
9133     function IClientBlockImpl_getPasswordDispatcher(this: IClientBlock): PAnsiChar; cdecl;
9134     begin
9135     try
9136     Result := IClientBlockImpl(this).getPassword();
9137     except
9138     on e: Exception do FbException.catchException(nil, e);
9139     end
9140     end;
9141    
9142     function IClientBlockImpl_getDataDispatcher(this: IClientBlock; length: CardinalPtr): BytePtr; cdecl;
9143     begin
9144     try
9145     Result := IClientBlockImpl(this).getData(length);
9146     except
9147     on e: Exception do FbException.catchException(nil, e);
9148     end
9149     end;
9150    
9151     procedure IClientBlockImpl_putDataDispatcher(this: IClientBlock; status: IStatus; length: Cardinal; data: Pointer); cdecl;
9152     begin
9153     try
9154     IClientBlockImpl(this).putData(status, length, data);
9155     except
9156     on e: Exception do FbException.catchException(status, e);
9157     end
9158     end;
9159    
9160     function IClientBlockImpl_newKeyDispatcher(this: IClientBlock; status: IStatus): ICryptKey; cdecl;
9161     begin
9162     try
9163     Result := IClientBlockImpl(this).newKey(status);
9164     except
9165     on e: Exception do FbException.catchException(status, e);
9166     end
9167     end;
9168    
9169     var
9170     IClientBlockImpl_vTable: ClientBlockVTable;
9171    
9172     constructor IClientBlockImpl.create;
9173     begin
9174     vTable := IClientBlockImpl_vTable;
9175     end;
9176    
9177     procedure IServerImpl_addRefDispatcher(this: IServer); cdecl;
9178     begin
9179     try
9180     IServerImpl(this).addRef();
9181     except
9182     on e: Exception do FbException.catchException(nil, e);
9183     end
9184     end;
9185    
9186     function IServerImpl_releaseDispatcher(this: IServer): Integer; cdecl;
9187     begin
9188     try
9189     Result := IServerImpl(this).release();
9190     except
9191     on e: Exception do FbException.catchException(nil, e);
9192     end
9193     end;
9194    
9195     procedure IServerImpl_setOwnerDispatcher(this: IServer; r: IReferenceCounted); cdecl;
9196     begin
9197     try
9198     IServerImpl(this).setOwner(r);
9199     except
9200     on e: Exception do FbException.catchException(nil, e);
9201     end
9202     end;
9203    
9204     function IServerImpl_getOwnerDispatcher(this: IServer): IReferenceCounted; cdecl;
9205     begin
9206     try
9207     Result := IServerImpl(this).getOwner();
9208     except
9209     on e: Exception do FbException.catchException(nil, e);
9210     end
9211     end;
9212    
9213     function IServerImpl_authenticateDispatcher(this: IServer; status: IStatus; sBlock: IServerBlock; writerInterface: IWriter): Integer; cdecl;
9214     begin
9215     try
9216     Result := IServerImpl(this).authenticate(status, sBlock, writerInterface);
9217     except
9218     on e: Exception do FbException.catchException(status, e);
9219     end
9220     end;
9221    
9222     var
9223     IServerImpl_vTable: ServerVTable;
9224    
9225     constructor IServerImpl.create;
9226     begin
9227     vTable := IServerImpl_vTable;
9228     end;
9229    
9230     procedure IClientImpl_addRefDispatcher(this: IClient); cdecl;
9231     begin
9232     try
9233     IClientImpl(this).addRef();
9234     except
9235     on e: Exception do FbException.catchException(nil, e);
9236     end
9237     end;
9238    
9239     function IClientImpl_releaseDispatcher(this: IClient): Integer; cdecl;
9240     begin
9241     try
9242     Result := IClientImpl(this).release();
9243     except
9244     on e: Exception do FbException.catchException(nil, e);
9245     end
9246     end;
9247    
9248     procedure IClientImpl_setOwnerDispatcher(this: IClient; r: IReferenceCounted); cdecl;
9249     begin
9250     try
9251     IClientImpl(this).setOwner(r);
9252     except
9253     on e: Exception do FbException.catchException(nil, e);
9254     end
9255     end;
9256    
9257     function IClientImpl_getOwnerDispatcher(this: IClient): IReferenceCounted; cdecl;
9258     begin
9259     try
9260     Result := IClientImpl(this).getOwner();
9261     except
9262     on e: Exception do FbException.catchException(nil, e);
9263     end
9264     end;
9265    
9266     function IClientImpl_authenticateDispatcher(this: IClient; status: IStatus; cBlock: IClientBlock): Integer; cdecl;
9267     begin
9268     try
9269     Result := IClientImpl(this).authenticate(status, cBlock);
9270     except
9271     on e: Exception do FbException.catchException(status, e);
9272     end
9273     end;
9274    
9275     var
9276     IClientImpl_vTable: ClientVTable;
9277    
9278     constructor IClientImpl.create;
9279     begin
9280     vTable := IClientImpl_vTable;
9281     end;
9282    
9283     function IUserFieldImpl_enteredDispatcher(this: IUserField): Integer; cdecl;
9284     begin
9285     try
9286     Result := IUserFieldImpl(this).entered();
9287     except
9288     on e: Exception do FbException.catchException(nil, e);
9289     end
9290     end;
9291    
9292     function IUserFieldImpl_specifiedDispatcher(this: IUserField): Integer; cdecl;
9293     begin
9294     try
9295     Result := IUserFieldImpl(this).specified();
9296     except
9297     on e: Exception do FbException.catchException(nil, e);
9298     end
9299     end;
9300    
9301     procedure IUserFieldImpl_setEnteredDispatcher(this: IUserField; status: IStatus; newValue: Integer); cdecl;
9302     begin
9303     try
9304     IUserFieldImpl(this).setEntered(status, newValue);
9305     except
9306     on e: Exception do FbException.catchException(status, e);
9307     end
9308     end;
9309    
9310     var
9311     IUserFieldImpl_vTable: UserFieldVTable;
9312    
9313     constructor IUserFieldImpl.create;
9314     begin
9315     vTable := IUserFieldImpl_vTable;
9316     end;
9317    
9318     function ICharUserFieldImpl_enteredDispatcher(this: ICharUserField): Integer; cdecl;
9319     begin
9320     try
9321     Result := ICharUserFieldImpl(this).entered();
9322     except
9323     on e: Exception do FbException.catchException(nil, e);
9324     end
9325     end;
9326    
9327     function ICharUserFieldImpl_specifiedDispatcher(this: ICharUserField): Integer; cdecl;
9328     begin
9329     try
9330     Result := ICharUserFieldImpl(this).specified();
9331     except
9332     on e: Exception do FbException.catchException(nil, e);
9333     end
9334     end;
9335    
9336     procedure ICharUserFieldImpl_setEnteredDispatcher(this: ICharUserField; status: IStatus; newValue: Integer); cdecl;
9337     begin
9338     try
9339     ICharUserFieldImpl(this).setEntered(status, newValue);
9340     except
9341     on e: Exception do FbException.catchException(status, e);
9342     end
9343     end;
9344    
9345     function ICharUserFieldImpl_getDispatcher(this: ICharUserField): PAnsiChar; cdecl;
9346     begin
9347     try
9348     Result := ICharUserFieldImpl(this).get();
9349     except
9350     on e: Exception do FbException.catchException(nil, e);
9351     end
9352     end;
9353    
9354     procedure ICharUserFieldImpl_set_Dispatcher(this: ICharUserField; status: IStatus; newValue: PAnsiChar); cdecl;
9355     begin
9356     try
9357     ICharUserFieldImpl(this).set_(status, newValue);
9358     except
9359     on e: Exception do FbException.catchException(status, e);
9360     end
9361     end;
9362    
9363     var
9364     ICharUserFieldImpl_vTable: CharUserFieldVTable;
9365    
9366     constructor ICharUserFieldImpl.create;
9367     begin
9368     vTable := ICharUserFieldImpl_vTable;
9369     end;
9370    
9371     function IIntUserFieldImpl_enteredDispatcher(this: IIntUserField): Integer; cdecl;
9372     begin
9373     try
9374     Result := IIntUserFieldImpl(this).entered();
9375     except
9376     on e: Exception do FbException.catchException(nil, e);
9377     end
9378     end;
9379    
9380     function IIntUserFieldImpl_specifiedDispatcher(this: IIntUserField): Integer; cdecl;
9381     begin
9382     try
9383     Result := IIntUserFieldImpl(this).specified();
9384     except
9385     on e: Exception do FbException.catchException(nil, e);
9386     end
9387     end;
9388    
9389     procedure IIntUserFieldImpl_setEnteredDispatcher(this: IIntUserField; status: IStatus; newValue: Integer); cdecl;
9390     begin
9391     try
9392     IIntUserFieldImpl(this).setEntered(status, newValue);
9393     except
9394     on e: Exception do FbException.catchException(status, e);
9395     end
9396     end;
9397    
9398     function IIntUserFieldImpl_getDispatcher(this: IIntUserField): Integer; cdecl;
9399     begin
9400     try
9401     Result := IIntUserFieldImpl(this).get();
9402     except
9403     on e: Exception do FbException.catchException(nil, e);
9404     end
9405     end;
9406    
9407     procedure IIntUserFieldImpl_set_Dispatcher(this: IIntUserField; status: IStatus; newValue: Integer); cdecl;
9408     begin
9409     try
9410     IIntUserFieldImpl(this).set_(status, newValue);
9411     except
9412     on e: Exception do FbException.catchException(status, e);
9413     end
9414     end;
9415    
9416     var
9417     IIntUserFieldImpl_vTable: IntUserFieldVTable;
9418    
9419     constructor IIntUserFieldImpl.create;
9420     begin
9421     vTable := IIntUserFieldImpl_vTable;
9422     end;
9423    
9424     function IUserImpl_operationDispatcher(this: IUser): Cardinal; cdecl;
9425     begin
9426     try
9427     Result := IUserImpl(this).operation();
9428     except
9429     on e: Exception do FbException.catchException(nil, e);
9430     end
9431     end;
9432    
9433     function IUserImpl_userNameDispatcher(this: IUser): ICharUserField; cdecl;
9434     begin
9435     try
9436     Result := IUserImpl(this).userName();
9437     except
9438     on e: Exception do FbException.catchException(nil, e);
9439     end
9440     end;
9441    
9442     function IUserImpl_passwordDispatcher(this: IUser): ICharUserField; cdecl;
9443     begin
9444     try
9445     Result := IUserImpl(this).password();
9446     except
9447     on e: Exception do FbException.catchException(nil, e);
9448     end
9449     end;
9450    
9451     function IUserImpl_firstNameDispatcher(this: IUser): ICharUserField; cdecl;
9452     begin
9453     try
9454     Result := IUserImpl(this).firstName();
9455     except
9456     on e: Exception do FbException.catchException(nil, e);
9457     end
9458     end;
9459    
9460     function IUserImpl_lastNameDispatcher(this: IUser): ICharUserField; cdecl;
9461     begin
9462     try
9463     Result := IUserImpl(this).lastName();
9464     except
9465     on e: Exception do FbException.catchException(nil, e);
9466     end
9467     end;
9468    
9469     function IUserImpl_middleNameDispatcher(this: IUser): ICharUserField; cdecl;
9470     begin
9471     try
9472     Result := IUserImpl(this).middleName();
9473     except
9474     on e: Exception do FbException.catchException(nil, e);
9475     end
9476     end;
9477    
9478     function IUserImpl_commentDispatcher(this: IUser): ICharUserField; cdecl;
9479     begin
9480     try
9481     Result := IUserImpl(this).comment();
9482     except
9483     on e: Exception do FbException.catchException(nil, e);
9484     end
9485     end;
9486    
9487     function IUserImpl_attributesDispatcher(this: IUser): ICharUserField; cdecl;
9488     begin
9489     try
9490     Result := IUserImpl(this).attributes();
9491     except
9492     on e: Exception do FbException.catchException(nil, e);
9493     end
9494     end;
9495    
9496     function IUserImpl_activeDispatcher(this: IUser): IIntUserField; cdecl;
9497     begin
9498     try
9499     Result := IUserImpl(this).active();
9500     except
9501     on e: Exception do FbException.catchException(nil, e);
9502     end
9503     end;
9504    
9505     function IUserImpl_adminDispatcher(this: IUser): IIntUserField; cdecl;
9506     begin
9507     try
9508     Result := IUserImpl(this).admin();
9509     except
9510     on e: Exception do FbException.catchException(nil, e);
9511     end
9512     end;
9513    
9514     procedure IUserImpl_clearDispatcher(this: IUser; status: IStatus); cdecl;
9515     begin
9516     try
9517     IUserImpl(this).clear(status);
9518     except
9519     on e: Exception do FbException.catchException(status, e);
9520     end
9521     end;
9522    
9523     var
9524     IUserImpl_vTable: UserVTable;
9525    
9526     constructor IUserImpl.create;
9527     begin
9528     vTable := IUserImpl_vTable;
9529     end;
9530    
9531     procedure IListUsersImpl_listDispatcher(this: IListUsers; status: IStatus; user: IUser); cdecl;
9532     begin
9533     try
9534     IListUsersImpl(this).list(status, user);
9535     except
9536     on e: Exception do FbException.catchException(status, e);
9537     end
9538     end;
9539    
9540     var
9541     IListUsersImpl_vTable: ListUsersVTable;
9542    
9543     constructor IListUsersImpl.create;
9544     begin
9545     vTable := IListUsersImpl_vTable;
9546     end;
9547    
9548     function ILogonInfoImpl_nameDispatcher(this: ILogonInfo): PAnsiChar; cdecl;
9549     begin
9550     try
9551     Result := ILogonInfoImpl(this).name();
9552     except
9553     on e: Exception do FbException.catchException(nil, e);
9554     end
9555     end;
9556    
9557     function ILogonInfoImpl_roleDispatcher(this: ILogonInfo): PAnsiChar; cdecl;
9558     begin
9559     try
9560     Result := ILogonInfoImpl(this).role();
9561     except
9562     on e: Exception do FbException.catchException(nil, e);
9563     end
9564     end;
9565    
9566     function ILogonInfoImpl_networkProtocolDispatcher(this: ILogonInfo): PAnsiChar; cdecl;
9567     begin
9568     try
9569     Result := ILogonInfoImpl(this).networkProtocol();
9570     except
9571     on e: Exception do FbException.catchException(nil, e);
9572     end
9573     end;
9574    
9575     function ILogonInfoImpl_remoteAddressDispatcher(this: ILogonInfo): PAnsiChar; cdecl;
9576     begin
9577     try
9578     Result := ILogonInfoImpl(this).remoteAddress();
9579     except
9580     on e: Exception do FbException.catchException(nil, e);
9581     end
9582     end;
9583    
9584     function ILogonInfoImpl_authBlockDispatcher(this: ILogonInfo; length: CardinalPtr): BytePtr; cdecl;
9585     begin
9586     try
9587     Result := ILogonInfoImpl(this).authBlock(length);
9588     except
9589     on e: Exception do FbException.catchException(nil, e);
9590     end
9591     end;
9592    
9593     var
9594     ILogonInfoImpl_vTable: LogonInfoVTable;
9595    
9596     constructor ILogonInfoImpl.create;
9597     begin
9598     vTable := ILogonInfoImpl_vTable;
9599     end;
9600    
9601     procedure IManagementImpl_addRefDispatcher(this: IManagement); cdecl;
9602     begin
9603     try
9604     IManagementImpl(this).addRef();
9605     except
9606     on e: Exception do FbException.catchException(nil, e);
9607     end
9608     end;
9609    
9610     function IManagementImpl_releaseDispatcher(this: IManagement): Integer; cdecl;
9611     begin
9612     try
9613     Result := IManagementImpl(this).release();
9614     except
9615     on e: Exception do FbException.catchException(nil, e);
9616     end
9617     end;
9618    
9619     procedure IManagementImpl_setOwnerDispatcher(this: IManagement; r: IReferenceCounted); cdecl;
9620     begin
9621     try
9622     IManagementImpl(this).setOwner(r);
9623     except
9624     on e: Exception do FbException.catchException(nil, e);
9625     end
9626     end;
9627    
9628     function IManagementImpl_getOwnerDispatcher(this: IManagement): IReferenceCounted; cdecl;
9629     begin
9630     try
9631     Result := IManagementImpl(this).getOwner();
9632     except
9633     on e: Exception do FbException.catchException(nil, e);
9634     end
9635     end;
9636    
9637     procedure IManagementImpl_startDispatcher(this: IManagement; status: IStatus; logonInfo: ILogonInfo); cdecl;
9638     begin
9639     try
9640     IManagementImpl(this).start(status, logonInfo);
9641     except
9642     on e: Exception do FbException.catchException(status, e);
9643     end
9644     end;
9645    
9646     function IManagementImpl_executeDispatcher(this: IManagement; status: IStatus; user: IUser; callback: IListUsers): Integer; cdecl;
9647     begin
9648     try
9649     Result := IManagementImpl(this).execute(status, user, callback);
9650     except
9651     on e: Exception do FbException.catchException(status, e);
9652     end
9653     end;
9654    
9655     procedure IManagementImpl_commitDispatcher(this: IManagement; status: IStatus); cdecl;
9656     begin
9657     try
9658     IManagementImpl(this).commit(status);
9659     except
9660     on e: Exception do FbException.catchException(status, e);
9661     end
9662     end;
9663    
9664     procedure IManagementImpl_rollbackDispatcher(this: IManagement; status: IStatus); cdecl;
9665     begin
9666     try
9667     IManagementImpl(this).rollback(status);
9668     except
9669     on e: Exception do FbException.catchException(status, e);
9670     end
9671     end;
9672    
9673     var
9674     IManagementImpl_vTable: ManagementVTable;
9675    
9676     constructor IManagementImpl.create;
9677     begin
9678     vTable := IManagementImpl_vTable;
9679     end;
9680    
9681     procedure IWireCryptPluginImpl_addRefDispatcher(this: IWireCryptPlugin); cdecl;
9682     begin
9683     try
9684     IWireCryptPluginImpl(this).addRef();
9685     except
9686     on e: Exception do FbException.catchException(nil, e);
9687     end
9688     end;
9689    
9690     function IWireCryptPluginImpl_releaseDispatcher(this: IWireCryptPlugin): Integer; cdecl;
9691     begin
9692     try
9693     Result := IWireCryptPluginImpl(this).release();
9694     except
9695     on e: Exception do FbException.catchException(nil, e);
9696     end
9697     end;
9698    
9699     procedure IWireCryptPluginImpl_setOwnerDispatcher(this: IWireCryptPlugin; r: IReferenceCounted); cdecl;
9700     begin
9701     try
9702     IWireCryptPluginImpl(this).setOwner(r);
9703     except
9704     on e: Exception do FbException.catchException(nil, e);
9705     end
9706     end;
9707    
9708     function IWireCryptPluginImpl_getOwnerDispatcher(this: IWireCryptPlugin): IReferenceCounted; cdecl;
9709     begin
9710     try
9711     Result := IWireCryptPluginImpl(this).getOwner();
9712     except
9713     on e: Exception do FbException.catchException(nil, e);
9714     end
9715     end;
9716    
9717     function IWireCryptPluginImpl_getKnownTypesDispatcher(this: IWireCryptPlugin; status: IStatus): PAnsiChar; cdecl;
9718     begin
9719     try
9720     Result := IWireCryptPluginImpl(this).getKnownTypes(status);
9721     except
9722     on e: Exception do FbException.catchException(status, e);
9723     end
9724     end;
9725    
9726     procedure IWireCryptPluginImpl_setKeyDispatcher(this: IWireCryptPlugin; status: IStatus; key: ICryptKey); cdecl;
9727     begin
9728     try
9729     IWireCryptPluginImpl(this).setKey(status, key);
9730     except
9731     on e: Exception do FbException.catchException(status, e);
9732     end
9733     end;
9734    
9735     procedure IWireCryptPluginImpl_encryptDispatcher(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
9736     begin
9737     try
9738     IWireCryptPluginImpl(this).encrypt(status, length, from, to_);
9739     except
9740     on e: Exception do FbException.catchException(status, e);
9741     end
9742     end;
9743    
9744     procedure IWireCryptPluginImpl_decryptDispatcher(this: IWireCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
9745     begin
9746     try
9747     IWireCryptPluginImpl(this).decrypt(status, length, from, to_);
9748     except
9749     on e: Exception do FbException.catchException(status, e);
9750     end
9751     end;
9752    
9753     var
9754     IWireCryptPluginImpl_vTable: WireCryptPluginVTable;
9755    
9756     constructor IWireCryptPluginImpl.create;
9757     begin
9758     vTable := IWireCryptPluginImpl_vTable;
9759     end;
9760    
9761     function ICryptKeyCallbackImpl_callbackDispatcher(this: ICryptKeyCallback; dataLength: Cardinal; data: Pointer; bufferLength: Cardinal; buffer: Pointer): Cardinal; cdecl;
9762     begin
9763     try
9764     Result := ICryptKeyCallbackImpl(this).callback(dataLength, data, bufferLength, buffer);
9765     except
9766     on e: Exception do FbException.catchException(nil, e);
9767     end
9768     end;
9769    
9770     var
9771     ICryptKeyCallbackImpl_vTable: CryptKeyCallbackVTable;
9772    
9773     constructor ICryptKeyCallbackImpl.create;
9774     begin
9775     vTable := ICryptKeyCallbackImpl_vTable;
9776     end;
9777    
9778     procedure IKeyHolderPluginImpl_addRefDispatcher(this: IKeyHolderPlugin); cdecl;
9779     begin
9780     try
9781     IKeyHolderPluginImpl(this).addRef();
9782     except
9783     on e: Exception do FbException.catchException(nil, e);
9784     end
9785     end;
9786    
9787     function IKeyHolderPluginImpl_releaseDispatcher(this: IKeyHolderPlugin): Integer; cdecl;
9788     begin
9789     try
9790     Result := IKeyHolderPluginImpl(this).release();
9791     except
9792     on e: Exception do FbException.catchException(nil, e);
9793     end
9794     end;
9795    
9796     procedure IKeyHolderPluginImpl_setOwnerDispatcher(this: IKeyHolderPlugin; r: IReferenceCounted); cdecl;
9797     begin
9798     try
9799     IKeyHolderPluginImpl(this).setOwner(r);
9800     except
9801     on e: Exception do FbException.catchException(nil, e);
9802     end
9803     end;
9804    
9805     function IKeyHolderPluginImpl_getOwnerDispatcher(this: IKeyHolderPlugin): IReferenceCounted; cdecl;
9806     begin
9807     try
9808     Result := IKeyHolderPluginImpl(this).getOwner();
9809     except
9810     on e: Exception do FbException.catchException(nil, e);
9811     end
9812     end;
9813    
9814     function IKeyHolderPluginImpl_keyCallbackDispatcher(this: IKeyHolderPlugin; status: IStatus; callback: ICryptKeyCallback): Integer; cdecl;
9815     begin
9816     try
9817     Result := IKeyHolderPluginImpl(this).keyCallback(status, callback);
9818     except
9819     on e: Exception do FbException.catchException(status, e);
9820     end
9821     end;
9822    
9823     function IKeyHolderPluginImpl_keyHandleDispatcher(this: IKeyHolderPlugin; status: IStatus; keyName: PAnsiChar): ICryptKeyCallback; cdecl;
9824     begin
9825     try
9826     Result := IKeyHolderPluginImpl(this).keyHandle(status, keyName);
9827     except
9828     on e: Exception do FbException.catchException(status, e);
9829     end
9830     end;
9831    
9832     var
9833     IKeyHolderPluginImpl_vTable: KeyHolderPluginVTable;
9834    
9835     constructor IKeyHolderPluginImpl.create;
9836     begin
9837     vTable := IKeyHolderPluginImpl_vTable;
9838     end;
9839    
9840     procedure IDbCryptPluginImpl_addRefDispatcher(this: IDbCryptPlugin); cdecl;
9841     begin
9842     try
9843     IDbCryptPluginImpl(this).addRef();
9844     except
9845     on e: Exception do FbException.catchException(nil, e);
9846     end
9847     end;
9848    
9849     function IDbCryptPluginImpl_releaseDispatcher(this: IDbCryptPlugin): Integer; cdecl;
9850     begin
9851     try
9852     Result := IDbCryptPluginImpl(this).release();
9853     except
9854     on e: Exception do FbException.catchException(nil, e);
9855     end
9856     end;
9857    
9858     procedure IDbCryptPluginImpl_setOwnerDispatcher(this: IDbCryptPlugin; r: IReferenceCounted); cdecl;
9859     begin
9860     try
9861     IDbCryptPluginImpl(this).setOwner(r);
9862     except
9863     on e: Exception do FbException.catchException(nil, e);
9864     end
9865     end;
9866    
9867     function IDbCryptPluginImpl_getOwnerDispatcher(this: IDbCryptPlugin): IReferenceCounted; cdecl;
9868     begin
9869     try
9870     Result := IDbCryptPluginImpl(this).getOwner();
9871     except
9872     on e: Exception do FbException.catchException(nil, e);
9873     end
9874     end;
9875    
9876     procedure IDbCryptPluginImpl_setKeyDispatcher(this: IDbCryptPlugin; status: IStatus; length: Cardinal; sources: IKeyHolderPluginPtr; keyName: PAnsiChar); cdecl;
9877     begin
9878     try
9879     IDbCryptPluginImpl(this).setKey(status, length, sources, keyName);
9880     except
9881     on e: Exception do FbException.catchException(status, e);
9882     end
9883     end;
9884    
9885     procedure IDbCryptPluginImpl_encryptDispatcher(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
9886     begin
9887     try
9888     IDbCryptPluginImpl(this).encrypt(status, length, from, to_);
9889     except
9890     on e: Exception do FbException.catchException(status, e);
9891     end
9892     end;
9893    
9894     procedure IDbCryptPluginImpl_decryptDispatcher(this: IDbCryptPlugin; status: IStatus; length: Cardinal; from: Pointer; to_: Pointer); cdecl;
9895     begin
9896     try
9897     IDbCryptPluginImpl(this).decrypt(status, length, from, to_);
9898     except
9899     on e: Exception do FbException.catchException(status, e);
9900     end
9901     end;
9902    
9903     var
9904     IDbCryptPluginImpl_vTable: DbCryptPluginVTable;
9905    
9906     constructor IDbCryptPluginImpl.create;
9907     begin
9908     vTable := IDbCryptPluginImpl_vTable;
9909     end;
9910    
9911     function IExternalContextImpl_getMasterDispatcher(this: IExternalContext): IMaster; cdecl;
9912     begin
9913     try
9914     Result := IExternalContextImpl(this).getMaster();
9915     except
9916     on e: Exception do FbException.catchException(nil, e);
9917     end
9918     end;
9919    
9920     function IExternalContextImpl_getEngineDispatcher(this: IExternalContext; status: IStatus): IExternalEngine; cdecl;
9921     begin
9922     try
9923     Result := IExternalContextImpl(this).getEngine(status);
9924     except
9925     on e: Exception do FbException.catchException(status, e);
9926     end
9927     end;
9928    
9929     function IExternalContextImpl_getAttachmentDispatcher(this: IExternalContext; status: IStatus): IAttachment; cdecl;
9930     begin
9931     try
9932     Result := IExternalContextImpl(this).getAttachment(status);
9933     except
9934     on e: Exception do FbException.catchException(status, e);
9935     end
9936     end;
9937    
9938     function IExternalContextImpl_getTransactionDispatcher(this: IExternalContext; status: IStatus): ITransaction; cdecl;
9939     begin
9940     try
9941     Result := IExternalContextImpl(this).getTransaction(status);
9942     except
9943     on e: Exception do FbException.catchException(status, e);
9944     end
9945     end;
9946    
9947     function IExternalContextImpl_getUserNameDispatcher(this: IExternalContext): PAnsiChar; cdecl;
9948     begin
9949     try
9950     Result := IExternalContextImpl(this).getUserName();
9951     except
9952     on e: Exception do FbException.catchException(nil, e);
9953     end
9954     end;
9955    
9956     function IExternalContextImpl_getDatabaseNameDispatcher(this: IExternalContext): PAnsiChar; cdecl;
9957     begin
9958     try
9959     Result := IExternalContextImpl(this).getDatabaseName();
9960     except
9961     on e: Exception do FbException.catchException(nil, e);
9962     end
9963     end;
9964    
9965     function IExternalContextImpl_getClientCharSetDispatcher(this: IExternalContext): PAnsiChar; cdecl;
9966     begin
9967     try
9968     Result := IExternalContextImpl(this).getClientCharSet();
9969     except
9970     on e: Exception do FbException.catchException(nil, e);
9971     end
9972     end;
9973    
9974     function IExternalContextImpl_obtainInfoCodeDispatcher(this: IExternalContext): Integer; cdecl;
9975     begin
9976     try
9977     Result := IExternalContextImpl(this).obtainInfoCode();
9978     except
9979     on e: Exception do FbException.catchException(nil, e);
9980     end
9981     end;
9982    
9983     function IExternalContextImpl_getInfoDispatcher(this: IExternalContext; code: Integer): Pointer; cdecl;
9984     begin
9985     try
9986     Result := IExternalContextImpl(this).getInfo(code);
9987     except
9988     on e: Exception do FbException.catchException(nil, e);
9989     end
9990     end;
9991    
9992     function IExternalContextImpl_setInfoDispatcher(this: IExternalContext; code: Integer; value: Pointer): Pointer; cdecl;
9993     begin
9994     try
9995     Result := IExternalContextImpl(this).setInfo(code, value);
9996     except
9997     on e: Exception do FbException.catchException(nil, e);
9998     end
9999     end;
10000    
10001     var
10002     IExternalContextImpl_vTable: ExternalContextVTable;
10003    
10004     constructor IExternalContextImpl.create;
10005     begin
10006     vTable := IExternalContextImpl_vTable;
10007     end;
10008    
10009     procedure IExternalResultSetImpl_disposeDispatcher(this: IExternalResultSet); cdecl;
10010     begin
10011     try
10012     IExternalResultSetImpl(this).dispose();
10013     except
10014     on e: Exception do FbException.catchException(nil, e);
10015     end
10016     end;
10017    
10018     function IExternalResultSetImpl_fetchDispatcher(this: IExternalResultSet; status: IStatus): Boolean; cdecl;
10019     begin
10020     try
10021     Result := IExternalResultSetImpl(this).fetch(status);
10022     except
10023     on e: Exception do FbException.catchException(status, e);
10024     end
10025     end;
10026    
10027     var
10028     IExternalResultSetImpl_vTable: ExternalResultSetVTable;
10029    
10030     constructor IExternalResultSetImpl.create;
10031     begin
10032     vTable := IExternalResultSetImpl_vTable;
10033     end;
10034    
10035     procedure IExternalFunctionImpl_disposeDispatcher(this: IExternalFunction); cdecl;
10036     begin
10037     try
10038     IExternalFunctionImpl(this).dispose();
10039     except
10040     on e: Exception do FbException.catchException(nil, e);
10041     end
10042     end;
10043    
10044     procedure IExternalFunctionImpl_getCharSetDispatcher(this: IExternalFunction; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
10045     begin
10046     try
10047     IExternalFunctionImpl(this).getCharSet(status, context, name, nameSize);
10048     except
10049     on e: Exception do FbException.catchException(status, e);
10050     end
10051     end;
10052    
10053     procedure IExternalFunctionImpl_executeDispatcher(this: IExternalFunction; status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer); cdecl;
10054     begin
10055     try
10056     IExternalFunctionImpl(this).execute(status, context, inMsg, outMsg);
10057     except
10058     on e: Exception do FbException.catchException(status, e);
10059     end
10060     end;
10061    
10062     var
10063     IExternalFunctionImpl_vTable: ExternalFunctionVTable;
10064    
10065     constructor IExternalFunctionImpl.create;
10066     begin
10067     vTable := IExternalFunctionImpl_vTable;
10068     end;
10069    
10070     procedure IExternalProcedureImpl_disposeDispatcher(this: IExternalProcedure); cdecl;
10071     begin
10072     try
10073     IExternalProcedureImpl(this).dispose();
10074     except
10075     on e: Exception do FbException.catchException(nil, e);
10076     end
10077     end;
10078    
10079     procedure IExternalProcedureImpl_getCharSetDispatcher(this: IExternalProcedure; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
10080     begin
10081     try
10082     IExternalProcedureImpl(this).getCharSet(status, context, name, nameSize);
10083     except
10084     on e: Exception do FbException.catchException(status, e);
10085     end
10086     end;
10087    
10088     function IExternalProcedureImpl_openDispatcher(this: IExternalProcedure; status: IStatus; context: IExternalContext; inMsg: Pointer; outMsg: Pointer): IExternalResultSet; cdecl;
10089     begin
10090     try
10091     Result := IExternalProcedureImpl(this).open(status, context, inMsg, outMsg);
10092     except
10093     on e: Exception do FbException.catchException(status, e);
10094     end
10095     end;
10096    
10097     var
10098     IExternalProcedureImpl_vTable: ExternalProcedureVTable;
10099    
10100     constructor IExternalProcedureImpl.create;
10101     begin
10102     vTable := IExternalProcedureImpl_vTable;
10103     end;
10104    
10105     procedure IExternalTriggerImpl_disposeDispatcher(this: IExternalTrigger); cdecl;
10106     begin
10107     try
10108     IExternalTriggerImpl(this).dispose();
10109     except
10110     on e: Exception do FbException.catchException(nil, e);
10111     end
10112     end;
10113    
10114     procedure IExternalTriggerImpl_getCharSetDispatcher(this: IExternalTrigger; status: IStatus; context: IExternalContext; name: PAnsiChar; nameSize: Cardinal); cdecl;
10115     begin
10116     try
10117     IExternalTriggerImpl(this).getCharSet(status, context, name, nameSize);
10118     except
10119     on e: Exception do FbException.catchException(status, e);
10120     end
10121     end;
10122    
10123     procedure IExternalTriggerImpl_executeDispatcher(this: IExternalTrigger; status: IStatus; context: IExternalContext; action: Cardinal; oldMsg: Pointer; newMsg: Pointer); cdecl;
10124     begin
10125     try
10126     IExternalTriggerImpl(this).execute(status, context, action, oldMsg, newMsg);
10127     except
10128     on e: Exception do FbException.catchException(status, e);
10129     end
10130     end;
10131    
10132     var
10133     IExternalTriggerImpl_vTable: ExternalTriggerVTable;
10134    
10135     constructor IExternalTriggerImpl.create;
10136     begin
10137     vTable := IExternalTriggerImpl_vTable;
10138     end;
10139    
10140     function IRoutineMetadataImpl_getPackageDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10141     begin
10142     try
10143     Result := IRoutineMetadataImpl(this).getPackage(status);
10144     except
10145     on e: Exception do FbException.catchException(status, e);
10146     end
10147     end;
10148    
10149     function IRoutineMetadataImpl_getNameDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10150     begin
10151     try
10152     Result := IRoutineMetadataImpl(this).getName(status);
10153     except
10154     on e: Exception do FbException.catchException(status, e);
10155     end
10156     end;
10157    
10158     function IRoutineMetadataImpl_getEntryPointDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10159     begin
10160     try
10161     Result := IRoutineMetadataImpl(this).getEntryPoint(status);
10162     except
10163     on e: Exception do FbException.catchException(status, e);
10164     end
10165     end;
10166    
10167     function IRoutineMetadataImpl_getBodyDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10168     begin
10169     try
10170     Result := IRoutineMetadataImpl(this).getBody(status);
10171     except
10172     on e: Exception do FbException.catchException(status, e);
10173     end
10174     end;
10175    
10176     function IRoutineMetadataImpl_getInputMetadataDispatcher(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
10177     begin
10178     try
10179     Result := IRoutineMetadataImpl(this).getInputMetadata(status);
10180     except
10181     on e: Exception do FbException.catchException(status, e);
10182     end
10183     end;
10184    
10185     function IRoutineMetadataImpl_getOutputMetadataDispatcher(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
10186     begin
10187     try
10188     Result := IRoutineMetadataImpl(this).getOutputMetadata(status);
10189     except
10190     on e: Exception do FbException.catchException(status, e);
10191     end
10192     end;
10193    
10194     function IRoutineMetadataImpl_getTriggerMetadataDispatcher(this: IRoutineMetadata; status: IStatus): IMessageMetadata; cdecl;
10195     begin
10196     try
10197     Result := IRoutineMetadataImpl(this).getTriggerMetadata(status);
10198     except
10199     on e: Exception do FbException.catchException(status, e);
10200     end
10201     end;
10202    
10203     function IRoutineMetadataImpl_getTriggerTableDispatcher(this: IRoutineMetadata; status: IStatus): PAnsiChar; cdecl;
10204     begin
10205     try
10206     Result := IRoutineMetadataImpl(this).getTriggerTable(status);
10207     except
10208     on e: Exception do FbException.catchException(status, e);
10209     end
10210     end;
10211    
10212     function IRoutineMetadataImpl_getTriggerTypeDispatcher(this: IRoutineMetadata; status: IStatus): Cardinal; cdecl;
10213     begin
10214     try
10215     Result := IRoutineMetadataImpl(this).getTriggerType(status);
10216     except
10217     on e: Exception do FbException.catchException(status, e);
10218     end
10219     end;
10220    
10221     var
10222     IRoutineMetadataImpl_vTable: RoutineMetadataVTable;
10223    
10224     constructor IRoutineMetadataImpl.create;
10225     begin
10226     vTable := IRoutineMetadataImpl_vTable;
10227     end;
10228    
10229     procedure IExternalEngineImpl_addRefDispatcher(this: IExternalEngine); cdecl;
10230     begin
10231     try
10232     IExternalEngineImpl(this).addRef();
10233     except
10234     on e: Exception do FbException.catchException(nil, e);
10235     end
10236     end;
10237    
10238     function IExternalEngineImpl_releaseDispatcher(this: IExternalEngine): Integer; cdecl;
10239     begin
10240     try
10241     Result := IExternalEngineImpl(this).release();
10242     except
10243     on e: Exception do FbException.catchException(nil, e);
10244     end
10245     end;
10246    
10247     procedure IExternalEngineImpl_setOwnerDispatcher(this: IExternalEngine; r: IReferenceCounted); cdecl;
10248     begin
10249     try
10250     IExternalEngineImpl(this).setOwner(r);
10251     except
10252     on e: Exception do FbException.catchException(nil, e);
10253     end
10254     end;
10255    
10256     function IExternalEngineImpl_getOwnerDispatcher(this: IExternalEngine): IReferenceCounted; cdecl;
10257     begin
10258     try
10259     Result := IExternalEngineImpl(this).getOwner();
10260     except
10261     on e: Exception do FbException.catchException(nil, e);
10262     end
10263     end;
10264    
10265     procedure IExternalEngineImpl_openDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext; charSet: PAnsiChar; charSetSize: Cardinal); cdecl;
10266     begin
10267     try
10268     IExternalEngineImpl(this).open(status, context, charSet, charSetSize);
10269     except
10270     on e: Exception do FbException.catchException(status, e);
10271     end
10272     end;
10273    
10274     procedure IExternalEngineImpl_openAttachmentDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext); cdecl;
10275     begin
10276     try
10277     IExternalEngineImpl(this).openAttachment(status, context);
10278     except
10279     on e: Exception do FbException.catchException(status, e);
10280     end
10281     end;
10282    
10283     procedure IExternalEngineImpl_closeAttachmentDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext); cdecl;
10284     begin
10285     try
10286     IExternalEngineImpl(this).closeAttachment(status, context);
10287     except
10288     on e: Exception do FbException.catchException(status, e);
10289     end
10290     end;
10291    
10292     function IExternalEngineImpl_makeFunctionDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalFunction; cdecl;
10293     begin
10294     try
10295     Result := IExternalEngineImpl(this).makeFunction(status, context, metadata, inBuilder, outBuilder);
10296     except
10297     on e: Exception do FbException.catchException(status, e);
10298     end
10299     end;
10300    
10301     function IExternalEngineImpl_makeProcedureDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder): IExternalProcedure; cdecl;
10302     begin
10303     try
10304     Result := IExternalEngineImpl(this).makeProcedure(status, context, metadata, inBuilder, outBuilder);
10305     except
10306     on e: Exception do FbException.catchException(status, e);
10307     end
10308     end;
10309    
10310     function IExternalEngineImpl_makeTriggerDispatcher(this: IExternalEngine; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder): IExternalTrigger; cdecl;
10311     begin
10312     try
10313     Result := IExternalEngineImpl(this).makeTrigger(status, context, metadata, fieldsBuilder);
10314     except
10315     on e: Exception do FbException.catchException(status, e);
10316     end
10317     end;
10318    
10319     var
10320     IExternalEngineImpl_vTable: ExternalEngineVTable;
10321    
10322     constructor IExternalEngineImpl.create;
10323     begin
10324     vTable := IExternalEngineImpl_vTable;
10325     end;
10326    
10327     procedure ITimerImpl_addRefDispatcher(this: ITimer); cdecl;
10328     begin
10329     try
10330     ITimerImpl(this).addRef();
10331     except
10332     on e: Exception do FbException.catchException(nil, e);
10333     end
10334     end;
10335    
10336     function ITimerImpl_releaseDispatcher(this: ITimer): Integer; cdecl;
10337     begin
10338     try
10339     Result := ITimerImpl(this).release();
10340     except
10341     on e: Exception do FbException.catchException(nil, e);
10342     end
10343     end;
10344    
10345     procedure ITimerImpl_handlerDispatcher(this: ITimer); cdecl;
10346     begin
10347     try
10348     ITimerImpl(this).handler();
10349     except
10350     on e: Exception do FbException.catchException(nil, e);
10351     end
10352     end;
10353    
10354     var
10355     ITimerImpl_vTable: TimerVTable;
10356    
10357     constructor ITimerImpl.create;
10358     begin
10359     vTable := ITimerImpl_vTable;
10360     end;
10361    
10362     procedure ITimerControlImpl_startDispatcher(this: ITimerControl; status: IStatus; timer: ITimer; microSeconds: QWord); cdecl;
10363     begin
10364     try
10365     ITimerControlImpl(this).start(status, timer, microSeconds);
10366     except
10367     on e: Exception do FbException.catchException(status, e);
10368     end
10369     end;
10370    
10371     procedure ITimerControlImpl_stopDispatcher(this: ITimerControl; status: IStatus; timer: ITimer); cdecl;
10372     begin
10373     try
10374     ITimerControlImpl(this).stop(status, timer);
10375     except
10376     on e: Exception do FbException.catchException(status, e);
10377     end
10378     end;
10379    
10380     var
10381     ITimerControlImpl_vTable: TimerControlVTable;
10382    
10383     constructor ITimerControlImpl.create;
10384     begin
10385     vTable := ITimerControlImpl_vTable;
10386     end;
10387    
10388     procedure IVersionCallbackImpl_callbackDispatcher(this: IVersionCallback; status: IStatus; text: PAnsiChar); cdecl;
10389     begin
10390     try
10391     IVersionCallbackImpl(this).callback(status, text);
10392     except
10393     on e: Exception do FbException.catchException(status, e);
10394     end
10395     end;
10396    
10397     var
10398     IVersionCallbackImpl_vTable: VersionCallbackVTable;
10399    
10400     constructor IVersionCallbackImpl.create;
10401     begin
10402     vTable := IVersionCallbackImpl_vTable;
10403     end;
10404    
10405     procedure IUtilImpl_getFbVersionDispatcher(this: IUtil; status: IStatus; att: IAttachment; callback: IVersionCallback); cdecl;
10406     begin
10407     try
10408     IUtilImpl(this).getFbVersion(status, att, callback);
10409     except
10410     on e: Exception do FbException.catchException(status, e);
10411     end
10412     end;
10413    
10414     procedure IUtilImpl_loadBlobDispatcher(this: IUtil; status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
10415     begin
10416     try
10417     IUtilImpl(this).loadBlob(status, blobId, att, tra, file_, txt);
10418     except
10419     on e: Exception do FbException.catchException(status, e);
10420     end
10421     end;
10422    
10423     procedure IUtilImpl_dumpBlobDispatcher(this: IUtil; status: IStatus; blobId: PISC_QUAD; att: IAttachment; tra: ITransaction; file_: PAnsiChar; txt: Boolean); cdecl;
10424     begin
10425     try
10426     IUtilImpl(this).dumpBlob(status, blobId, att, tra, file_, txt);
10427     except
10428     on e: Exception do FbException.catchException(status, e);
10429     end
10430     end;
10431    
10432     procedure IUtilImpl_getPerfCountersDispatcher(this: IUtil; status: IStatus; att: IAttachment; countersSet: PAnsiChar; counters: Int64Ptr); cdecl;
10433     begin
10434     try
10435     IUtilImpl(this).getPerfCounters(status, att, countersSet, counters);
10436     except
10437     on e: Exception do FbException.catchException(status, e);
10438     end
10439     end;
10440    
10441     function IUtilImpl_executeCreateDatabaseDispatcher(this: IUtil; status: IStatus; stmtLength: Cardinal; creatDBstatement: PAnsiChar; dialect: Cardinal; stmtIsCreateDb: BooleanPtr): IAttachment; cdecl;
10442     begin
10443     try
10444     Result := IUtilImpl(this).executeCreateDatabase(status, stmtLength, creatDBstatement, dialect, stmtIsCreateDb);
10445     except
10446     on e: Exception do FbException.catchException(status, e);
10447     end
10448     end;
10449    
10450     procedure IUtilImpl_decodeDateDispatcher(this: IUtil; date: ISC_DATE; year: CardinalPtr; month: CardinalPtr; day: CardinalPtr); cdecl;
10451     begin
10452     try
10453     IUtilImpl(this).decodeDate(date, year, month, day);
10454     except
10455     on e: Exception do FbException.catchException(nil, e);
10456     end
10457     end;
10458    
10459     procedure IUtilImpl_decodeTimeDispatcher(this: IUtil; time: ISC_TIME; hours: CardinalPtr; minutes: CardinalPtr; seconds: CardinalPtr; fractions: CardinalPtr); cdecl;
10460     begin
10461     try
10462     IUtilImpl(this).decodeTime(time, hours, minutes, seconds, fractions);
10463     except
10464     on e: Exception do FbException.catchException(nil, e);
10465     end
10466     end;
10467    
10468     function IUtilImpl_encodeDateDispatcher(this: IUtil; year: Cardinal; month: Cardinal; day: Cardinal): ISC_DATE; cdecl;
10469     begin
10470     try
10471     Result := IUtilImpl(this).encodeDate(year, month, day);
10472     except
10473     on e: Exception do FbException.catchException(nil, e);
10474     end
10475     end;
10476    
10477     function IUtilImpl_encodeTimeDispatcher(this: IUtil; hours: Cardinal; minutes: Cardinal; seconds: Cardinal; fractions: Cardinal): ISC_TIME; cdecl;
10478     begin
10479     try
10480     Result := IUtilImpl(this).encodeTime(hours, minutes, seconds, fractions);
10481     except
10482     on e: Exception do FbException.catchException(nil, e);
10483     end
10484     end;
10485    
10486     function IUtilImpl_formatStatusDispatcher(this: IUtil; buffer: PAnsiChar; bufferSize: Cardinal; status: IStatus): Cardinal; cdecl;
10487     begin
10488     try
10489     Result := IUtilImpl(this).formatStatus(buffer, bufferSize, status);
10490     except
10491     on e: Exception do FbException.catchException(nil, e);
10492     end
10493     end;
10494    
10495     function IUtilImpl_getClientVersionDispatcher(this: IUtil): Cardinal; cdecl;
10496     begin
10497     try
10498     Result := IUtilImpl(this).getClientVersion();
10499     except
10500     on e: Exception do FbException.catchException(nil, e);
10501     end
10502     end;
10503    
10504     function IUtilImpl_getXpbBuilderDispatcher(this: IUtil; status: IStatus; kind: Cardinal; buf: BytePtr; len: Cardinal): IXpbBuilder; cdecl;
10505     begin
10506     try
10507     Result := IUtilImpl(this).getXpbBuilder(status, kind, buf, len);
10508     except
10509     on e: Exception do FbException.catchException(status, e);
10510     end
10511     end;
10512    
10513     function IUtilImpl_setOffsetsDispatcher(this: IUtil; status: IStatus; metadata: IMessageMetadata; callback: IOffsetsCallback): Cardinal; cdecl;
10514     begin
10515     try
10516     Result := IUtilImpl(this).setOffsets(status, metadata, callback);
10517     except
10518     on e: Exception do FbException.catchException(status, e);
10519     end
10520     end;
10521    
10522     var
10523     IUtilImpl_vTable: UtilVTable;
10524    
10525     constructor IUtilImpl.create;
10526     begin
10527     vTable := IUtilImpl_vTable;
10528     end;
10529    
10530     procedure IOffsetsCallbackImpl_setOffsetDispatcher(this: IOffsetsCallback; status: IStatus; index: Cardinal; offset: Cardinal; nullOffset: Cardinal); cdecl;
10531     begin
10532     try
10533     IOffsetsCallbackImpl(this).setOffset(status, index, offset, nullOffset);
10534     except
10535     on e: Exception do FbException.catchException(status, e);
10536     end
10537     end;
10538    
10539     var
10540     IOffsetsCallbackImpl_vTable: OffsetsCallbackVTable;
10541    
10542     constructor IOffsetsCallbackImpl.create;
10543     begin
10544     vTable := IOffsetsCallbackImpl_vTable;
10545     end;
10546    
10547     procedure IXpbBuilderImpl_disposeDispatcher(this: IXpbBuilder); cdecl;
10548     begin
10549     try
10550     IXpbBuilderImpl(this).dispose();
10551     except
10552     on e: Exception do FbException.catchException(nil, e);
10553     end
10554     end;
10555    
10556     procedure IXpbBuilderImpl_clearDispatcher(this: IXpbBuilder; status: IStatus); cdecl;
10557     begin
10558     try
10559     IXpbBuilderImpl(this).clear(status);
10560     except
10561     on e: Exception do FbException.catchException(status, e);
10562     end
10563     end;
10564    
10565     procedure IXpbBuilderImpl_removeCurrentDispatcher(this: IXpbBuilder; status: IStatus); cdecl;
10566     begin
10567     try
10568     IXpbBuilderImpl(this).removeCurrent(status);
10569     except
10570     on e: Exception do FbException.catchException(status, e);
10571     end
10572     end;
10573    
10574     procedure IXpbBuilderImpl_insertIntDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte; value: Integer); cdecl;
10575     begin
10576     try
10577     IXpbBuilderImpl(this).insertInt(status, tag, value);
10578     except
10579     on e: Exception do FbException.catchException(status, e);
10580     end
10581     end;
10582    
10583     procedure IXpbBuilderImpl_insertBigIntDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte; value: Int64); cdecl;
10584     begin
10585     try
10586     IXpbBuilderImpl(this).insertBigInt(status, tag, value);
10587     except
10588     on e: Exception do FbException.catchException(status, e);
10589     end
10590     end;
10591    
10592     procedure IXpbBuilderImpl_insertBytesDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte; bytes: Pointer; length: Cardinal); cdecl;
10593     begin
10594     try
10595     IXpbBuilderImpl(this).insertBytes(status, tag, bytes, length);
10596     except
10597     on e: Exception do FbException.catchException(status, e);
10598     end
10599     end;
10600    
10601     procedure IXpbBuilderImpl_insertStringDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte; str: PAnsiChar); cdecl;
10602     begin
10603     try
10604     IXpbBuilderImpl(this).insertString(status, tag, str);
10605     except
10606     on e: Exception do FbException.catchException(status, e);
10607     end
10608     end;
10609    
10610     procedure IXpbBuilderImpl_insertTagDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte); cdecl;
10611     begin
10612     try
10613     IXpbBuilderImpl(this).insertTag(status, tag);
10614     except
10615     on e: Exception do FbException.catchException(status, e);
10616     end
10617     end;
10618    
10619     function IXpbBuilderImpl_isEofDispatcher(this: IXpbBuilder; status: IStatus): Boolean; cdecl;
10620     begin
10621     try
10622     Result := IXpbBuilderImpl(this).isEof(status);
10623     except
10624     on e: Exception do FbException.catchException(status, e);
10625     end
10626     end;
10627    
10628     procedure IXpbBuilderImpl_moveNextDispatcher(this: IXpbBuilder; status: IStatus); cdecl;
10629     begin
10630     try
10631     IXpbBuilderImpl(this).moveNext(status);
10632     except
10633     on e: Exception do FbException.catchException(status, e);
10634     end
10635     end;
10636    
10637     procedure IXpbBuilderImpl_rewindDispatcher(this: IXpbBuilder; status: IStatus); cdecl;
10638     begin
10639     try
10640     IXpbBuilderImpl(this).rewind(status);
10641     except
10642     on e: Exception do FbException.catchException(status, e);
10643     end
10644     end;
10645    
10646     function IXpbBuilderImpl_findFirstDispatcher(this: IXpbBuilder; status: IStatus; tag: Byte): Boolean; cdecl;
10647     begin
10648     try
10649     Result := IXpbBuilderImpl(this).findFirst(status, tag);
10650     except
10651     on e: Exception do FbException.catchException(status, e);
10652     end
10653     end;
10654    
10655     function IXpbBuilderImpl_findNextDispatcher(this: IXpbBuilder; status: IStatus): Boolean; cdecl;
10656     begin
10657     try
10658     Result := IXpbBuilderImpl(this).findNext(status);
10659     except
10660     on e: Exception do FbException.catchException(status, e);
10661     end
10662     end;
10663    
10664     function IXpbBuilderImpl_getTagDispatcher(this: IXpbBuilder; status: IStatus): Byte; cdecl;
10665     begin
10666     try
10667     Result := IXpbBuilderImpl(this).getTag(status);
10668     except
10669     on e: Exception do FbException.catchException(status, e);
10670     end
10671     end;
10672    
10673     function IXpbBuilderImpl_getLengthDispatcher(this: IXpbBuilder; status: IStatus): Cardinal; cdecl;
10674     begin
10675     try
10676     Result := IXpbBuilderImpl(this).getLength(status);
10677     except
10678     on e: Exception do FbException.catchException(status, e);
10679     end
10680     end;
10681    
10682     function IXpbBuilderImpl_getIntDispatcher(this: IXpbBuilder; status: IStatus): Integer; cdecl;
10683     begin
10684     try
10685     Result := IXpbBuilderImpl(this).getInt(status);
10686     except
10687     on e: Exception do FbException.catchException(status, e);
10688     end
10689     end;
10690    
10691     function IXpbBuilderImpl_getBigIntDispatcher(this: IXpbBuilder; status: IStatus): Int64; cdecl;
10692     begin
10693     try
10694     Result := IXpbBuilderImpl(this).getBigInt(status);
10695     except
10696     on e: Exception do FbException.catchException(status, e);
10697     end
10698     end;
10699    
10700     function IXpbBuilderImpl_getStringDispatcher(this: IXpbBuilder; status: IStatus): PAnsiChar; cdecl;
10701     begin
10702     try
10703     Result := IXpbBuilderImpl(this).getString(status);
10704     except
10705     on e: Exception do FbException.catchException(status, e);
10706     end
10707     end;
10708    
10709     function IXpbBuilderImpl_getBytesDispatcher(this: IXpbBuilder; status: IStatus): BytePtr; cdecl;
10710     begin
10711     try
10712     Result := IXpbBuilderImpl(this).getBytes(status);
10713     except
10714     on e: Exception do FbException.catchException(status, e);
10715     end
10716     end;
10717    
10718     function IXpbBuilderImpl_getBufferLengthDispatcher(this: IXpbBuilder; status: IStatus): Cardinal; cdecl;
10719     begin
10720     try
10721     Result := IXpbBuilderImpl(this).getBufferLength(status);
10722     except
10723     on e: Exception do FbException.catchException(status, e);
10724     end
10725     end;
10726    
10727     function IXpbBuilderImpl_getBufferDispatcher(this: IXpbBuilder; status: IStatus): BytePtr; cdecl;
10728     begin
10729     try
10730     Result := IXpbBuilderImpl(this).getBuffer(status);
10731     except
10732     on e: Exception do FbException.catchException(status, e);
10733     end
10734     end;
10735    
10736     var
10737     IXpbBuilderImpl_vTable: XpbBuilderVTable;
10738    
10739     constructor IXpbBuilderImpl.create;
10740     begin
10741     vTable := IXpbBuilderImpl_vTable;
10742     end;
10743    
10744     function ITraceConnectionImpl_getKindDispatcher(this: ITraceConnection): Cardinal; cdecl;
10745     begin
10746     try
10747     Result := ITraceConnectionImpl(this).getKind();
10748     except
10749     on e: Exception do FbException.catchException(nil, e);
10750     end
10751     end;
10752    
10753     function ITraceConnectionImpl_getProcessIDDispatcher(this: ITraceConnection): Integer; cdecl;
10754     begin
10755     try
10756     Result := ITraceConnectionImpl(this).getProcessID();
10757     except
10758     on e: Exception do FbException.catchException(nil, e);
10759     end
10760     end;
10761    
10762     function ITraceConnectionImpl_getUserNameDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10763     begin
10764     try
10765     Result := ITraceConnectionImpl(this).getUserName();
10766     except
10767     on e: Exception do FbException.catchException(nil, e);
10768     end
10769     end;
10770    
10771     function ITraceConnectionImpl_getRoleNameDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10772     begin
10773     try
10774     Result := ITraceConnectionImpl(this).getRoleName();
10775     except
10776     on e: Exception do FbException.catchException(nil, e);
10777     end
10778     end;
10779    
10780     function ITraceConnectionImpl_getCharSetDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10781     begin
10782     try
10783     Result := ITraceConnectionImpl(this).getCharSet();
10784     except
10785     on e: Exception do FbException.catchException(nil, e);
10786     end
10787     end;
10788    
10789     function ITraceConnectionImpl_getRemoteProtocolDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10790     begin
10791     try
10792     Result := ITraceConnectionImpl(this).getRemoteProtocol();
10793     except
10794     on e: Exception do FbException.catchException(nil, e);
10795     end
10796     end;
10797    
10798     function ITraceConnectionImpl_getRemoteAddressDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10799     begin
10800     try
10801     Result := ITraceConnectionImpl(this).getRemoteAddress();
10802     except
10803     on e: Exception do FbException.catchException(nil, e);
10804     end
10805     end;
10806    
10807     function ITraceConnectionImpl_getRemoteProcessIDDispatcher(this: ITraceConnection): Integer; cdecl;
10808     begin
10809     try
10810     Result := ITraceConnectionImpl(this).getRemoteProcessID();
10811     except
10812     on e: Exception do FbException.catchException(nil, e);
10813     end
10814     end;
10815    
10816     function ITraceConnectionImpl_getRemoteProcessNameDispatcher(this: ITraceConnection): PAnsiChar; cdecl;
10817     begin
10818     try
10819     Result := ITraceConnectionImpl(this).getRemoteProcessName();
10820     except
10821     on e: Exception do FbException.catchException(nil, e);
10822     end
10823     end;
10824    
10825     var
10826     ITraceConnectionImpl_vTable: TraceConnectionVTable;
10827    
10828     constructor ITraceConnectionImpl.create;
10829     begin
10830     vTable := ITraceConnectionImpl_vTable;
10831     end;
10832    
10833     function ITraceDatabaseConnectionImpl_getKindDispatcher(this: ITraceDatabaseConnection): Cardinal; cdecl;
10834     begin
10835     try
10836     Result := ITraceDatabaseConnectionImpl(this).getKind();
10837     except
10838     on e: Exception do FbException.catchException(nil, e);
10839     end
10840     end;
10841    
10842     function ITraceDatabaseConnectionImpl_getProcessIDDispatcher(this: ITraceDatabaseConnection): Integer; cdecl;
10843     begin
10844     try
10845     Result := ITraceDatabaseConnectionImpl(this).getProcessID();
10846     except
10847     on e: Exception do FbException.catchException(nil, e);
10848     end
10849     end;
10850    
10851     function ITraceDatabaseConnectionImpl_getUserNameDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
10852     begin
10853     try
10854     Result := ITraceDatabaseConnectionImpl(this).getUserName();
10855     except
10856     on e: Exception do FbException.catchException(nil, e);
10857     end
10858     end;
10859    
10860     function ITraceDatabaseConnectionImpl_getRoleNameDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
10861     begin
10862     try
10863     Result := ITraceDatabaseConnectionImpl(this).getRoleName();
10864     except
10865     on e: Exception do FbException.catchException(nil, e);
10866     end
10867     end;
10868    
10869     function ITraceDatabaseConnectionImpl_getCharSetDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
10870     begin
10871     try
10872     Result := ITraceDatabaseConnectionImpl(this).getCharSet();
10873     except
10874     on e: Exception do FbException.catchException(nil, e);
10875     end
10876     end;
10877    
10878     function ITraceDatabaseConnectionImpl_getRemoteProtocolDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
10879     begin
10880     try
10881     Result := ITraceDatabaseConnectionImpl(this).getRemoteProtocol();
10882     except
10883     on e: Exception do FbException.catchException(nil, e);
10884     end
10885     end;
10886    
10887     function ITraceDatabaseConnectionImpl_getRemoteAddressDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
10888     begin
10889     try
10890     Result := ITraceDatabaseConnectionImpl(this).getRemoteAddress();
10891     except
10892     on e: Exception do FbException.catchException(nil, e);
10893     end
10894     end;
10895    
10896     function ITraceDatabaseConnectionImpl_getRemoteProcessIDDispatcher(this: ITraceDatabaseConnection): Integer; cdecl;
10897     begin
10898     try
10899     Result := ITraceDatabaseConnectionImpl(this).getRemoteProcessID();
10900     except
10901     on e: Exception do FbException.catchException(nil, e);
10902     end
10903     end;
10904    
10905     function ITraceDatabaseConnectionImpl_getRemoteProcessNameDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
10906     begin
10907     try
10908     Result := ITraceDatabaseConnectionImpl(this).getRemoteProcessName();
10909     except
10910     on e: Exception do FbException.catchException(nil, e);
10911     end
10912     end;
10913    
10914     function ITraceDatabaseConnectionImpl_getConnectionIDDispatcher(this: ITraceDatabaseConnection): Int64; cdecl;
10915     begin
10916     try
10917     Result := ITraceDatabaseConnectionImpl(this).getConnectionID();
10918     except
10919     on e: Exception do FbException.catchException(nil, e);
10920     end
10921     end;
10922    
10923     function ITraceDatabaseConnectionImpl_getDatabaseNameDispatcher(this: ITraceDatabaseConnection): PAnsiChar; cdecl;
10924     begin
10925     try
10926     Result := ITraceDatabaseConnectionImpl(this).getDatabaseName();
10927     except
10928     on e: Exception do FbException.catchException(nil, e);
10929     end
10930     end;
10931    
10932     var
10933     ITraceDatabaseConnectionImpl_vTable: TraceDatabaseConnectionVTable;
10934    
10935     constructor ITraceDatabaseConnectionImpl.create;
10936     begin
10937     vTable := ITraceDatabaseConnectionImpl_vTable;
10938     end;
10939    
10940     function ITraceTransactionImpl_getTransactionIDDispatcher(this: ITraceTransaction): Int64; cdecl;
10941     begin
10942     try
10943     Result := ITraceTransactionImpl(this).getTransactionID();
10944     except
10945     on e: Exception do FbException.catchException(nil, e);
10946     end
10947     end;
10948    
10949     function ITraceTransactionImpl_getReadOnlyDispatcher(this: ITraceTransaction): Boolean; cdecl;
10950     begin
10951     try
10952     Result := ITraceTransactionImpl(this).getReadOnly();
10953     except
10954     on e: Exception do FbException.catchException(nil, e);
10955     end
10956     end;
10957    
10958     function ITraceTransactionImpl_getWaitDispatcher(this: ITraceTransaction): Integer; cdecl;
10959     begin
10960     try
10961     Result := ITraceTransactionImpl(this).getWait();
10962     except
10963     on e: Exception do FbException.catchException(nil, e);
10964     end
10965     end;
10966    
10967     function ITraceTransactionImpl_getIsolationDispatcher(this: ITraceTransaction): Cardinal; cdecl;
10968     begin
10969     try
10970     Result := ITraceTransactionImpl(this).getIsolation();
10971     except
10972     on e: Exception do FbException.catchException(nil, e);
10973     end
10974     end;
10975    
10976     function ITraceTransactionImpl_getPerfDispatcher(this: ITraceTransaction): PerformanceInfoPtr; cdecl;
10977     begin
10978     try
10979     Result := ITraceTransactionImpl(this).getPerf();
10980     except
10981     on e: Exception do FbException.catchException(nil, e);
10982     end
10983     end;
10984    
10985     var
10986     ITraceTransactionImpl_vTable: TraceTransactionVTable;
10987    
10988     constructor ITraceTransactionImpl.create;
10989     begin
10990     vTable := ITraceTransactionImpl_vTable;
10991     end;
10992    
10993     function ITraceParamsImpl_getCountDispatcher(this: ITraceParams): Cardinal; cdecl;
10994     begin
10995     try
10996     Result := ITraceParamsImpl(this).getCount();
10997     except
10998     on e: Exception do FbException.catchException(nil, e);
10999     end
11000     end;
11001    
11002     function ITraceParamsImpl_getParamDispatcher(this: ITraceParams; idx: Cardinal): dscPtr; cdecl;
11003     begin
11004     try
11005     Result := ITraceParamsImpl(this).getParam(idx);
11006     except
11007     on e: Exception do FbException.catchException(nil, e);
11008     end
11009     end;
11010    
11011     var
11012     ITraceParamsImpl_vTable: TraceParamsVTable;
11013    
11014     constructor ITraceParamsImpl.create;
11015     begin
11016     vTable := ITraceParamsImpl_vTable;
11017     end;
11018    
11019     function ITraceStatementImpl_getStmtIDDispatcher(this: ITraceStatement): Int64; cdecl;
11020     begin
11021     try
11022     Result := ITraceStatementImpl(this).getStmtID();
11023     except
11024     on e: Exception do FbException.catchException(nil, e);
11025     end
11026     end;
11027    
11028     function ITraceStatementImpl_getPerfDispatcher(this: ITraceStatement): PerformanceInfoPtr; cdecl;
11029     begin
11030     try
11031     Result := ITraceStatementImpl(this).getPerf();
11032     except
11033     on e: Exception do FbException.catchException(nil, e);
11034     end
11035     end;
11036    
11037     var
11038     ITraceStatementImpl_vTable: TraceStatementVTable;
11039    
11040     constructor ITraceStatementImpl.create;
11041     begin
11042     vTable := ITraceStatementImpl_vTable;
11043     end;
11044    
11045     function ITraceSQLStatementImpl_getStmtIDDispatcher(this: ITraceSQLStatement): Int64; cdecl;
11046     begin
11047     try
11048     Result := ITraceSQLStatementImpl(this).getStmtID();
11049     except
11050     on e: Exception do FbException.catchException(nil, e);
11051     end
11052     end;
11053    
11054     function ITraceSQLStatementImpl_getPerfDispatcher(this: ITraceSQLStatement): PerformanceInfoPtr; cdecl;
11055     begin
11056     try
11057     Result := ITraceSQLStatementImpl(this).getPerf();
11058     except
11059     on e: Exception do FbException.catchException(nil, e);
11060     end
11061     end;
11062    
11063     function ITraceSQLStatementImpl_getTextDispatcher(this: ITraceSQLStatement): PAnsiChar; cdecl;
11064     begin
11065     try
11066     Result := ITraceSQLStatementImpl(this).getText();
11067     except
11068     on e: Exception do FbException.catchException(nil, e);
11069     end
11070     end;
11071    
11072     function ITraceSQLStatementImpl_getPlanDispatcher(this: ITraceSQLStatement): PAnsiChar; cdecl;
11073     begin
11074     try
11075     Result := ITraceSQLStatementImpl(this).getPlan();
11076     except
11077     on e: Exception do FbException.catchException(nil, e);
11078     end
11079     end;
11080    
11081     function ITraceSQLStatementImpl_getInputsDispatcher(this: ITraceSQLStatement): ITraceParams; cdecl;
11082     begin
11083     try
11084     Result := ITraceSQLStatementImpl(this).getInputs();
11085     except
11086     on e: Exception do FbException.catchException(nil, e);
11087     end
11088     end;
11089    
11090     function ITraceSQLStatementImpl_getTextUTF8Dispatcher(this: ITraceSQLStatement): PAnsiChar; cdecl;
11091     begin
11092     try
11093     Result := ITraceSQLStatementImpl(this).getTextUTF8();
11094     except
11095     on e: Exception do FbException.catchException(nil, e);
11096     end
11097     end;
11098    
11099     function ITraceSQLStatementImpl_getExplainedPlanDispatcher(this: ITraceSQLStatement): PAnsiChar; cdecl;
11100     begin
11101     try
11102     Result := ITraceSQLStatementImpl(this).getExplainedPlan();
11103     except
11104     on e: Exception do FbException.catchException(nil, e);
11105     end
11106     end;
11107    
11108     var
11109     ITraceSQLStatementImpl_vTable: TraceSQLStatementVTable;
11110    
11111     constructor ITraceSQLStatementImpl.create;
11112     begin
11113     vTable := ITraceSQLStatementImpl_vTable;
11114     end;
11115    
11116     function ITraceBLRStatementImpl_getStmtIDDispatcher(this: ITraceBLRStatement): Int64; cdecl;
11117     begin
11118     try
11119     Result := ITraceBLRStatementImpl(this).getStmtID();
11120     except
11121     on e: Exception do FbException.catchException(nil, e);
11122     end
11123     end;
11124    
11125     function ITraceBLRStatementImpl_getPerfDispatcher(this: ITraceBLRStatement): PerformanceInfoPtr; cdecl;
11126     begin
11127     try
11128     Result := ITraceBLRStatementImpl(this).getPerf();
11129     except
11130     on e: Exception do FbException.catchException(nil, e);
11131     end
11132     end;
11133    
11134     function ITraceBLRStatementImpl_getDataDispatcher(this: ITraceBLRStatement): BytePtr; cdecl;
11135     begin
11136     try
11137     Result := ITraceBLRStatementImpl(this).getData();
11138     except
11139     on e: Exception do FbException.catchException(nil, e);
11140     end
11141     end;
11142    
11143     function ITraceBLRStatementImpl_getDataLengthDispatcher(this: ITraceBLRStatement): Cardinal; cdecl;
11144     begin
11145     try
11146     Result := ITraceBLRStatementImpl(this).getDataLength();
11147     except
11148     on e: Exception do FbException.catchException(nil, e);
11149     end
11150     end;
11151    
11152     function ITraceBLRStatementImpl_getTextDispatcher(this: ITraceBLRStatement): PAnsiChar; cdecl;
11153     begin
11154     try
11155     Result := ITraceBLRStatementImpl(this).getText();
11156     except
11157     on e: Exception do FbException.catchException(nil, e);
11158     end
11159     end;
11160    
11161     var
11162     ITraceBLRStatementImpl_vTable: TraceBLRStatementVTable;
11163    
11164     constructor ITraceBLRStatementImpl.create;
11165     begin
11166     vTable := ITraceBLRStatementImpl_vTable;
11167     end;
11168    
11169     function ITraceDYNRequestImpl_getDataDispatcher(this: ITraceDYNRequest): BytePtr; cdecl;
11170     begin
11171     try
11172     Result := ITraceDYNRequestImpl(this).getData();
11173     except
11174     on e: Exception do FbException.catchException(nil, e);
11175     end
11176     end;
11177    
11178     function ITraceDYNRequestImpl_getDataLengthDispatcher(this: ITraceDYNRequest): Cardinal; cdecl;
11179     begin
11180     try
11181     Result := ITraceDYNRequestImpl(this).getDataLength();
11182     except
11183     on e: Exception do FbException.catchException(nil, e);
11184     end
11185     end;
11186    
11187     function ITraceDYNRequestImpl_getTextDispatcher(this: ITraceDYNRequest): PAnsiChar; cdecl;
11188     begin
11189     try
11190     Result := ITraceDYNRequestImpl(this).getText();
11191     except
11192     on e: Exception do FbException.catchException(nil, e);
11193     end
11194     end;
11195    
11196     var
11197     ITraceDYNRequestImpl_vTable: TraceDYNRequestVTable;
11198    
11199     constructor ITraceDYNRequestImpl.create;
11200     begin
11201     vTable := ITraceDYNRequestImpl_vTable;
11202     end;
11203    
11204     function ITraceContextVariableImpl_getNameSpaceDispatcher(this: ITraceContextVariable): PAnsiChar; cdecl;
11205     begin
11206     try
11207     Result := ITraceContextVariableImpl(this).getNameSpace();
11208     except
11209     on e: Exception do FbException.catchException(nil, e);
11210     end
11211     end;
11212    
11213     function ITraceContextVariableImpl_getVarNameDispatcher(this: ITraceContextVariable): PAnsiChar; cdecl;
11214     begin
11215     try
11216     Result := ITraceContextVariableImpl(this).getVarName();
11217     except
11218     on e: Exception do FbException.catchException(nil, e);
11219     end
11220     end;
11221    
11222     function ITraceContextVariableImpl_getVarValueDispatcher(this: ITraceContextVariable): PAnsiChar; cdecl;
11223     begin
11224     try
11225     Result := ITraceContextVariableImpl(this).getVarValue();
11226     except
11227     on e: Exception do FbException.catchException(nil, e);
11228     end
11229     end;
11230    
11231     var
11232     ITraceContextVariableImpl_vTable: TraceContextVariableVTable;
11233    
11234     constructor ITraceContextVariableImpl.create;
11235     begin
11236     vTable := ITraceContextVariableImpl_vTable;
11237     end;
11238    
11239     function ITraceProcedureImpl_getProcNameDispatcher(this: ITraceProcedure): PAnsiChar; cdecl;
11240     begin
11241     try
11242     Result := ITraceProcedureImpl(this).getProcName();
11243     except
11244     on e: Exception do FbException.catchException(nil, e);
11245     end
11246     end;
11247    
11248     function ITraceProcedureImpl_getInputsDispatcher(this: ITraceProcedure): ITraceParams; cdecl;
11249     begin
11250     try
11251     Result := ITraceProcedureImpl(this).getInputs();
11252     except
11253     on e: Exception do FbException.catchException(nil, e);
11254     end
11255     end;
11256    
11257     function ITraceProcedureImpl_getPerfDispatcher(this: ITraceProcedure): PerformanceInfoPtr; cdecl;
11258     begin
11259     try
11260     Result := ITraceProcedureImpl(this).getPerf();
11261     except
11262     on e: Exception do FbException.catchException(nil, e);
11263     end
11264     end;
11265    
11266     var
11267     ITraceProcedureImpl_vTable: TraceProcedureVTable;
11268    
11269     constructor ITraceProcedureImpl.create;
11270     begin
11271     vTable := ITraceProcedureImpl_vTable;
11272     end;
11273    
11274     function ITraceFunctionImpl_getFuncNameDispatcher(this: ITraceFunction): PAnsiChar; cdecl;
11275     begin
11276     try
11277     Result := ITraceFunctionImpl(this).getFuncName();
11278     except
11279     on e: Exception do FbException.catchException(nil, e);
11280     end
11281     end;
11282    
11283     function ITraceFunctionImpl_getInputsDispatcher(this: ITraceFunction): ITraceParams; cdecl;
11284     begin
11285     try
11286     Result := ITraceFunctionImpl(this).getInputs();
11287     except
11288     on e: Exception do FbException.catchException(nil, e);
11289     end
11290     end;
11291    
11292     function ITraceFunctionImpl_getResultDispatcher(this: ITraceFunction): ITraceParams; cdecl;
11293     begin
11294     try
11295     Result := ITraceFunctionImpl(this).getResult();
11296     except
11297     on e: Exception do FbException.catchException(nil, e);
11298     end
11299     end;
11300    
11301     function ITraceFunctionImpl_getPerfDispatcher(this: ITraceFunction): PerformanceInfoPtr; cdecl;
11302     begin
11303     try
11304     Result := ITraceFunctionImpl(this).getPerf();
11305     except
11306     on e: Exception do FbException.catchException(nil, e);
11307     end
11308     end;
11309    
11310     var
11311     ITraceFunctionImpl_vTable: TraceFunctionVTable;
11312    
11313     constructor ITraceFunctionImpl.create;
11314     begin
11315     vTable := ITraceFunctionImpl_vTable;
11316     end;
11317    
11318     function ITraceTriggerImpl_getTriggerNameDispatcher(this: ITraceTrigger): PAnsiChar; cdecl;
11319     begin
11320     try
11321     Result := ITraceTriggerImpl(this).getTriggerName();
11322     except
11323     on e: Exception do FbException.catchException(nil, e);
11324     end
11325     end;
11326    
11327     function ITraceTriggerImpl_getRelationNameDispatcher(this: ITraceTrigger): PAnsiChar; cdecl;
11328     begin
11329     try
11330     Result := ITraceTriggerImpl(this).getRelationName();
11331     except
11332     on e: Exception do FbException.catchException(nil, e);
11333     end
11334     end;
11335    
11336     function ITraceTriggerImpl_getActionDispatcher(this: ITraceTrigger): Integer; cdecl;
11337     begin
11338     try
11339     Result := ITraceTriggerImpl(this).getAction();
11340     except
11341     on e: Exception do FbException.catchException(nil, e);
11342     end
11343     end;
11344    
11345     function ITraceTriggerImpl_getWhichDispatcher(this: ITraceTrigger): Integer; cdecl;
11346     begin
11347     try
11348     Result := ITraceTriggerImpl(this).getWhich();
11349     except
11350     on e: Exception do FbException.catchException(nil, e);
11351     end
11352     end;
11353    
11354     function ITraceTriggerImpl_getPerfDispatcher(this: ITraceTrigger): PerformanceInfoPtr; cdecl;
11355     begin
11356     try
11357     Result := ITraceTriggerImpl(this).getPerf();
11358     except
11359     on e: Exception do FbException.catchException(nil, e);
11360     end
11361     end;
11362    
11363     var
11364     ITraceTriggerImpl_vTable: TraceTriggerVTable;
11365    
11366     constructor ITraceTriggerImpl.create;
11367     begin
11368     vTable := ITraceTriggerImpl_vTable;
11369     end;
11370    
11371     function ITraceServiceConnectionImpl_getKindDispatcher(this: ITraceServiceConnection): Cardinal; cdecl;
11372     begin
11373     try
11374     Result := ITraceServiceConnectionImpl(this).getKind();
11375     except
11376     on e: Exception do FbException.catchException(nil, e);
11377     end
11378     end;
11379    
11380     function ITraceServiceConnectionImpl_getProcessIDDispatcher(this: ITraceServiceConnection): Integer; cdecl;
11381     begin
11382     try
11383     Result := ITraceServiceConnectionImpl(this).getProcessID();
11384     except
11385     on e: Exception do FbException.catchException(nil, e);
11386     end
11387     end;
11388    
11389     function ITraceServiceConnectionImpl_getUserNameDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11390     begin
11391     try
11392     Result := ITraceServiceConnectionImpl(this).getUserName();
11393     except
11394     on e: Exception do FbException.catchException(nil, e);
11395     end
11396     end;
11397    
11398     function ITraceServiceConnectionImpl_getRoleNameDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11399     begin
11400     try
11401     Result := ITraceServiceConnectionImpl(this).getRoleName();
11402     except
11403     on e: Exception do FbException.catchException(nil, e);
11404     end
11405     end;
11406    
11407     function ITraceServiceConnectionImpl_getCharSetDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11408     begin
11409     try
11410     Result := ITraceServiceConnectionImpl(this).getCharSet();
11411     except
11412     on e: Exception do FbException.catchException(nil, e);
11413     end
11414     end;
11415    
11416     function ITraceServiceConnectionImpl_getRemoteProtocolDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11417     begin
11418     try
11419     Result := ITraceServiceConnectionImpl(this).getRemoteProtocol();
11420     except
11421     on e: Exception do FbException.catchException(nil, e);
11422     end
11423     end;
11424    
11425     function ITraceServiceConnectionImpl_getRemoteAddressDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11426     begin
11427     try
11428     Result := ITraceServiceConnectionImpl(this).getRemoteAddress();
11429     except
11430     on e: Exception do FbException.catchException(nil, e);
11431     end
11432     end;
11433    
11434     function ITraceServiceConnectionImpl_getRemoteProcessIDDispatcher(this: ITraceServiceConnection): Integer; cdecl;
11435     begin
11436     try
11437     Result := ITraceServiceConnectionImpl(this).getRemoteProcessID();
11438     except
11439     on e: Exception do FbException.catchException(nil, e);
11440     end
11441     end;
11442    
11443     function ITraceServiceConnectionImpl_getRemoteProcessNameDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11444     begin
11445     try
11446     Result := ITraceServiceConnectionImpl(this).getRemoteProcessName();
11447     except
11448     on e: Exception do FbException.catchException(nil, e);
11449     end
11450     end;
11451    
11452     function ITraceServiceConnectionImpl_getServiceIDDispatcher(this: ITraceServiceConnection): Pointer; cdecl;
11453     begin
11454     try
11455     Result := ITraceServiceConnectionImpl(this).getServiceID();
11456     except
11457     on e: Exception do FbException.catchException(nil, e);
11458     end
11459     end;
11460    
11461     function ITraceServiceConnectionImpl_getServiceMgrDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11462     begin
11463     try
11464     Result := ITraceServiceConnectionImpl(this).getServiceMgr();
11465     except
11466     on e: Exception do FbException.catchException(nil, e);
11467     end
11468     end;
11469    
11470     function ITraceServiceConnectionImpl_getServiceNameDispatcher(this: ITraceServiceConnection): PAnsiChar; cdecl;
11471     begin
11472     try
11473     Result := ITraceServiceConnectionImpl(this).getServiceName();
11474     except
11475     on e: Exception do FbException.catchException(nil, e);
11476     end
11477     end;
11478    
11479     var
11480     ITraceServiceConnectionImpl_vTable: TraceServiceConnectionVTable;
11481    
11482     constructor ITraceServiceConnectionImpl.create;
11483     begin
11484     vTable := ITraceServiceConnectionImpl_vTable;
11485     end;
11486    
11487     function ITraceStatusVectorImpl_hasErrorDispatcher(this: ITraceStatusVector): Boolean; cdecl;
11488     begin
11489     try
11490     Result := ITraceStatusVectorImpl(this).hasError();
11491     except
11492     on e: Exception do FbException.catchException(nil, e);
11493     end
11494     end;
11495    
11496     function ITraceStatusVectorImpl_hasWarningDispatcher(this: ITraceStatusVector): Boolean; cdecl;
11497     begin
11498     try
11499     Result := ITraceStatusVectorImpl(this).hasWarning();
11500     except
11501     on e: Exception do FbException.catchException(nil, e);
11502     end
11503     end;
11504    
11505     function ITraceStatusVectorImpl_getStatusDispatcher(this: ITraceStatusVector): IStatus; cdecl;
11506     begin
11507     try
11508     Result := ITraceStatusVectorImpl(this).getStatus();
11509     except
11510     on e: Exception do FbException.catchException(nil, e);
11511     end
11512     end;
11513    
11514     function ITraceStatusVectorImpl_getTextDispatcher(this: ITraceStatusVector): PAnsiChar; cdecl;
11515     begin
11516     try
11517     Result := ITraceStatusVectorImpl(this).getText();
11518     except
11519     on e: Exception do FbException.catchException(nil, e);
11520     end
11521     end;
11522    
11523     var
11524     ITraceStatusVectorImpl_vTable: TraceStatusVectorVTable;
11525    
11526     constructor ITraceStatusVectorImpl.create;
11527     begin
11528     vTable := ITraceStatusVectorImpl_vTable;
11529     end;
11530    
11531     function ITraceSweepInfoImpl_getOITDispatcher(this: ITraceSweepInfo): Int64; cdecl;
11532     begin
11533     try
11534     Result := ITraceSweepInfoImpl(this).getOIT();
11535     except
11536     on e: Exception do FbException.catchException(nil, e);
11537     end
11538     end;
11539    
11540     function ITraceSweepInfoImpl_getOSTDispatcher(this: ITraceSweepInfo): Int64; cdecl;
11541     begin
11542     try
11543     Result := ITraceSweepInfoImpl(this).getOST();
11544     except
11545     on e: Exception do FbException.catchException(nil, e);
11546     end
11547     end;
11548    
11549     function ITraceSweepInfoImpl_getOATDispatcher(this: ITraceSweepInfo): Int64; cdecl;
11550     begin
11551     try
11552     Result := ITraceSweepInfoImpl(this).getOAT();
11553     except
11554     on e: Exception do FbException.catchException(nil, e);
11555     end
11556     end;
11557    
11558     function ITraceSweepInfoImpl_getNextDispatcher(this: ITraceSweepInfo): Int64; cdecl;
11559     begin
11560     try
11561     Result := ITraceSweepInfoImpl(this).getNext();
11562     except
11563     on e: Exception do FbException.catchException(nil, e);
11564     end
11565     end;
11566    
11567     function ITraceSweepInfoImpl_getPerfDispatcher(this: ITraceSweepInfo): PerformanceInfoPtr; cdecl;
11568     begin
11569     try
11570     Result := ITraceSweepInfoImpl(this).getPerf();
11571     except
11572     on e: Exception do FbException.catchException(nil, e);
11573     end
11574     end;
11575    
11576     var
11577     ITraceSweepInfoImpl_vTable: TraceSweepInfoVTable;
11578    
11579     constructor ITraceSweepInfoImpl.create;
11580     begin
11581     vTable := ITraceSweepInfoImpl_vTable;
11582     end;
11583    
11584     procedure ITraceLogWriterImpl_addRefDispatcher(this: ITraceLogWriter); cdecl;
11585     begin
11586     try
11587     ITraceLogWriterImpl(this).addRef();
11588     except
11589     on e: Exception do FbException.catchException(nil, e);
11590     end
11591     end;
11592    
11593     function ITraceLogWriterImpl_releaseDispatcher(this: ITraceLogWriter): Integer; cdecl;
11594     begin
11595     try
11596     Result := ITraceLogWriterImpl(this).release();
11597     except
11598     on e: Exception do FbException.catchException(nil, e);
11599     end
11600     end;
11601    
11602     function ITraceLogWriterImpl_writeDispatcher(this: ITraceLogWriter; buf: Pointer; size: Cardinal): Cardinal; cdecl;
11603     begin
11604     try
11605     Result := ITraceLogWriterImpl(this).write(buf, size);
11606     except
11607     on e: Exception do FbException.catchException(nil, e);
11608     end
11609     end;
11610    
11611     var
11612     ITraceLogWriterImpl_vTable: TraceLogWriterVTable;
11613    
11614     constructor ITraceLogWriterImpl.create;
11615     begin
11616     vTable := ITraceLogWriterImpl_vTable;
11617     end;
11618    
11619     function ITraceInitInfoImpl_getConfigTextDispatcher(this: ITraceInitInfo): PAnsiChar; cdecl;
11620     begin
11621     try
11622     Result := ITraceInitInfoImpl(this).getConfigText();
11623     except
11624     on e: Exception do FbException.catchException(nil, e);
11625     end
11626     end;
11627    
11628     function ITraceInitInfoImpl_getTraceSessionIDDispatcher(this: ITraceInitInfo): Integer; cdecl;
11629     begin
11630     try
11631     Result := ITraceInitInfoImpl(this).getTraceSessionID();
11632     except
11633     on e: Exception do FbException.catchException(nil, e);
11634     end
11635     end;
11636    
11637     function ITraceInitInfoImpl_getTraceSessionNameDispatcher(this: ITraceInitInfo): PAnsiChar; cdecl;
11638     begin
11639     try
11640     Result := ITraceInitInfoImpl(this).getTraceSessionName();
11641     except
11642     on e: Exception do FbException.catchException(nil, e);
11643     end
11644     end;
11645    
11646     function ITraceInitInfoImpl_getFirebirdRootDirectoryDispatcher(this: ITraceInitInfo): PAnsiChar; cdecl;
11647     begin
11648     try
11649     Result := ITraceInitInfoImpl(this).getFirebirdRootDirectory();
11650     except
11651     on e: Exception do FbException.catchException(nil, e);
11652     end
11653     end;
11654    
11655     function ITraceInitInfoImpl_getDatabaseNameDispatcher(this: ITraceInitInfo): PAnsiChar; cdecl;
11656     begin
11657     try
11658     Result := ITraceInitInfoImpl(this).getDatabaseName();
11659     except
11660     on e: Exception do FbException.catchException(nil, e);
11661     end
11662     end;
11663    
11664     function ITraceInitInfoImpl_getConnectionDispatcher(this: ITraceInitInfo): ITraceDatabaseConnection; cdecl;
11665     begin
11666     try
11667     Result := ITraceInitInfoImpl(this).getConnection();
11668     except
11669     on e: Exception do FbException.catchException(nil, e);
11670     end
11671     end;
11672    
11673     function ITraceInitInfoImpl_getLogWriterDispatcher(this: ITraceInitInfo): ITraceLogWriter; cdecl;
11674     begin
11675     try
11676     Result := ITraceInitInfoImpl(this).getLogWriter();
11677     except
11678     on e: Exception do FbException.catchException(nil, e);
11679     end
11680     end;
11681    
11682     var
11683     ITraceInitInfoImpl_vTable: TraceInitInfoVTable;
11684    
11685     constructor ITraceInitInfoImpl.create;
11686     begin
11687     vTable := ITraceInitInfoImpl_vTable;
11688     end;
11689    
11690     procedure ITracePluginImpl_addRefDispatcher(this: ITracePlugin); cdecl;
11691     begin
11692     try
11693     ITracePluginImpl(this).addRef();
11694     except
11695     on e: Exception do FbException.catchException(nil, e);
11696     end
11697     end;
11698    
11699     function ITracePluginImpl_releaseDispatcher(this: ITracePlugin): Integer; cdecl;
11700     begin
11701     try
11702     Result := ITracePluginImpl(this).release();
11703     except
11704     on e: Exception do FbException.catchException(nil, e);
11705     end
11706     end;
11707    
11708     function ITracePluginImpl_trace_get_errorDispatcher(this: ITracePlugin): PAnsiChar; cdecl;
11709     begin
11710     try
11711     Result := ITracePluginImpl(this).trace_get_error();
11712     except
11713     on e: Exception do FbException.catchException(nil, e);
11714     end
11715     end;
11716    
11717     function ITracePluginImpl_trace_attachDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; create_db: Boolean; att_result: Cardinal): Boolean; cdecl;
11718     begin
11719     try
11720     Result := ITracePluginImpl(this).trace_attach(connection, create_db, att_result);
11721     except
11722     on e: Exception do FbException.catchException(nil, e);
11723     end
11724     end;
11725    
11726     function ITracePluginImpl_trace_detachDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; drop_db: Boolean): Boolean; cdecl;
11727     begin
11728     try
11729     Result := ITracePluginImpl(this).trace_detach(connection, drop_db);
11730     except
11731     on e: Exception do FbException.catchException(nil, e);
11732     end
11733     end;
11734    
11735     function ITracePluginImpl_trace_transaction_startDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; tpb_length: Cardinal; tpb: BytePtr; tra_result: Cardinal): Boolean; cdecl;
11736     begin
11737     try
11738     Result := ITracePluginImpl(this).trace_transaction_start(connection, transaction, tpb_length, tpb, tra_result);
11739     except
11740     on e: Exception do FbException.catchException(nil, e);
11741     end
11742     end;
11743    
11744     function ITracePluginImpl_trace_transaction_endDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; commit: Boolean; retain_context: Boolean; tra_result: Cardinal): Boolean; cdecl;
11745     begin
11746     try
11747     Result := ITracePluginImpl(this).trace_transaction_end(connection, transaction, commit, retain_context, tra_result);
11748     except
11749     on e: Exception do FbException.catchException(nil, e);
11750     end
11751     end;
11752    
11753     function ITracePluginImpl_trace_proc_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; procedure_: ITraceProcedure; started: Boolean; proc_result: Cardinal): Boolean; cdecl;
11754     begin
11755     try
11756     Result := ITracePluginImpl(this).trace_proc_execute(connection, transaction, procedure_, started, proc_result);
11757     except
11758     on e: Exception do FbException.catchException(nil, e);
11759     end
11760     end;
11761    
11762     function ITracePluginImpl_trace_trigger_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; trigger: ITraceTrigger; started: Boolean; trig_result: Cardinal): Boolean; cdecl;
11763     begin
11764     try
11765     Result := ITracePluginImpl(this).trace_trigger_execute(connection, transaction, trigger, started, trig_result);
11766     except
11767     on e: Exception do FbException.catchException(nil, e);
11768     end
11769     end;
11770    
11771     function ITracePluginImpl_trace_set_contextDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; variable: ITraceContextVariable): Boolean; cdecl;
11772     begin
11773     try
11774     Result := ITracePluginImpl(this).trace_set_context(connection, transaction, variable);
11775     except
11776     on e: Exception do FbException.catchException(nil, e);
11777     end
11778     end;
11779    
11780     function ITracePluginImpl_trace_dsql_prepareDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
11781     begin
11782     try
11783     Result := ITracePluginImpl(this).trace_dsql_prepare(connection, transaction, statement, time_millis, req_result);
11784     except
11785     on e: Exception do FbException.catchException(nil, e);
11786     end
11787     end;
11788    
11789     function ITracePluginImpl_trace_dsql_freeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; statement: ITraceSQLStatement; option: Cardinal): Boolean; cdecl;
11790     begin
11791     try
11792     Result := ITracePluginImpl(this).trace_dsql_free(connection, statement, option);
11793     except
11794     on e: Exception do FbException.catchException(nil, e);
11795     end
11796     end;
11797    
11798     function ITracePluginImpl_trace_dsql_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceSQLStatement; started: Boolean; req_result: Cardinal): Boolean; cdecl;
11799     begin
11800     try
11801     Result := ITracePluginImpl(this).trace_dsql_execute(connection, transaction, statement, started, req_result);
11802     except
11803     on e: Exception do FbException.catchException(nil, e);
11804     end
11805     end;
11806    
11807     function ITracePluginImpl_trace_blr_compileDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
11808     begin
11809     try
11810     Result := ITracePluginImpl(this).trace_blr_compile(connection, transaction, statement, time_millis, req_result);
11811     except
11812     on e: Exception do FbException.catchException(nil, e);
11813     end
11814     end;
11815    
11816     function ITracePluginImpl_trace_blr_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; statement: ITraceBLRStatement; req_result: Cardinal): Boolean; cdecl;
11817     begin
11818     try
11819     Result := ITracePluginImpl(this).trace_blr_execute(connection, transaction, statement, req_result);
11820     except
11821     on e: Exception do FbException.catchException(nil, e);
11822     end
11823     end;
11824    
11825     function ITracePluginImpl_trace_dyn_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; request: ITraceDYNRequest; time_millis: Int64; req_result: Cardinal): Boolean; cdecl;
11826     begin
11827     try
11828     Result := ITracePluginImpl(this).trace_dyn_execute(connection, transaction, request, time_millis, req_result);
11829     except
11830     on e: Exception do FbException.catchException(nil, e);
11831     end
11832     end;
11833    
11834     function ITracePluginImpl_trace_service_attachDispatcher(this: ITracePlugin; service: ITraceServiceConnection; att_result: Cardinal): Boolean; cdecl;
11835     begin
11836     try
11837     Result := ITracePluginImpl(this).trace_service_attach(service, att_result);
11838     except
11839     on e: Exception do FbException.catchException(nil, e);
11840     end
11841     end;
11842    
11843     function ITracePluginImpl_trace_service_startDispatcher(this: ITracePlugin; service: ITraceServiceConnection; switches_length: Cardinal; switches: PAnsiChar; start_result: Cardinal): Boolean; cdecl;
11844     begin
11845     try
11846     Result := ITracePluginImpl(this).trace_service_start(service, switches_length, switches, start_result);
11847     except
11848     on e: Exception do FbException.catchException(nil, e);
11849     end
11850     end;
11851    
11852     function ITracePluginImpl_trace_service_queryDispatcher(this: ITracePlugin; service: ITraceServiceConnection; send_item_length: Cardinal; send_items: BytePtr; recv_item_length: Cardinal; recv_items: BytePtr; query_result: Cardinal): Boolean; cdecl;
11853     begin
11854     try
11855     Result := ITracePluginImpl(this).trace_service_query(service, send_item_length, send_items, recv_item_length, recv_items, query_result);
11856     except
11857     on e: Exception do FbException.catchException(nil, e);
11858     end
11859     end;
11860    
11861     function ITracePluginImpl_trace_service_detachDispatcher(this: ITracePlugin; service: ITraceServiceConnection; detach_result: Cardinal): Boolean; cdecl;
11862     begin
11863     try
11864     Result := ITracePluginImpl(this).trace_service_detach(service, detach_result);
11865     except
11866     on e: Exception do FbException.catchException(nil, e);
11867     end
11868     end;
11869    
11870     function ITracePluginImpl_trace_event_errorDispatcher(this: ITracePlugin; connection: ITraceConnection; status: ITraceStatusVector; function_: PAnsiChar): Boolean; cdecl;
11871     begin
11872     try
11873     Result := ITracePluginImpl(this).trace_event_error(connection, status, function_);
11874     except
11875     on e: Exception do FbException.catchException(nil, e);
11876     end
11877     end;
11878    
11879     function ITracePluginImpl_trace_event_sweepDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; sweep: ITraceSweepInfo; sweep_state: Cardinal): Boolean; cdecl;
11880     begin
11881     try
11882     Result := ITracePluginImpl(this).trace_event_sweep(connection, sweep, sweep_state);
11883     except
11884     on e: Exception do FbException.catchException(nil, e);
11885     end
11886     end;
11887    
11888     function ITracePluginImpl_trace_func_executeDispatcher(this: ITracePlugin; connection: ITraceDatabaseConnection; transaction: ITraceTransaction; function_: ITraceFunction; started: Boolean; func_result: Cardinal): Boolean; cdecl;
11889     begin
11890     try
11891     Result := ITracePluginImpl(this).trace_func_execute(connection, transaction, function_, started, func_result);
11892     except
11893     on e: Exception do FbException.catchException(nil, e);
11894     end
11895     end;
11896    
11897     var
11898     ITracePluginImpl_vTable: TracePluginVTable;
11899    
11900     constructor ITracePluginImpl.create;
11901     begin
11902     vTable := ITracePluginImpl_vTable;
11903     end;
11904    
11905     procedure ITraceFactoryImpl_addRefDispatcher(this: ITraceFactory); cdecl;
11906     begin
11907     try
11908     ITraceFactoryImpl(this).addRef();
11909     except
11910     on e: Exception do FbException.catchException(nil, e);
11911     end
11912     end;
11913    
11914     function ITraceFactoryImpl_releaseDispatcher(this: ITraceFactory): Integer; cdecl;
11915     begin
11916     try
11917     Result := ITraceFactoryImpl(this).release();
11918     except
11919     on e: Exception do FbException.catchException(nil, e);
11920     end
11921     end;
11922    
11923     procedure ITraceFactoryImpl_setOwnerDispatcher(this: ITraceFactory; r: IReferenceCounted); cdecl;
11924     begin
11925     try
11926     ITraceFactoryImpl(this).setOwner(r);
11927     except
11928     on e: Exception do FbException.catchException(nil, e);
11929     end
11930     end;
11931    
11932     function ITraceFactoryImpl_getOwnerDispatcher(this: ITraceFactory): IReferenceCounted; cdecl;
11933     begin
11934     try
11935     Result := ITraceFactoryImpl(this).getOwner();
11936     except
11937     on e: Exception do FbException.catchException(nil, e);
11938     end
11939     end;
11940    
11941     function ITraceFactoryImpl_trace_needsDispatcher(this: ITraceFactory): QWord; cdecl;
11942     begin
11943     try
11944     Result := ITraceFactoryImpl(this).trace_needs();
11945     except
11946     on e: Exception do FbException.catchException(nil, e);
11947     end
11948     end;
11949    
11950     function ITraceFactoryImpl_trace_createDispatcher(this: ITraceFactory; status: IStatus; init_info: ITraceInitInfo): ITracePlugin; cdecl;
11951     begin
11952     try
11953     Result := ITraceFactoryImpl(this).trace_create(status, init_info);
11954     except
11955     on e: Exception do FbException.catchException(status, e);
11956     end
11957     end;
11958    
11959     var
11960     ITraceFactoryImpl_vTable: TraceFactoryVTable;
11961    
11962     constructor ITraceFactoryImpl.create;
11963     begin
11964     vTable := ITraceFactoryImpl_vTable;
11965     end;
11966    
11967     procedure IUdrFunctionFactoryImpl_disposeDispatcher(this: IUdrFunctionFactory); cdecl;
11968     begin
11969     try
11970     IUdrFunctionFactoryImpl(this).dispose();
11971     except
11972     on e: Exception do FbException.catchException(nil, e);
11973     end
11974     end;
11975    
11976     procedure IUdrFunctionFactoryImpl_setupDispatcher(this: IUdrFunctionFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); cdecl;
11977     begin
11978     try
11979     IUdrFunctionFactoryImpl(this).setup(status, context, metadata, inBuilder, outBuilder);
11980     except
11981     on e: Exception do FbException.catchException(status, e);
11982     end
11983     end;
11984    
11985     function IUdrFunctionFactoryImpl_newItemDispatcher(this: IUdrFunctionFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalFunction; cdecl;
11986     begin
11987     try
11988     Result := IUdrFunctionFactoryImpl(this).newItem(status, context, metadata);
11989     except
11990     on e: Exception do FbException.catchException(status, e);
11991     end
11992     end;
11993    
11994     var
11995     IUdrFunctionFactoryImpl_vTable: UdrFunctionFactoryVTable;
11996    
11997     constructor IUdrFunctionFactoryImpl.create;
11998     begin
11999     vTable := IUdrFunctionFactoryImpl_vTable;
12000     end;
12001    
12002     procedure IUdrProcedureFactoryImpl_disposeDispatcher(this: IUdrProcedureFactory); cdecl;
12003     begin
12004     try
12005     IUdrProcedureFactoryImpl(this).dispose();
12006     except
12007     on e: Exception do FbException.catchException(nil, e);
12008     end
12009     end;
12010    
12011     procedure IUdrProcedureFactoryImpl_setupDispatcher(this: IUdrProcedureFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; inBuilder: IMetadataBuilder; outBuilder: IMetadataBuilder); cdecl;
12012     begin
12013     try
12014     IUdrProcedureFactoryImpl(this).setup(status, context, metadata, inBuilder, outBuilder);
12015     except
12016     on e: Exception do FbException.catchException(status, e);
12017     end
12018     end;
12019    
12020     function IUdrProcedureFactoryImpl_newItemDispatcher(this: IUdrProcedureFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalProcedure; cdecl;
12021     begin
12022     try
12023     Result := IUdrProcedureFactoryImpl(this).newItem(status, context, metadata);
12024     except
12025     on e: Exception do FbException.catchException(status, e);
12026     end
12027     end;
12028    
12029     var
12030     IUdrProcedureFactoryImpl_vTable: UdrProcedureFactoryVTable;
12031    
12032     constructor IUdrProcedureFactoryImpl.create;
12033     begin
12034     vTable := IUdrProcedureFactoryImpl_vTable;
12035     end;
12036    
12037     procedure IUdrTriggerFactoryImpl_disposeDispatcher(this: IUdrTriggerFactory); cdecl;
12038     begin
12039     try
12040     IUdrTriggerFactoryImpl(this).dispose();
12041     except
12042     on e: Exception do FbException.catchException(nil, e);
12043     end
12044     end;
12045    
12046     procedure IUdrTriggerFactoryImpl_setupDispatcher(this: IUdrTriggerFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata; fieldsBuilder: IMetadataBuilder); cdecl;
12047     begin
12048     try
12049     IUdrTriggerFactoryImpl(this).setup(status, context, metadata, fieldsBuilder);
12050     except
12051     on e: Exception do FbException.catchException(status, e);
12052     end
12053     end;
12054    
12055     function IUdrTriggerFactoryImpl_newItemDispatcher(this: IUdrTriggerFactory; status: IStatus; context: IExternalContext; metadata: IRoutineMetadata): IExternalTrigger; cdecl;
12056     begin
12057     try
12058     Result := IUdrTriggerFactoryImpl(this).newItem(status, context, metadata);
12059     except
12060     on e: Exception do FbException.catchException(status, e);
12061     end
12062     end;
12063    
12064     var
12065     IUdrTriggerFactoryImpl_vTable: UdrTriggerFactoryVTable;
12066    
12067     constructor IUdrTriggerFactoryImpl.create;
12068     begin
12069     vTable := IUdrTriggerFactoryImpl_vTable;
12070     end;
12071    
12072     function IUdrPluginImpl_getMasterDispatcher(this: IUdrPlugin): IMaster; cdecl;
12073     begin
12074     try
12075     Result := IUdrPluginImpl(this).getMaster();
12076     except
12077     on e: Exception do FbException.catchException(nil, e);
12078     end
12079     end;
12080    
12081     procedure IUdrPluginImpl_registerFunctionDispatcher(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrFunctionFactory); cdecl;
12082     begin
12083     try
12084     IUdrPluginImpl(this).registerFunction(status, name, factory);
12085     except
12086     on e: Exception do FbException.catchException(status, e);
12087     end
12088     end;
12089    
12090     procedure IUdrPluginImpl_registerProcedureDispatcher(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrProcedureFactory); cdecl;
12091     begin
12092     try
12093     IUdrPluginImpl(this).registerProcedure(status, name, factory);
12094     except
12095     on e: Exception do FbException.catchException(status, e);
12096     end
12097     end;
12098    
12099     procedure IUdrPluginImpl_registerTriggerDispatcher(this: IUdrPlugin; status: IStatus; name: PAnsiChar; factory: IUdrTriggerFactory); cdecl;
12100     begin
12101     try
12102     IUdrPluginImpl(this).registerTrigger(status, name, factory);
12103     except
12104     on e: Exception do FbException.catchException(status, e);
12105     end
12106     end;
12107    
12108     var
12109     IUdrPluginImpl_vTable: UdrPluginVTable;
12110    
12111     constructor IUdrPluginImpl.create;
12112     begin
12113     vTable := IUdrPluginImpl_vTable;
12114     end;
12115    
12116     constructor FbException.create(status: IStatus);
12117     begin
12118     inherited Create('FbException');
12119     self.status := status.clone;
12120     end;
12121    
12122     destructor FbException.Destroy();
12123     begin
12124     status.dispose;
12125     inherited Destroy;
12126     end;
12127    
12128     function FbException.getStatus: IStatus;
12129     begin
12130     Result := status;
12131     end;
12132    
12133     class procedure FbException.checkException(status: IStatus);
12134     begin
12135     if ((status.getState and status.STATE_ERRORS) <> 0) then
12136     raise FbException.create(status);
12137     end;
12138    
12139     class procedure FbException.catchException(status: IStatus; e: Exception);
12140     var
12141     statusVector: array[0..4] of NativeIntPtr;
12142     msg: AnsiString;
12143     begin
12144     if (e.inheritsFrom(FbException)) then
12145     status.setErrors(FbException(e).getStatus.getErrors)
12146     else
12147     begin
12148     msg := e.message;
12149    
12150     statusVector[0] := NativeIntPtr(isc_arg_gds);
12151     statusVector[1] := NativeIntPtr(isc_random);
12152     statusVector[2] := NativeIntPtr(isc_arg_string);
12153     statusVector[3] := NativeIntPtr(PAnsiChar(msg));
12154     statusVector[4] := NativeIntPtr(isc_arg_end);
12155    
12156     status.setErrors(@statusVector);
12157     end
12158     end;
12159     initialization
12160     IVersionedImpl_vTable := VersionedVTable.create;
12161     IVersionedImpl_vTable.version := 0;
12162    
12163     IReferenceCountedImpl_vTable := ReferenceCountedVTable.create;
12164     IReferenceCountedImpl_vTable.version := 2;
12165     IReferenceCountedImpl_vTable.addRef := @IReferenceCountedImpl_addRefDispatcher;
12166     IReferenceCountedImpl_vTable.release := @IReferenceCountedImpl_releaseDispatcher;
12167    
12168     IDisposableImpl_vTable := DisposableVTable.create;
12169     IDisposableImpl_vTable.version := 1;
12170     IDisposableImpl_vTable.dispose := @IDisposableImpl_disposeDispatcher;
12171    
12172     IStatusImpl_vTable := StatusVTable.create;
12173     IStatusImpl_vTable.version := 10;
12174     IStatusImpl_vTable.dispose := @IStatusImpl_disposeDispatcher;
12175     IStatusImpl_vTable.init := @IStatusImpl_initDispatcher;
12176     IStatusImpl_vTable.getState := @IStatusImpl_getStateDispatcher;
12177     IStatusImpl_vTable.setErrors2 := @IStatusImpl_setErrors2Dispatcher;
12178     IStatusImpl_vTable.setWarnings2 := @IStatusImpl_setWarnings2Dispatcher;
12179     IStatusImpl_vTable.setErrors := @IStatusImpl_setErrorsDispatcher;
12180     IStatusImpl_vTable.setWarnings := @IStatusImpl_setWarningsDispatcher;
12181     IStatusImpl_vTable.getErrors := @IStatusImpl_getErrorsDispatcher;
12182     IStatusImpl_vTable.getWarnings := @IStatusImpl_getWarningsDispatcher;
12183     IStatusImpl_vTable.clone := @IStatusImpl_cloneDispatcher;
12184    
12185     IMasterImpl_vTable := MasterVTable.create;
12186     IMasterImpl_vTable.version := 12;
12187     IMasterImpl_vTable.getStatus := @IMasterImpl_getStatusDispatcher;
12188     IMasterImpl_vTable.getDispatcher := @IMasterImpl_getDispatcherDispatcher;
12189     IMasterImpl_vTable.getPluginManager := @IMasterImpl_getPluginManagerDispatcher;
12190     IMasterImpl_vTable.getTimerControl := @IMasterImpl_getTimerControlDispatcher;
12191     IMasterImpl_vTable.getDtc := @IMasterImpl_getDtcDispatcher;
12192     IMasterImpl_vTable.registerAttachment := @IMasterImpl_registerAttachmentDispatcher;
12193     IMasterImpl_vTable.registerTransaction := @IMasterImpl_registerTransactionDispatcher;
12194     IMasterImpl_vTable.getMetadataBuilder := @IMasterImpl_getMetadataBuilderDispatcher;
12195     IMasterImpl_vTable.serverMode := @IMasterImpl_serverModeDispatcher;
12196     IMasterImpl_vTable.getUtilInterface := @IMasterImpl_getUtilInterfaceDispatcher;
12197     IMasterImpl_vTable.getConfigManager := @IMasterImpl_getConfigManagerDispatcher;
12198     IMasterImpl_vTable.getProcessExiting := @IMasterImpl_getProcessExitingDispatcher;
12199    
12200     IPluginBaseImpl_vTable := PluginBaseVTable.create;
12201     IPluginBaseImpl_vTable.version := 4;
12202     IPluginBaseImpl_vTable.addRef := @IPluginBaseImpl_addRefDispatcher;
12203     IPluginBaseImpl_vTable.release := @IPluginBaseImpl_releaseDispatcher;
12204     IPluginBaseImpl_vTable.setOwner := @IPluginBaseImpl_setOwnerDispatcher;
12205     IPluginBaseImpl_vTable.getOwner := @IPluginBaseImpl_getOwnerDispatcher;
12206    
12207     IPluginSetImpl_vTable := PluginSetVTable.create;
12208     IPluginSetImpl_vTable.version := 7;
12209     IPluginSetImpl_vTable.addRef := @IPluginSetImpl_addRefDispatcher;
12210     IPluginSetImpl_vTable.release := @IPluginSetImpl_releaseDispatcher;
12211     IPluginSetImpl_vTable.getName := @IPluginSetImpl_getNameDispatcher;
12212     IPluginSetImpl_vTable.getModuleName := @IPluginSetImpl_getModuleNameDispatcher;
12213     IPluginSetImpl_vTable.getPlugin := @IPluginSetImpl_getPluginDispatcher;
12214     IPluginSetImpl_vTable.next := @IPluginSetImpl_nextDispatcher;
12215     IPluginSetImpl_vTable.set_ := @IPluginSetImpl_set_Dispatcher;
12216    
12217     IConfigEntryImpl_vTable := ConfigEntryVTable.create;
12218     IConfigEntryImpl_vTable.version := 7;
12219     IConfigEntryImpl_vTable.addRef := @IConfigEntryImpl_addRefDispatcher;
12220     IConfigEntryImpl_vTable.release := @IConfigEntryImpl_releaseDispatcher;
12221     IConfigEntryImpl_vTable.getName := @IConfigEntryImpl_getNameDispatcher;
12222     IConfigEntryImpl_vTable.getValue := @IConfigEntryImpl_getValueDispatcher;
12223     IConfigEntryImpl_vTable.getIntValue := @IConfigEntryImpl_getIntValueDispatcher;
12224     IConfigEntryImpl_vTable.getBoolValue := @IConfigEntryImpl_getBoolValueDispatcher;
12225     IConfigEntryImpl_vTable.getSubConfig := @IConfigEntryImpl_getSubConfigDispatcher;
12226    
12227     IConfigImpl_vTable := ConfigVTable.create;
12228     IConfigImpl_vTable.version := 5;
12229     IConfigImpl_vTable.addRef := @IConfigImpl_addRefDispatcher;
12230     IConfigImpl_vTable.release := @IConfigImpl_releaseDispatcher;
12231     IConfigImpl_vTable.find := @IConfigImpl_findDispatcher;
12232     IConfigImpl_vTable.findValue := @IConfigImpl_findValueDispatcher;
12233     IConfigImpl_vTable.findPos := @IConfigImpl_findPosDispatcher;
12234    
12235     IFirebirdConfImpl_vTable := FirebirdConfVTable.create;
12236     IFirebirdConfImpl_vTable.version := 6;
12237     IFirebirdConfImpl_vTable.addRef := @IFirebirdConfImpl_addRefDispatcher;
12238     IFirebirdConfImpl_vTable.release := @IFirebirdConfImpl_releaseDispatcher;
12239     IFirebirdConfImpl_vTable.getKey := @IFirebirdConfImpl_getKeyDispatcher;
12240     IFirebirdConfImpl_vTable.asInteger := @IFirebirdConfImpl_asIntegerDispatcher;
12241     IFirebirdConfImpl_vTable.asString := @IFirebirdConfImpl_asStringDispatcher;
12242     IFirebirdConfImpl_vTable.asBoolean := @IFirebirdConfImpl_asBooleanDispatcher;
12243    
12244     IPluginConfigImpl_vTable := PluginConfigVTable.create;
12245     IPluginConfigImpl_vTable.version := 6;
12246     IPluginConfigImpl_vTable.addRef := @IPluginConfigImpl_addRefDispatcher;
12247     IPluginConfigImpl_vTable.release := @IPluginConfigImpl_releaseDispatcher;
12248     IPluginConfigImpl_vTable.getConfigFileName := @IPluginConfigImpl_getConfigFileNameDispatcher;
12249     IPluginConfigImpl_vTable.getDefaultConfig := @IPluginConfigImpl_getDefaultConfigDispatcher;
12250     IPluginConfigImpl_vTable.getFirebirdConf := @IPluginConfigImpl_getFirebirdConfDispatcher;
12251     IPluginConfigImpl_vTable.setReleaseDelay := @IPluginConfigImpl_setReleaseDelayDispatcher;
12252    
12253     IPluginFactoryImpl_vTable := PluginFactoryVTable.create;
12254     IPluginFactoryImpl_vTable.version := 1;
12255     IPluginFactoryImpl_vTable.createPlugin := @IPluginFactoryImpl_createPluginDispatcher;
12256    
12257     IPluginModuleImpl_vTable := PluginModuleVTable.create;
12258     IPluginModuleImpl_vTable.version := 1;
12259     IPluginModuleImpl_vTable.doClean := @IPluginModuleImpl_doCleanDispatcher;
12260    
12261     IPluginManagerImpl_vTable := PluginManagerVTable.create;
12262     IPluginManagerImpl_vTable.version := 6;
12263     IPluginManagerImpl_vTable.registerPluginFactory := @IPluginManagerImpl_registerPluginFactoryDispatcher;
12264     IPluginManagerImpl_vTable.registerModule := @IPluginManagerImpl_registerModuleDispatcher;
12265     IPluginManagerImpl_vTable.unregisterModule := @IPluginManagerImpl_unregisterModuleDispatcher;
12266     IPluginManagerImpl_vTable.getPlugins := @IPluginManagerImpl_getPluginsDispatcher;
12267     IPluginManagerImpl_vTable.getConfig := @IPluginManagerImpl_getConfigDispatcher;
12268     IPluginManagerImpl_vTable.releasePlugin := @IPluginManagerImpl_releasePluginDispatcher;
12269    
12270     ICryptKeyImpl_vTable := CryptKeyVTable.create;
12271     ICryptKeyImpl_vTable.version := 4;
12272     ICryptKeyImpl_vTable.setSymmetric := @ICryptKeyImpl_setSymmetricDispatcher;
12273     ICryptKeyImpl_vTable.setAsymmetric := @ICryptKeyImpl_setAsymmetricDispatcher;
12274     ICryptKeyImpl_vTable.getEncryptKey := @ICryptKeyImpl_getEncryptKeyDispatcher;
12275     ICryptKeyImpl_vTable.getDecryptKey := @ICryptKeyImpl_getDecryptKeyDispatcher;
12276    
12277     IConfigManagerImpl_vTable := ConfigManagerVTable.create;
12278     IConfigManagerImpl_vTable.version := 6;
12279     IConfigManagerImpl_vTable.getDirectory := @IConfigManagerImpl_getDirectoryDispatcher;
12280     IConfigManagerImpl_vTable.getFirebirdConf := @IConfigManagerImpl_getFirebirdConfDispatcher;
12281     IConfigManagerImpl_vTable.getDatabaseConf := @IConfigManagerImpl_getDatabaseConfDispatcher;
12282     IConfigManagerImpl_vTable.getPluginConfig := @IConfigManagerImpl_getPluginConfigDispatcher;
12283     IConfigManagerImpl_vTable.getInstallDirectory := @IConfigManagerImpl_getInstallDirectoryDispatcher;
12284     IConfigManagerImpl_vTable.getRootDirectory := @IConfigManagerImpl_getRootDirectoryDispatcher;
12285    
12286     IEventCallbackImpl_vTable := EventCallbackVTable.create;
12287     IEventCallbackImpl_vTable.version := 3;
12288     IEventCallbackImpl_vTable.addRef := @IEventCallbackImpl_addRefDispatcher;
12289     IEventCallbackImpl_vTable.release := @IEventCallbackImpl_releaseDispatcher;
12290     IEventCallbackImpl_vTable.eventCallbackFunction := @IEventCallbackImpl_eventCallbackFunctionDispatcher;
12291    
12292     IBlobImpl_vTable := BlobVTable.create;
12293     IBlobImpl_vTable.version := 8;
12294     IBlobImpl_vTable.addRef := @IBlobImpl_addRefDispatcher;
12295     IBlobImpl_vTable.release := @IBlobImpl_releaseDispatcher;
12296     IBlobImpl_vTable.getInfo := @IBlobImpl_getInfoDispatcher;
12297     IBlobImpl_vTable.getSegment := @IBlobImpl_getSegmentDispatcher;
12298     IBlobImpl_vTable.putSegment := @IBlobImpl_putSegmentDispatcher;
12299     IBlobImpl_vTable.cancel := @IBlobImpl_cancelDispatcher;
12300     IBlobImpl_vTable.close := @IBlobImpl_closeDispatcher;
12301     IBlobImpl_vTable.seek := @IBlobImpl_seekDispatcher;
12302    
12303     ITransactionImpl_vTable := TransactionVTable.create;
12304     ITransactionImpl_vTable.version := 12;
12305     ITransactionImpl_vTable.addRef := @ITransactionImpl_addRefDispatcher;
12306     ITransactionImpl_vTable.release := @ITransactionImpl_releaseDispatcher;
12307     ITransactionImpl_vTable.getInfo := @ITransactionImpl_getInfoDispatcher;
12308     ITransactionImpl_vTable.prepare := @ITransactionImpl_prepareDispatcher;
12309     ITransactionImpl_vTable.commit := @ITransactionImpl_commitDispatcher;
12310     ITransactionImpl_vTable.commitRetaining := @ITransactionImpl_commitRetainingDispatcher;
12311     ITransactionImpl_vTable.rollback := @ITransactionImpl_rollbackDispatcher;
12312     ITransactionImpl_vTable.rollbackRetaining := @ITransactionImpl_rollbackRetainingDispatcher;
12313     ITransactionImpl_vTable.disconnect := @ITransactionImpl_disconnectDispatcher;
12314     ITransactionImpl_vTable.join := @ITransactionImpl_joinDispatcher;
12315     ITransactionImpl_vTable.validate := @ITransactionImpl_validateDispatcher;
12316     ITransactionImpl_vTable.enterDtc := @ITransactionImpl_enterDtcDispatcher;
12317    
12318     IMessageMetadataImpl_vTable := MessageMetadataVTable.create;
12319     IMessageMetadataImpl_vTable.version := 17;
12320     IMessageMetadataImpl_vTable.addRef := @IMessageMetadataImpl_addRefDispatcher;
12321     IMessageMetadataImpl_vTable.release := @IMessageMetadataImpl_releaseDispatcher;
12322     IMessageMetadataImpl_vTable.getCount := @IMessageMetadataImpl_getCountDispatcher;
12323     IMessageMetadataImpl_vTable.getField := @IMessageMetadataImpl_getFieldDispatcher;
12324     IMessageMetadataImpl_vTable.getRelation := @IMessageMetadataImpl_getRelationDispatcher;
12325     IMessageMetadataImpl_vTable.getOwner := @IMessageMetadataImpl_getOwnerDispatcher;
12326     IMessageMetadataImpl_vTable.getAlias := @IMessageMetadataImpl_getAliasDispatcher;
12327     IMessageMetadataImpl_vTable.getType := @IMessageMetadataImpl_getTypeDispatcher;
12328     IMessageMetadataImpl_vTable.isNullable := @IMessageMetadataImpl_isNullableDispatcher;
12329     IMessageMetadataImpl_vTable.getSubType := @IMessageMetadataImpl_getSubTypeDispatcher;
12330     IMessageMetadataImpl_vTable.getLength := @IMessageMetadataImpl_getLengthDispatcher;
12331     IMessageMetadataImpl_vTable.getScale := @IMessageMetadataImpl_getScaleDispatcher;
12332     IMessageMetadataImpl_vTable.getCharSet := @IMessageMetadataImpl_getCharSetDispatcher;
12333     IMessageMetadataImpl_vTable.getOffset := @IMessageMetadataImpl_getOffsetDispatcher;
12334     IMessageMetadataImpl_vTable.getNullOffset := @IMessageMetadataImpl_getNullOffsetDispatcher;
12335     IMessageMetadataImpl_vTable.getBuilder := @IMessageMetadataImpl_getBuilderDispatcher;
12336     IMessageMetadataImpl_vTable.getMessageLength := @IMessageMetadataImpl_getMessageLengthDispatcher;
12337    
12338     IMetadataBuilderImpl_vTable := MetadataBuilderVTable.create;
12339     IMetadataBuilderImpl_vTable.version := 12;
12340     IMetadataBuilderImpl_vTable.addRef := @IMetadataBuilderImpl_addRefDispatcher;
12341     IMetadataBuilderImpl_vTable.release := @IMetadataBuilderImpl_releaseDispatcher;
12342     IMetadataBuilderImpl_vTable.setType := @IMetadataBuilderImpl_setTypeDispatcher;
12343     IMetadataBuilderImpl_vTable.setSubType := @IMetadataBuilderImpl_setSubTypeDispatcher;
12344     IMetadataBuilderImpl_vTable.setLength := @IMetadataBuilderImpl_setLengthDispatcher;
12345     IMetadataBuilderImpl_vTable.setCharSet := @IMetadataBuilderImpl_setCharSetDispatcher;
12346     IMetadataBuilderImpl_vTable.setScale := @IMetadataBuilderImpl_setScaleDispatcher;
12347     IMetadataBuilderImpl_vTable.truncate := @IMetadataBuilderImpl_truncateDispatcher;
12348     IMetadataBuilderImpl_vTable.moveNameToIndex := @IMetadataBuilderImpl_moveNameToIndexDispatcher;
12349     IMetadataBuilderImpl_vTable.remove := @IMetadataBuilderImpl_removeDispatcher;
12350     IMetadataBuilderImpl_vTable.addField := @IMetadataBuilderImpl_addFieldDispatcher;
12351     IMetadataBuilderImpl_vTable.getMetadata := @IMetadataBuilderImpl_getMetadataDispatcher;
12352    
12353     IResultSetImpl_vTable := ResultSetVTable.create;
12354     IResultSetImpl_vTable.version := 13;
12355     IResultSetImpl_vTable.addRef := @IResultSetImpl_addRefDispatcher;
12356     IResultSetImpl_vTable.release := @IResultSetImpl_releaseDispatcher;
12357     IResultSetImpl_vTable.fetchNext := @IResultSetImpl_fetchNextDispatcher;
12358     IResultSetImpl_vTable.fetchPrior := @IResultSetImpl_fetchPriorDispatcher;
12359     IResultSetImpl_vTable.fetchFirst := @IResultSetImpl_fetchFirstDispatcher;
12360     IResultSetImpl_vTable.fetchLast := @IResultSetImpl_fetchLastDispatcher;
12361     IResultSetImpl_vTable.fetchAbsolute := @IResultSetImpl_fetchAbsoluteDispatcher;
12362     IResultSetImpl_vTable.fetchRelative := @IResultSetImpl_fetchRelativeDispatcher;
12363     IResultSetImpl_vTable.isEof := @IResultSetImpl_isEofDispatcher;
12364     IResultSetImpl_vTable.isBof := @IResultSetImpl_isBofDispatcher;
12365     IResultSetImpl_vTable.getMetadata := @IResultSetImpl_getMetadataDispatcher;
12366     IResultSetImpl_vTable.close := @IResultSetImpl_closeDispatcher;
12367     IResultSetImpl_vTable.setDelayedOutputFormat := @IResultSetImpl_setDelayedOutputFormatDispatcher;
12368    
12369     IStatementImpl_vTable := StatementVTable.create;
12370     IStatementImpl_vTable.version := 13;
12371     IStatementImpl_vTable.addRef := @IStatementImpl_addRefDispatcher;
12372     IStatementImpl_vTable.release := @IStatementImpl_releaseDispatcher;
12373     IStatementImpl_vTable.getInfo := @IStatementImpl_getInfoDispatcher;
12374     IStatementImpl_vTable.getType := @IStatementImpl_getTypeDispatcher;
12375     IStatementImpl_vTable.getPlan := @IStatementImpl_getPlanDispatcher;
12376     IStatementImpl_vTable.getAffectedRecords := @IStatementImpl_getAffectedRecordsDispatcher;
12377     IStatementImpl_vTable.getInputMetadata := @IStatementImpl_getInputMetadataDispatcher;
12378     IStatementImpl_vTable.getOutputMetadata := @IStatementImpl_getOutputMetadataDispatcher;
12379     IStatementImpl_vTable.execute := @IStatementImpl_executeDispatcher;
12380     IStatementImpl_vTable.openCursor := @IStatementImpl_openCursorDispatcher;
12381     IStatementImpl_vTable.setCursorName := @IStatementImpl_setCursorNameDispatcher;
12382     IStatementImpl_vTable.free := @IStatementImpl_freeDispatcher;
12383     IStatementImpl_vTable.getFlags := @IStatementImpl_getFlagsDispatcher;
12384    
12385     IRequestImpl_vTable := RequestVTable.create;
12386     IRequestImpl_vTable.version := 9;
12387     IRequestImpl_vTable.addRef := @IRequestImpl_addRefDispatcher;
12388     IRequestImpl_vTable.release := @IRequestImpl_releaseDispatcher;
12389     IRequestImpl_vTable.receive := @IRequestImpl_receiveDispatcher;
12390     IRequestImpl_vTable.send := @IRequestImpl_sendDispatcher;
12391     IRequestImpl_vTable.getInfo := @IRequestImpl_getInfoDispatcher;
12392     IRequestImpl_vTable.start := @IRequestImpl_startDispatcher;
12393     IRequestImpl_vTable.startAndSend := @IRequestImpl_startAndSendDispatcher;
12394     IRequestImpl_vTable.unwind := @IRequestImpl_unwindDispatcher;
12395     IRequestImpl_vTable.free := @IRequestImpl_freeDispatcher;
12396    
12397     IEventsImpl_vTable := EventsVTable.create;
12398     IEventsImpl_vTable.version := 3;
12399     IEventsImpl_vTable.addRef := @IEventsImpl_addRefDispatcher;
12400     IEventsImpl_vTable.release := @IEventsImpl_releaseDispatcher;
12401     IEventsImpl_vTable.cancel := @IEventsImpl_cancelDispatcher;
12402    
12403     IAttachmentImpl_vTable := AttachmentVTable.create;
12404     IAttachmentImpl_vTable.version := 20;
12405     IAttachmentImpl_vTable.addRef := @IAttachmentImpl_addRefDispatcher;
12406     IAttachmentImpl_vTable.release := @IAttachmentImpl_releaseDispatcher;
12407     IAttachmentImpl_vTable.getInfo := @IAttachmentImpl_getInfoDispatcher;
12408     IAttachmentImpl_vTable.startTransaction := @IAttachmentImpl_startTransactionDispatcher;
12409     IAttachmentImpl_vTable.reconnectTransaction := @IAttachmentImpl_reconnectTransactionDispatcher;
12410     IAttachmentImpl_vTable.compileRequest := @IAttachmentImpl_compileRequestDispatcher;
12411     IAttachmentImpl_vTable.transactRequest := @IAttachmentImpl_transactRequestDispatcher;
12412     IAttachmentImpl_vTable.createBlob := @IAttachmentImpl_createBlobDispatcher;
12413     IAttachmentImpl_vTable.openBlob := @IAttachmentImpl_openBlobDispatcher;
12414     IAttachmentImpl_vTable.getSlice := @IAttachmentImpl_getSliceDispatcher;
12415     IAttachmentImpl_vTable.putSlice := @IAttachmentImpl_putSliceDispatcher;
12416     IAttachmentImpl_vTable.executeDyn := @IAttachmentImpl_executeDynDispatcher;
12417     IAttachmentImpl_vTable.prepare := @IAttachmentImpl_prepareDispatcher;
12418     IAttachmentImpl_vTable.execute := @IAttachmentImpl_executeDispatcher;
12419     IAttachmentImpl_vTable.openCursor := @IAttachmentImpl_openCursorDispatcher;
12420     IAttachmentImpl_vTable.queEvents := @IAttachmentImpl_queEventsDispatcher;
12421     IAttachmentImpl_vTable.cancelOperation := @IAttachmentImpl_cancelOperationDispatcher;
12422     IAttachmentImpl_vTable.ping := @IAttachmentImpl_pingDispatcher;
12423     IAttachmentImpl_vTable.detach := @IAttachmentImpl_detachDispatcher;
12424     IAttachmentImpl_vTable.dropDatabase := @IAttachmentImpl_dropDatabaseDispatcher;
12425    
12426     IServiceImpl_vTable := ServiceVTable.create;
12427     IServiceImpl_vTable.version := 5;
12428     IServiceImpl_vTable.addRef := @IServiceImpl_addRefDispatcher;
12429     IServiceImpl_vTable.release := @IServiceImpl_releaseDispatcher;
12430     IServiceImpl_vTable.detach := @IServiceImpl_detachDispatcher;
12431     IServiceImpl_vTable.query := @IServiceImpl_queryDispatcher;
12432     IServiceImpl_vTable.start := @IServiceImpl_startDispatcher;
12433    
12434     IProviderImpl_vTable := ProviderVTable.create;
12435     IProviderImpl_vTable.version := 9;
12436     IProviderImpl_vTable.addRef := @IProviderImpl_addRefDispatcher;
12437     IProviderImpl_vTable.release := @IProviderImpl_releaseDispatcher;
12438     IProviderImpl_vTable.setOwner := @IProviderImpl_setOwnerDispatcher;
12439     IProviderImpl_vTable.getOwner := @IProviderImpl_getOwnerDispatcher;
12440     IProviderImpl_vTable.attachDatabase := @IProviderImpl_attachDatabaseDispatcher;
12441     IProviderImpl_vTable.createDatabase := @IProviderImpl_createDatabaseDispatcher;
12442     IProviderImpl_vTable.attachServiceManager := @IProviderImpl_attachServiceManagerDispatcher;
12443     IProviderImpl_vTable.shutdown := @IProviderImpl_shutdownDispatcher;
12444     IProviderImpl_vTable.setDbCryptCallback := @IProviderImpl_setDbCryptCallbackDispatcher;
12445    
12446     IDtcStartImpl_vTable := DtcStartVTable.create;
12447     IDtcStartImpl_vTable.version := 4;
12448     IDtcStartImpl_vTable.dispose := @IDtcStartImpl_disposeDispatcher;
12449     IDtcStartImpl_vTable.addAttachment := @IDtcStartImpl_addAttachmentDispatcher;
12450     IDtcStartImpl_vTable.addWithTpb := @IDtcStartImpl_addWithTpbDispatcher;
12451     IDtcStartImpl_vTable.start := @IDtcStartImpl_startDispatcher;
12452    
12453     IDtcImpl_vTable := DtcVTable.create;
12454     IDtcImpl_vTable.version := 2;
12455     IDtcImpl_vTable.join := @IDtcImpl_joinDispatcher;
12456     IDtcImpl_vTable.startBuilder := @IDtcImpl_startBuilderDispatcher;
12457    
12458     IAuthImpl_vTable := AuthVTable.create;
12459     IAuthImpl_vTable.version := 4;
12460     IAuthImpl_vTable.addRef := @IAuthImpl_addRefDispatcher;
12461     IAuthImpl_vTable.release := @IAuthImpl_releaseDispatcher;
12462     IAuthImpl_vTable.setOwner := @IAuthImpl_setOwnerDispatcher;
12463     IAuthImpl_vTable.getOwner := @IAuthImpl_getOwnerDispatcher;
12464    
12465     IWriterImpl_vTable := WriterVTable.create;
12466     IWriterImpl_vTable.version := 4;
12467     IWriterImpl_vTable.reset := @IWriterImpl_resetDispatcher;
12468     IWriterImpl_vTable.add := @IWriterImpl_addDispatcher;
12469     IWriterImpl_vTable.setType := @IWriterImpl_setTypeDispatcher;
12470     IWriterImpl_vTable.setDb := @IWriterImpl_setDbDispatcher;
12471    
12472     IServerBlockImpl_vTable := ServerBlockVTable.create;
12473     IServerBlockImpl_vTable.version := 4;
12474     IServerBlockImpl_vTable.getLogin := @IServerBlockImpl_getLoginDispatcher;
12475     IServerBlockImpl_vTable.getData := @IServerBlockImpl_getDataDispatcher;
12476     IServerBlockImpl_vTable.putData := @IServerBlockImpl_putDataDispatcher;
12477     IServerBlockImpl_vTable.newKey := @IServerBlockImpl_newKeyDispatcher;
12478    
12479     IClientBlockImpl_vTable := ClientBlockVTable.create;
12480     IClientBlockImpl_vTable.version := 7;
12481     IClientBlockImpl_vTable.addRef := @IClientBlockImpl_addRefDispatcher;
12482     IClientBlockImpl_vTable.release := @IClientBlockImpl_releaseDispatcher;
12483     IClientBlockImpl_vTable.getLogin := @IClientBlockImpl_getLoginDispatcher;
12484     IClientBlockImpl_vTable.getPassword := @IClientBlockImpl_getPasswordDispatcher;
12485     IClientBlockImpl_vTable.getData := @IClientBlockImpl_getDataDispatcher;
12486     IClientBlockImpl_vTable.putData := @IClientBlockImpl_putDataDispatcher;
12487     IClientBlockImpl_vTable.newKey := @IClientBlockImpl_newKeyDispatcher;
12488    
12489     IServerImpl_vTable := ServerVTable.create;
12490     IServerImpl_vTable.version := 5;
12491     IServerImpl_vTable.addRef := @IServerImpl_addRefDispatcher;
12492     IServerImpl_vTable.release := @IServerImpl_releaseDispatcher;
12493     IServerImpl_vTable.setOwner := @IServerImpl_setOwnerDispatcher;
12494     IServerImpl_vTable.getOwner := @IServerImpl_getOwnerDispatcher;
12495     IServerImpl_vTable.authenticate := @IServerImpl_authenticateDispatcher;
12496    
12497     IClientImpl_vTable := ClientVTable.create;
12498     IClientImpl_vTable.version := 5;
12499     IClientImpl_vTable.addRef := @IClientImpl_addRefDispatcher;
12500     IClientImpl_vTable.release := @IClientImpl_releaseDispatcher;
12501     IClientImpl_vTable.setOwner := @IClientImpl_setOwnerDispatcher;
12502     IClientImpl_vTable.getOwner := @IClientImpl_getOwnerDispatcher;
12503     IClientImpl_vTable.authenticate := @IClientImpl_authenticateDispatcher;
12504    
12505     IUserFieldImpl_vTable := UserFieldVTable.create;
12506     IUserFieldImpl_vTable.version := 3;
12507     IUserFieldImpl_vTable.entered := @IUserFieldImpl_enteredDispatcher;
12508     IUserFieldImpl_vTable.specified := @IUserFieldImpl_specifiedDispatcher;
12509     IUserFieldImpl_vTable.setEntered := @IUserFieldImpl_setEnteredDispatcher;
12510    
12511     ICharUserFieldImpl_vTable := CharUserFieldVTable.create;
12512     ICharUserFieldImpl_vTable.version := 5;
12513     ICharUserFieldImpl_vTable.entered := @ICharUserFieldImpl_enteredDispatcher;
12514     ICharUserFieldImpl_vTable.specified := @ICharUserFieldImpl_specifiedDispatcher;
12515     ICharUserFieldImpl_vTable.setEntered := @ICharUserFieldImpl_setEnteredDispatcher;
12516     ICharUserFieldImpl_vTable.get := @ICharUserFieldImpl_getDispatcher;
12517     ICharUserFieldImpl_vTable.set_ := @ICharUserFieldImpl_set_Dispatcher;
12518    
12519     IIntUserFieldImpl_vTable := IntUserFieldVTable.create;
12520     IIntUserFieldImpl_vTable.version := 5;
12521     IIntUserFieldImpl_vTable.entered := @IIntUserFieldImpl_enteredDispatcher;
12522     IIntUserFieldImpl_vTable.specified := @IIntUserFieldImpl_specifiedDispatcher;
12523     IIntUserFieldImpl_vTable.setEntered := @IIntUserFieldImpl_setEnteredDispatcher;
12524     IIntUserFieldImpl_vTable.get := @IIntUserFieldImpl_getDispatcher;
12525     IIntUserFieldImpl_vTable.set_ := @IIntUserFieldImpl_set_Dispatcher;
12526    
12527     IUserImpl_vTable := UserVTable.create;
12528     IUserImpl_vTable.version := 11;
12529     IUserImpl_vTable.operation := @IUserImpl_operationDispatcher;
12530     IUserImpl_vTable.userName := @IUserImpl_userNameDispatcher;
12531     IUserImpl_vTable.password := @IUserImpl_passwordDispatcher;
12532     IUserImpl_vTable.firstName := @IUserImpl_firstNameDispatcher;
12533     IUserImpl_vTable.lastName := @IUserImpl_lastNameDispatcher;
12534     IUserImpl_vTable.middleName := @IUserImpl_middleNameDispatcher;
12535     IUserImpl_vTable.comment := @IUserImpl_commentDispatcher;
12536     IUserImpl_vTable.attributes := @IUserImpl_attributesDispatcher;
12537     IUserImpl_vTable.active := @IUserImpl_activeDispatcher;
12538     IUserImpl_vTable.admin := @IUserImpl_adminDispatcher;
12539     IUserImpl_vTable.clear := @IUserImpl_clearDispatcher;
12540    
12541     IListUsersImpl_vTable := ListUsersVTable.create;
12542     IListUsersImpl_vTable.version := 1;
12543     IListUsersImpl_vTable.list := @IListUsersImpl_listDispatcher;
12544    
12545     ILogonInfoImpl_vTable := LogonInfoVTable.create;
12546     ILogonInfoImpl_vTable.version := 5;
12547     ILogonInfoImpl_vTable.name := @ILogonInfoImpl_nameDispatcher;
12548     ILogonInfoImpl_vTable.role := @ILogonInfoImpl_roleDispatcher;
12549     ILogonInfoImpl_vTable.networkProtocol := @ILogonInfoImpl_networkProtocolDispatcher;
12550     ILogonInfoImpl_vTable.remoteAddress := @ILogonInfoImpl_remoteAddressDispatcher;
12551     ILogonInfoImpl_vTable.authBlock := @ILogonInfoImpl_authBlockDispatcher;
12552    
12553     IManagementImpl_vTable := ManagementVTable.create;
12554     IManagementImpl_vTable.version := 8;
12555     IManagementImpl_vTable.addRef := @IManagementImpl_addRefDispatcher;
12556     IManagementImpl_vTable.release := @IManagementImpl_releaseDispatcher;
12557     IManagementImpl_vTable.setOwner := @IManagementImpl_setOwnerDispatcher;
12558     IManagementImpl_vTable.getOwner := @IManagementImpl_getOwnerDispatcher;
12559     IManagementImpl_vTable.start := @IManagementImpl_startDispatcher;
12560     IManagementImpl_vTable.execute := @IManagementImpl_executeDispatcher;
12561     IManagementImpl_vTable.commit := @IManagementImpl_commitDispatcher;
12562     IManagementImpl_vTable.rollback := @IManagementImpl_rollbackDispatcher;
12563    
12564     IWireCryptPluginImpl_vTable := WireCryptPluginVTable.create;
12565     IWireCryptPluginImpl_vTable.version := 8;
12566     IWireCryptPluginImpl_vTable.addRef := @IWireCryptPluginImpl_addRefDispatcher;
12567     IWireCryptPluginImpl_vTable.release := @IWireCryptPluginImpl_releaseDispatcher;
12568     IWireCryptPluginImpl_vTable.setOwner := @IWireCryptPluginImpl_setOwnerDispatcher;
12569     IWireCryptPluginImpl_vTable.getOwner := @IWireCryptPluginImpl_getOwnerDispatcher;
12570     IWireCryptPluginImpl_vTable.getKnownTypes := @IWireCryptPluginImpl_getKnownTypesDispatcher;
12571     IWireCryptPluginImpl_vTable.setKey := @IWireCryptPluginImpl_setKeyDispatcher;
12572     IWireCryptPluginImpl_vTable.encrypt := @IWireCryptPluginImpl_encryptDispatcher;
12573     IWireCryptPluginImpl_vTable.decrypt := @IWireCryptPluginImpl_decryptDispatcher;
12574    
12575     ICryptKeyCallbackImpl_vTable := CryptKeyCallbackVTable.create;
12576     ICryptKeyCallbackImpl_vTable.version := 1;
12577     ICryptKeyCallbackImpl_vTable.callback := @ICryptKeyCallbackImpl_callbackDispatcher;
12578    
12579     IKeyHolderPluginImpl_vTable := KeyHolderPluginVTable.create;
12580     IKeyHolderPluginImpl_vTable.version := 6;
12581     IKeyHolderPluginImpl_vTable.addRef := @IKeyHolderPluginImpl_addRefDispatcher;
12582     IKeyHolderPluginImpl_vTable.release := @IKeyHolderPluginImpl_releaseDispatcher;
12583     IKeyHolderPluginImpl_vTable.setOwner := @IKeyHolderPluginImpl_setOwnerDispatcher;
12584     IKeyHolderPluginImpl_vTable.getOwner := @IKeyHolderPluginImpl_getOwnerDispatcher;
12585     IKeyHolderPluginImpl_vTable.keyCallback := @IKeyHolderPluginImpl_keyCallbackDispatcher;
12586     IKeyHolderPluginImpl_vTable.keyHandle := @IKeyHolderPluginImpl_keyHandleDispatcher;
12587    
12588     IDbCryptPluginImpl_vTable := DbCryptPluginVTable.create;
12589     IDbCryptPluginImpl_vTable.version := 7;
12590     IDbCryptPluginImpl_vTable.addRef := @IDbCryptPluginImpl_addRefDispatcher;
12591     IDbCryptPluginImpl_vTable.release := @IDbCryptPluginImpl_releaseDispatcher;
12592     IDbCryptPluginImpl_vTable.setOwner := @IDbCryptPluginImpl_setOwnerDispatcher;
12593     IDbCryptPluginImpl_vTable.getOwner := @IDbCryptPluginImpl_getOwnerDispatcher;
12594     IDbCryptPluginImpl_vTable.setKey := @IDbCryptPluginImpl_setKeyDispatcher;
12595     IDbCryptPluginImpl_vTable.encrypt := @IDbCryptPluginImpl_encryptDispatcher;
12596     IDbCryptPluginImpl_vTable.decrypt := @IDbCryptPluginImpl_decryptDispatcher;
12597    
12598     IExternalContextImpl_vTable := ExternalContextVTable.create;
12599     IExternalContextImpl_vTable.version := 10;
12600     IExternalContextImpl_vTable.getMaster := @IExternalContextImpl_getMasterDispatcher;
12601     IExternalContextImpl_vTable.getEngine := @IExternalContextImpl_getEngineDispatcher;
12602     IExternalContextImpl_vTable.getAttachment := @IExternalContextImpl_getAttachmentDispatcher;
12603     IExternalContextImpl_vTable.getTransaction := @IExternalContextImpl_getTransactionDispatcher;
12604     IExternalContextImpl_vTable.getUserName := @IExternalContextImpl_getUserNameDispatcher;
12605     IExternalContextImpl_vTable.getDatabaseName := @IExternalContextImpl_getDatabaseNameDispatcher;
12606     IExternalContextImpl_vTable.getClientCharSet := @IExternalContextImpl_getClientCharSetDispatcher;
12607     IExternalContextImpl_vTable.obtainInfoCode := @IExternalContextImpl_obtainInfoCodeDispatcher;
12608     IExternalContextImpl_vTable.getInfo := @IExternalContextImpl_getInfoDispatcher;
12609     IExternalContextImpl_vTable.setInfo := @IExternalContextImpl_setInfoDispatcher;
12610    
12611     IExternalResultSetImpl_vTable := ExternalResultSetVTable.create;
12612     IExternalResultSetImpl_vTable.version := 2;
12613     IExternalResultSetImpl_vTable.dispose := @IExternalResultSetImpl_disposeDispatcher;
12614     IExternalResultSetImpl_vTable.fetch := @IExternalResultSetImpl_fetchDispatcher;
12615    
12616     IExternalFunctionImpl_vTable := ExternalFunctionVTable.create;
12617     IExternalFunctionImpl_vTable.version := 3;
12618     IExternalFunctionImpl_vTable.dispose := @IExternalFunctionImpl_disposeDispatcher;
12619     IExternalFunctionImpl_vTable.getCharSet := @IExternalFunctionImpl_getCharSetDispatcher;
12620     IExternalFunctionImpl_vTable.execute := @IExternalFunctionImpl_executeDispatcher;
12621    
12622     IExternalProcedureImpl_vTable := ExternalProcedureVTable.create;
12623     IExternalProcedureImpl_vTable.version := 3;
12624     IExternalProcedureImpl_vTable.dispose := @IExternalProcedureImpl_disposeDispatcher;
12625     IExternalProcedureImpl_vTable.getCharSet := @IExternalProcedureImpl_getCharSetDispatcher;
12626     IExternalProcedureImpl_vTable.open := @IExternalProcedureImpl_openDispatcher;
12627    
12628     IExternalTriggerImpl_vTable := ExternalTriggerVTable.create;
12629     IExternalTriggerImpl_vTable.version := 3;
12630     IExternalTriggerImpl_vTable.dispose := @IExternalTriggerImpl_disposeDispatcher;
12631     IExternalTriggerImpl_vTable.getCharSet := @IExternalTriggerImpl_getCharSetDispatcher;
12632     IExternalTriggerImpl_vTable.execute := @IExternalTriggerImpl_executeDispatcher;
12633    
12634     IRoutineMetadataImpl_vTable := RoutineMetadataVTable.create;
12635     IRoutineMetadataImpl_vTable.version := 9;
12636     IRoutineMetadataImpl_vTable.getPackage := @IRoutineMetadataImpl_getPackageDispatcher;
12637     IRoutineMetadataImpl_vTable.getName := @IRoutineMetadataImpl_getNameDispatcher;
12638     IRoutineMetadataImpl_vTable.getEntryPoint := @IRoutineMetadataImpl_getEntryPointDispatcher;
12639     IRoutineMetadataImpl_vTable.getBody := @IRoutineMetadataImpl_getBodyDispatcher;
12640     IRoutineMetadataImpl_vTable.getInputMetadata := @IRoutineMetadataImpl_getInputMetadataDispatcher;
12641     IRoutineMetadataImpl_vTable.getOutputMetadata := @IRoutineMetadataImpl_getOutputMetadataDispatcher;
12642     IRoutineMetadataImpl_vTable.getTriggerMetadata := @IRoutineMetadataImpl_getTriggerMetadataDispatcher;
12643     IRoutineMetadataImpl_vTable.getTriggerTable := @IRoutineMetadataImpl_getTriggerTableDispatcher;
12644     IRoutineMetadataImpl_vTable.getTriggerType := @IRoutineMetadataImpl_getTriggerTypeDispatcher;
12645    
12646     IExternalEngineImpl_vTable := ExternalEngineVTable.create;
12647     IExternalEngineImpl_vTable.version := 10;
12648     IExternalEngineImpl_vTable.addRef := @IExternalEngineImpl_addRefDispatcher;
12649     IExternalEngineImpl_vTable.release := @IExternalEngineImpl_releaseDispatcher;
12650     IExternalEngineImpl_vTable.setOwner := @IExternalEngineImpl_setOwnerDispatcher;
12651     IExternalEngineImpl_vTable.getOwner := @IExternalEngineImpl_getOwnerDispatcher;
12652     IExternalEngineImpl_vTable.open := @IExternalEngineImpl_openDispatcher;
12653     IExternalEngineImpl_vTable.openAttachment := @IExternalEngineImpl_openAttachmentDispatcher;
12654     IExternalEngineImpl_vTable.closeAttachment := @IExternalEngineImpl_closeAttachmentDispatcher;
12655     IExternalEngineImpl_vTable.makeFunction := @IExternalEngineImpl_makeFunctionDispatcher;
12656     IExternalEngineImpl_vTable.makeProcedure := @IExternalEngineImpl_makeProcedureDispatcher;
12657     IExternalEngineImpl_vTable.makeTrigger := @IExternalEngineImpl_makeTriggerDispatcher;
12658    
12659     ITimerImpl_vTable := TimerVTable.create;
12660     ITimerImpl_vTable.version := 3;
12661     ITimerImpl_vTable.addRef := @ITimerImpl_addRefDispatcher;
12662     ITimerImpl_vTable.release := @ITimerImpl_releaseDispatcher;
12663     ITimerImpl_vTable.handler := @ITimerImpl_handlerDispatcher;
12664    
12665     ITimerControlImpl_vTable := TimerControlVTable.create;
12666     ITimerControlImpl_vTable.version := 2;
12667     ITimerControlImpl_vTable.start := @ITimerControlImpl_startDispatcher;
12668     ITimerControlImpl_vTable.stop := @ITimerControlImpl_stopDispatcher;
12669    
12670     IVersionCallbackImpl_vTable := VersionCallbackVTable.create;
12671     IVersionCallbackImpl_vTable.version := 1;
12672     IVersionCallbackImpl_vTable.callback := @IVersionCallbackImpl_callbackDispatcher;
12673    
12674     IUtilImpl_vTable := UtilVTable.create;
12675     IUtilImpl_vTable.version := 13;
12676     IUtilImpl_vTable.getFbVersion := @IUtilImpl_getFbVersionDispatcher;
12677     IUtilImpl_vTable.loadBlob := @IUtilImpl_loadBlobDispatcher;
12678     IUtilImpl_vTable.dumpBlob := @IUtilImpl_dumpBlobDispatcher;
12679     IUtilImpl_vTable.getPerfCounters := @IUtilImpl_getPerfCountersDispatcher;
12680     IUtilImpl_vTable.executeCreateDatabase := @IUtilImpl_executeCreateDatabaseDispatcher;
12681     IUtilImpl_vTable.decodeDate := @IUtilImpl_decodeDateDispatcher;
12682     IUtilImpl_vTable.decodeTime := @IUtilImpl_decodeTimeDispatcher;
12683     IUtilImpl_vTable.encodeDate := @IUtilImpl_encodeDateDispatcher;
12684     IUtilImpl_vTable.encodeTime := @IUtilImpl_encodeTimeDispatcher;
12685     IUtilImpl_vTable.formatStatus := @IUtilImpl_formatStatusDispatcher;
12686     IUtilImpl_vTable.getClientVersion := @IUtilImpl_getClientVersionDispatcher;
12687     IUtilImpl_vTable.getXpbBuilder := @IUtilImpl_getXpbBuilderDispatcher;
12688     IUtilImpl_vTable.setOffsets := @IUtilImpl_setOffsetsDispatcher;
12689    
12690     IOffsetsCallbackImpl_vTable := OffsetsCallbackVTable.create;
12691     IOffsetsCallbackImpl_vTable.version := 1;
12692     IOffsetsCallbackImpl_vTable.setOffset := @IOffsetsCallbackImpl_setOffsetDispatcher;
12693    
12694     IXpbBuilderImpl_vTable := XpbBuilderVTable.create;
12695     IXpbBuilderImpl_vTable.version := 21;
12696     IXpbBuilderImpl_vTable.dispose := @IXpbBuilderImpl_disposeDispatcher;
12697     IXpbBuilderImpl_vTable.clear := @IXpbBuilderImpl_clearDispatcher;
12698     IXpbBuilderImpl_vTable.removeCurrent := @IXpbBuilderImpl_removeCurrentDispatcher;
12699     IXpbBuilderImpl_vTable.insertInt := @IXpbBuilderImpl_insertIntDispatcher;
12700     IXpbBuilderImpl_vTable.insertBigInt := @IXpbBuilderImpl_insertBigIntDispatcher;
12701     IXpbBuilderImpl_vTable.insertBytes := @IXpbBuilderImpl_insertBytesDispatcher;
12702     IXpbBuilderImpl_vTable.insertString := @IXpbBuilderImpl_insertStringDispatcher;
12703     IXpbBuilderImpl_vTable.insertTag := @IXpbBuilderImpl_insertTagDispatcher;
12704     IXpbBuilderImpl_vTable.isEof := @IXpbBuilderImpl_isEofDispatcher;
12705     IXpbBuilderImpl_vTable.moveNext := @IXpbBuilderImpl_moveNextDispatcher;
12706     IXpbBuilderImpl_vTable.rewind := @IXpbBuilderImpl_rewindDispatcher;
12707     IXpbBuilderImpl_vTable.findFirst := @IXpbBuilderImpl_findFirstDispatcher;
12708     IXpbBuilderImpl_vTable.findNext := @IXpbBuilderImpl_findNextDispatcher;
12709     IXpbBuilderImpl_vTable.getTag := @IXpbBuilderImpl_getTagDispatcher;
12710     IXpbBuilderImpl_vTable.getLength := @IXpbBuilderImpl_getLengthDispatcher;
12711     IXpbBuilderImpl_vTable.getInt := @IXpbBuilderImpl_getIntDispatcher;
12712     IXpbBuilderImpl_vTable.getBigInt := @IXpbBuilderImpl_getBigIntDispatcher;
12713     IXpbBuilderImpl_vTable.getString := @IXpbBuilderImpl_getStringDispatcher;
12714     IXpbBuilderImpl_vTable.getBytes := @IXpbBuilderImpl_getBytesDispatcher;
12715     IXpbBuilderImpl_vTable.getBufferLength := @IXpbBuilderImpl_getBufferLengthDispatcher;
12716     IXpbBuilderImpl_vTable.getBuffer := @IXpbBuilderImpl_getBufferDispatcher;
12717    
12718     ITraceConnectionImpl_vTable := TraceConnectionVTable.create;
12719     ITraceConnectionImpl_vTable.version := 9;
12720     ITraceConnectionImpl_vTable.getKind := @ITraceConnectionImpl_getKindDispatcher;
12721     ITraceConnectionImpl_vTable.getProcessID := @ITraceConnectionImpl_getProcessIDDispatcher;
12722     ITraceConnectionImpl_vTable.getUserName := @ITraceConnectionImpl_getUserNameDispatcher;
12723     ITraceConnectionImpl_vTable.getRoleName := @ITraceConnectionImpl_getRoleNameDispatcher;
12724     ITraceConnectionImpl_vTable.getCharSet := @ITraceConnectionImpl_getCharSetDispatcher;
12725     ITraceConnectionImpl_vTable.getRemoteProtocol := @ITraceConnectionImpl_getRemoteProtocolDispatcher;
12726     ITraceConnectionImpl_vTable.getRemoteAddress := @ITraceConnectionImpl_getRemoteAddressDispatcher;
12727     ITraceConnectionImpl_vTable.getRemoteProcessID := @ITraceConnectionImpl_getRemoteProcessIDDispatcher;
12728     ITraceConnectionImpl_vTable.getRemoteProcessName := @ITraceConnectionImpl_getRemoteProcessNameDispatcher;
12729    
12730     ITraceDatabaseConnectionImpl_vTable := TraceDatabaseConnectionVTable.create;
12731     ITraceDatabaseConnectionImpl_vTable.version := 11;
12732     ITraceDatabaseConnectionImpl_vTable.getKind := @ITraceDatabaseConnectionImpl_getKindDispatcher;
12733     ITraceDatabaseConnectionImpl_vTable.getProcessID := @ITraceDatabaseConnectionImpl_getProcessIDDispatcher;
12734     ITraceDatabaseConnectionImpl_vTable.getUserName := @ITraceDatabaseConnectionImpl_getUserNameDispatcher;
12735     ITraceDatabaseConnectionImpl_vTable.getRoleName := @ITraceDatabaseConnectionImpl_getRoleNameDispatcher;
12736     ITraceDatabaseConnectionImpl_vTable.getCharSet := @ITraceDatabaseConnectionImpl_getCharSetDispatcher;
12737     ITraceDatabaseConnectionImpl_vTable.getRemoteProtocol := @ITraceDatabaseConnectionImpl_getRemoteProtocolDispatcher;
12738     ITraceDatabaseConnectionImpl_vTable.getRemoteAddress := @ITraceDatabaseConnectionImpl_getRemoteAddressDispatcher;
12739     ITraceDatabaseConnectionImpl_vTable.getRemoteProcessID := @ITraceDatabaseConnectionImpl_getRemoteProcessIDDispatcher;
12740     ITraceDatabaseConnectionImpl_vTable.getRemoteProcessName := @ITraceDatabaseConnectionImpl_getRemoteProcessNameDispatcher;
12741     ITraceDatabaseConnectionImpl_vTable.getConnectionID := @ITraceDatabaseConnectionImpl_getConnectionIDDispatcher;
12742     ITraceDatabaseConnectionImpl_vTable.getDatabaseName := @ITraceDatabaseConnectionImpl_getDatabaseNameDispatcher;
12743    
12744     ITraceTransactionImpl_vTable := TraceTransactionVTable.create;
12745     ITraceTransactionImpl_vTable.version := 5;
12746     ITraceTransactionImpl_vTable.getTransactionID := @ITraceTransactionImpl_getTransactionIDDispatcher;
12747     ITraceTransactionImpl_vTable.getReadOnly := @ITraceTransactionImpl_getReadOnlyDispatcher;
12748     ITraceTransactionImpl_vTable.getWait := @ITraceTransactionImpl_getWaitDispatcher;
12749     ITraceTransactionImpl_vTable.getIsolation := @ITraceTransactionImpl_getIsolationDispatcher;
12750     ITraceTransactionImpl_vTable.getPerf := @ITraceTransactionImpl_getPerfDispatcher;
12751    
12752     ITraceParamsImpl_vTable := TraceParamsVTable.create;
12753     ITraceParamsImpl_vTable.version := 2;
12754     ITraceParamsImpl_vTable.getCount := @ITraceParamsImpl_getCountDispatcher;
12755     ITraceParamsImpl_vTable.getParam := @ITraceParamsImpl_getParamDispatcher;
12756    
12757     ITraceStatementImpl_vTable := TraceStatementVTable.create;
12758     ITraceStatementImpl_vTable.version := 2;
12759     ITraceStatementImpl_vTable.getStmtID := @ITraceStatementImpl_getStmtIDDispatcher;
12760     ITraceStatementImpl_vTable.getPerf := @ITraceStatementImpl_getPerfDispatcher;
12761    
12762     ITraceSQLStatementImpl_vTable := TraceSQLStatementVTable.create;
12763     ITraceSQLStatementImpl_vTable.version := 7;
12764     ITraceSQLStatementImpl_vTable.getStmtID := @ITraceSQLStatementImpl_getStmtIDDispatcher;
12765     ITraceSQLStatementImpl_vTable.getPerf := @ITraceSQLStatementImpl_getPerfDispatcher;
12766     ITraceSQLStatementImpl_vTable.getText := @ITraceSQLStatementImpl_getTextDispatcher;
12767     ITraceSQLStatementImpl_vTable.getPlan := @ITraceSQLStatementImpl_getPlanDispatcher;
12768     ITraceSQLStatementImpl_vTable.getInputs := @ITraceSQLStatementImpl_getInputsDispatcher;
12769     ITraceSQLStatementImpl_vTable.getTextUTF8 := @ITraceSQLStatementImpl_getTextUTF8Dispatcher;
12770     ITraceSQLStatementImpl_vTable.getExplainedPlan := @ITraceSQLStatementImpl_getExplainedPlanDispatcher;
12771    
12772     ITraceBLRStatementImpl_vTable := TraceBLRStatementVTable.create;
12773     ITraceBLRStatementImpl_vTable.version := 5;
12774     ITraceBLRStatementImpl_vTable.getStmtID := @ITraceBLRStatementImpl_getStmtIDDispatcher;
12775     ITraceBLRStatementImpl_vTable.getPerf := @ITraceBLRStatementImpl_getPerfDispatcher;
12776     ITraceBLRStatementImpl_vTable.getData := @ITraceBLRStatementImpl_getDataDispatcher;
12777     ITraceBLRStatementImpl_vTable.getDataLength := @ITraceBLRStatementImpl_getDataLengthDispatcher;
12778     ITraceBLRStatementImpl_vTable.getText := @ITraceBLRStatementImpl_getTextDispatcher;
12779    
12780     ITraceDYNRequestImpl_vTable := TraceDYNRequestVTable.create;
12781     ITraceDYNRequestImpl_vTable.version := 3;
12782     ITraceDYNRequestImpl_vTable.getData := @ITraceDYNRequestImpl_getDataDispatcher;
12783     ITraceDYNRequestImpl_vTable.getDataLength := @ITraceDYNRequestImpl_getDataLengthDispatcher;
12784     ITraceDYNRequestImpl_vTable.getText := @ITraceDYNRequestImpl_getTextDispatcher;
12785    
12786     ITraceContextVariableImpl_vTable := TraceContextVariableVTable.create;
12787     ITraceContextVariableImpl_vTable.version := 3;
12788     ITraceContextVariableImpl_vTable.getNameSpace := @ITraceContextVariableImpl_getNameSpaceDispatcher;
12789     ITraceContextVariableImpl_vTable.getVarName := @ITraceContextVariableImpl_getVarNameDispatcher;
12790     ITraceContextVariableImpl_vTable.getVarValue := @ITraceContextVariableImpl_getVarValueDispatcher;
12791    
12792     ITraceProcedureImpl_vTable := TraceProcedureVTable.create;
12793     ITraceProcedureImpl_vTable.version := 3;
12794     ITraceProcedureImpl_vTable.getProcName := @ITraceProcedureImpl_getProcNameDispatcher;
12795     ITraceProcedureImpl_vTable.getInputs := @ITraceProcedureImpl_getInputsDispatcher;
12796     ITraceProcedureImpl_vTable.getPerf := @ITraceProcedureImpl_getPerfDispatcher;
12797    
12798     ITraceFunctionImpl_vTable := TraceFunctionVTable.create;
12799     ITraceFunctionImpl_vTable.version := 4;
12800     ITraceFunctionImpl_vTable.getFuncName := @ITraceFunctionImpl_getFuncNameDispatcher;
12801     ITraceFunctionImpl_vTable.getInputs := @ITraceFunctionImpl_getInputsDispatcher;
12802     ITraceFunctionImpl_vTable.getResult := @ITraceFunctionImpl_getResultDispatcher;
12803     ITraceFunctionImpl_vTable.getPerf := @ITraceFunctionImpl_getPerfDispatcher;
12804    
12805     ITraceTriggerImpl_vTable := TraceTriggerVTable.create;
12806     ITraceTriggerImpl_vTable.version := 5;
12807     ITraceTriggerImpl_vTable.getTriggerName := @ITraceTriggerImpl_getTriggerNameDispatcher;
12808     ITraceTriggerImpl_vTable.getRelationName := @ITraceTriggerImpl_getRelationNameDispatcher;
12809     ITraceTriggerImpl_vTable.getAction := @ITraceTriggerImpl_getActionDispatcher;
12810     ITraceTriggerImpl_vTable.getWhich := @ITraceTriggerImpl_getWhichDispatcher;
12811     ITraceTriggerImpl_vTable.getPerf := @ITraceTriggerImpl_getPerfDispatcher;
12812    
12813     ITraceServiceConnectionImpl_vTable := TraceServiceConnectionVTable.create;
12814     ITraceServiceConnectionImpl_vTable.version := 12;
12815     ITraceServiceConnectionImpl_vTable.getKind := @ITraceServiceConnectionImpl_getKindDispatcher;
12816     ITraceServiceConnectionImpl_vTable.getProcessID := @ITraceServiceConnectionImpl_getProcessIDDispatcher;
12817     ITraceServiceConnectionImpl_vTable.getUserName := @ITraceServiceConnectionImpl_getUserNameDispatcher;
12818     ITraceServiceConnectionImpl_vTable.getRoleName := @ITraceServiceConnectionImpl_getRoleNameDispatcher;
12819     ITraceServiceConnectionImpl_vTable.getCharSet := @ITraceServiceConnectionImpl_getCharSetDispatcher;
12820     ITraceServiceConnectionImpl_vTable.getRemoteProtocol := @ITraceServiceConnectionImpl_getRemoteProtocolDispatcher;
12821     ITraceServiceConnectionImpl_vTable.getRemoteAddress := @ITraceServiceConnectionImpl_getRemoteAddressDispatcher;
12822     ITraceServiceConnectionImpl_vTable.getRemoteProcessID := @ITraceServiceConnectionImpl_getRemoteProcessIDDispatcher;
12823     ITraceServiceConnectionImpl_vTable.getRemoteProcessName := @ITraceServiceConnectionImpl_getRemoteProcessNameDispatcher;
12824     ITraceServiceConnectionImpl_vTable.getServiceID := @ITraceServiceConnectionImpl_getServiceIDDispatcher;
12825     ITraceServiceConnectionImpl_vTable.getServiceMgr := @ITraceServiceConnectionImpl_getServiceMgrDispatcher;
12826     ITraceServiceConnectionImpl_vTable.getServiceName := @ITraceServiceConnectionImpl_getServiceNameDispatcher;
12827    
12828     ITraceStatusVectorImpl_vTable := TraceStatusVectorVTable.create;
12829     ITraceStatusVectorImpl_vTable.version := 4;
12830     ITraceStatusVectorImpl_vTable.hasError := @ITraceStatusVectorImpl_hasErrorDispatcher;
12831     ITraceStatusVectorImpl_vTable.hasWarning := @ITraceStatusVectorImpl_hasWarningDispatcher;
12832     ITraceStatusVectorImpl_vTable.getStatus := @ITraceStatusVectorImpl_getStatusDispatcher;
12833     ITraceStatusVectorImpl_vTable.getText := @ITraceStatusVectorImpl_getTextDispatcher;
12834    
12835     ITraceSweepInfoImpl_vTable := TraceSweepInfoVTable.create;
12836     ITraceSweepInfoImpl_vTable.version := 5;
12837     ITraceSweepInfoImpl_vTable.getOIT := @ITraceSweepInfoImpl_getOITDispatcher;
12838     ITraceSweepInfoImpl_vTable.getOST := @ITraceSweepInfoImpl_getOSTDispatcher;
12839     ITraceSweepInfoImpl_vTable.getOAT := @ITraceSweepInfoImpl_getOATDispatcher;
12840     ITraceSweepInfoImpl_vTable.getNext := @ITraceSweepInfoImpl_getNextDispatcher;
12841     ITraceSweepInfoImpl_vTable.getPerf := @ITraceSweepInfoImpl_getPerfDispatcher;
12842    
12843     ITraceLogWriterImpl_vTable := TraceLogWriterVTable.create;
12844     ITraceLogWriterImpl_vTable.version := 3;
12845     ITraceLogWriterImpl_vTable.addRef := @ITraceLogWriterImpl_addRefDispatcher;
12846     ITraceLogWriterImpl_vTable.release := @ITraceLogWriterImpl_releaseDispatcher;
12847     ITraceLogWriterImpl_vTable.write := @ITraceLogWriterImpl_writeDispatcher;
12848    
12849     ITraceInitInfoImpl_vTable := TraceInitInfoVTable.create;
12850     ITraceInitInfoImpl_vTable.version := 7;
12851     ITraceInitInfoImpl_vTable.getConfigText := @ITraceInitInfoImpl_getConfigTextDispatcher;
12852     ITraceInitInfoImpl_vTable.getTraceSessionID := @ITraceInitInfoImpl_getTraceSessionIDDispatcher;
12853     ITraceInitInfoImpl_vTable.getTraceSessionName := @ITraceInitInfoImpl_getTraceSessionNameDispatcher;
12854     ITraceInitInfoImpl_vTable.getFirebirdRootDirectory := @ITraceInitInfoImpl_getFirebirdRootDirectoryDispatcher;
12855     ITraceInitInfoImpl_vTable.getDatabaseName := @ITraceInitInfoImpl_getDatabaseNameDispatcher;
12856     ITraceInitInfoImpl_vTable.getConnection := @ITraceInitInfoImpl_getConnectionDispatcher;
12857     ITraceInitInfoImpl_vTable.getLogWriter := @ITraceInitInfoImpl_getLogWriterDispatcher;
12858    
12859     ITracePluginImpl_vTable := TracePluginVTable.create;
12860     ITracePluginImpl_vTable.version := 23;
12861     ITracePluginImpl_vTable.addRef := @ITracePluginImpl_addRefDispatcher;
12862     ITracePluginImpl_vTable.release := @ITracePluginImpl_releaseDispatcher;
12863     ITracePluginImpl_vTable.trace_get_error := @ITracePluginImpl_trace_get_errorDispatcher;
12864     ITracePluginImpl_vTable.trace_attach := @ITracePluginImpl_trace_attachDispatcher;
12865     ITracePluginImpl_vTable.trace_detach := @ITracePluginImpl_trace_detachDispatcher;
12866     ITracePluginImpl_vTable.trace_transaction_start := @ITracePluginImpl_trace_transaction_startDispatcher;
12867     ITracePluginImpl_vTable.trace_transaction_end := @ITracePluginImpl_trace_transaction_endDispatcher;
12868     ITracePluginImpl_vTable.trace_proc_execute := @ITracePluginImpl_trace_proc_executeDispatcher;
12869     ITracePluginImpl_vTable.trace_trigger_execute := @ITracePluginImpl_trace_trigger_executeDispatcher;
12870     ITracePluginImpl_vTable.trace_set_context := @ITracePluginImpl_trace_set_contextDispatcher;
12871     ITracePluginImpl_vTable.trace_dsql_prepare := @ITracePluginImpl_trace_dsql_prepareDispatcher;
12872     ITracePluginImpl_vTable.trace_dsql_free := @ITracePluginImpl_trace_dsql_freeDispatcher;
12873     ITracePluginImpl_vTable.trace_dsql_execute := @ITracePluginImpl_trace_dsql_executeDispatcher;
12874     ITracePluginImpl_vTable.trace_blr_compile := @ITracePluginImpl_trace_blr_compileDispatcher;
12875     ITracePluginImpl_vTable.trace_blr_execute := @ITracePluginImpl_trace_blr_executeDispatcher;
12876     ITracePluginImpl_vTable.trace_dyn_execute := @ITracePluginImpl_trace_dyn_executeDispatcher;
12877     ITracePluginImpl_vTable.trace_service_attach := @ITracePluginImpl_trace_service_attachDispatcher;
12878     ITracePluginImpl_vTable.trace_service_start := @ITracePluginImpl_trace_service_startDispatcher;
12879     ITracePluginImpl_vTable.trace_service_query := @ITracePluginImpl_trace_service_queryDispatcher;
12880     ITracePluginImpl_vTable.trace_service_detach := @ITracePluginImpl_trace_service_detachDispatcher;
12881     ITracePluginImpl_vTable.trace_event_error := @ITracePluginImpl_trace_event_errorDispatcher;
12882     ITracePluginImpl_vTable.trace_event_sweep := @ITracePluginImpl_trace_event_sweepDispatcher;
12883     ITracePluginImpl_vTable.trace_func_execute := @ITracePluginImpl_trace_func_executeDispatcher;
12884    
12885     ITraceFactoryImpl_vTable := TraceFactoryVTable.create;
12886     ITraceFactoryImpl_vTable.version := 6;
12887     ITraceFactoryImpl_vTable.addRef := @ITraceFactoryImpl_addRefDispatcher;
12888     ITraceFactoryImpl_vTable.release := @ITraceFactoryImpl_releaseDispatcher;
12889     ITraceFactoryImpl_vTable.setOwner := @ITraceFactoryImpl_setOwnerDispatcher;
12890     ITraceFactoryImpl_vTable.getOwner := @ITraceFactoryImpl_getOwnerDispatcher;
12891     ITraceFactoryImpl_vTable.trace_needs := @ITraceFactoryImpl_trace_needsDispatcher;
12892     ITraceFactoryImpl_vTable.trace_create := @ITraceFactoryImpl_trace_createDispatcher;
12893    
12894     IUdrFunctionFactoryImpl_vTable := UdrFunctionFactoryVTable.create;
12895     IUdrFunctionFactoryImpl_vTable.version := 3;
12896     IUdrFunctionFactoryImpl_vTable.dispose := @IUdrFunctionFactoryImpl_disposeDispatcher;
12897     IUdrFunctionFactoryImpl_vTable.setup := @IUdrFunctionFactoryImpl_setupDispatcher;
12898     IUdrFunctionFactoryImpl_vTable.newItem := @IUdrFunctionFactoryImpl_newItemDispatcher;
12899    
12900     IUdrProcedureFactoryImpl_vTable := UdrProcedureFactoryVTable.create;
12901     IUdrProcedureFactoryImpl_vTable.version := 3;
12902     IUdrProcedureFactoryImpl_vTable.dispose := @IUdrProcedureFactoryImpl_disposeDispatcher;
12903     IUdrProcedureFactoryImpl_vTable.setup := @IUdrProcedureFactoryImpl_setupDispatcher;
12904     IUdrProcedureFactoryImpl_vTable.newItem := @IUdrProcedureFactoryImpl_newItemDispatcher;
12905    
12906     IUdrTriggerFactoryImpl_vTable := UdrTriggerFactoryVTable.create;
12907     IUdrTriggerFactoryImpl_vTable.version := 3;
12908     IUdrTriggerFactoryImpl_vTable.dispose := @IUdrTriggerFactoryImpl_disposeDispatcher;
12909     IUdrTriggerFactoryImpl_vTable.setup := @IUdrTriggerFactoryImpl_setupDispatcher;
12910     IUdrTriggerFactoryImpl_vTable.newItem := @IUdrTriggerFactoryImpl_newItemDispatcher;
12911    
12912     IUdrPluginImpl_vTable := UdrPluginVTable.create;
12913     IUdrPluginImpl_vTable.version := 4;
12914     IUdrPluginImpl_vTable.getMaster := @IUdrPluginImpl_getMasterDispatcher;
12915     IUdrPluginImpl_vTable.registerFunction := @IUdrPluginImpl_registerFunctionDispatcher;
12916     IUdrPluginImpl_vTable.registerProcedure := @IUdrPluginImpl_registerProcedureDispatcher;
12917     IUdrPluginImpl_vTable.registerTrigger := @IUdrPluginImpl_registerTriggerDispatcher;
12918    
12919     finalization
12920     IVersionedImpl_vTable.destroy;
12921     IReferenceCountedImpl_vTable.destroy;
12922     IDisposableImpl_vTable.destroy;
12923     IStatusImpl_vTable.destroy;
12924     IMasterImpl_vTable.destroy;
12925     IPluginBaseImpl_vTable.destroy;
12926     IPluginSetImpl_vTable.destroy;
12927     IConfigEntryImpl_vTable.destroy;
12928     IConfigImpl_vTable.destroy;
12929     IFirebirdConfImpl_vTable.destroy;
12930     IPluginConfigImpl_vTable.destroy;
12931     IPluginFactoryImpl_vTable.destroy;
12932     IPluginModuleImpl_vTable.destroy;
12933     IPluginManagerImpl_vTable.destroy;
12934     ICryptKeyImpl_vTable.destroy;
12935     IConfigManagerImpl_vTable.destroy;
12936     IEventCallbackImpl_vTable.destroy;
12937     IBlobImpl_vTable.destroy;
12938     ITransactionImpl_vTable.destroy;
12939     IMessageMetadataImpl_vTable.destroy;
12940     IMetadataBuilderImpl_vTable.destroy;
12941     IResultSetImpl_vTable.destroy;
12942     IStatementImpl_vTable.destroy;
12943     IRequestImpl_vTable.destroy;
12944     IEventsImpl_vTable.destroy;
12945     IAttachmentImpl_vTable.destroy;
12946     IServiceImpl_vTable.destroy;
12947     IProviderImpl_vTable.destroy;
12948     IDtcStartImpl_vTable.destroy;
12949     IDtcImpl_vTable.destroy;
12950     IAuthImpl_vTable.destroy;
12951     IWriterImpl_vTable.destroy;
12952     IServerBlockImpl_vTable.destroy;
12953     IClientBlockImpl_vTable.destroy;
12954     IServerImpl_vTable.destroy;
12955     IClientImpl_vTable.destroy;
12956     IUserFieldImpl_vTable.destroy;
12957     ICharUserFieldImpl_vTable.destroy;
12958     IIntUserFieldImpl_vTable.destroy;
12959     IUserImpl_vTable.destroy;
12960     IListUsersImpl_vTable.destroy;
12961     ILogonInfoImpl_vTable.destroy;
12962     IManagementImpl_vTable.destroy;
12963     IWireCryptPluginImpl_vTable.destroy;
12964     ICryptKeyCallbackImpl_vTable.destroy;
12965     IKeyHolderPluginImpl_vTable.destroy;
12966     IDbCryptPluginImpl_vTable.destroy;
12967     IExternalContextImpl_vTable.destroy;
12968     IExternalResultSetImpl_vTable.destroy;
12969     IExternalFunctionImpl_vTable.destroy;
12970     IExternalProcedureImpl_vTable.destroy;
12971     IExternalTriggerImpl_vTable.destroy;
12972     IRoutineMetadataImpl_vTable.destroy;
12973     IExternalEngineImpl_vTable.destroy;
12974     ITimerImpl_vTable.destroy;
12975     ITimerControlImpl_vTable.destroy;
12976     IVersionCallbackImpl_vTable.destroy;
12977     IUtilImpl_vTable.destroy;
12978     IOffsetsCallbackImpl_vTable.destroy;
12979     IXpbBuilderImpl_vTable.destroy;
12980     ITraceConnectionImpl_vTable.destroy;
12981     ITraceDatabaseConnectionImpl_vTable.destroy;
12982     ITraceTransactionImpl_vTable.destroy;
12983     ITraceParamsImpl_vTable.destroy;
12984     ITraceStatementImpl_vTable.destroy;
12985     ITraceSQLStatementImpl_vTable.destroy;
12986     ITraceBLRStatementImpl_vTable.destroy;
12987     ITraceDYNRequestImpl_vTable.destroy;
12988     ITraceContextVariableImpl_vTable.destroy;
12989     ITraceProcedureImpl_vTable.destroy;
12990     ITraceFunctionImpl_vTable.destroy;
12991     ITraceTriggerImpl_vTable.destroy;
12992     ITraceServiceConnectionImpl_vTable.destroy;
12993     ITraceStatusVectorImpl_vTable.destroy;
12994     ITraceSweepInfoImpl_vTable.destroy;
12995     ITraceLogWriterImpl_vTable.destroy;
12996     ITraceInitInfoImpl_vTable.destroy;
12997     ITracePluginImpl_vTable.destroy;
12998     ITraceFactoryImpl_vTable.destroy;
12999     IUdrFunctionFactoryImpl_vTable.destroy;
13000     IUdrProcedureFactoryImpl_vTable.destroy;
13001     IUdrTriggerFactoryImpl_vTable.destroy;
13002     IUdrPluginImpl_vTable.destroy;
13003    
13004     end.