ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/fbintf/client/FBMessages.pas
Revision: 68
Committed: Tue Oct 17 10:07:58 2017 UTC (6 years, 5 months ago) by tony
Content type: text/x-pascal
File size: 23666 byte(s)
Log Message:
IBX: Editor Positioning tidy up
FBINTF: Trap uninitialised SQL parameters on SQL Exec. Avoids Unknown SQL Type errors.
Consistent setting of Modified (SQLParam).

File Contents

# User Rev Content
1 tony 45 (*
2     * Firebird Interface (fbintf). The fbintf components provide a set of
3     * Pascal language bindings for the Firebird API. Although predominantly
4     * a new development they include source code taken from IBX and may be
5     * considered a derived product. This software thus also includes the copyright
6     * notice and license conditions from IBX.
7     *
8     * Except for those parts dervied from IBX, contents of this file are subject
9     * to the Initial Developer's Public License Version 1.0 (the "License"); you
10     * may not use this file except in compliance with the License. You may obtain a
11     * copy of the License here:
12     *
13     * http://www.firebirdsql.org/index.php?op=doc&id=idpl
14     *
15     * Software distributed under the License is distributed on an "AS
16     * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
17     * implied. See the License for the specific language governing rights
18     * and limitations under the License.
19     *
20     * The Initial Developer of the Original Code is Tony Whyman.
21     *
22     * The Original Code is (C) 2016 Tony Whyman, MWA Software
23     * (http://www.mwasoftware.co.uk).
24     *
25     * All Rights Reserved.
26     *
27     * Contributor(s): ______________________________________.
28     *
29     *)
30     {************************************************************************}
31     { }
32     { Borland Delphi Visual Component Library }
33     { InterBase Express core components }
34     { }
35     { Copyright (c) 1998-2000 Inprise Corporation }
36     { }
37     { InterBase Express is based in part on the product }
38     { Free IB Components, written by Gregory H. Deatz for }
39     { Hoagland, Longo, Moran, Dunst & Doukas Company. }
40     { Free IB Components is used under license. }
41     { }
42     { The contents of this file are subject to the InterBase }
43     { Public License Version 1.0 (the "License"); you may not }
44     { use this file except in compliance with the License. You }
45     { may obtain a copy of the License at http://www.Inprise.com/IPL.html }
46     { Software distributed under the License is distributed on }
47     { an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either }
48     { express or implied. See the License for the specific language }
49     { governing rights and limitations under the License. }
50     { The Original Code was created by InterBase Software Corporation }
51     { and its successors. }
52     { Portions created by Inprise Corporation are Copyright (C) Inprise }
53     { Corporation. All Rights Reserved. }
54     { Contributor(s): Jeff Overcash }
55     { }
56     { IBX For Lazarus (Firebird Express) }
57     { Contributor: Tony Whyman, MWA Software http://www.mwasoftware.co.uk }
58     { Portions created by MWA Software are copyright McCallum Whyman }
59     { Associates Ltd 2011 - 2015 }
60     { }
61     {************************************************************************}
62     unit FBMessages;
63 tony 56 {$IFDEF MSWINDOWS}
64     {$DEFINE WINDOWS}
65     {$ENDIF}
66 tony 45
67     {$IFDEF FPC}
68 tony 56 {$mode delphi}
69 tony 45 {$codepage UTF8}
70     {$ENDIF}
71    
72     interface
73    
74     uses
75     Classes, SysUtils;
76    
77     type
78     TIBDataBaseErrorMessage = (ShowSQLCode,
79     ShowIBMessage,
80     ShowSQLMessage);
81    
82     TIBDataBaseErrorMessages = set of TIBDataBaseErrorMessage;
83     TIBClientError = (
84     ibxeUnknownError,
85     ibxeInterBaseMissing,
86     ibxeInterBaseInstallMissing,
87     ibxeIB60feature,
88     ibxeNotSupported,
89     ibxeNotPermitted,
90     ibxeFileAccessError,
91     ibxeConnectionTimeout,
92     ibxeCannotSetDatabase,
93     ibxeCannotSetTransaction,
94     ibxeOperationCancelled,
95     ibxeDPBConstantNotSupported,
96     ibxeDPBConstantUnknown,
97     ibxeTPBConstantNotSupported,
98     ibxeTPBConstantUnknown,
99     ibxeDatabaseClosed,
100     ibxeDatabaseOpen,
101     ibxeDatabaseNameMissing,
102     ibxeNotInTransaction,
103     ibxeInTransaction,
104     ibxeTimeoutNegative,
105     ibxeNoDatabasesInTransaction,
106     ibxeUpdateWrongDB,
107     ibxeUpdateWrongTR,
108     ibxeDatabaseNotAssigned,
109     ibxeTransactionNotAssigned,
110     ibxeXSQLDAIndexOutOfRange,
111     ibxeXSQLDANameDoesNotExist,
112     ibxeEOF,
113     ibxeBOF,
114     ibxeInvalidStatementHandle,
115     ibxeSQLOpen,
116     ibxeSQLClosed,
117     ibxeDatasetOpen,
118     ibxeDatasetClosed,
119     ibxeUnknownSQLDataType,
120     ibxeInvalidColumnIndex,
121     ibxeInvalidParamColumnIndex,
122     ibxeInvalidDataConversion,
123     ibxeColumnIsNotNullable,
124     ibxeBlobCannotBeRead,
125     ibxeBlobCannotBeWritten,
126     ibxeBlobNotOpen,
127     ibxeEmptyQuery,
128     ibxeCannotOpenNonSQLSelect,
129     ibxeNoFieldAccess,
130     ibxeFieldReadOnly,
131     ibxeFieldNotFound,
132     ibxeNotEditing,
133     ibxeCannotInsert,
134     ibxeCannotPost,
135     ibxeCannotUpdate,
136     ibxeCannotDelete,
137     ibxeCannotRefresh,
138     ibxeBufferNotSet,
139     ibxeCircularReference,
140     ibxeSQLParseError,
141     ibxeUserAbort,
142     ibxeDataSetUniDirectional,
143     ibxeCannotCreateSharedResource,
144     ibxeWindowsAPIError,
145     ibxeColumnListsDontMatch,
146     ibxeColumnTypesDontMatch,
147     ibxeCantEndSharedTransaction,
148     ibxeFieldUnsupportedType,
149     ibxeCircularDataLink,
150     ibxeEmptySQLStatement,
151     ibxeIsASelectStatement,
152     ibxeRequiredParamNotSet,
153     ibxeNoStoredProcName,
154     ibxeIsAExecuteProcedure,
155     ibxeUpdateFailed,
156     ibxeNotCachedUpdates,
157     ibxeNotLiveRequest,
158     ibxeNoProvider,
159     ibxeNoRecordsAffected,
160     ibxeNoTableName,
161     ibxeCannotCreatePrimaryIndex,
162     ibxeCannotDropSystemIndex,
163     ibxeTableNameMismatch,
164     ibxeIndexFieldMissing,
165     ibxeInvalidCancellation,
166     ibxeInvalidEvent,
167     ibxeMaximumEvents,
168     ibxeNoEventsRegistered,
169     ibxeInvalidQueueing,
170     ibxeInvalidRegistration,
171     ibxeInvalidBatchMove,
172     ibxeSQLDialectInvalid,
173     ibxeSPBConstantNotSupported,
174     ibxeSPBConstantUnknown,
175     ibxeServiceActive,
176     ibxeServiceInActive,
177     ibxeServerNameMissing,
178     ibxeQueryParamsError,
179     ibxeStartParamsError,
180     ibxeOutputParsingError,
181     ibxeUseSpecificProcedures,
182     ibxeSQLMonitorAlreadyPresent,
183     ibxeCantPrintValue,
184     ibxeEOFReached,
185     ibxeEOFInComment,
186     ibxeEOFInString,
187     ibxeParamNameExpected,
188     ibxeSuccess,
189     ibxeDelphiException,
190     ibxeNoOptionsSet,
191     ibxeNoDestinationDirectory,
192     ibxeNosourceDirectory,
193     ibxeNoUninstallFile,
194     ibxeOptionNeedsClient,
195     ibxeOptionNeedsServer,
196     ibxeInvalidOption,
197     ibxeInvalidOnErrorResult,
198     ibxeInvalidOnStatusResult,
199     ibxeDPBConstantUnknownEx,
200     ibxeTPBConstantUnknownEx,
201     ibxeSV5APIError,
202     ibxeThreadFailed,
203     ibxeFieldSizeError,
204     ibxeTransactionNotEnding,
205     ibxeDscInfoTokenMissing,
206     ibxeNoLoginDialog,
207     ibxeEmptyAttachmentsList,
208     ibxeFirebirdLibraryLoaded,
209     ibxeInfoBufferIndexError,
210     ibxeInfoBufferTypeError,
211     ibxeInfoBufferOverflow,
212     ibxServiceRequestIndexError,
213     ibxServiceParamTypeError,
214     ibxeOutputBlockIndexError,
215     ibxeOutputBlockTypeError,
216     ibxePBIndexError,
217     ibxePBParamTypeError,
218     ibxeDuplicateParamName,
219     ibxeInvalidArrayDimensions,
220     ibxeNotAMultiDatabaseTransaction,
221     ibxeAttachmentListIndexError,
222     ibxeNotAnArray,
223     ibxeNotABlob,
224     ibxeInvalidSubscript,
225     ibxeArrayElementOverFlow,
226     ibxArrayBoundsCantIncrease ,
227     ibxeStatementNotPrepared,
228     ibxeInterfaceOutofDate,
229     ibxeUnexpectedDatabaseInfoResp,
230     ibxeInvalidBlobMetaData,
231     ibxeNoDPB,
232     ibxeInEventWait,
233     ibxeIncompatibleBlob,
234     ibxeMissingColumnName,
235     ibxStringTooLong,
236     ibxFieldNotinDataSet,
237     ibxeNotCurrentArray,
238     ibxeNoDefaultCharacterSet,
239     ibxeParamBufferOverflow,
240     ibxeInvalidParamCount,
241     ibxeInvalidVariantType,
242 tony 47 ibxeServiceRunning,
243 tony 56 ibxeUniqueRelationReqd,
244 tony 60 ibxeInterfaceNotSupported,
245     ibxeCharacterSetExists,
246 tony 68 ibxeUnknownUserCharSet,
247     ibxeUninitializedInputParameter
248 tony 45 );
249    
250 tony 56 function GetErrorMessage(ErrMess: TIBClientError): AnsiString;
251 tony 45
252     resourcestring
253     { generic strings used in code }
254     SEOFReached = 'SEOFReached';
255     SEOFInComment = 'EOF in comment detected';
256     SEOFInString = 'EOF in string detected';
257     SParamNameExpected = 'Parameter name expected';
258     SCantPrintValue = 'Cannot print value';
259     SSuccess = 'Successful execution';
260     SDisconnectDatabase = 'Database is currently connected. Disconnect and continue?';
261     SCommitTransaction = 'Transaction is currently Active. Rollback and continue?';
262     sSQLErrorSeparator = ' When Executing: ';
263     SNoDataSet = 'No dataset association';
264     SSQLGenSelect = 'Must select at least one key field and one update field';
265     SSQLNotGenerated = 'Update SQL statements not generated, exit anyway?';
266     SSQLDataSetOpen = 'Unable to determine field names for %s';
267     SDefaultTransaction = '%s, Default';
268     SFirebirdAPIFuncNotFound = 'Unable to load Firebird Client Library Function "%s"';
269     SDatabaseFilter = 'Database Files (*.fdb; *.gdb)|*.gdb; *.fdb|All files (*.*)|*.*';
270     STrue = 'true';
271     SFalse = 'false';
272 tony 47 SArray = '(array)';
273     SBlob = '(blob)';
274 tony 45
275     implementation
276    
277     uses IBUtils;
278    
279     resourcestring
280    
281     { strings used in error messages}
282     SUnknownError = 'Unknown error';
283     SInterBaseMissing = 'Firebird library not found in the path. Please install Firebird to use this functionality';
284     SInterBaseInstallMissing = 'InterBase Install DLL ibinstall.dll not found in the path. Please install InterBase 6 to use this functionality';
285     SIB60feature = '%s is an InterBase 6 function. Please upgrade to InterBase 6 to use this functonality';
286     SNotSupported = 'Unsupported feature';
287     SNotPermitted = 'Not permitted';
288     SFileAccessError = 'Temporary file access error';
289     SConnectionTimeout = 'Database connection timed out';
290     SCannotSetDatabase = 'Cannot set database';
291     SCannotSetTransaction = 'Cannot set transaction';
292     SOperationCancelled = 'Operation cancelled at user''s request';
293     SDPBConstantNotSupported = 'DPB Constant (isc_dpb_%s) is unsupported';
294     SDPBConstantUnknown = 'DPB Constant (%d) is unknown';
295     STPBConstantNotSupported = 'TPB Constant (isc_tpb_%s) is unsupported';
296     STPBConstantUnknown = 'TPB Constant (%d) is unknown';
297     SDatabaseClosed = 'Cannot perform operation -- DB is not open';
298     SDatabaseOpen = 'Cannot perform operation -- DB is currently open';
299     SDatabaseNameMissing = 'Database name is missing';
300     SNotInTransaction = 'Transaction is not active';
301     SInTransaction = 'Transaction is active';
302     STimeoutNegative = 'Timeout values cannot be negative';
303     SNoDatabasesInTransaction = 'No databases are listed in transaction component';
304     SUpdateWrongDB = 'Updating wrong database';
305     SUpdateWrongTR = 'Updating wrong transaction. Unique transaction expected in set';
306     SDatabaseNotAssigned = 'Database not assigned';
307     STransactionNotAssigned = 'Transaction not assigned';
308     SXSQLDAIndexOutOfRange = 'XSQLDA index out of range';
309     SXSQLDANameDoesNotExist = 'XSQLDA name does not exist (%s)';
310     SEOF = 'End of file';
311     SBOF = 'Beginning of file';
312     SInvalidStatementHandle = 'Invalid statement handle';
313     SSQLOpen = 'IBSQL Open';
314     SSQLClosed = 'IBSQL Closed';
315     SDatasetOpen = 'Dataset open';
316     SDatasetClosed = 'Dataset closed';
317     SUnknownSQLDataType = 'Unknown SQL Data type (%d)';
318     SInvalidColumnIndex = 'Invalid column index (index exceeds permitted range)';
319     SInvalidParamColumnIndex = 'Invalid parameter index (index exceeds permitted range)';
320     SInvalidDataConversion = 'Invalid data conversion';
321     SColumnIsNotNullable = 'Column cannot be set to null (%s)';
322     SBlobCannotBeRead = 'Blob stream cannot be read';
323     SBlobCannotBeWritten = 'Blob stream cannot be written';
324     SBlobNotOpen = 'The Blob is not open';
325     SEmptyQuery = 'Empty query';
326     SCannotOpenNonSQLSelect = 'Cannot "open" a non-select statement. Use ExecQuery';
327     SNoFieldAccess = 'No access to field "%s"';
328     SFieldReadOnly = 'Field "%s" is read-only';
329     SFieldNotFound = 'Field "%s" not found';
330     SNotEditing = 'Not in edit mode';
331     SCannotInsert = 'Cannot insert into dataset. (No insert query)';
332     SCannotPost = 'Cannot post. (No update/insert query)';
333     SCannotUpdate = 'Cannot update. (No update query)';
334     SCannotDelete = 'Cannot delete from dataset. (No delete query)';
335     SCannotRefresh = 'Cannot refresh row. (No refresh query)';
336     SBufferNotSet = 'Buffer not set';
337     SCircularReference = 'Circular references not permitted';
338     SSQLParseError = 'SQL Parse Error:' + CRLF + CRLF + '%s';
339     SUserAbort = 'User abort';
340     SDataSetUniDirectional = 'Data set is uni-directional';
341     {$IFDEF UNIX}
342     SCannotCreateSharedResource = 'Cannot create shared resource. %s';
343     {$ELSE}
344     SCannotCreateSharedResource = 'Cannot create shared resource. (Windows error %d)';
345     {$ENDIF}
346     SWindowsAPIError = 'Windows API error. (Windows error %d [$%.8x])';
347     SColumnListsDontMatch = 'Column lists do not match';
348     SColumnTypesDontMatch = 'Column types don''t match. (From index: %d; To index: %d)';
349     SCantEndSharedTransaction = 'Can''t end a shared transaction unless it is forced and equal ' +
350     'to the transaction''s TimeoutAction';
351     SFieldUnsupportedType = 'Unsupported Field Type';
352     SCircularDataLink = 'Circular DataLink Reference';
353     SEmptySQLStatement = 'Empty SQL Statement';
354     SIsASelectStatement = 'use Open for a Select Statement';
355     SRequiredParamNotSet = 'Required parameter "%s" value not set';
356     SNoStoredProcName = 'No Stored Procedure Name assigned';
357     SIsAExecuteProcedure = 'use ExecProc for Procedure; use TQuery for Select procedures';
358     SUpdateFailed = 'Update Failed';
359     SNotCachedUpdates = 'CachedUpdates not enabled';
360     SNotLiveRequest = 'Request is not live - cannot modify';
361     SNoProvider = 'No Provider';
362     SNoRecordsAffected = 'No Records Affected';
363     SNoTableName = 'No Table Name assigned';
364     SCannotCreatePrimaryIndex = 'Cannot Create Primary Index; are created automatically';
365     SCannotDropSystemIndex = 'Cannot Drop System Index';
366     STableNameMismatch = 'Table Name Mismatch';
367     SIndexFieldMissing = 'Index Field Missing';
368     SInvalidCancellation = 'Cannot Cancel events while processing';
369     SInvalidEvent = 'Invalid Event';
370     SMaximumEvents = 'Exceded Maximum Event limits';
371     SNoEventsRegistered = 'No Events Registered';
372     SInvalidQueueing = 'Invalid Queueing';
373     SInvalidRegistration = 'Invalid Registration';
374     SInvalidBatchMove = 'Invalid Batch Move';
375     SSQLDialectInvalid = 'SQL Dialect Invalid';
376     SSPBConstantNotSupported = 'SPB Constant Not supported';
377     SSPBConstantUnknown = 'SPB Constant Unknown';
378     SServiceActive = 'Cannot perform operation -- service is not attached';
379     SServiceInActive = 'Cannot perform operation -- service is attached';
380     SServerNameMissing = 'Server Name Missing';
381     SQueryParamsError = 'Query Parameters missing or incorrect';
382     SStartParamsError = 'start Parameters missing or incorrect';
383     SOutputParsingError = 'Unexpected Output buffer value (%d)';
384     SUseSpecificProcedures = 'Generic ServiceStart not applicable: Use Specific Procedures to set configuration params';
385     SSQLMonitorAlreadyPresent = 'SQL Monitor Instance is already present';
386     SDelphiException = 'DelphiException %s';
387     SNoOptionsSet = 'No Install Options selected';
388     SNoDestinationDirectory = 'DestinationDirectory is not set';
389     SNosourceDirectory = 'SourceDirectory is not set';
390     SNoUninstallFile = 'Uninstall File Name is not set';
391     SOptionNeedsClient = '%s component requires Client to function properly';
392     SOptionNeedsServer = '%s component requires Server to function properly';
393     SInvalidOption = 'Invalid option specified';
394     SInvalidOnErrorResult = 'Unexpected onError return value';
395     SInvalidOnStatusResult = 'Unexpected onStatus return value';
396    
397     SDPBConstantUnknownEx = 'DPB Constant (%s) is unknown';
398     STPBConstantUnknownEx = 'TPB Constant (%s) is unknown';
399     SSV5APIError = 'SV5 API API Error - %s';
400     SThreadFailed = '%s Thread failed with Exception: %s';
401     sFieldSizeError = 'Field %s is too small to receive the data';
402     STransactionNotEnding = 'Transaction is not being completed';
403     SDscInfoTokenMissing = '%s token not found';
404     SNoLoginDialog = 'Default Login Dlalog not found. Have you included ibexpress ' +
405     'in your program uses list?';
406     SEmptyAttachmentsList = 'The list of database attachments cannot be empty';
407     SFirebirdLibraryLoaded = 'The Firebird Library is already loaded';
408     SInfoBufferIndexError = 'Info Buffer Index Out of Range (%d)';
409     SInfoBufferTypeError = 'Invalid operation for Info Buffer Type (%d)';
410     SInfoBufferOverflow = 'Info Buffer overlow';
411     SServiceRequestIndexError = 'Service Request Index Out of Range (%d)';
412     SServiceParamTypeError = 'Invalid Request for Service Param Type';
413     SOutputBlockIndexError = 'Output Block Index Out of Range (%d)';
414     SOutputBlockTypeError = 'Invalid Request for Output Block Type';
415     SPBIndexError = 'DPB Index out of range (%d)';
416     SPBParamTypeError = 'Invalid Request for DPB Param Type';
417     SDuplicateParamName = 'Blob or array parameter name must be unique (%s)';
418 tony 47 SInvalidArrayDimensions = 'Invalid number of array dimensions (%d)';
419 tony 45 SNotAMultiDatabaseTransaction = 'This is not a multi-database transaction';
420     SAttachmentListIndexError = 'Attachment List index out of range (%d)';
421     SNotAnArray = 'Table Column must be an array';
422     SNotABlob = 'Table Column must be a Blob';
423     SInvalidSubscript = 'Invalid Subscript (%d) for Array Dimension %d';
424     SArrayElementOverFlow = 'Array Element too big';
425     SArrayBoundsCantIncrease = 'Array Bounds can only be narrowed';
426     SStatementNotPrepared = 'The Statement has not been prepared';
427     SInterfaceOutofDate = 'This interface is no longer up-to-date';
428     SUnexpectedDatabaseInfoResp = 'Unexpected Database Information Response';
429     SInvalidBlobMetaData = 'Unable to Access Blob Meta Data';
430     SNoDPB = 'A DPB must be provided';
431     SInEventWait = 'Already in Event Wait State';
432     SIncompatibleBlob = 'Incompatible Blob SubTypes. %d expected, %d found';
433     SMissingColumnName = 'Relation or Column Name Missing';
434     SStringTooLong = 'String "%s" is too long. Max %d characters';
435     SFieldNotinDataSet = 'Field %s is not a member of DataSet %s';
436     SNotCurrentArray = 'Cannot Edit an Array that is not part of the current record';
437     SNoDefaultCharacterSet = 'A connection default character set is required to perform this operation';
438     SParamBufferOverflow = 'Parameter Buffer Overflow';
439     SInvalidParamCount = 'Invalid Parameter Count. %d expected, %d found';
440     SInvalidVariantType = 'Invalid variant type';
441     SServiceRunning = 'Cannot start a new service while an existing service is running';
442 tony 47 SUniqueRelationReqd = 'All Output Fields must derived from the same table';
443 tony 56 SInterfaceNotSupported = 'Interface not supported; Guid %s not found';
444 tony 60 SCharacterSetExists = 'Character set "%s" is already defined';
445     SUnknownUserCharSet = 'Unknown user character set "%s"';
446 tony 68 SUninitializedInputParameter = 'SQL Param No. %d (%s) is uninitialised';
447 tony 45
448     const
449     IBErrorMessages: array[TIBClientError] of string = (
450     SUnknownError,
451     SInterBaseMissing,
452     SInterBaseInstallMissing,
453     SIB60feature,
454     SNotSupported,
455     SNotPermitted,
456     SFileAccessError,
457     SConnectionTimeout,
458     SCannotSetDatabase,
459     SCannotSetTransaction,
460     SOperationCancelled,
461     SDPBConstantNotSupported,
462     SDPBConstantUnknown,
463     STPBConstantNotSupported,
464     STPBConstantUnknown,
465     SDatabaseClosed,
466     SDatabaseOpen,
467     SDatabaseNameMissing,
468     SNotInTransaction,
469     SInTransaction,
470     STimeoutNegative,
471     SNoDatabasesInTransaction,
472     SUpdateWrongDB,
473     SUpdateWrongTR,
474     SDatabaseNotAssigned,
475     STransactionNotAssigned,
476     SXSQLDAIndexOutOfRange,
477     SXSQLDANameDoesNotExist,
478     SEOF,
479     SBOF,
480     SInvalidStatementHandle,
481     SSQLOpen,
482     SSQLClosed,
483     SDatasetOpen,
484     SDatasetClosed,
485     SUnknownSQLDataType,
486     SInvalidColumnIndex,
487     SInvalidParamColumnIndex,
488     SInvalidDataConversion,
489     SColumnIsNotNullable,
490     SBlobCannotBeRead,
491     SBlobCannotBeWritten,
492     SBlobNotOpen,
493     SEmptyQuery,
494     SCannotOpenNonSQLSelect,
495     SNoFieldAccess,
496     SFieldReadOnly,
497     SFieldNotFound,
498     SNotEditing,
499     SCannotInsert,
500     SCannotPost,
501     SCannotUpdate,
502     SCannotDelete,
503     SCannotRefresh,
504     SBufferNotSet,
505     SCircularReference,
506     SSQLParseError,
507     SUserAbort,
508     SDataSetUniDirectional,
509     SCannotCreateSharedResource,
510     SWindowsAPIError,
511     SColumnListsDontMatch,
512     SColumnTypesDontMatch,
513     SCantEndSharedTransaction,
514     SFieldUnsupportedType,
515     SCircularDataLink,
516     SEmptySQLStatement,
517     SIsASelectStatement,
518     SRequiredParamNotSet,
519     SNoStoredProcName,
520     SIsAExecuteProcedure,
521     SUpdateFailed,
522     SNotCachedUpdates,
523     SNotLiveRequest,
524     SNoProvider,
525     SNoRecordsAffected,
526     SNoTableName,
527     SCannotCreatePrimaryIndex,
528     SCannotDropSystemIndex,
529     STableNameMismatch,
530     SIndexFieldMissing,
531     SInvalidCancellation,
532     SInvalidEvent,
533     SMaximumEvents,
534     SNoEventsRegistered,
535     SInvalidQueueing,
536     SInvalidRegistration,
537     SInvalidBatchMove,
538     SSQLDialectInvalid,
539     SSPBConstantNotSupported,
540     SSPBConstantUnknown,
541     SServiceActive,
542     SServiceInActive,
543     SServerNameMissing,
544     SQueryParamsError,
545     SStartParamsError,
546     SOutputParsingError,
547     SUseSpecificProcedures,
548     SSQLMonitorAlreadyPresent,
549     SCantPrintValue,
550     SEOFReached,
551     SEOFInComment,
552     SEOFInString,
553     SParamNameExpected,
554     SSuccess,
555     SDelphiException,
556     SNoOptionsSet,
557     SNoDestinationDirectory,
558     SNosourceDirectory,
559     SNoUninstallFile,
560     SOptionNeedsClient,
561     SOptionNeedsServer,
562     SInvalidOption,
563     SInvalidOnErrorResult,
564     SInvalidOnStatusResult,
565     SDPBConstantUnknownEx,
566     STPBConstantUnknownEx,
567     SSV5APIError,
568     SThreadFailed,
569     SFieldSizeError,
570     STransactionNotEnding,
571     SDscInfoTokenMissing,
572     SNoLoginDialog,
573     SEmptyAttachmentsList,
574     SFirebirdLibraryLoaded,
575     SInfoBufferIndexError,
576     SInfoBufferTypeError,
577     SInfoBufferOverflow,
578     SServiceRequestIndexError,
579     SServiceParamTypeError,
580     SOutputBlockIndexError,
581     SOutputBlockTypeError,
582     SPBIndexError,
583     SPBParamTypeError,
584     SDuplicateParamName,
585     SInvalidArrayDimensions,
586     SNotAMultiDatabaseTransaction,
587     SAttachmentListIndexError,
588     SNotAnArray,
589     SNotABlob,
590     SInvalidSubscript,
591     SArrayElementOverFlow,
592     SArrayBoundsCantIncrease,
593     SStatementNotPrepared,
594     SInterfaceOutofDate,
595     SUnexpectedDatabaseInfoResp,
596     SInvalidBlobMetaData,
597     SNoDPB,
598     SInEventWait,
599     SIncompatibleBlob,
600     SMissingColumnName,
601     SStringTooLong,
602     SFieldNotinDataSet,
603     SNotCurrentArray,
604     SNoDefaultCharacterSet,
605     SParamBufferOverflow,
606     SInvalidParamCount,
607     SInvalidVariantType,
608 tony 47 SServiceRunning,
609 tony 56 SUniqueRelationReqd,
610 tony 60 SInterfaceNotSupported,
611     SCharacterSetExists,
612 tony 68 SUnknownUserCharSet,
613     SUninitializedInputParameter
614 tony 45 );
615    
616 tony 56 function GetErrorMessage(ErrMess: TIBClientError): AnsiString;
617 tony 45 begin
618     Result := IBErrorMessages[ErrMess];
619     end;
620    
621     end.
622