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: 209
Committed: Wed Mar 14 12:48:51 2018 UTC (6 years, 1 month ago) by tony
Content type: text/x-pascal
File size: 500980 byte(s)
Log Message:
Fixes Merged

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