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: 56
Committed: Mon Mar 6 10:20:02 2017 UTC (7 years, 1 month ago) by tony
Content type: text/x-pascal
File size: 500959 byte(s)
Log Message:
Committing updates for Trunk

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