|
From: David J. <d_j...@us...> - 2001-07-18 20:07:33
|
Update of /cvsroot/firebird/client-java/src/org/firebirdsql/gds
In directory usw-pr-cvs1:/tmp/cvs-serv30724/org/firebirdsql/gds
Modified Files:
GDSException.java GDSExceptionHelper.java
isc_error_msg.properties
Log Message:
Added better GDSExceptions, new NativeSQL, and CallableStatement test from Roman Rokytskyy
Index: GDSException.java
===================================================================
RCS file: /cvsroot/firebird/client-java/src/org/firebirdsql/gds/GDSException.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -U3 -r1.2 -r1.3
--- GDSException.java 2001/07/16 03:57:43 1.2
+++ GDSException.java 2001/07/18 20:07:31 1.3
@@ -12,6 +12,7 @@
* Original developer David Jencks
*
* Contributor(s):
+ * Roman Rokytskyy
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU Lesser General Public License Version 2.1 or later
@@ -26,30 +27,70 @@
* LGPL.
*/
+/*
+ * CVS modification log:
+ * $Log$
+ * Revision 1.3 2001/07/18 20:07:31 d_jencks
+ * Added better GDSExceptions, new NativeSQL, and CallableStatement test from Roman Rokytskyy
+ *
+ */
+
package org.firebirdsql.gds;
public class GDSException extends Exception {
-
- protected int fbErrorCode = 0;
+ // protected int fbErrorCode = 0;
+ protected int type;
+ protected int intParam;
+ protected String strParam;
+
+ /**
+ * Returns the parameter depending on the type of the
+ * error code.
+ */
+ protected String getParam() {
+ if ((type == GDS.isc_arg_interpreted) ||
+ (type == GDS.isc_arg_string))
+ return strParam;
+ else
+ if (type == GDS.isc_arg_number)
+ return "" + intParam;
+ else
+ return "";
+ }
+
+ /**
+ * My child
+ */
protected GDSException next;
- public GDSException(int fbErrorCode) {
- this.fbErrorCode = fbErrorCode;
- //super(getErrorString(fbErrorCode));
+ public GDSException(int type, int intParam) {
+ this.type = type;
+ this.intParam = intParam;
}
- public GDSException(int fbErrorCode, String message) {
- super(message);
- this.fbErrorCode = fbErrorCode;
+ public GDSException(int type, String strParam) {
+ this.type = type;
+ this.strParam = strParam;
}
+ public GDSException(int fbErrorCode) {
+ // this.fbErrorCode = fbErrorCode;
+ this.intParam = fbErrorCode;
+ this.type = GDS.isc_arg_gds;
+ }
+
public GDSException(String message) {
super(message);
+ this.type = GDS.isc_arg_string;
}
public int getFbErrorCode() {
- return fbErrorCode;
+ //return fbErrorCode;
+ if (type == GDS.isc_arg_number)
+ return intParam;
+ else
+ return -1;
}
public void setNext(GDSException e) {
@@ -60,6 +101,7 @@
return next;
}
+ /*
public String toString() {
//this should really include the message, too
String s = "GDSException: " + fbErrorCode + ": ";
@@ -70,7 +112,41 @@
}
return s;
}
+ */
+
+ /**
+ * Returns a string representation of this exception.
+ */
+ public String toString() {
+ // If I represent a GDSMessage code, then let's format it nicely.
+ if (type == GDS.isc_arg_gds) {
+ // get message
+ GDSExceptionHelper.GDSMessage message =
+ GDSExceptionHelper.getMessage(intParam);
+
+ // substitute parameters using my children
+ int paramCount = message.getParamCount();
+ GDSException child = this.next;
+ for(int i = 0; i < paramCount; i++) {
+ message.setParameter(i, child.getParam());
+ child = child.next;
+ if (child == null) break;
+ }
+
+ // convert message to string
+ String msg = message.toString();
+
+ // Do we have more children? Then include them...
+ if (child != null)
+ msg += "\n" + child.toString();
+ // Ok, we have a message, so return it to the client.
+ return msg;
+ }
+ // ok, I'm not GDSMessage code, somebody invoked toString() method
+ // on me by mistake... :(
+ return "";
+ }
}
Index: GDSExceptionHelper.java
===================================================================
RCS file: /cvsroot/firebird/client-java/src/org/firebirdsql/gds/GDSExceptionHelper.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -U3 -r1.1 -r1.2
--- GDSExceptionHelper.java 2001/07/16 03:57:43 1.1
+++ GDSExceptionHelper.java 2001/07/18 20:07:31 1.2
@@ -12,6 +12,7 @@
* Original developer David Jencks
*
* Contributor(s):
+ * Roman Rokytskyy
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU Lesser General Public License Version 2.1 or later
@@ -29,6 +30,9 @@
/*
* CVS modification log:
* $Log$
+ * Revision 1.2 2001/07/18 20:07:31 d_jencks
+ * Added better GDSExceptions, new NativeSQL, and CallableStatement test from Roman Rokytskyy
+ *
* Revision 1.1 2001/07/16 03:57:43 d_jencks
* added text error messages to GDSExceptions, thanks Roman Rokytskyy
*
@@ -54,9 +58,71 @@
ex.printStackTrace();
}
}
+
+ /**
+ * This method returns a message for the specified error code.
+ * @param code Firebird error code
+ * @return instance of <code>GDSExceptionHelper.GDSMesssage</code> class
+ * where you can set desired parameters.
+ */
+ public static GDSMessage getMessage(int code) {
+ return new GDSMessage(messages.getProperty(
+ "" + code, "No message for code " + code + "found."));
+ }
+
+ /**
+ * This class wraps message template obtained from isc_error_msg.properties
+ * file and allows to set parameters to the message.
+ */
+ public static class GDSMessage {
+ private String template;
+ private String[] params;
+
+ /**
+ * Constructs an instance of GDSMessage for the specified template.
+ */
+ public GDSMessage(String template) {
+ this.template = template;
+ params = new String[getParamCount()];
+ }
- public static String getMessage(int code) {
- return messages.getProperty(
- "" + code, "No message for code " + code + "found.");
+ /**
+ * Returns the number of parameters for the message template.
+ * @return number of parameters.
+ */
+ public int getParamCount() {
+ int count = 0;
+ for(int i = 0; i < template.length(); i++)
+ if (template.charAt(i) == '{') count++;
+ return count;
+ }
+
+ /**
+ * Sets the parameter value
+ * @param position the parameter number, 0 - first parameter.
+ * @param text value of parameter
+ */
+ public void setParameter(int position, String text) {
+ if (position < params.length)
+ params[position] = text;
+ }
+
+ /**
+ * Puts parameters into the template and return the obtained string.
+ * @return string representation of the message.
+ */
+ public String toString() {
+ String message = template;
+ for(int i = 0; i < params.length; i++) {
+ String param = "{" + i + "}";
+ int pos = message.indexOf(param);
+ String temp = message.substring(0, pos);
+ temp += (params[i] == null) ? "" : params[i];
+ temp += message.substring(pos + param.length());
+ message = temp;
+ }
+ return message;
+ }
}
+
}
Index: isc_error_msg.properties
===================================================================
RCS file: /cvsroot/firebird/client-java/src/org/firebirdsql/gds/isc_error_msg.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -U3 -r1.1 -r1.2
--- isc_error_msg.properties 2001/07/16 03:57:43 1.1
+++ isc_error_msg.properties 2001/07/18 20:07:31 1.2
@@ -10,7 +10,7 @@
335544330=invalid parameter in transaction parameter block
335544331=invalid format for transaction parameter block
335544332=invalid transaction handle (expecting explicit transaction start)
-335544333=interna=isc software consistency check ({0})
+335544333=internal isc software consistency check ({0})
335544334=conversion error from string {0}
335544335=database file appears corrupt ({0})
335544336=deadlock
@@ -20,88 +20,88 @@
335544340=no information of this type available for object specified
335544340=no information of this type available for object specified
335544341=unknown information item
-335544342=action cancelled by trigger (<long>) to preserve data integrity
-335544343=invalid request BLR at offset <long>
-335544344=I/O error during <string> operation for file <string>
+335544342=action cancelled by trigger ({0}) to preserve data integrity
+335544343=invalid request BLR at offset {0}
+335544344=I/O error during {0} operation for file {1}
335544345=lock conflict on no wait transaction
335544346=corrupt system table
-335544347=validation error for column <string>, value <string>
+335544347=validation error for column {0}, value {1}
335544348=no current record for fetch operation
-335544349=attempt to store duplicate value (visible to active transactions) in unique index <string>
+335544349=attempt to store duplicate value (visible to active transactions) in unique index {1}
335544350=program attempted to exit without finishing database
-335544351=unsuccessfu=metadata update
-335544352=no permission for <string> access to <string> <string>
+335544351=unsuccessful metadata update
+335544352=no permission for {0} access to {1} {2}
335544353=transaction is not in limbo
335544354=invalid database key
335544355=Blob was not closed
335544356=metadata is obsolete
-335544357=cannot disconnect database with open transactions (<long> active)
-335544358=message length error (encountered <long>, expected <long>)
+335544357=cannot disconnect database with open transactions ({0} active)
+335544358=message length error (encountered {0}, expected {1})
335544359=attempted update of read-only column
335544360=attempted update of read-only table
335544361=attempted update during read-only transaction
-335544362=cannot update read-only view <string>
+335544362=cannot update read-only view {0}
335544363=no transaction for request
335544364=request synchronization error
335544365=request referenced an unavailable database
335544366=segment buffer length shorter than expected
-335544367=attempted retrieva=of more segments than exist
+335544367=attempted retrieval of more segments than exist
335544368=attempted invalid operation on a Blob
335544369=attempted read of a new, open Blob
335544370=attempted action on Blob outside transaction
335544371=attempted write to read-only Blob
335544372=attempted reference to Blob in unavailable database
-335544373=operating system directive <string> failed
+335544373=operating system directive {0} failed
335544374=attempt to fetch past the last record in a record stream
335544375=unavailable database
-335544376=Table <string> was omitted from the transaction reserving list
+335544376=Table {0} was omitted from the transaction reserving list
335544377=request includes a DSRI extension not supported in this implementation
335544378=feature is not supported
-335544379=unsupported on-disk structure for file <string>; found <long>, support <long>
+335544379=unsupported on-disk structure for file {0}; found {1}, support {2}
335544380=wrong number of arguments on call
335544381=Implementation limit exceeded
-335544382=<string>
-335544383=unrecoverable conflict with limbo transaction <long>
-335544384=interna=error
-335544385=interna=error
+335544382={0}
+335544383=unrecoverable conflict with limbo transaction {0}
+335544384=internal error
+335544385=internal error
335544386=too many requests
-335544387=interna=error
+335544387=internal error
335544388=block size exceeds implementation restriction
335544389=buffer exhausted
-335544390=BLR syntax error: expected <string> at offset <long>, encountered <long>
+335544390=BLR syntax error: expected {0} at offset {1}, encountered {2}
335544391=buffer in use
-335544392=interna=error
+335544392=internal error
335544393=request in use
335544394=incompatible version of on-disk structure
-335544395=table <string> is not defined
-335544396=column <string> is not defined in table <string>
-335544397=interna=error (isc_dirtypage)
-335544398=interna=error (isc_waifortra)
-335544399=interna=error (isc_doubleloc)
-335544400=interna=error (isc_nodnotfnd)
-335544401=interna=error (isc_dupnodfnd)
-335544402=interna=error
-335544403=page <long> is of wrong type (expected <long>, found <long>)
+335544395=table {0} is not defined
+335544396=column {0} is not defined in table {0}
+335544397=internal error (isc_dirtypage)
+335544398=internal error (isc_waifortra)
+335544399=internal error (isc_doubleloc)
+335544400=internal error (isc_nodnotfnd)
+335544401=internal error (isc_dupnodfnd)
+335544402=internal error
+335544403=page {0} is of wrong type (expected {1}, found {2})
335544404=database corrupted
-335544405=checksum error on database page <long>
+335544405=checksum error on database page {0}
335544406=index is broken
335544407=database handle not zero
335544408=transaction handle not zero
-335544409=transactionrequest mismatch (synchronization error)
+335544409=transaction request mismatch (synchronization error)
335544410=bad handle count
335544411=wrong version of transaction parameter block
-335544412=unsupported BLR version (expected <long>, encountered <long>)
+335544412=unsupported BLR version (expected {0}, encountered {1})
335544413=wrong version of database parameter block
-335544414=Blob and array datatypes are not supported for <string> operation
+335544414=Blob and array datatypes are not supported for {0} operation
335544415=database corrupted
-335544416=interna=error
-335544417=interna=error
+335544416=internal error
+335544417=internal error
335544418=transaction in limbo
335544419=transaction not in limbo
335544420=transaction outstanding
335544421=connection rejected by remote interface
-335544422=interna=error (isc_dbfile)
-335544423=interna=error (isc_orphan)
+335544422=internal error (isc_dbfile)
+335544423=internal error (isc_orphan)
335544424=no lock manager available
335544425=context already in use (BLR error)
335544426=context not defined (BLR error)
@@ -109,77 +109,77 @@
335544428=undefined message number
335544429=bad parameter number
335544430=unable to allocate memory from operating system
-335544431=blocking signa=has been received
+335544431=blocking signal has been received
335544432=lock manager error
-335544433=communication error with journa=<string>
-335544434=key size exceeds implementation restriction for index <string>
-335544435=nul=segment of UNIQUE KEY
-335544436=SQ=error code = <long>
+335544433=communication error with journal {0}
+335544434=key size exceeds implementation restriction for index {0}
+335544435=null segment of UNIQUE KEY
+335544436=SQL error code = {0}
335544437=wrong DYN version
-335544438=function <string> is not defined
-335544439=function <string> could not be matched
+335544438=function {0} is not defined
+335544439=function {0} could not be matched
335544440=(isc_bad_msg_vec)
335544441=database detach completed with errors
-335544442=database system cannot read argument <long>
-335544443=database system cannot write argument <long>
+335544442=database system cannot read argument {0}
+335544443=database system cannot write argument {0}
335544444=operation not supported
-335544445=<string> extension error
+335544445={0} extension error
335544446=not updatable
335544447=no rollback performed
335544448=(isc_bad_sec_info)
335544449=(isc_invalid_sec_info)
-335544450=<string> (isc_misc_interpreted )
+335544450={0} (isc_misc_interpreted )
335544451=update conflicts with concurrent update
-335544452=product <string> is not licensed
-335544453=object <string> is in use
-335544454=filter not found to convert type <long> to type <long>
+335544452=product {0} is not licensed
+335544453=object {0} is in use
+335544454=filter not found to convert type {0} to type {1}
335544455=cannot attach active shadow file
-335544456=invalid slice description language at offset <long>
+335544456=invalid slice description language at offset {0}
335544457=subscript out of bounds
-335544458=column not array or invalid dimensions (expected <long>, encountered <long>)
-335544459=record from transaction <long> is stuck in limbo
-335544460=a file in manua=shadow <long> is unavailable
+335544458=column not array or invalid dimensions (expected {0}, encountered {1})
+335544459=record from transaction {0} is stuck in limbo
+335544460=a file in manual shadow {0} is unavailable
335544461=secondary server attachments cannot validate databases
335544462=secondary server attachments cannot start journaling
-335544463=generator <string> is not defined
+335544463=generator {0} is not defined
335544464=secondary server attachments cannot start logging
335544465=invalid Blob type for operation
-335544466=violation of FOREIGN KEY constraint: <string>
-335544467=minor version too high found <long> expected <long>
-335544468=transaction <long> is <string>
+335544466=violation of FOREIGN KEY constraint: {0}
+335544467=minor version too high found {0} expected {1}
+335544468=transaction {0} is {1}
335544469=transaction marked invalid by I/O error
-335544470=cache buffer for page <long> invalid
-335544471=there is no index in table <string> with id <digit>
+335544470=cache buffer for page {0} invalid
+335544471=there is no index in table {0} with id {1}
335544472=Your user name and password are not defined. Ask your database administrator to set up an InterBase login.
335544473=invalid bookmark handle
-335544474=invalid lock leve=<digit>
-335544475=lock on table <string> conflicts with existing lock
+335544474=invalid lock level {0}
+335544475=lock on table {0} conflicts with existing lock
335544476=requested record lock conflicts with existing lock
-335544477=maximum indexes per table (<digit>) exceeded
-335544478=enable journa=for database before starting online dump
+335544477=maximum indexes per table ({0}) exceeded
+335544478=enable journal for database before starting online dump
335544479=online dump failure. Retry dump
335544480=an online dump is already in progress
335544481=no more disk/tape space. Cannot continue online dump
335544483=maximum number of online dump files that can be specified is 16
335544485=invalid statement handle
335544502=reference to invalid stream number
-335544506=database <string> shutdown in progress
-335544507=refresh range number <long> already in use
-335544508=refresh range number <long> not found
-335544509=character set <string> is not defined
+335544506=database {0} shutdown in progress
+335544507=refresh range number {0} already in use
+335544508=refresh range number {0} not found
+335544509=character set {0} is not defined
335544510=lock time-out on wait transaction
-335544511=procedure <string> is not defined
-335544512=parameter mismatch for procedure <string>
-335544515=status code <string> unknown
-335544516=exception <string> not defined
-335544517=exception <digit>
+335544511=procedure {0} is not defined
+335544512=parameter mismatch for procedure {0}
+335544515=status code {0} unknown
+335544516=exception {0} not defined
+335544517=exception {0}
335544518=restart shared cache manager
335544519=invalid lock handle
-335544528=database <string> shutdown
+335544528=database {0} shutdown
335544529=cannot modify an existing user privilege
335544530=Cannot delete PRIMARY KEY being used in FOREIGN KEY definition.
335544531=Column used in a PRIMARY/UNIQUE constraint must be NOT NULL.
-335544532=Name of Referentia=Constraint not defined in constraints table.
+335544532=Name of Referential Constraint not defined in constraints table.
335544533=Non-existent PRIMARY or UNIQUE KEY specified for FOREIGN KEY.
335544534=Cannot update constraints (RDB$REF_CONSTRAINTS).
335544535=Cannot update constraints (RDB$CHECK_CONSTRAINTS).
@@ -194,26 +194,26 @@
335544544=Cannot rename column being used in an Integrity Constraint.
335544545=Cannot update constraints (RDB$RELATION_CONSTRAINTS).
335544546=Cannot define constraints on views
-335544547=interna=isc software consistency check (invalid RDB$CONSTRAINT_TYPE)
+335544547=internal isc software consistency check (invalid RDB$CONSTRAINT_TYPE)
335544548=Attempt to define a second PRIMARY KEY for the same table
335544549=cannot modify or erase a system trigger
335544550=only the owner of a table may reassign ownership
335544551=could not find table/procedure for GRANT
335544552=could not find column for GRANT
335544553=user does not have GRANT privileges for operation
-335544554=table/procedure has non-SQ=security class defined
-335544555=column has non-SQ=security class defined
+335544554=table/procedure has non-SQL security class defined
+335544555=column has non-SQL security class defined
335544557=database shutdown unsuccessful
-335544558=Operation violates CHECK constraint <string> on view or table
+335544558=Operation violates CHECK constraint {0} on view or table
335544559=invalid service handle
-335544560=database <string> shutdown in <digit> seconds
+335544560=database {0} shutdown in {1} seconds
335544561=wrong version of service parameter block
335544562=unrecognized service parameter block
-335544563=service <string> is not defined
+335544563=service {1} is not defined
335544564=long-term journaling not enabled
335544565=Cannot transliterate character between character sets
-335544568=Implementation of text subtype <digit> not located.
-335544569=Dynamic SQ=Error
+335544568=Implementation of text subtype {0} not located.
+335544569=Dynamic SQL Error
335544570=Invalid command
335544571=Datatype for constant unknown
335544572=Cursor unknown
@@ -223,24 +223,24 @@
335544576=Attempt to reopen an open cursor
335544577=Attempt to reclose a closed cursor
335544578=Column unknown
-335544579=Interna=error
+335544579=Internal error
335544580=Table unknown
335544581=Procedure unknown
335544582=Request unknown
335544583=SQLDA missing or incorrect version, or incorrect number/type of variables
-335544584=Count of columns not equa=count of values
+335544584=Count of columns not equal count of values
335544585=Invalid statement handle
335544586=Function unknown
335544587=Column is not a Blob
-335544588=COLLATION <string> is not defined
-335544589=COLLATION <string> is not valid for specified CHARACTER SET
+335544588=COLLATION {0} is not defined
+335544589=COLLATION {0} is not valid for specified CHARACTER SET
335544590=Option specified more than once
335544591=Unknown transaction option
335544592=Invalid array reference
335544593=Array declared with too many dimensions
-335544594=Illega=array dimension range
+335544594=Illegal array dimension range
335544595=Trigger unknown
-335544596=Subselect illega=in this context
+335544596=Subselect illegal in this context
335544597=Cannot prepare a CREATE DATABASE/SCHEMA statement
335544598=must specify column name for view select expression
335544599=number of columns does not match select list
@@ -253,81 +253,81 @@
335544606=expression evaluation not supported
335544607=gen.c: node not supported
335544608=Unexpected end of command
-335544609=INDEX <string>
-335544610=EXCEPTION <string>
-335544611=COLUMN <string>
+335544609=INDEX {0}
+335544610=EXCEPTION {0}
+335544611=COLUMN {0}
335544612=Token unknown
335544613=union not supported
-335544614=Unsupported DSQ=construct
+335544614=Unsupported DSQL construct
335544615=column used with aggregate
335544616=invalid column reference
335544617=invalid ORDER BY clause
335544618=Return mode by value not allowed for this datatype
-335544619=Externa=functions cannot have more than 10 parameters
-335544620=alias <string> conflicts with an alias in the same statement
-335544621=alias <string> conflicts with a procedure in the same statement
-335544622=alias <string> conflicts with a table in the same statement
-335544623=Illega=use of keyword VALUE
-335544624=segment count of 0 defined for index <string>
+335544619=External functions cannot have more than 10 parameters
+335544620=alias {0} conflicts with an alias in the same statement
+335544621=alias {0} conflicts with a procedure in the same statement
+335544622=alias {0} conflicts with a table in the same statement
+335544623=Illegal use of keyword VALUE
+335544624=segment count of 0 defined for index {0}
335544625=A node name is not permitted in a secondary, shadow, cache or log file name
-335544626=TABLE <string>
-335544627=PROCEDURE <string>
-335544628=cannot create index <string>
-335544630=there are <long> dependencies
-335544631=too many keys defined for index <string>
-335544632=Preceding file did not specify length, so <string> must include starting page number
+335544626=TABLE {0}
+335544627=PROCEDURE {0}
+335544628=cannot create index {0}
+335544630=there are {0} dependencies
+335544631=too many keys defined for index {0}
+335544632=Preceding file did not specify length, so {0} must include starting page number
335544633=Shadow number must be a positive integer
-335544634=Token unknown - line <long>, char <long>
-335544635=there is no alias or table named <string> at this scope level
-335544636=there is no index <string> for table <string>
-335544637=table <string> is not referenced in plan
-335544638=table <string> is referenced more than once in plan; use aliases to distinguish
-335544639=table <string> is referenced in the plan but not the from list
+335544634=Token unknown - line {0}, char {1}
+335544635=there is no alias or table named {0} at this scope level
+335544636=there is no index {0} for table {0}
+335544637=table {0} is not referenced in plan
+335544638=table {0} is referenced more than once in plan; use aliases to distinguish
+335544639=table {0} is referenced in the plan but not the from list
335544640=Invalid use of CHARACTER SET or COLLATE
335544641=Specified domain or source column does not exist
-335544642=index <string> cannot be used in the specified plan
-335544643=the table <string> is referenced twice; use aliases to differentiate
-335544644=illega=operation when at beginning of stream
+335544642=index {0} cannot be used in the specified plan
+335544643=the table {0} is referenced twice; use aliases to differentiate
+335544644=illegal operation when at beginning of stream
335544645=the current position is on a crack
335544646=database or file exists
335544647=invalid comparison operator for find operation
335544648=Connection lost to pipe server
335544649=bad checksum
335544650=wrong page type
-335544651=externa=file could not be opened for output
+335544651=external file could not be opened for output
335544652=multiple rows in singleton select
335544653=cannot attach to password database
335544654=cannot start transaction for password database
335544655=invalid direction for find operation
-335544656=variable <string> conflicts with parameter in same procedure
+335544656=variable {0} conflicts with parameter in same procedure
335544657=Array/Blob/DATE /TIME/TIMESTAMP datatypes not allowed in arithmetic
-335544658=<string> is not a valid base table of the specified view
-335544659=table <string> is referenced twice in view; use an alias to distinguish
-335544660=view <string> has more than one base table; use aliases to distinguish
+335544658={0} is not a valid base table of the specified view
+335544659=table {0} is referenced twice in view; use an alias to distinguish
+335544660=view {0} has more than one base table; use aliases to distinguish
335544661=cannot add index, index root page is full.
-335544662=BLOB SUB_TYPE <string> is not defined
+335544662=BLOB SUB_TYPE {0} is not defined
335544663=Too many concurrent executions of the same request
-335544664=duplicate specification of <string> - not supported
-335544665=violation of PRIMARY or UNIQUE KEY constraint: <string>
-335544666=server version too old to support al=CREATE DATABASE options
+335544664=duplicate specification of {0} - not supported
+335544665=violation of PRIMARY or UNIQUE KEY constraint: {0}
+335544666=server version too old to support all CREATE DATABASE options
335544667=drop database completed with errors
-335544668=procedure <string> does not return any values
+335544668=procedure {0} does not return any values
335544669=count of column list and variable list do not match
-335544670=attempt to index Blob column in index <string>
-335544671=attempt to index array column in index <string>
-335544672=too few key columns found for index <string> (incorrect column name?)
+335544670=attempt to index Blob column in index {0}
+335544671=attempt to index array column in index {0}
+335544672=too few key columns found for index {0} (incorrect column name?)
335544673=cannot delete
335544674=last column in a table cannot be deleted
335544675=sort error
335544676=sort error: not enough memory
335544677=too many versions
335544678=invalid key position
-335544679=segments not allowed in expression index <string>
+335544679=segments not allowed in expression index {0}
335544680=sort error: corruption in data structure
-335544681=new record size of <long> bytes is too big
+335544681=new record size of {0} bytes is too big
335544682=Inappropriate self-reference of column
335544683=request depth exceeded. (Recursive definition?)
-335544684=cannot access column <string> in view <string>
+335544684=cannot access column {0} in view {1}
335544685=dbkey not available for multi-table views
335544688=The prepare statement identifies a prepare statement with an open cursor
335544689=InterBase error
@@ -339,25 +339,25 @@
335544700=Long integer expected
335544701=Unsigned short integer expected
335544702=Invalid ESCAPE sequence
-335544703=service <string> does not have an associated executable
-335544704=Network lookup failure for host <string>
-335544705=Undefined service <string>/<string>
+335544703=service {0} does not have an associated executable
+335544704=Network lookup failure for host {0}
+335544705=Undefined service {0}/{1}
335544706=Host unknown
335544707=user does not have GRANT privileges on base for operation
335544708=Ambiguous column reference.
335544709=Invalid aggregate reference
-335544710=navigationa=stream <long> references a view with more than one base table.
-335544711=attempt to execute an unprepared dynamic SQ=statement
+335544710=navigational stream {0} references a view with more than one base table.
+335544711=attempt to execute an unprepared dynamic SQL statement
335544712=Positive value expected.
335544713=Incorrect values within SQLDA structure
335544714=invalid Blob id
-335544715=operation not supported for EXTERNA=FILE table <string>
-335544716=service is currently busy: <string>
+335544715=operation not supported for EXTERNAL FILE table {0}
+335544716=service is currently busy: {0}
335544717=stack size insufficient to execute current request
335544718=invalid key for find operation
335544719=error initializing the network software
-335544720=unable to load required library <string>
-335544721=unable to complete network request to host <string>
+335544720=unable to load required library {0}
+335544721=unable to complete network request to host {0}
335544722=failed to establish a connection
335544723=error while listening for an incoming connection
335544724=failed to establish a secondary connection for event processing
@@ -374,18 +374,18 @@
335544737=error while trying to write to file
335544738=error while trying to delete file
335544739=error while trying to access file
-335544740=exception <integer> detected in blob filter or user defined function
+335544740=exception {0} detected in blob filter or user defined function
335544741=connection lost to database
335544742=user cannot write to RDB$USER_PRIVILEGES
335544743=token size exceeds limit
335544744=maximum user count exceeded; contact your database administrator
-335544745=your login <string> is same as one of the SQ=role names; ask your database administrator to set up a valid InterBase login
+335544745=your login {0} is same as one of the SQL role names; ask your database administrator to set up a valid InterBase login
335544746=REFERENCES table without (column); requires PRIMARY KEY on referenced table
335544747=the username entered is too long. Maximum length is 31 bytes.
335544748=the password specified is too long. Maximum length is 8 bytes.
335544749=a username is required for this operation.
335544750=a password is required for this operation
-335544751=the network protoco=specified is invalid
+335544751=the network protocol specified is invalid
335544752=a duplicate user name was found in the security database
335544753=the user name specified was not found in the security database
335544754=error while attempting to add the user
@@ -393,7 +393,7 @@
335544756=error while attempting to delete the user record
335544757=error while updating the security database
335544758=sort record size is too big
-335544759=cannot assign a NUL=default value to a column with a NOT NUL=constraint
+335544759=cannot assign a NULL default value to a column with a NOT NULL constraint
335544760=the specified user-entered string is not valid
335544761=too many open handles to database
335544762=optimizer implementation limits are exceeded; for example, only 256 conjuncts (ANDs and ORs) are allowed
|