.TH update.rdb "" "" "/rdb Command" .PC "Display and edit records in any sized file" \fBupdate.rdb [-l -m[bhirs] -v] \fItableorlist \fB[\fIkeycolumn ... \fB]\fR .PP .II "table^update" .II "record^update" .II "update table" The command .B update.rdb lets you find a record in .IR tableorlist , display it, and update it. .PP .B update.rdb can find a record in any of several different ways: by moving up and down in the file, by record number, by matching a string pattern in a record, and a fast-access method search. .PP .B update.rdb lets you use a text editor to edit the record you find. To lock out other users who might be looking at your file, .B update.rdb uses the .B /rdb command .B lock to lock the record being edited. When you finish editing, .B update.rdb replaces the edited record back into .IR tableorlist . .PP If the new record is smaller than the old record, it adds space characters to the end of the last column to pad out the record. If the new record is larger than the old record, it trims trailing and leading spaces from the columns. If .B update.rdb cannot find enough blank spaces to trim, it does not replace the record, but appends it to the end of the table and updates the fast-access method indexes, if any. If this happens, you have several options: You can reedit the record. You can append the record to the end of the file using .B enter and delete the current record. You can also pad each record with extra spaces so that there will be room when you do updates. To add padding, use the command .BR pad . .PP Because .B update.rdb replaces an edited record to where the original was extracted, you do not have to rebuilt entirely any fast-access indexes that .I fileorlist owns. As long as you don't change the key columns, the fast-access methods can still find the records. This can mean a considerable savings in the time needed to update a record. .PP Also, .B update.rdb can handle any sized file, whereas the text editors and word processors mostly cannot handle files of more than a few thousand characters. .SH Options .B update.rdb recognizes the following options: .IP \fB\-l\fR 0.3i No lock. Do not lock the record by blanking out the record in the file while updating. This is much faster than using record-locking; but it is truly safe if you are the only person who can update .IR tableorlist . If more than one person can access .I tableorlist at the same time, do not use this option. .IP \fB-m\fR Fast access method. See the manual page for the .B /rdb command .B search for a description of these options. .IP \fB\-v\fR Verbose. With this option, .B update.rdb prints information about what it is doing during each step of updating a record. You can use this information to find the bottlenecks in updating; for example, you may find that you are not using the best method of accessing the records you wish to update. .SH Getting In and Out To invoke .B update.rdb to edit .IR tableorlist , simply type: .DM update.rdb tableorlist .DE .PP .B update.rdb prompt you with a `>'. .PP You can exit from .B update.rdb by any of three methods: Type \fB\fR, type ``quit'', or simply type `q' (because .B update.rdb looks at only the first character of the one-word commands). .PP Finally, the .I kill character on your terminal (usually \fB\fR) kills the program, as it does other COHERENT commands. .SH "Help Menu" .B update.rdb has a help menu built into it. To see it, type .B help at the `>' prompt. You will see the following: .DM Command Description | update.rdb [-l -m[bhirs] -l] file --------------------------------------------------------------- CTRL-d exit, hold down CTRL key and press \fBd\fP (see quit below) Return key display next record number display record number you enter (number = 1,29,...) +number move forward the number of records in the file -number move backwards the number of records in the file . redisplay the current record /pattern find next record with pattern =key find records with key matching what you type !command execute the unix command while still in update.rdb !enter file enter new records at end of the file .sp \n(pDu (You need only type the first letter of the commands below) .DE .DM delete delete the current record m[bhirs] [col] set up fast access method for key column b=binary, h=hash, i=index, r=record, s=sequential lock lock update.rdb record by blanking (toggle, true) search key find records with matching key help help list displayed (this help list) quit quit (also cntl-d) update.rdb update current record, allows you to edit, replace verbose report internal actions (toggle, false) .DE .SH "Finding a Record" There are several ways to find the record you want. .PP When .B update.rdb comes up, it displays the first record in .IR tableorlist . To move to the next record, simply press .BR . You can move forward any number of records with a plus sign and a number, for example, .BR +5 ; and you can move backwards with a minus sign and a number, for example: .BR \-16 . You can also select a specific record by typing its number. Record numbers are displayed with each record. .SH "Pattern Search" If you try to go beyond the last record or before the first record, .B update.rdb warns you. .PP You can also search for a record that has a given string by typing a slash character followed by string. For example, to search for pattern ``Ronald'', type: .BR /Ronald . .B update.rdb searches forward starting with the next record, then wraps around and goes to the first record in the file and continues till it finds a match or returns to the current record. .SH "Fast-Access Methods" .B update.rdb can use fast-access methods to find a record within .IR tableorlist . You can turn on the fast-access methods in either of two ways: .IP \fB1.\fR 0.3i Use the appropriate option on the command line. For example, the command .DM update.rdb -mh inventory Description .DE .sp \n(pDu invokes the fast-access method for table .BR inventory . .IP \fB2.\fR Type the appropriate option at .BR update.rdb 's prompt. For example, typing .DM mh Description .DE .PP at .BR update.rdb 's `>' prompt invokes the fast-access method for column .BR Description . .PP Both ways tell .B update.rdb which method to use and which column is the key column. .PP Once invoked, you can search with either the .B = or .B s commands. For example: .DM > =keyvalue > s keyvalue .DE .SH Updating To update the current record, simply type: .DM > update .DE .PP Just the letter .B u is sufficient. .PP The steps in using .B update.rdb are as follows: .IP \fB1.\fR 0.3i Invoke .B update.rdb with the name of the table or list to be edited. .IP \fB2.\fR Find the record you want by entering its row number, a string it contains, or through a fast-access method. .IP \fB3.\fR When the record is found, type .B u to update it. .IP \fB4.\fR .B update.rdb copies the record to a file with a header so that it is a one record table or list. .IP \fB5.\fR .B update.rdb replaces the selected record with a string of blanks of the same length, hold the record's place within its table, and to lock out other users. .IP \fB6.\fR .B update.rdb then copies the temporary record file to a backup file in case you damage it. .IP \fB7.\fR .B update.rdb then reads environmental variable .B EDITOR and calls the editor it names to let you edit the record you selected. If .B EDITOR is not set in your environment, it invokes .B vi by default. .IP \fB8.\fR Use the editor to edit the record. .IP \fB9.\fR When you exit your editor, .B update.rdb returns the edited the record into its table or list. It adds or removes trailing spaces to make the record fit into the same amount of space it previously occupied in its table or list. If the record doesn't fit into its old space, .B update.rdb lets you choose whether to re-edit the record, or append it to the end of the table or list. .sp \n(pDu You can also validate a record before leaving your editor by typing: .DM validate file.v < file .DE .PP See the COHERENT Lexicon entries for the editor you are using for information on how to pass that command to the shell without exiting from the editor. The entry for the command .B validate in this manual describes how it works. .SH "Other Useful Commands" If you need to see the current record again because it has run off the screen, simply type a period at .BR update.rdb 's prompt. .PP To execute a COHERENT shell command, type an exclamation point and the command you wish to execute. For example, to execute the command .B ls from within .BR update.rdb , type .DM > !ls .DE .PP This feature also lets you append new records to a table while still within .BR update.rdb . To do so, just type: .DM > !enter thisfilename .DE .PP When you leave the .B enter command, you will be back in .BR update.rdb . .PP You can also index the file you are working with from within .BR update.rdb . Just type: .DM > !index -mi filename keycolumn .DE .PP This command creates index file \fIfilename\fB.i\fR, which .B update.rdb can then use for fast-access searching of file you are updating. .SH Padding When you set up a table that you intend to update, you probably should pad it \(em that is, add extra space characters to each record. Then you can add characters to a record and .B update.rdb will trim off the space characters to fit it back into the file. For details, see the manual page for the command .BR pad . .SH Notes This command is named .B update.rdb rather than .BR update , as in other implementations of .BR /rdb , to avoid clashing with the COHERENT command .BR update , which does something very different.