|
|
|
The information in this article applies to:
SUMMARYThe following is a list of reserved error codes that may be returned
by the new Microsoft Access version 2.0 Jet engine that Visual Basic can
now use if you have installed the Jet 2.0/Visual Basic 3.0 Compatibility
Layer.
Now you can search for specific error strings alphabetically. MORE INFORMATIONJet_Error/Message_String
-1010 Invalid database ID.
-1016 Can't have more than 10 fields in an index.
-1029 Database engine hasn't been initialized.
-1030 Database engine has already been initialized.
-1034 Query support unavailable.
-1046 Can't delete a field that is part of an index.
-1051 Can't delete this index. It is either the current index
or is used in a relationship.
-1062 Can't create database; Invalid locale.
-1066 Can't create a relationship.
-1068 Invalid referential integrity constraint.
-1070 Can't find Installable ISAM.
-1106 JET_errCommitConflict Read lock failed due to outstanding commit
lock.
-1209 The Jet database engine has encountered a problem in your
database. To correct the problem, you must repair and
compact the database.
-1308 Can't define field or index in a table that contains
data.
-1309 Can't modify table structure. Another user has the table
open.
-1315 Can't change a rule while the rules for this table are in
use.
-1316 Object is invalid for operation.
-1402 Primary key already exists.
-1403 Index already exists.
-1406 Invalid index definition.
-1513 Can't create index on Memo field or OLE Object field.
-1519 Can't delete this field. It's part of one or more
relationships.
-1523 Zero-length string is valid only in a text or Memo field.
-1601 The key was not found. (JET_errRecordNotFound)
-1802 Can't open |9 system database (typically SYSTEM.MDA).
-1910 You must enter a personal identifier (PID) consisting of
at least four and no more than 20 characters and digits.
-1911 Account name already exists.
-2030 There are several tables with that name. Please specify
owner in the format 'owner.table'.
-2031 Invalid connection string in pass-through query.
-2032 Single-row update/delete affected more than one row of a
remote table. Index specified as unique contains
duplicate values.
-2033 The server's MSysConf table exists, but is in an
incorrect format. Contact your system administrator.
-2034 You cannot use ODBC to attach an external Microsoft
Access or ISAM database table to your database.
-3028 Can't have action query as an input.
-3031 Query does not return records.
-3059 This query is not a properly formed data-definition
query.
-3060 No database specified in connection string or IN clause.
-3063 At most one field can be returned from a subquery that
doesn't use the EXISTS keyword.
-3064 The number of columns in the two selected tables or
queries of a union query don't match.
-3066 Execute method must be used on action or data-definition
queries.
-3069 Pass-through query with ReturnsRecords property set to
True did not return any records.
-3070 At most one record can be returned by this subquery."
-3071 Query is too complex.
-3072 Unions not allowed in a subquery.
-3073 Can't perform join, group, or sort. Combined fields are
too long.
-3077 Too many FastFind Sessions were invoked.
-3520 Number of query values and destination fields aren't the
same.
-3530 Join expression not supported.
-3531 Can be present only in version 1.0 format.
-3532 Syntax error in union query.
-3535 Pass-through query must contain at least one character.
-3550 Syntax error in CONSTRAINT clause.
-3551 Syntax error in CREATE TABLE statement.
-3552 Syntax error in CREATE INDEX statement.
-3553 Syntax error in field definition.
-3554 Syntax error in ALTER TABLE statement.
-3555 Syntax error in DROP INDEX statement.
-3556 Syntax error in DROP TABLE statement.
-3560 Relationship must be on the same number of fields with
the same data types.
-3561 Can't find field in index definition.
-3601Property setting can't be larger than 2 KB.
-3602 This property isn't supported for external data sources
or for databases created in a previous version of |9.
-3603 Property specified already exists.
-3604 DeleteOnly called with non-zero cbData.
-3605 An error has occurred. Properties were not saved.
-3606 Can't save property; property is a schema property.
-3700 Validation rules and default values can't be placed on
system or attached tables.
-3704 Can't place this validation expression on this field.
-3708 Syntax error in default value.
-5015 External table isn't in the expected format.
-5016 Unexpected error from external database driver (|).
-5017 Numeric field overflow.
-5020 Paradox index is not primary.
-5029 Can't open '|'. Another user has the table open using a
different network control file or locking style.
-5030 Can't open this Paradox 4.x table because ParadoxNetStyle
is set to 3.x in |8.
-5112 Format of memo file doesn't match specified external
database format.
-5210 Btrieve: Invalid IndexDDF option in |8.
-5211 Invalid DataCodePage option in |8.
-5212 Btrieve: Xtrieve options aren't correct in |8.
-5213 Btrieve: Can't find file FIELD.DDF.
-5214 Btrieve: Invalid IndexDeleteRenumber option in |8.
-8056 No destination field name in INSERT statement (|).
-8172 Top not allowed in delete queries.
-8175 Crosstab query contains one or more invalid fixed column
headings.
-8176 Query '|' is corrupt.
-8177 Invalid TOP argument in select query.
-8178 This Recordset is not updatable.
-8179 Field '|' is based on an expression and can't be edited.
-8180 Table '|2' is read-only.
-8181 Record in table '|' was deleted by another user.
-8182 Record in table '|' is locked by another user.
-8183 To make changes to this field, first save the record.
-8184 Can't enter value into blank field on 'one' side of outer
join.
-8185 Records in table '|' would have no record on the 'one'
side.
-8186 Current field must match join key '|' on 'one' side of
outer join.
-8187 Invalid Memo or OLE object in subquery '|'.
-8188 Unrecognized database format '|'.
-8189 ORDER BY expression (|) uses non-output fields.
-8190 Unknown or invalid reference '|1' in validation
expression or default value in table '|2'.
-8191 Unknown or invalid field reference '|'.
-8192 Can't add record(s); primary key for table '|' not in
recordset.
-8193 Can't add record(s); join key of table '|' not in
recordset.
-8194 The database is opened by user '|2' on machine '|1'. You
can't open this database exclusively.
-8195 Record(s) can't be added; no corresponding record on the
'one' side.
-8196 Can't use Memo or OLE object field '|' in SELECT
clause of a union query.
-8197 Unknown function '|2' in validation expression or default
value on '|1'.
-8220 Can't modify the design of table '|'. It's in a
read-only database.
-8221 Can't find table or constraint.
-8222 No such index '|2' on table '|1'.
-8223 Can't create relationship. Referenced table '|' doesn't
have a primary key.
-8224 The specified fields are not uniquely indexed in table
'|'.
-8225 Table '|1' already has an index named '|2'
-8226 Table '|' doesn't exist.
-8227 No such relationship '|2' on table '|1'.
-8228 There is already a relationship named '|' in the current
database.
-8229 Can't create relationships to enforce referential
integrity. Existing data in table '|2' violates
referential integrity rules with related table '|1'.
-8230 Field '|2' already exists in table '|1'.
-8231 There is no field named '|2' in table '|1'.
-8232 Field '|' size must be 1 to 255.
-8233 Can't delete field '|'. It's part of one or more
relationships.
-8234 There is no primary key in table '|'.
-8235 Invalid field name '|' in definition of index or
relationship.
-8260 | in table-level validation expression.
-8261 Field '|' can't contain a null value.
-8262 Field '|' can't be a zero-length string.
-8263 This validation rule must be met.
-8264 Can't perform cascading operation. Since related records
exist in table '|', referential integrity rules would be
violated.
-8265 Can't perform cascading operation. There must be a
related record in table '|'.
-8266 Can't perform cascading operation. It would result in a
null key in table '|'.
-8267 Can't perform cascading operation. It would result in a
duplicate key in table '|'.
-8268 Can't perform cascading operation. It would result
in two updates on field '|2' in table '|1'.
-8269 Can't perform cascading operation. It would cause field
'|' to become null, which is not allowed.
-8270 Can't perform cascading operation. It would cause field
'|' to become a zero-length string, which is not allowed.
-8271 Can't perform cascading operation: '|'
-8272 Invalid entry. Can't perform cascading operation
specified in table '|1' because value entered is too big
for field '|2'.
-8273 Write conflict due to cascading
-8274 Can't perform cascading update on table '|' because it is
currently in use.
-20000 Can't open this database for update.
-30001 No fields defined - cannot append table.
-30002 Name not found in this collection.
-30003 Can't append. Field is part of a TableDefs collection.
-30004 Property can be set only when the field is part of a Recordset
object's Fields collection.
-30005 Can't set this property once the object is part of a collection.
-30006 Can't append. Index is part of a TableDefs collection.
-30007 Property not found.
-30008 Invalid property value.
-30009 Object isn't a collection.
-30010 Method not applicable for this object.
-30011 Can't set this property for remote objects.
-30012 Can't append a relation with no fields defined.
-30013 Can't append. Object already in collection.
-30014 Can't delete a built-in property.
-30015 Property '|' must be set before using this method.
-30016 User-defined properties don't support a Null value.
-30017 Object is no longer valid.
-30018 This method or property is not currently available on
this Recordset.
-30019 The action was canceled by an associated object.
-30020 Error in DAO automation.
-30021 Data type conversion error.
-32020 Can't import table or query. No records found, or all
records contain errors.
JET_errExpLeftParenthesis
-8082 Expected '('
JET_errExpRightParenthesis-8083 Expected ')'
Additional query words: 3.00 Keywords :
CodeBase 6 HintsThis document provides a list of solutions for common problems and answers to frequently asked questions.Common problems
Frequently Asked QuestionsGeneral CodeBase questions
Indexes and Seeking
Queries, Relations, and Expressions
Client/Server
CodeReporterOther CodeBase Errors
Common problemsVisual C++ 6 support
Visual C++ 6 may generate compile errors when rebuilding the CodeBase static library or DLL. If this occurs, download these fixed CodeBase 6.4 source files and place them in your SOURCE directory. Visual C++ 6 will work with CodeControls 3, but the example projects for Visual C++ 5 that come with CodeBase 6.4 will not work with Visual C++ 6. These example projects have been updated for Visual C++ 6.
Two example source files will not compile with
Visual C++ 6.
These example source files have been updated to work.
Windows 98 GPF during installation GPF
Windows NTNovell and WindowsOverflow Error calling report4parent()Unresolved External Symbol operator new
NetBEUICodeUtilbeginthread Error Building DLLFrequent Index Corruption under Windows 95More information on this bug can be found in article Q174371 in the Microsoft Knowledge Base. UNIX bus errors or core dumpsLink Error: LIBCI.LIB cannot be foundCodeBase not working after errorInvalid Transaction file (error -1210) when opening fileIf the integrity of the log file is important, use CodeUtil (in Windows) or the utility functions (in other operating systems) to repair the log file. Otherwise, simply delete the log file if it is not important. If you do not intend to use a log file in your application at all, you can force CodeBase to NOT automatically open the log file by calling code4logOpenOff() before you open any database files. Class not registered. Looking for object with CLSID: {...}
{0BE35200-8F91-11CE-9DE3-00AA004BB851}
{0BE35200-8F91-11CE-9DE3-00AA004BB851} - "Font
Property Page"
Exceeding the 64K default data segment limit in a DOS application
Structure Verification Failure (error -960) when using CodeBase 6.5 and C++Builder 4 or 5
Under C++Builder 4, use the Project|View Makefile menu command to examine the makefile for your project. In the makefile, there is a variable called CFLAG1 that is assigned several compiler options. Change the -b- option to -b, and save the makefile. Under C++Builder 5, use the Project|Options menu command, and go to the Compiler tab. Under the Compiling section, check the box besides "Treat enum types as ints" and click the OK button. Design-time license error when using CodeControlsThere are two common causes of this error: "Specified driver could not be loaded due to system error 127 (CodeBaseOdbcStand)"The current releases of the stand-alone CodeBase SQL/ODBC Driver (not the CodeBase Reduced SQL/ODBC Driver) use their own version of the c4dll.dll. However, the installation program for the driver will not install its c4dll.dll over any pre-existing c4dll.dll in the \Windows\System or \WinNT\System32 directory. The c4dll.dll that is currently in the \Windows\System or \WinNT\System32 directory must be removed, then the stand-alone CodeBase SQL/ODBC Driver must be un-installed and re-installed. Frequently Asked QuestionsWhat Files are used by CodeBase?
Data File: A file with the DBF extension. It contains all the non-memo entries. Memo File: A file with either a DBT or FPT extension. It contains all memo entries. Group File:A file with a CGP extension. This file is unique to CodeBase and is used only in the Clipper case. It contains the names of the index files. Index File:A file with a CDX, MDX or NTX extension. This file contains the sort order of the data file. For further information about the contents of the above files, please consult other questions in this document or the User's and Reference Guides. What is the difference between opening a file in read-only mode, and opening the file in exclusive mode?
How can files be opened in different modes?
I get an error after opening several files simultaneously. However, if I first close some files, and then open the rest, everything is fine.
See Also: Error -20, Error -30 When I change my database on one workstation, who do the changes not appear on another workstation and I receive errors?
Why do I have trouble with relations when I am using two files that have the same name, even if they are in different directories?
Let us assume that we have two files called C:\DIR1\FILE.DBF and C:\DIR2\FILE.DBF. Click below for a short program segment that will open both files.
The following information should be understood when using memo fields:
If I search for the string "JOHN", I get a return code of 0 (r4success in Appendix B), yet I am positioned on record "JOHNSON". How do I perform an exact match and find only "JOHN" ?
How can I perform a case-insensitive search?
What is the difference between a TAG and an INDEX?
Suppose we have a database with two fields, NAME and ID. If we want to sort the database according to the NAME field then we set up a TAG (sort order) based on the NAME field. Similarly, if we want to sort on the ID field we can create a TAG based on the ID field. If we want to search and skip through the database using the alphabetized name tag, we must select the NAME tag using the "tag select" command. We may do the same for the ID numbers. In order to store the TAGs on disk, xBASE (which includes CodeBase) uses INDEX files. CDX and MDX INDEX files may contain several tags. However, NTX INDEX file only contain a single tag. Once we open an INDEX file, we have access to all the tags that are associated with the index. When I try to open my DBF, I get an error #-60: "Unable to open XXX.CGP." What is a .CGP file?
Also, please refer to "Group Files" in the CodeBase manuals.
CGP files are unique to CodeBase and exist
only in the cases when S4CLIPPER is defined. Because Clipper (NTX) does
not have multiple-tag index files, CodeBase implements a CGP file which emulates
this functionality. A CGP file allows you to open your NTX files as if they are
a part of a multiple index. For instance, if you have two NTX files called
TAG1.NTX and TAG2.NTX, you may either open each individually, or use a CGP file
and open the two files as if they were a single index file. Below is an example
CGP file that contains a reference to the above index files:
TAG2 If a CGP file is not used then each index file must be opened manually. Refer to the example programs NOGROUP1 and NOGROUP2 in the User's Guide. How are indexes in a non-default directory and indexes with non-standard name extensions used with CodeBase?
For those using Clipper compatibility, the index file name passed to i4create() or i4open() (Index4::create() or Index4::open() in C++) is the name of the CGP file. The individual index files will still each have the .NTX file extension. To create Clipper indexes with a non-default extension, you can specify the extension name when defining the TAG4INFO.name element for any given index. An alternate way to specify non-default Clipper extensions is to manually modify an existing CGP file and its associated index files. For example, if the required file names are DATAFILE.ABC (instead of DATAFILE.CGP), TAG1.ABC (instead of TAG1.NTX), and TAG2.XYZ (instead of TAG2.NTX) you could perform the following steps: The above is true for Clipper, dBASE and FoxPro compatibility. However, in the Clipper case, each tag is stored separately and a distinct index file is created for it (see also: What is a CGP file). In this case, three possibilities exist:
TAG2
TAG2.XYZ
C:\DIR2\TAG2.XYZ If a CGP file is not used then t4open must be used instead. Remember that the path names must be included. Why are all unique tags set to r4uniqueContinue, even though they were created with the r4unique option?
In addition, the default behavior for dBASE, FoxPro and Clipper is to maintain unique tags in a manner similar to that used by CodeBase when the tag is set to r4uniqueContinue.
Consequently, in order to be compatible with
their tag formats, CodeBase sets the default behavior for any unique tag to
r4uniqueContinue, even if the tag was originally created with the r4unique
setting. CodeBase accomplishes this be maintaining an internal structure for
each tag. When the index file containing the tag is opened, CodeBase sets a
specific 'unique' member of the structure to r4uniqueContinue. The possible
values of this member are as follows:
Why is my r4uniqueContinue tag not properly updated?
The TAG4INFO settings used when the tag was created was as follows:
In this case, the tag's uniqueness was set to 'r4uniqueContinue'. This setting tells CodeBase to allow the update or appending of a record with a duplicate key (such as record 3), but not to add an entry for that record in the index tag. Therefore, based on the above data file, only keys for records 1 and 2 are included in the tag; there is no entry for record 3. Later, the NAME field of record 2 is changed to 'CCC'. At this point, the 'BBB' value in record 3 would no longer be a duplicate value, and you would expect all three records to appear in the index tag. But it is not. Record 3 does not have a tag entry. Answer: For performance reasons, it is not possible for CodeBase to scan the entire data file searching for a possible record that can now be included in the index due to the modification of an existing record. The only available work-around to this problem would be to delete the duplicate-key record, and then re-append the information to the data file, thus updating the index file tag. The best solution to this problem is not to use r4uniqueContinue on indexes where this situation might occur; instead use r4unique or e4unique. Note also, this if you do not update the index (by removing the record and adding it back in), you will end up with a corrupted index file. How can I get the number of records that an index contains? For example, if an index has the '.NOT. DELETED()' filter, how do I find the number of undeleted records?
To find out the number of records in an index, just select the required index, go to the top, and skip to the bottom. Count the number of skips and add one. This number will correspond to the number of valid records in the index. How do I create a tag consisting of two numerical fields?
the tag expression to join the two would be:
Take note of the spaces embedded in the search string above. These spaces are required to match the search value with the size of the two fields that make up the index key expression (2 + 5). Note also that even though this is a character tag, which is normally left justified, because the expression is based on numerical fields -- which are always right justified -- the individual sub-expressions within the tag expression are also right justified. See also: Expression How do I seek for a Unicode string?
How do I seek for a value in a DateTime field?
For example, 2:51 pm on December 6, 1999 would be formatted as "1999120614:51:00.000". When reindexing a database, why does the index file shrink dramatically?
As an example, let's say that we start with a
blank database. To the database, we add these records, in this order: B, A, C,
D, F, E, G. Logically, the index will look something like this:
This is not as efficient and compact as it could be. As each record is added to the database, CodeBase just adds the entry to the tag at the appropriate location in the tree.
When CodeBase reindexes the database, the
index will logically look more like this:
As you can see, this version of the index contains exactly the same data as the one above, but it is organized in a much more efficient manner. Consequently, the index file consumes less disk space. How can I filter out deleted records when browsing a data file?
What are the criteria for Query Optimization (QO) technology to be activated?
Let us assume the following tags have been
defined:
Why can QO not use a r4uniqueContinue tag?
See Also: Query Optimization, r4unique, r4uniqueContinue Why are some slaves in a relation set blank? When the relation matches master to slave, only one slave is matched to a master at one time. When a query that uses Query Optimization technology (QO) is made, how is it possible to find out the number of records that are returned?
How can fields from different files be referenced in a query?
Is it possible to have a master file with multiple relations to the same slave file?
See also: Alias, Query What is code4calcCreate() used for?
By using code4calcCreate, the ability to create longer expressions than would otherwise be possible is gained.
In this particular example, a -440 error will be generated if the call to expr4parse is made with more than 19 comparisons. That is, if the expression "FIELD1=1 .OR. FIELD1=2 .OR. ... .OR. FIELD1=20" is passed, then the above error will be generated. Consequently, the code4calcCreate could be used for the first 19 comparisons and the query would be called as "MYEXPR() .OR. FIELD1 = 20." See also: expr4parse, relate4querySet, Error -440 How do I shorten an expression with code4calcCreate? In this example, there are three fields in the table: FNAME, LNAME, CITY and COUNTRY. The query expression is "LNAME + FNAME + COUNTRY + CITY". Here is the pseudocode that will break this up:
exName = expr4parse(data,"LNAME + FNAME")
The expression is now broken down into two
smaller expressions which are each made into a dBASE function. The query
expression uses those functions and is shorter than what we had before.
How can fields be concatenated (linked together) into a meaningful expression?
In order to concatenate any of the fields together, the rules below should be applied:
In order to create an expression which uses all of the above fields, the following sequence may be used:
How is a query with a date field made?
To find all the records with a DUE_DATE of April 24, 2001, use one of the following queries:
relate4querySet( relation, "DUE_DATE = STOD('20010424')" ); See also: Expression When I append many records to file, why does performance gradually degrade after the first few hundred records?
How can I ensure optimal performance of the CodeBase database server?
How do I know what host name to pass to code4connect()?
PING -a xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx is the IP
address of the machine that is to run the CodeBase server. You should get a
response like this:
Pinging server5.network.com [217.53.30.5] with 32 bytes of data: Reply from 217.53.30.5: bytes=32 time<10ms TTL=128 Reply from 217.53.30.5: bytes=32 time<10ms TTL=128 Reply from 217.53.30.5: bytes=32 time<10ms TTL=128 Reply from 217.53.30.5: bytes=32 time<10ms TTL=128
If you do not get a host name before the IP address on the first line of the reply (server5.network.com in this example), PING cannot locate the necessary resources to resolve an IP address to a host name. See the Appendix on Protocols in your Getting Started book or contact your network administrator. Can I speed up the time it takes to display a sorted report? I am using the Report | Sort Expression dialog box.
How is it possible to calculate a total without showing it on the screen?
Another possible solution is to set the font color of the 'TOTAL' object to be identical to the background color. However, this will not work for a DOS report. Lastly, you may create the 'TOTAL' object and set the object size to 0. How do I re-compile any of the launch utilities?
Why are all reports printed from DOS double spaced and have extra blank pages in the middle and end?
The next step is done from the program itself. When printing reports from DOS, it is recommended that the page be reset. The following commands should be called before report4do: How can I make my report page size on screen identical to the sheets I use for my printer?
After viewing one report with an invalid printer driver, why do subsequent reports also appear blank?
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||