*I  BTR WATCH — Command Line I Unload Btrieve ¦  Exit Menu ¨  Are You Sure ( - Switches � 0 Special Keys G O Warranty R Y Editing Keys ¿ Z Mass-Store Copy  _ ASCII j/ ` Shareware ‘0 a Technical Support �F b Registration ™N c Btrieve ³V f Status Code List ?X g Options ŸY h Advanced Options éZ i Unload Btr Watch „\ j Save Settings z] k View Log File _ l Log Length ëb m Check for Open :d n Ignore Stop Fe o Check for multiple opens rg p Log the station name ˜h q Station name xi r File Handle Offset ¦k s Log all accesses ôm t Beep for all accesses -o u Log the date 2p v Log the time q w Beep for status code list çq x Beep Tone Fs y Beep Duration t z Log File Name ©t { Log Format Øu | Date Ýx } Time Ày ~ Length ©z  File ²{ € Key Number _| � Operation t} ‚ Result f~ – Retries € — delay between retries z� ˜ Retry Status Codes †‚ ™ Basic Options რš Retry Options Ž… Ï Violation ¢‰ –ASP ¥‹ ˜Btr 'C' Library ûš ™Btr Help! |½ šBtrieve Quick Reference  ›Quick Start ìà œConfig File ³Å œConfig File ÿÿÿÿ WATCHBTR.HLP Copyright 1991 by Informative Technologies This file contains all the help text used with WATCHBTR.EXE *B 1,BTR WATCH B T R W A T C H ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Btr Watch is a memory resident program that monitors calls to Btrieve. ^Registration^ is required if you continue to use Btr Watch after evaluating it for 30 days. Complete your ^registration^ of Btr Watch for full benefits. Copyright 1991 Informative Technologies 1718 M Street NW, Suite 292 Washington, DC 20036 Voice(202)675-4528 Fax(202)675-4529 Email 71311,2334 Press [F1] at any time for context-sensitive help. Press [ESC] to exit or PRESS [PgDn] FOR MORE... *P Btr Watch is loaded after Btrieve, but before the Btrieve application program. Btr Watch can trace all Btrieve file accesses and log them to a ASCII file. Btr Watch can be used with any DOS application that uses Btrieve. Btr Watch's features and uses: + Btr Watch helps in debugging applications. Load Btr Watch to make sure the correct sequence of Btrieve calls occurs. Test applications by tracing Btrieve file operations. + Btr Watch can log all ^Btrieve^ file accesses or just log accesses when certain status codes occur. *P + Use Btr Watch to determine Btrieve file operations that lead up to a corrupted file. Btr Watch can be loaded at all times and will only log file operations when certain status codes occur. Btr Watch stores in memory a list of the last 100 file operations. When a designated status code occurs, Btr Watch will log up to 100 Btrieve operations that happened just before the designated status code. + Btr Watch works independent of the application using BTRIEVE.EXE or BREQUEST.EXE and is network-compatible. + Btr Watch traces file accesses from multiple stations. + Btr Watch catches files that were opened multiple times and catches attempted accesses to unopened files. *P + If one of 10 different status codes occur, Btr Watch can automatically retry an operation. The number of retries and the delay between them is configurable. + Btr Watch monitors Btrieve access time. + Btr Watch logs the date and time a Btrieve operation occurs to determine exactly when operations occur. + Btr Watch can alert an operator when any status code occurs for immediate action. ^Registration^ ^Command Line^ ^Technical Support^ ^Editing Keys^ ^Shareware^ ^Mass-Store Copy^ ^ASP^ ^Warranty^ ^Btr 'C' Library^ ^Technical Support^ ^Quick Start^ ^Btr Help!^ *E *B 10,Command Line Command Line Arguments ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ All command line arguments are optional. WATCHBTR ^SWITCHES^ - bm ^CONFIG FILE^ - Configuration File BTRWATCH ^CONFIG FILE^ - Configuration File *E *B 12,Unload Btrieve Unload Btr Watch ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This will remove ^Btr Watch^ and ^Btrieve^ from memory, close all files open at this station, abort any transactions, and release all locks held by the station. *E *B 17,Exit Menu Exit Menu ÄÄÄÄÄÄÄÄÄ This option will cause you to leave the current menu. *E *B 31,Are You Sure Are You Sure? ÄÄÄÄÄÄÄÄÄÄÄÄÄ Select 'Y' for YES or 'N' for NO. *E *B 45,Switches Switches ÄÄÄÄÄÄÄÄ -b Use BIOS for video writes. If your computer has trouble displaying some of the windows on your screen, use this switch. This assists with incompatibility in the display. If you do not use this option, screen updates will be much faster. -m Disables the program color. WATCHBTR.EXE runs in monochrome. *E *B 48,Special Keys Special Keys ÄÄÄÄÄÄÄÄÄÄÄÄ F1 - ^Btr Watch^ Help Alt+S - Shell to DOS. Alt+X or ESC - Quit ^Btr Watch^ Alt+F1 - Toggle BIOS screen writes Also See: ^Editing Keys^ *E *B 79,Warranty LIMITED WARRANTY Informative Technologies Corporation does not warrant that the software operation will be error-free or uninterrupted. Informative Technologies Corporation shall not be liable for any incidental or consequential damages from the use or the user's inability to use this product. Informative Technologies Corporation specifically disclaims all other warranties, expressed or implied, including but not limited to implied warranties of fitness for any particular purpose and of merchantability. *E *B 89,Editing Keys Cursor Movement ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Arrow keys - cursor movement Ctrl-Left Arrow - word left Ctrl-Right Arrow - word right Home - beginning of field End - end of line/field Ctrl-Home - beginning of first field Ctrl-End - end of last field Tab - next field Shift-Tab - previous field *P Inserting and Deleting ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ins - toggle insert mode Del - delete character at cursor Backspace - delete character left Ctrl-Backspace - delete word left Ctrl-T - delete word right Ctrl-U - delete to end of field Ctrl-Y - delete to last field *P Other Editing Keys ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Enter - process current field Ctrl-Enter - process all fields Ctrl-R - restore field ESC - abort data entry Also see: ^Btr Watch^ ^Special Keys^ *E *B 90,Mass-Store Copy tm MASS-STORE COPY ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ "Make copies of optical disks while using only one optical drive!" "If you don't have two WORM drives, you likely need to have this program." - Jerry Pournelle, BYTE January 1991 MASS-STORE COPY is a practical way to copy optical disks on a system that has only one optical drive. MASS-STORE COPY uses your computer's fixed disk to buffer information as it is copied from one optical disk to another. *P Your computer may have a hard drive and one optical disk drive. You could try to copy your optical disk using the DOS copy command, but why? You could be swapping the original and backup disks hundreds of times. Or, you could copy each file to the hard disk and then copy the files individually to a backup optical disk. But what would you do if one of the files is larger than the hard drive? MASS-STORE COPY eliminates the need to copy each file from an original disk to a buffer drive individually and copying them individually to a backup disk. *P MASS-STORE COPY will copy any size file and any size disk using the available disk space on your computer's hard drive. MASS-STORE COPY works with any DOS-compatible drive that has removable disks. All drives that use removable DOS disks work with MASS-STORE COPY, not just optical disks. MASS-STORE COPY is compatible with the following drives: + Bernoulli Box Drives + Erasable Optical Drives + Removable Hard Drives + Portable Hard Drive Packs + WORM Drives + 5.25, 3.5 or "Super" Floppy Drives *P FEATURES ÄÄÄÄÄÄÄÄ + Backups of optical disks are made using one drive. There's no need to buy a second optical drive just to make backup copies of optical disks! + Copies any size removable DOS disk regardless of available space on the hard disk. + Files are compressed when they are copied to the hard drive and then uncompressed when they are copied to the backup disk. This means you'll do a lot less disk swapping when copying disks. *P + Mouse-Compatible with context-sensitive help screens. + Files that are copied can be based on file date, file specification, system flags, hidden flags, and archive bit. + MASS-STORE COPY also copies DOS compatible disks that must be "Mounted" and "Dismounted." + Files that are larger than your hard drive can be copied regardless of available space on the hard drive. *P How to Order MASS-STORE COPY ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Send check, money order, or postal order for $59.00 + $4.00 S&H. If you are from outside the USA please have your bank prepare a check in USA dollars drawn on a USA bank and include an extra $5.00 for postage. Informative Technologies Corp. Voice (202) 675-4528 1718 M Street NW, Suite 292 FAX (202) 675-4529 Washington, DC 20036-4504 You must be satisfied with MASS-STORE COPY or you may return it within 60 days for a full refund! *P Name_____________________________ Title_____________________ Company Name________________________________________________ Address_____________________________________________________ City________________________________State______Zip__________ Phone#_________________________Fax#_________________________ PRESS MASS-STORE COPY @ $59.00 $_59.00_ "Print Screen" DC Residents Add 6% Sales Tax $_______ for Order Form. Shipping and Handling $_______ []MONEY ORDER []POSTAL ORDER []CHECK Total $_______ *E *B 95,ASCII ASCII ÄÄÄÄÄ ASCII is an acronym for American Standard Code for Information Interchange. ASCII is a standard 7-bit information code that defines 128 standard characters, including control characters, letters, numbers and symbols. *E *B 96,Shareware W H A T I S S H A R E W A R E ? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Some Definitions: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ You've probably heard the terms "public domain," "freeware," "shareware," and others. Your favorite BBS or disk vendor probably has many programs described by one or more of these words. There's a lot of confusion about and between these terms, but they actually have specific meanings and implications. Once you understand them, you will have an easier time navigating the maze of programs *P available to you and understanding what your obligations are or aren't with each type of program. Let's start with some basic definitions: "Public domain" has a very specific legal meaning. It means that the creator of a work (in this case, software) who had legal ownership of that work has given up ownership and dedicated the work "to the public domain." Once something is in the public domain, anyone can use it in any way they choose and the author has no control over the use and cannot demand payment for it. *P If you find a program that the author has explicitly put into the public domain, you are free to use it however you see fit without paying for the right to use it. But use care - due to the confusion over the meaning of the words, programs are often described by authors as being "public domain" when, in fact, they are shareware or free, copyrighted software. To be sure a program is public domain, you should look for an explicit statement from the author. "Copyrighted" is the opposite of public domain. A copyrighted program is one in which the author has asserted his or her legal right to control the program's use and distribution by placing the legally required copyright notices in the program and *P documentation. The law gives copyright owners broad rights to restrict how their work is distributed and provides for penalties for those who violate these restrictions. When you find a program that is copyrighted, you must use it in accordance with the copyright owner's restrictions regarding distribution and payment. Usually, these are clearly stated in the program documentation. Maintaining a copyright does not necessarily imply charging a fee, so it is perfectly possible and legal to have copyrighted programs which are distributed free of charge. The fact that a program is free, however, does not mean it is in the public domain -- though this is a common confusion. *P "Shareware" is copyrighted software which is distributed by authors through bulletin boards, on-line services, disk vendors,and copies passed among friends. It is commercial software that you are allowed to try before you pay for it. This makes shareware the ultimate in money-back guarantees. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The Shareware Concept: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Most money-back guarantees work like this: You pay for the product and then have time to try it out and see whether or not you like it. If you don't like it or find that it doesn't do what you need, you *P return it (undamaged) and at some point - which might take months - you get your money back. Some software companies won't even let you try their product! In order to qualify for a refund, the diskette envelope must have an unbroken seal. With these "licensing" agreements, you only qualify for your money back if you haven't tried the product. Shareware is different. You get to try it for a limited time without spending a penny. You are able to use the software on your own system(s), in your own special work environment with no sales people looking over your shoulder. If you decide not to continue using it, you throw it away and forget it. No paperwork, phone calls, or correspondence *P to waste your valuable time. If you do continue using it, then - and only then - do you pay for it. Shareware is a distribution method, NOT a type of software. Shareware is produced by accomplished programmers, just like retail software. There is good and bad Shareware, just as there is good and bad retail software. The primary difference between Shareware and retail software is that with Shareware you know if it's good or bad BEFORE you pay for it. As a software user, you benefit because you get to use the software to determine whether it meets your needs before you pay for it, and authors benefit because they are able to get their products into your hands without *P spending hundreds of thousands of dollars to launch a traditional retail software product. There are many programs on the market today that would never have become available without the Shareware marketing method. The shareware system (and the continued availability of quality shareware products) depends on your willingness to register and pay for the shareware you use. It's the registration fees that allow us to support and continue to develop our products. Please show your support for Shareware by registering those programs you use and by pass them on to others. *P Shareware is kept alive by YOUR support! Also See: ^Registration^ *E *B 97,Technical Support Technical Support ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^Btr Watch^ software support is available. There are several ways to contact the author: 1. Send Email on CompuServe to David Smith #71311,2334 2. Leave a voice mail message at (202) 675-4528 for David Smith. 3. Send a FAX to (202) 675-4529 *P 4. Leave a message at the Programmers Corner BBS for David Smith #1082 BBS# (301) 596-1180 5. Or by mail to: David Smith Informative Technologies Corporation 1718 M Street NW, Suite 292 Washington, DC 20036 Voice mail messages will probably not be answered until the next day. Email responses will usually be the fastest, with a response by the end of the day. If you are outside of the United States and you need pre- or post-registration support, please include your Email *P address when you leave a voice mail message or send a fax. Please include all relevant information regarding your problem including: 1 - A description of the event. 2 - The steps that consistently reproduce the event. 3 - Btrieve version number, type, and command line parameters. (BTRIEVE, BREQUEST, NLM, VAP) 4 - Hardware information. (Machine Type, Video Adapter) 5 - Configuration settings for Btr Watch. Feel free to leave comments and suggestions to the attention of David Smith. *P ^ASP^ wants to make sure that the ^shareware^ principle works for you. If you are unable to resolve a ^shareware^- related problem with an ^ASP^ member by contacting the member directly, ^ASP^ may be able to help. The ^ASP^ Ombudsman can help you resolve a dispute or problem with an ^ASP^ member, but does not provide technical support for members' products. Please write to the ^ASP^ Ombudsman at 545 Grover Road, Muskegon, MI 49442 or send a Compuserve message via easyplex to ^ASP^ Ombudsman 70007,3536" *E *B 98,Registration R E G I S T R A T I O N ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Registration is required if you continue to use ^Btr Watch^ after evaluating it for 30 days. This program is produced by a member of the Association of ^Shareware^ Professionals (^ASP^). Registering your copy of ^Btr Watch^ helps the author provide professional-quality software at reasonable prices. Registration is $29 for a single user plus $4 S&H. Complete your registration of ^Btr Watch^ for full benefits. Press ESC to exit this screen or Page Down for more... *P Registration benefits: - A diskette with the latest version of ^Btr Watch^. - A Printed Guide for ^Btr Watch^. - A free membership to CompuServe with a $15 credit. - A certificate for $7 off a 1 year subscription to Shareware Magazine. - Free ^Technical Support^ for 1 Year. - A BONUS diskette with more Informative Technologies' software to evaluate. *P Please send check, money order, or postal order. If you are from outside the USA please have your bank prepare a check in USA dollars drawn on a USA bank. Registrants outside the USA should send an extra $5.00 for postage. Send registrations to: David Smith Voice (202) 675-4528 Informative Technologies Corp. FAX (202) 675-4529 1718 M Street NW, Suite 292 CompuServe 71311,2334 Washington, DC 20036 OR.... *P You may also register with MC, VISA, AMEX or DISCOVER by contacting the Public (software) Library at: (Phone) 800-2424-PSL or 713-524-6394 (Fax) 713-524-6398 (CIS-Email) PsL at 71355,470 These numbers are for credit card orders only. For ^Technical Support^, site licensing, volume or dealer discounts, please contact David Smith at Informative Technologies Corporation. *E *B 99,Btrieve Btrieve ÄÄÄÄÄÄÄ Btrieve is a Trademark of Novell, Inc. Btrieve is a record management system designed to aid PC programmers in the development of applications. Btrieve provides the functions for high performance key-indexed record management while allowing the programmer to concentrate on the application. *E *B 102,Status Code List Status Code List ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This is a list of status codes returned from Btrieve that Btr Watch should monitor. If any of these status codes occur, Btr Watch can be configured to beep and/or log up to 100 of the Btrieve operations that occured before the specified status code. *E *B 103,Options Btr Watch Options ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This menu allows you to select one of Btr Watch option screens. Also See: ^Basic Options^ ^Advanced Options^ ^Status Code List^ ^Retry Options^ ^Save Settings^ *E *B 104,Advanced Options Advanced Options ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This selection allows you to set the advanced options for Btr Watch. Also See: ^Log Length^ ^Check for open^ ^Ignore Stop^ ^Check for multiple opens^ ^Log the station name^ ^Station name^ ^File Handle Offset^ *E *B 105,Unload Btr Watch Unload Btr Watch ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This menu option unloads Btr Watch and ^Btrieve^ from memory if they are loaded. It also closes any open ^Btrieve^ files and aborts any transactions. *E *B 106,Save Settings Save Settings ÄÄÄÄÄÄÄÄÄÄÄÄÄ Selecting this option causes the program settings for Btr Watch to be saved to the file BTRWATCH.CFG. The next time BTRWATCH.EXE or WATCHBTR.EXE is run, the settings are read out of this file. Btr Watch must be unloaded from memory and reloaded before the new settings take effect. *E *B 107,View Log File View Log File ÄÄÄÄÄÄÄÄÄÄÄÄÄ This option allows you to view the log file. The log file is stored as a ^ASCII^ file so you may use a text editor to view the file. Also See: ^Log Format^ While viewing the log file, you can select: 'P' - Print the log file 'D' - Delete the log file 'H' - Display this help screen 'X' - Exit viewing the log file *P Log File Viewing Keys (continued) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Up Arrow - Scroll up one line Down Arrow - Scroll down one line Ctrl-Left Arrow - Page left Ctrl-Right Arrow - Paqe right PgUp - Display previous screen PgDn - Display next screen Home - Go to the beginning of the log End - Go to the end of the log Also See: ^Log Format^ *E *B 108,Log Length Log Length ÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, the length of time a Btrieve call lasts is logged. If this option is NO, the time is not logged. The duration of the calls are recorded in clock ticks. Each tick is 1/18 of a second or about 55 milliseconds. *E *B 109,Check for Open Check for Open Files ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, Btr Watch logs a message if files were open when a RESET or STOP operation occurs. If this option is NO, a message is not logged. *E *B 110,Ignore Stop Ignore the STOP Command ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, Btr Watch does not allow an application to unload Btr Watch from memory when it executes a (25) STOP command. The Stop Command is also not passed on to Btrieve. You are still able to unload Btr Watch and Btrieve with the 'Unload Btr Watch' menu option. If this option is set to NO both Btr Watch and Btrieve are unloaded when the application sends the (25) STOP command. *E *B 111,Check for multiple opens Check For Multiple Opens ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, Btr Watch logs a message to the log file when a file gets opened more than once at a time. If this option is NO, a message is not logged. *E *B 112,Log the station name Log the Station Name ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, Btr Watch logs the ^station name^. If this option is NO, the ^station name^ is not logged. *E *B 113,Station name Station Name ÄÄÄÄÄÄÄÄÄÄÄÄ This is a string describing the location where Btr Watch is loaded. If you are using Btr Watch on more than one station at a time, create different .CFG files for each station. The path and name of the log file should be the same for each of the different .CFG files. The station name should be different for each station. Entering a different name for each station allows you to follow the Btrieve accesses from several stations. *E *B 114,File Handle Offset File Handle Offset ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This is the offset into the position block Btrieve is supplied for each call. At this offset is a file handle (integer) that is used by Btrieve and Btr Watch. The handle is used to tell the difference between different Btrieve files that may be open at the same time. BTRIEVE.EXE and BREQUEST.EXE have different offsets. These offsets may also change in the future. Currently BTRIEVE.EXE uses 90 as the offset and BREQUEST.EXE uses 126 as the offset. *E *B 115,Log all accesses Log All File Accesses ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, all Btrieve file accesses are logged. If this option is set to NO, file access are only logged only if one of the status codes from the ^status code list^ occurs. *E *B 116,Beep for all accesses Beep For All Accesses ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, a beep will sound for every Btrieve operation. If this option is set to NO, beeps will not sound for every Btrieve operation. *E *B 117,Log the date Log the Date ÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, the date will be logged with each log entry. If this option is NO, the date will not be logged. *E *B 118,Log the time Log the Time ÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, the time will be logged with each log entry. If this option is NO, the time will not be logged. *E *B 119,Beep for status code list Beep for ^status code list^ codes ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If this option is set to YES, Btr Watch will beep when one of the status codes from the ^status code list^ occurs. If this option is NO, Btr Watch will not beep when a status code from the ^status code list^ occurs. *E *B 120,Beep Tone Beep Tone ÄÄÄÄÄÄÄÄÄ This is the frequency in hertz of the beep sound Btr Watch makes. The best values for this are between 1000 and 4000. *E *B 121,Beep Duration Beep Duration ÄÄÄÄÄÄÄÄÄÄÄÄÄ This is the length of the beep sound Btr Watch makes in milliseconds. *E *B 122,Log File Name Log File Name ÄÄÄÄÄÄÄÄÄÄÄÄÄ This is the name of the file Btr Watch will log the Btrieve operations. If several stations are logging to this file, make sure you put the full file path to be sure all stations are using the same file. *E *B 123,Log Format An example of the log file is as follows: 09:41:21 ==========[ BTRWATCH Loaded ]========= 09:41:35 0 0 Open 09:41:36 0 NWSPAPER.BTR 0 Get First 09:41:36 1 NWSPAPER.BTR 0 Get Next (9) END OF FILE ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ÀÄÄ ^Result^ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ ^Operation^ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^Key Number^ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^File^ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^Length^ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^Time^ ^Date^ You may have more or less fields in your log file depending on the program ^options^. *E *B 124,Date Date ÄÄÄÄ This is the date when the file operation was performed. It is in the format DA MON YR. DA = Day, MON = Month, and YR = Year. Also See: ^Log Format^ ^Time^ *E *B 125,Time Time ÄÄÄÄ This is the time when the file operation was performed. It is in the format HH:MM:SS. HH = Hour, MM = Minutes, and SS = Seconds. Also See: ^Log Format^ ^Date^ *E *B 126,Length Length of Time ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This is the length of time the Btrieve call lasts. The units of this value are in clock ticks. Each tick is 1/18 of a second or about 55 milliseconds. Also See: ^Log Format^ *E *B 127,File Filename ÄÄÄÄÄÄÄÄ This is the name of the Btrieve file the ^operation^ was performed upon. Also See: ^Log Format^ *E *B 128,Key Number Key Number ÄÄÄÄÄÄÄÄÄÄ This is the key value of the Btrieve call. Although there is a key value for every Btrieve call. Not all Btrieve calls need a key, so it may be a strange value. Also See: ^Log Format^ *E *B 129,Operation Operation ÄÄÄÄÄÄÄÄÄ This is the Btrieve operation that was performed. The entries are added to the log just after the Btrieve call was performed, not before. Also See: ^Log Format^ *E *B 130,Result Result ÄÄÄÄÄÄ This is the result of the Btrieve operation. If the operation is a success, no entry is found in this location. If an error code is returned, the error code number along with a short description of the error code is logged. EXAMPLE: (3) FILE NOT FOUND (5) KEY NOT FOUND Also See: ^Log Format^ *E *B 150,Retries Retries ÄÄÄÄÄÄÄ This is the number of times Btr Watch should call Btrieve when a status code from the ^Retry Status Codes^ list is returned. If 5 is entered in this field, the operation will be retried 5 times. If 0 is entered, the operation will not be retried. Also See: ^Retry Options^ *E *B 151,delay between retries Delay Between Retries ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This is the amount of time to wait between retries of the call to Btrieve. This value is in milliseconds. 1000 = 1 Second. Also See: ^Retry Options^ *E *B 152,Retry Status Codes Retry Status Codes ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This is a list of Btrieve status codes. If any of these codes are returned by Btrieve, Btr Watch will call Btrieve again using the same parameters '^Retries^' number of times with a ^delay between retries^. Also See: ^Retry Options^ *E *B 153,Basic Options Basic Options ÄÄÄÄÄÄÄÄÄÄÄÄÄ This selection allows you to set various options for Btr Watch. Also See: ^Log all accesses^ ^Beep for all accesses^ ^Beep for status code list^ ^Log the time^ ^Log the date^ ^Log file name^ ^Beep tone^ ^Beep duration^ *E *B 154,Retry Options Retry Options ÄÄÄÄÄÄÄÄÄÄÄÄÄ Btrieve sometimes returns status codes indicating problems that can be corrected by retrying the operation again. If an application is trying to lock a record or file when the record or file is locked, these status codes could be returned: (85) FILE IN USE and (84) RECORD IN USE. Sometimes (2) I/O ERROR is returned and when it is retried, it is successful. If the error is still returned after several tries, it may indicate a real error and retrying will not help. Other status codes, that can be resolved by retrying them, can be added to the default list. *P Btr Watch makes a note in the log file whenever it retries an operation. Up to 10 different status codes can be monitored and the operations can be retried if these status codes occur. The ^delay between retries^ and the number of ^retries^ can be configured. Also See: ^Retry Status Codes^ *E *B 207,Violation THE 30 DAY EVALUATION PERIOD HAS EXPIRED ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^Registration^ is required if you continue to use Btr Watch after evaluating it for 30 days. You may register with MC, VISA, AMEX or DISCOVER by contacting the Public (software) Library at: (Phone) 800-2424-PSL or 713-524-6394 (Fax) 713-524-6398 (CIS-email) PsL at 71355,470 These numbers are for credit card orders only. *E *B 406,ASP ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄ¿ ³ (R) Äij ³o ³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ÚÄÄÄÄÄÁÐÄÄ¿ ³ Association of ³ ³ ³ÄÙ ^Shareware^ ÀÄÄij o ³ Professionals ÄÄÄÄÄij º ³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÀÄÄÄÄÐÄÄÄÄÙ MEMBER In the early days of Shareware there were no real standards. Independent authors had no efficient way to learn from each other or to work together to improve the overall image of Shareware. There was no system in place to ensure that users were treated fairly and professionally. *P There was no way for users to find an address for an author who had moved. In short, the Shareware community was disorganized and each author did things the way he or she thought was best. It was clear that if Shareware was ever to become a viable and respected marketing alternative, there had to be standardization and guidelines to best serve the users. In 1987, a handful of Shareware authors founded the Association of Shareware Professionals (ASP). In forming this industry association, the Shareware authors had several goals in mind, including: *P o To inform users about Shareware programs and about Shareware as a method of distributing and marketing software. o To foster a high degree of professionalism among Shareware authors by setting programming, marketing, and support standards for ASP members to follow. o To encourage broader distribution of Shareware through user groups and disk dealers who agree to identify and explain the nature of Shareware. o To assist members in marketing their software. *P o To provide a forum through which ASP members may communicate, share ideas, and learn from each other. The newly-formed Association of Shareware Professionals worked together to draft a code of ethics for all present and future members. This code of ethics included several requirements that soon became very popular among users (customers), including: o A member's program (evaluation version) could not be limited (crippled) in any way. In the true spirit of Try-Before-You-Buy, users must be able to evaluate all the features in a program before paying the registration fee. *P o Members must respond to every registration. At the very least they must send a receipt for the payment. o Members must provide technical support for their products for at least 90 days from the date of registration. A new system was put in place to help ensure that users were treated fairly and professionally. If a user was unable to resolve a problem with a member author then the user could contact the ASP Ombudsman with their complaint. The Ombudsman would then try to help resolve the dispute. *P As of February, 1991, the ASP had over 300 author members and almost 200 vendor members, with new members joining every week. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Contacting ASP Members Via CompuServe: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ There is an easy and convenient way to speak directly to many ASP Members (both authors and vendors). Visit the Shareware forum on CompuServe. Simply type "GO SHAREWARE" - or "GO SHARE" - from any CompuServe ! prompt. *P Here you will be able to talk to the authors of your favorite Shareware programs, learn about other programs, ask questions, make suggestions, and much more. We'd like to meet you online, please come visit us today! ALSO SEE: ^Registration^ ^Shareware^ *E *B 408,Btr 'C' Library BTR 'C' LIBRARY ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The BTR 'C' LIBRARY is available with the registered version of ^Btr Help!^. All the calls to the BTR 'C' LIBRARY reference btrieve files by a handle (integer). This handle is returned when the file is opened with the iBtrOpen function. The function BtrInitialize should be called at the beginning of your program and iBtrCloseAll should be called at the end of your program. Press PageDown for an example. *P #include #include void main( void ) { int iNews; BtrInitialize(); iNews = BtrOpen("NWSPAPER.BTR", NULL, B_OPEN); BtrCall( iNews, B_GET_LOWEST, 1); /* Application Code goes here.. */ BtrClose( iNews ); BtrCloseAll(); /* Close all Files still open */ } Press PageDown for a list of library functions. *P char *BtrErrorCode(int iBtrError) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Returns the string for a Btrieve error code. INPUTS iBtrError - Error code number RETURNS String for a Btrieve error code. EXAMPLE printf("Btrieve Error 10=%s\n", BtrErrorCode( 10 )); *P char *BtrOperationCode(int iBtrOper) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Returns the string for a Btrieve Operation code. INPUTS iBtrOper - Btrieve Function code RETURNS String for a Btrieve operation code. EXAMPLE printf("Operation 3 is %s\n",BtrOperationCode( 3 )); *P int BtrOpen(char *sFile, void *acRecord, int iOpenType) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Opens a Btrieve file. Does a statistics function call on the file. Stores the record size and key information. Returns a handle (integer) to refer to the Btrieve file. INPUTS sFile........Btrieve file path and name acRecord.....Pointer to Btrieve record or NULL if you want a record to be automatically allocated for you. iOpenType....Type of open for the Btrieve file. *P B_OPEN Regular Btrieve open B_OPEN_ACCELERATED Open Accelerated B_OPEN_READ_ONLY Open Read Only B_OPEN_VERIFY Open Verify for local DOS disks B_OPEN_EXCLUSIVE Open Exclusive access to file RETURNS Btrieve file handle or 0 if an error occurs. EXAMPLE iBtr=BtrOpen("MAIL.BTR", &rMail, B_OPEN); *P int BtrClose(int iBtrHandle) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Closes a the file and deallocates data space used by it. INPUTS iBtrHandle....File handle (integer) that refers to the file. RETURNS The Btrieve result status code of the close. EXAMPLE BtrClose(iBtr); *P void BtrShowError( int iBtrHandle ) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Displays a Btrieve error on the screen. You will probably want to modify this routine for your particular user interface. INPUTS iBtrHandle...Btrieve file handle to display last operation result. RETURNS Nothing EXAMPLE BtrShowError( iBtr ); *P int BtrCreate(char *sFile, FILE_SPEC *specs, int iKey) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Creates a Btrieve file. INPUTS sFile........The file name supplied. specs........The Btrieve specs to create the file. iKey.........Create Status Key. CHECK_EXISTS - Check if file exists on create. NO_CHECK_EXISTS - Don't check if file exists. RETURNS The Btrieve result status code of the create. EXAMPLE BtrCreate("TEMP.BTR",&FileSpecs, 0); *P int BtrCall(int iBtr, int iFuncCode, int iKeyNumber) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Executes a function call on a file specified by iBtr. INPUTS iBtr.........Btrieve file handle iFuncCode....Btrieve function code to execute iKeyNumber...Key path to use RETURNS Btrieve result status of the function. EXAMPLE BtrCall(iBtr, B_GET_NEXT, 0); *P int BtrFillKey(int iBtrHandle, void *sKeyField) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Fills a Btrieve key field from a string. INPUTS iBtrHandle...Handle of Btrieve file sKeyField....String to load into the key field RETURNS FILE_NOT_OPEN if the handle is invalid, else it returns 0. EXAMPLE BtrFillKey(iBtr, "NEW YORK"); *P int BtrFillKeyN(int iBtr, void *sKeyField, int iLength) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Fills the key field from an array of length iLength. INPUTS iBtr........Handle of Btrieve file sKeyField...Address of bytes to load into the key field. iLength.....Number of bytes to load RETURNS FILE_NOT_OPEN if the handle is invalid, else it returns 0 EXAMPLE BtrFillKeyN(iBtr, rKeyStruct, sizeof(rKeyStruct); *P int BtrSetRecordLength(int iBtr, int iRecordLength) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sets the record length of a Btrieve record. INPUTS iBtr.............Handle of Btrieve file iRecordLength....Size of the Btrieve record. RETURNS FILE_NOT_OPEN if the handle is invalid, else it returns 0. EXAMPLE BtrSetRecordLength(iBtr, sizeof(rMail)); *P int iBtrGetRecordLength(int iBtrHandle) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Returns the record length of the last record read. INPUTS iBtrHandle...Handle of the Btrieve file. RETURNS 0 if the handle is invalid, else it returns the record length. EXAMPLE iLength = iBtrGetRecordLength( iBtr ); *P void BtrInitialize(void) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Initializes Btrieve and the data structures. INPUTS None RETURNS None EXAMPLE BtrInitialize(); *P long lBtrGetPosition(int iBtrHandle) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Returns a long integer indicating the position of the current record. INPUTS iBtrHandle...Handle of the Btrieve file. RETURNS The position of the current Btrieve record. EXAMPLE lPosition = lBtrGetPosition( iBtr ); *P int iBtrSetPosition(int iBtr, long lPosition, int iKey) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Sets the position of the current record using a long int. INPUTS iBtr..........Handle of the Btrieve file. lPosition.....Position to set in the Btrieve file. iKey..........Key path to set the current positioning. RETURNS The Btrieve result status for the B_GET_DIRECT call. EXAMPLE iBtrSetPosition(iBtr, lPosition, 0); *P int BtrCloseAll(void) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Closes all Btrieve files that may be open. INPUTS None RETURNS 0 EXAMPLE int BtrCloseAll(); *P int BtrKeyInit(int iBtrHandle) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Fills a Btrieve key field with nulls. INPUTS iBtrHandle........Handle of the Btrieve file. RETURNS 0 or FILE_NOT_OPEN if the handle is invalid. EXAMPLE BtrKeyInit( iBtr ); *P int BtrKeyMax(int iBtrHandle) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Fills a Btrieve key field with 0xFF. INPUTS iBtrHandle....Handle of the Btrieve file. RETURNS 0 or FILE_NOT_OPEN if the handle is invalid. EXAMPLE BtrKeyMax( iBtr ); *P char *BtrDataRecord(int iBtrHandle) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Returns a pointer to the Btrieve data record given the file handle. INPUTS iBtrHandle...Handle of the Btrieve file. RETURNS Pointer to the Btrieve data record. EXAMPLE prMail = BtrDataRecord( iBtr ); *P long BtrNumberOfRecords( iBtr ) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Returns a long integer containing the number of records in a file when the file was opened. Does not reflect any records added or deleted since the file was open. INPUTS iBtrHandle...Handle of the Btrieve file. RETURNS The number of records in a Btrieve file. EXAMPLE lRecords = BtrNumberOfRecords( iBtr ); *P void *BtrSpecRecord(int iBtrHandle) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Returns a pointer to the Btrieve file specifications for a Btrieve file. INPUTS iBtrHandle....Handle of the Btrieve file. RETURNS Pointer to the Btrieve file specifications for a file. EXAMPLE Specs = BtrSpecRecord( iBtr ); *E *B 409,Btr Help! B T R H E L P ! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Btrieve is Novell's record-manager system designed to aid PC programmers in the development of applications. Btr Help! was created to provide functions needed during the design, development, and maintenance of applications that use Btrieve. Btr Help! provides an easy way to repair damaged Btrieve database files or test their integrity. Some of the other features of Btr Help! are: + Browse, edit, add, and delete Btrieve records. + List Btrieve operation, error, and key codes *P + Empty or clone files. + Display Btrieve file statistics. + Repair damaged Btrieve file headers. + Display records in ASCII, hex, or key format. + Display Btrieve version and type loaded. + And more! Btr Help! is useful for file maintenance with Great Plains Accounting, IBM's Platinum Series, Galacticomm BBS, Macola Accounting, Xtrieve, Magic PC DBMS, DacEasy Accounting, Pacioli 2000 Accounting or any application that uses Btrieve. ($40) *E *B 410,Btrieve Quick Reference Btrieve Quick Reference Card ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The Btrieve Quick Reference card is a handy reference to all Btrieve functions codes and return status codes. All operation codes are cross referenced with the expected input and return values. This includes all the extended Btrieve operations. The 5 1/2 x 8 1/2 quick reference card is durable and bright green. *E *B 411,Quick Start Quick Start ÄÄÄÄÄÄÄÄÄÄÄ 1. Load Btrieve before ^Btr Watch^ is loaded. 2. After Btrieve is loaded, run "BTRWATCH" The TSR part of Btr Watch will be loaded. 3. Load a Btrieve application and use it normally. 4. Exit out of the application and run "WATCHBTR". 5. Select 'V' from the menu to display the Btrieve file operations used when the application was run. *E *B 412,Config File Configuration File ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The file contains all of the program ^options^ used by WATCHBTR and BTRWATCH. A configuration file can be specified on the command line to load or save to a configuration file with a name other than BTRWATCH.CFG. If a configuration file is not given, BTRWATCH.CFG is used as the configuration file. *E