rm_ch4.htm

来自「db.* (pronounced dee-be star) is an adva」· HTM 代码 · 共 1,135 行 · 第 1/3 页

HTM
1,135
字号
The record or set has been deleted (since last accessed) by a readfunction or a timestamp status function.</font></p><p><font size="2">S_DELSYS<br>An illegal attempt to delete the system record was made.</font></p><p><font size="2">S_DUPLICATE<br>An attempt was made to store a duplicate value into a <i>unique</i>key field. This code is also returned by <b>d_checkid</b> if theproposed user ID is already in use.</font></p><p><font size="2">S_DUPUSERID<br>The user ID for this DB_TASK is already being used by anotherDB_TASK on the system. If you are using a DBUSERID that has beenused on another workstation, it may be necessary to run<b>lmclear</b> on the previous workstation to remove the DBUSERIDfrom the name table and other locations.</font></p><p><font size="2">S_EACCESS<br>The file is in use, or the file user does not have rights to thefile. When possible, under one-user open mode, <b><i>db.*</i></b>will open files in a non-shareable state to help the programmerprevent database corruption. This error indicates that the file isopened by <b><i>db.*</i></b>, but the file is not under lockmanager control.</font></p><p><font size="2">S_EOS<br>The end of a set was reached. When a set navigation function orfunction <b>d_discon</b> has reached the end of the set, S_EOS isreturned. Functions <b>d_isowner</b> and <b>d_ismember</b> alsoreturn S_EOS when the current record is not currently an owner ormember of the set.</font></p><p><font size="2">S_EXCLUSIVE<br>Exclusive access is required. The database must be opened inone-user mode or exclusive mode, or exclusive locks must be placedon the appropriate files.</font></p><p><font size="2">S_FAULT<br>A page fault has occurred in the <b><i>db.*</i></b> cache. Usuallythis happens with a small cache being shared by multiple DB_TASKswhere all the pages are locked; none can be swapped out, butanother page is required to be swapped in. This error can alsooccur when the <b><i>db.*</i></b> runtime memory has beencorrupted.</font></p><p><font size="2">S_FSEEK<br>A seek error was returned on a database file. You can check C's"errno" for the particular error code. If this error occurs duringnormal operation, it occurred on the log file and could indicate alack of available disk space. If this error occurs during arecovery, it probably means that the log file has been corrupted.If you get this error during a recovery, you should run<b>dbcheck</b>. If no errors are reported, decide whether you wantto continue. (<b><i>db.*</i></b> will run smoothly, but<b>dbcheck</b> only detects system-dependent inconsistencies, notapplication-dependent inconsistencies.)</font></p><p><font size="2">S_HASMEM<br>In a call to the <b>d_delete</b> function, the current record is anowner of a non-empty set.</font></p><p><font size="2">S_INCOMPAT<br>Incompatible database dictionaries were specified. This code isreturned from <b>d_open</b> when the database dictionary for thespecified database is not compatible with the version of the<b><i>db.*</i></b> runtime that is being executed. You need to runa more recent version of <b>ddlp</b> on your DDL specification, andthen retry your <b>d_open</b> call.</font></p><p><font size="2">S_INVADDR<br>The database address is invalid. You may have passed the databaseaddress variable by value (for example, <b>d_crset</b>(dba))instead of by reference (for example, <b>d_crset</b>(&amp;dba)).Also, <b>d_recread</b> can return this error if the record slot inthe database is corrupted.</font></p><p><font size="2">S_INVDB<br>The database name or number is invalid. Function <b>d_open</b> wasunable to open the &lt;<b>dbname</b>&gt;<b>.dbd</b> file. You mayhave incorrectly specified (or not specified) the DBDPATH variable;or you executed from a directory that does not contain thedictionary file. Check C's "errno" variable for additionalinformation. Other functions also return S_INVDB if an incorrectdatabase number is passed to them.</font></p><p><font size="2">S_INVFLD<br>The field type is invalid. You may have passed a set or record typeto a function that requires a field type. If the current record isof a type other than the one anticipated, S_INVFLD will result,because the field is inappropriate for the current recordtype.</font></p><p><font size="2">S_INVID<br>The <b>d_internals</b> function has been passed an invalid topic orsubtopic value.</font></p><p><font size="2">S_INVLOCK<br>An invalid lock manager communication type was specified. Make surethe number passed to <b>d_lockcomm</b>, or the string in the INIfile, is correct for the types being allowed by the application'sLOCKCOMM_DATA table.</font></p><p><font size="2">S_INVMEM<br>The record type is not a legal member of the specified set. You maynot know what the current record is. Confirm that the previous<b><i>db.*</i></b> calls were successful.</font></p><p><font size="2">S_INVNUM<br>An invalid record or set type was specified for a locking function.This error code also can be returned from <b>d_setfiles</b> and<b>d_setpages</b> when a number passed in exceeds the limits of thefunction.</font></p><p><font size="2">S_INVOWN<br>The record type is not a legal owner of the specified set. Thecurrent record may not be what you think it is. Confirm that theprevious <b><i>db.*</i></b> calls were successful.</font></p><p><font size="2">S_INVPTR<br>A pointer argument to a <b><i>db.*</i></b> function is NULL, or astring parameter is the empty string ("") when that is not allowed.This error code can also indicate memory corruption.</font></p><p><font size="2">S_INVREC<br>The record type is invalid. You may have passed a set or field typeto a function that requires a record type.</font></p><p><font size="2">S_INVSET<br>The set type is invalid. You may have passed a record or field typeto a function that requires a set type.</font></p><p><font size="2">S_INVSORT<br>The specified sort string in a <b>d_mapchar</b> function call islonger than two characters.</font></p><p><font size="2">S_INVTASK<br>An invalid DB_TASK is referenced. Be sure that the DB_TASK has beenopened and has been passed by reference. Also, be sure that you arenot attempting to share the DB_TASKs acrossapplications.</font></p><p><font size="2">S_ISCOMKEY<br>Functions that write individual fields cannot be used on fieldsthat make up compound keys. Use <b>d_recwrite</b>instead.</font></p><p><font size="2">S_ISMEM<br>In a call to the <b>d_delete</b> function, the current record isstill a member of a set occurrence.</font></p><p><font size="2">S_ISOWNED<br>In a call to the <b>d_connect</b> function, the current record isalready connected to an instance of the specified set.</font></p><p><font size="2">S_KEYERR<br>A key file inconsistency has been detected. This usually occurswhen either the OS cache or the <b><i>db.*</i></b> cache is notbeing synchronized properly with other processes. This error canalso occur when the <b><i>db.*</i></b> runtime memory has beencorrupted. Run <b>keybuild</b> if <b>dbcheck</b> reveals acorrupted key file.</font></p><p><font size="2">S_KEYREQD<br>A key value is required. Function <b>d_makenew</b> returnsS_KEYREQD when <b>d_setkey</b> has not previously set all keyfields.</font></p><p><font size="2">S_KEYSEQ<br>A key sequence error was detected. The function <b>d_keyread</b>was called before a key locate function (for example,<b>d_keynext</b>) had located a key.</font></p><p><font size="2">S_LMBUSY<br>The lock manager is busy; and there is no more room in its requestqueue. Retry the request. Try increasing the number of users (viathe <b>-u</b> option) when running the lock manager.</font></p><p><font size="2">S_LMCERROR<br>A lock manager communication error has occurred. The error stringdescribes the specific problem.</font></p><p><font size="2">S_LOCKED<br>The current record is locked according to the record lockbits.</font></p><p><font size="2">S_LOGIO<br>An error has occurred during file I/O on the log file. This errorcode is used to help distinguish between errors on data and keyfiles, log files, and TAF/DBL files. Check C's "errno" variable foradditional information.</font></p><p><font size="2">S_NAMELEN<br>The database file or path name is too long. The <b>d_open</b>function returns S_NAMELEN when the 255-character file name limithas been exceeded. The limit is checked after all complete filespecifications have been generated from sources such as environmentvariables.</font></p><p><font size="2">S_NETERR<br>A network error occurred. Recovery from this error will depend onyour network. A retry of the operation may be all that isnecessary. If the lock manager has failed for some reason (forexample, if the lock manager host has been re-booted), most active<b><i>db.*</i></b> applications will eventually receive this error.The application and the lock manager need to berestarted.</font></p><p><font size="2">S_NETSYNC<br>A network synchronization error was detected. An invalid messagepacket was received from the lock manager. There could have been atransmission error. If only one process has received this error,take it down and bring it back up. If this fails to resolve theproblem or if other processes are getting the error, take theentire system down, including the lock manager, and restart. If theerror persists, there is probably an error in yournetwork.</font></p><p><font size="2">S_NOCM<br>No current member exists. The current member isNULL_DBA.</font></p><p><font size="2">S_NOCO<br>No current owner exists. The current owner is NULL_DBA. This canoccur when <b>d_findfm</b> is called without first having set thecurrent owner.</font></p><p><font size="2">S_NOCR<br>No current record exists. The current record isNULL_DBA.</font></p><p><font size="2">S_NOFILE<br>The <b><i>db.*</i></b> program is unable to open the specifiedfile. An error occurred when the runtime tried to open a data file,key file, or log file. The <b><i>db.*</i></b> program may need morefile handles than the current <b>d_setfiles</b> call allows. Youmay have exceeded the OS limit for file handles. Make sure the dataand key files exist.</font></p><p><font size="2">S_NOLOCKCOMM<br>No lock manager protocol has been specified. Call the<b>d_lockcomm</b> function or specify a "type" in the [lockmgr]section of the <b>db.star.ini</b> file.</font></p><p><font size="2">S_NOLOCKMGR<br>The <b><i>db.*</i></b> program was unable to open a lock managersession. The lock manager has probably not beeninstalled.</font></p><p><font size="2">S_NOMEMORY<br>Your system is unable to allocate sufficient memory. There is notenough available memory for all of the required <b><i>db.*</i></b>runtime tables. Try calling <b>d_setpages</b> with fewer pagesbefore calling <b>d_open</b>.</font></p><p><font size="2">S_NOPROTOCOL<br>The chosen communication software has not been loaded, or a pathcannot be found. The computer may not be connected to a network, orthe network dynamic-link libraries cannot be found.</font></p><p><font size="2">S_NOSPACE<br>No more space is available on the disk. See function <b>d_trend</b>in the <b><i>db.*</i></b> <i>Reference Manual</i>; a note in theDescription explains a technique for dealing with this error undernormal operations. However, this error can also occur when the<b><i>db.*</i></b> runtime memory has been corrupted.</font></p><p><font size="2">S_NOTCON<br>A record is not connected to the specified set.</font></p><p><font size="2">S_NOTFOUND<br>A record was not found. The key find function returns S_NOTFOUNDwhen the requested key is not found. The first, last, next, andprevious functions return this value when there are no more recordsto find. The next and previous functions will wrap to the beginningand end of the files, respectively, after this status isreturned.</font></p><p><font size="2">S_NOTFREE<br>An attempt was made to lock a record, set, or key type that yourapplication had already locked.</font></p><p><font size="2">S_NOTIMPLEMENTED<br>A function was called that is not available in this implementationof the <b><i>db.*</i></b> library. This may be a debug functionthat was called in a non-debug implementation of<b><i>db.*</i></b>, or it may be a system-specificfunction.</font></p><p><font size="2">S_NOTKEY<br>The specified field used in a key operation is not a keyfield.</font></p><p><font size="2">S_NOTLOCKED<br>An attempt was made to access or free an unlocked record, set, orkey type. This may occur when attempting to change a field that isincluded in a sorted set, and that set is not locked.</font></p><p><font size="2">S_NOTOPTKEY<br>A field specified in an optional key operation is not an optionalkey field.</font></p><p><font size="2">S_NOTRANS<br>No transaction has been started. An attempt was made to update thedatabase in shared mode outside a transaction. Database changes canonly be made in shared mode from within a transaction.</font></p><p><font size="2">S_NOTYPE<br>In a call to <b>d_recnext</b> or <b>d_recprev</b>, a current recordtype has not been established by a prior call to <b>d_recfrst</b>,<b>d_reclast</b>, or <b>d_recset</b>.</font></p><p><font size="2">S_NOWORK<br>No working key file is available. This error generally occurs whenthe <b><i>db.*</i></b> runtime memory has beencorrupted.</font></p><p><font size="2">S_OKAY<br>A normal return; everything worked successfully.</font></p><p><font size="2">S_READONLY<br>Unable to update file due to READONLY option.</font></p><p><font size="2">S_RECFAIL<br>Automatic recovery failed. This will be the last of a set of errormessages that display. The preceding messages will give moreinformation. For example, an S_BADREAD or S_BADWRITE might bereturned before the S_RECFAIL error.</font></p><p><font size="2">S_RECLIMIT<br>You have reached the maximum records per file limit for this datafile. The first step is to determine if old data can be purged oroff-loaded. If so, you will need to write a program to do this. Ifnot, you will need to reorganize your database somewhat. If thereare multiple record types in the file, you can split them intoseparate files (using <b>dbexp</b> and <b>dbimp</b>). You mightexplore splitting the offending record type into several new recordtypes and dividing the record occurrences based on the content of aprincipal key field (for example, all names beginning with A-M inrecord 1 and those with N-Z in record 2).</font></p><p><font size="2">S_RECOVERY<br>In a lock request or <b>d_open</b> function call, an automaticrecovery operation is about to occur.</font></p><p><font size="2">S_REENTER<br>A database task (DB_TASK) was used by two threads simultaneously.Although the <b><i>db.*</i></b> library is reentrant, it does notallow reentrant calls with the same database task parameter. Eachthread must open its own database task.</font></p><p><font size="2">S_RENAME<br>An invalid file number was passed to the function<b>d_renfile</b>.</font></p><p><font size="2">S_SEM<br>The <b><i>db.*</i></b> program is unable to create a semaphore ormutex.</font></p><p><font size="2">S_SETCLASH<br>The internal set pointers changed after you retrieved the record,making further set navigation from this record invalid.</font></p><p><font size="2">S_SETPAGES<br>The function <b>d_setpages</b> was called after <b>d_open</b>. Thesize of the cache cannot be changed once a database has beenopened.</font></p><p><font size="2">S_STATIC<br>An attempt was made to place a lock on a static record or file. Adatabase must be opened in exclusive (or one-user-only) mode tomodify a static record.</font></p><p><font size="2">S_SYSERR<br>A system error has occurred. This error generally occurs when the<b><i>db.*</i></b> runtime memory has been corrupted.</font></p><p><font size="2">S_TAFCREATE<br>The <b><i>db.*</i></b> program could not create the transactionactivity file (TAF). Check that the TAF name is valid, that thetarget directory exists, and that the target directory isaccessible by your application. The default name of the TAF is<b>db.star.taf</b>, and its path can be specified through a call to<b>d_dbtaf</b>, in the environment variable DBTAF, or in the<b>db.star.ini</b> file. Note that this path should end with a '/'character (on UNIX), or else it will be treated as a filename.</font></p><p><font size="2">S_TAFLOCK<br>The <b><i>db.*</i></b> program could not access the TAF. Thisprobably means that the TAF was accessed by two applications at thesame time, and at least one of those applications opened a databasein one-user mode.</font></p><p><font size="2">S_TAFREOPEN<br>The <b><i>db.*</i></b> program could not open an existing TAF. Thismay indicate a network error.</font></p><p><font size="2">S_TAFSYNC<br>A TAF-lock manager synchronization error has occurred. The TAFtracks the name and type of the lock manager controlling thisdatabase family and TAF. To prevent database corruption, thefunction <b>d_open</b> checks the name and type of the lock managerthe application wants to use, against the ones recorded in the TAFto be certain that they match. These values in the TAF can only bechanged when the user count in the TAF is zero. The <b>d_open</b>function increments this count, and <b>d_close</b> decrements thiscount.</font></p><p><font size="2">S_TIMESTAMP<br>A record or set is not timestamped. A timestamp function was calledfor a record or set type that is not being timestamped.</font></p><p><font size="2">S_TRACTIVE<br>A transaction was already active. An incremental open cannot beperformed during an active transaction. Transactions cannot benested. That is, you cannot begin a new transaction within anactive transaction.</font></p><p><font size="2">S_TRANSID<br>A transaction ID was not supplied in a call to <b>d_trbegin</b> oris invalid.</font></p><p><font size="2">S_TRFREE<br>An attempt was made to free a lock inside a transaction in sharedmode. Only <b>d_trend</b> or <b>d_trabort</b> can free locks once atransaction has begun.</font></p><p><font size="2">S_TRNOTACT<br>A transaction was not active. An attempt was made to place a writeor keep lock outside of a transaction. Only read locks andexclusive locks can be requested outside of atransaction.</font></p><p><font size="2">S_UNAVAIL<br>One or more files that were requested in a lock request functioncall did not become available before the request timed out, or thedatabase was not available in a call to the <b>d_open</b> function.If the code is returned by <b>d_open</b>, either another user hasthe database opened in a mode not compatible with your mode, orthere is currently not enough room in the lock manager tables toadd your user ID and/or your database files.</font></p><p><font size="2">S_UNLOCKED<br>The current record is not locked according to the record lockbits.</font></p><p><font size="2">S_UPDATED<br>In a call to a timestamp status function, the record or set hasbeen updated since last accessed.</font></p><p><font size="2">S_USERID<br>No user ID was specified.</font></p><p><a href="RM_TOC.htm">Table of Contents</a></p></body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?