home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / dbase / dbdup11.zip / DBDUP.DOC next >
Text File  |  1991-11-22  |  76KB  |  1,789 lines

  1.  
  2.  
  3.  
  4.  
  5.                                    DB-Dupe 1.1
  6.                                 by BC Enterprises
  7.  
  8.                 Contents:
  9.  
  10.                 I. Introduction to DB-Dupe ...................... 2
  11.                    I.A. Features ................................ 2
  12.                    I.B. System Requirements ..................... 3
  13.                    I.C. Speed and Compatibility ................. 3
  14.                    I.D. Safety .................................. 4
  15.                    I.E. Shareware ............................... 5
  16.                    I.F. Disclaimer .............................. 5
  17.  
  18.                 II. Using DB-Dupe ............................... 6
  19.                    II.A. Files Needed ........................... 6
  20.                    II.B. Extended Video Support ................. 6
  21.                    II.C. Help and Function Keys ................. 7
  22.                    II.D. The Main Menu .......................... 8
  23.                    II.E. The File Menu .......................... 8
  24.                       II.E.1. Use(ing) a database ............... 9
  25.                       II.E.2. Info .............................. 11
  26.                       II.E.3. Setting Search Parameters ......... 11
  27.                       II.E.4. Save .............................. 18
  28.                       II.E.5. Load .............................. 18
  29.                       II.E.6. Index ............................. 18
  30.                       II.E.7. Recall ............................ 19
  31.                       II.E.8. Return ............................ 19
  32.                    II.F. The Search Menu ........................ 19
  33.                       II.F.1. Delete 1 & Delete 2 ............... 19
  34.                       II.F.2. Zoom .............................. 20
  35.                       II.F.3. Memo .............................. 20
  36.                       II.F.4. Undelete .......................... 21
  37.                       II.F.5. Continue .......................... 21
  38.                       II.F.6. Stop .............................. 21
  39.                    II.F. The Goto Menu .......................... 21
  40.                       II.G.1. Goto # ............................ 22
  41.                       II.G.2. Top ............................... 22
  42.                       II.G.3. Next and Previous ................. 22
  43.                       II.G.4. Advance ........................... 22
  44.                       II.G.5. Deleted ........................... 22
  45.                       II.G.6. Return ............................ 23
  46.                    II.H. Utils .................................. 23
  47.                    II.J. Quit ................................... 23
  48.                 III. Suggestions for Use ........................ 24
  49.  
  50.                 Appendix A - DLX Format ......................... 25
  51.                 Appendix B - Errors ............................. 26
  52.                 Appendix C - Using DB-Dupe with Windows ......... 27
  53.                 Index ............................................28
  54.  
  55.                 Order Form ......................................
  56.  
  57.                                   BC Enterprises
  58.                                    P.O. Box 18
  59.                               Front Royal, VA  22630
  60.                               (703) 636-9990 (Voice)
  61.                               (703) 635-7528 (Modem and Fax)
  62.  
  63.  
  64.                                         1
  65.  
  66.  
  67.  
  68.  
  69.         I. Introduction to DB-Dupe
  70.  
  71.         I.A. Features
  72.  
  73.                 The DB-Dupe program is a duplicate record deleter for
  74.         FoxBase+, FoxPro, DBase III Plus, DBase IV*, and compatible
  75.         files.  If you have a database of more than a thousand or so
  76.         records, you know that you get duplicates and they are hard to
  77.         weed out.  You could make a print out of your file and then go
  78.         through, record by record, trying to find duplicates.  But that
  79.         would take a very long time, and not be very effective.
  80.  
  81.                 A better way to find duplicate records is to let your
  82.         computer do it.  That's where DB-Dupe comes in.  DB-Dupe is more
  83.         than just an easier way to delete duplicate records.  It is a
  84.         whole environment dedicated to giving you all the tools you need
  85.         to make deleting duplicates simple, and even fun.
  86.  
  87.                 Most duplicate record deleters don't give you enough
  88.         information or enough ways of viewing your data.  They don't let
  89.         you use format files, or browse through your data, or even start
  90.         checking at any record other than the first.  DB-Dupe is not like
  91.         that at all.  It is a real record deletion system.  DB-Dupe is
  92.         loaded with features to help you.  Some of these distinctive
  93.         features include:
  94.  
  95.                 - 43 or 50 line mode using EGA or VGA monitor
  96.                 - Fully network compatible
  97.                 - Compatible with wide number of database products
  98.                 - Use of FoxBase+/FoxPro .IDX indexes, convert DBase
  99.                   III/IV indexes to fast .DLX index format, and
  100.                   create new .DLX indexes on the fly
  101.                 - Use Dbase/FoxBase style format files, including support
  102.                   for multiple page format files
  103.                 - View attached memo files
  104.                 - 3 search modes
  105.                 - View two records in separate windows at one time
  106.                 - Soundex searches to find records that sound alike
  107.                 - Alphanumeric only searches
  108.                 - Field swapping between records
  109.                 - Deleted record recall function
  110.                 - Save and load search-criteria files
  111.                 - Deleted record reports
  112.                 - Extensive on-line help
  113.                 - User-defined color scheme
  114.                 - Friendly user interface
  115.                 - Fast operation
  116.  
  117.  
  118.  
  119.  
  120.         * Products mentioned, other than products of BC Enterprises, are
  121.         trademarks of their respective companies.  Dbase III Plus and
  122.         DBase IV are trademarks of Ashton Tate (Borland?).  FoxBase+,
  123.         FoxPro, and the Fox name are trademarks of Fox Software Inc.
  124.  
  125.  
  126.  
  127.  
  128.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 2 ***
  129.  
  130.  
  131.  
  132.  
  133.         I.B. System Requirements
  134.  
  135.                 To run DB-Dupe, you need an IBM or compatible computer
  136.         with at least 384K of RAM (or approximately 320K of free RAM).
  137.         The actual RAM use of the program depends in part on what
  138.         features you use.  For example, using a database with a format
  139.         file and index requires more RAM than a database used with
  140.         neither of these "extras."
  141.  
  142.                 A hard drive is strongly recommended, but is not
  143.         absolutely required, although anyone who could benefit from this
  144.         program more than likely has a hard drive.
  145.  
  146.                 A disk-caching program is also strongly recommended.  The
  147.         DB-Dupe program has been written with the assumption that those
  148.         running it will make use of a disk cache.  The cache does not
  149.         need to be large, even 64K is enough, although a larger cache
  150.         will probably improve performance.  If a disk cache is not used,
  151.         program speed will be SEVERELY reduced.
  152.  
  153.                 Disk cache programs are very easy to come by, if you
  154.         don't already have one.  Virtually every program Microsoft sells,
  155.         including Windows and all their language programs, comes with a
  156.         disk cache called SMARTDRV.SYS.  Many utility packages include
  157.         caches as well, and there are also numerous cache programs
  158.         available in the public domain or as shareware.
  159.  
  160.                 Putting some files on a RAM disk is also helpful, as
  161.         explained later on.
  162.  
  163.  
  164.         I.C.  Fast Operation!  Compatibility!
  165.  
  166.                 The DB-Dupe program is not written in one of the many
  167.         common DBase compatible database languages.  It is written in
  168.         Microsoft BASIC 7.  What does that mean to you?
  169.  
  170.                 It means that the program runs FAST!  Database languages
  171.         are good for writing large database applications, but they run
  172.         notoriously slowly.  Even the fastest database language cannot
  173.         hope to compete with BASIC.  Some unscientific testing by BC
  174.         Enterprises has shown that database operations using BASIC can be
  175.         up to 8 times faster than using FoxBASE+ -- and FoxBASE+ is one
  176.         of the fastest database languages.
  177.  
  178.                 The DB-Dupe program, depending on the database, searches
  179.         through approximately 8000-12000 records per minute, on average,
  180.         doing automatic search and using the special DLX index format (of
  181.         course, that's on a 25Mhz 80386).  The fastest possible search
  182.         speed, under ideal conditions on a 386, is probably close to
  183.         60,000 records per minute, or 1000 records per second.
  184.  
  185.  
  186.                 Since the program is written in BASIC, we have also been
  187.         able to make it compatible with a wide range of databases that
  188.         are not compatible with each other.  For example, DB-Dupe is
  189.         compatible with FoxPro and DBase IV, including indexes and memo
  190.  
  191.  
  192.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 3 ***
  193.  
  194.  
  195.  
  196.  
  197.         files, even though FoxPro and DBase IV are not compatible with
  198.         each other.  DB-Dupe is also compatible with any program
  199.         compatible with FoxBase/FoxPro/DBase III/DBase IV.  We have
  200.         verified compatibility with such program as Dbxl, Alpha Four, PC-
  201.         File:db, Wampum, Zephyr, and DataPlus.  Many, many programs,
  202.         however, use the Dbase file structure.  If you are unsure about a
  203.         file, just try to load it.  DB-Dupe will tell you whether or not
  204.         it can be used.
  205.  
  206.  
  207.         I.D. Safety Considerations
  208.  
  209.                 Whenever you use a program such as DB-Dupe which can
  210.         write data to your database file, MAKE A BACKUP FIRST!!!!!!!!!!
  211.         PLEASE!!!!!!!!  The DB-Dupe program is very careful not to harm
  212.         your data in any way, but power glitches, program bugs, etc., do
  213.         happen.  If you have an important database, it should be
  214.         important enough to back up.
  215.  
  216.                 DB-Dupe does not actually remove deleted records from a
  217.         database.  Rather, it marks deleted records with an asterisk,
  218.         which Dbase-format files use to signify that a record may be
  219.         deleted, whereas a space character signifies it should not be
  220.         deleted.  A record is only physically removed when a "pack" is
  221.         performed on the file.  This pack deletes all marked records,
  222.         and, optionally, updates any associated indexes.
  223.  
  224.                 Why does the DB-Dupe program not perform a pack itself?
  225.         First, because generally indexes are associated with a database
  226.         file, and these must be updated after a pack.  If the DB-Dupe did
  227.         the pack, it would also have to update indexes, which would make
  228.         it a much more complicated problem.  Second, because it is simple
  229.         to go into the database program that created the file and pack
  230.         it.  Any Dbase-compatible systems should use the asterisk
  231.         designation for deleted records (if it doesn't, it's not Dbase-
  232.         compatible), and should have a pack function.  Third, by not
  233.         packing the file itself, the DB-Dupe program won't do any
  234.         accidental harm to your data.
  235.  
  236.                 DB-Dupe is very protective of your data.  It will not
  237.         write an asterisk (to mark for deletion) or a space (to undelete,
  238.         or "recall") over a character which is not currently a space or
  239.         an asterisk.  In other words, if you ask the DB-Dupe program to
  240.         mark a record for deletion, but the record contains a misplaced
  241.         character where a space or asterisk should be, the DB-Dupe
  242.         program will not write over it.
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 4 ***
  257.  
  258.  
  259.  
  260.  
  261.         I.E. Shareware
  262.  
  263.                 The DB-Dupe program is marketed as shareware.  This means
  264.         that you may try the program out, to see if it suits your needs,
  265.         before you buy it.  However, if you use the program on an on-
  266.         going basis, then you are expected (and morally obligated) to pay
  267.         for it.  We ask that you limit your evaluation time to 30 days.
  268.         That should be more than enough time to put this software through
  269.         extensive use.
  270.  
  271.                 The registration price of the DB-Dupe program is $59.
  272.         This single registration allows you to use the program on all
  273.         computers in one location, regardless of the number of computers
  274.         used.  You do NOT need to purchase a copy for each computer.
  275.  
  276.                 When you register, you will receive the latest version of
  277.         the program, along with a typset printed manual.  You will also
  278.         receive free or low-cost upgrades.  Unlike some other companies,
  279.         we never charge fees for upgrades that fix program bugs.
  280.  
  281.                 You will also receive discounts on further Dbase-
  282.         compatible utility software.  Our next utility will probably be a
  283.         data integrity checker.  This will search your databases for
  284.         corrupted records, such as garbage characters, string characters
  285.         in numeric fields, etc.  If you have other suggestions for high-
  286.         speed database utilities, we'd be happy to hear from you.
  287.  
  288.                 Please refer to the end of this documentation for more
  289.         information on ordering, and for an order form.
  290.  
  291.  
  292.         I.F. Disclaimer
  293.  
  294.                 This software, along with any manuals and supporting
  295.         materials, is sold "as is," without warranty as to their
  296.         performance, merchantability, or fitness for a particular
  297.         purpose.
  298.  
  299.                 BC Enterprises, along with its owners, agents, employees,
  300.         and/or associates specifically disclaim all liability for the
  301.         operation of this program, including, but not limited to,
  302.         consequential, special, and/or indirect damages, even if the
  303.         possibility of such damages has been made known.  Some states do
  304.         not allow the exclusion or limitation of incidental and
  305.         consequential damages, so the above limitations might not apply
  306.         to you.
  307.  
  308.                 The entire risk of using this software is borne solely by
  309.         the user of this software.  In no case will BC Enterprises, along
  310.         with its owners, agents, employees and/or associates be liable
  311.         for more than the purchase price of this software.  YOUR USE OF
  312.         THIS SOFTWARE SIGNIFIES YOUR AGREEMENT TO THESE TERMS.
  313.  
  314.                 The above statement will be construed and interpreted
  315.         according to the laws of the state of Virginia.
  316.  
  317.  
  318.  
  319.  
  320.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 5 ***
  321.  
  322.  
  323.  
  324.  
  325.         II. Using DB-Dupe
  326.  
  327.                 This documentation is written with the assumption that
  328.         those using it are fairly knowledgeable about Dbase-format
  329.         databases.  People who need to maintain large databases are
  330.         generally not computer novices.  Thus, this documentation file is
  331.         devoted to telling you about the operation of the DB-Dupe
  332.         program, and not about the operation of Dbase III/IV or
  333.         compatible databases.
  334.  
  335.  
  336.         I.A. Files Needed to Run DB-Dupe
  337.  
  338.                 The files on your disk should include:
  339.  
  340.                 DBDUP.EXE    -- the DB-Dupe executable program
  341.                 DBDUP.HLP    -- the DB-Dupe on-line help file
  342.                 DBDUP.MSG    -- DB-Dupe message file
  343.                 DBDUP.DOC    -- this documentation file
  344.                 DBDUP.PIF    -- Windows 3.0 PIF file
  345.                 DBDUP.ICO    -- Windows 3.0 icon
  346.                 QUICK.DOC    -- Quick start instructions
  347.                 SORTDLX.EXE  -- High-speed DLX index sorter
  348.  
  349.                 The only two of these files you absolutely need to run
  350.         the DB-Dupe program are DBDUP.EXE and DBDUP.MSG.  The DBDUP.HLP
  351.         file is good to have for on-line help, but it is not necessary to
  352.         run the program.  If the SORTDLX.EXE program is not available,
  353.         the DB-Dupe program defaults to internal routines.  Of course,
  354.         you only need the two Windows files if you intend to run the
  355.         program under Windows.
  356.  
  357.                 The program generates some other files itself as you run
  358.         it.  For example, if you change the colors, it will generate a
  359.         file called DBDUP.COL.  When you create DLX indexes or save
  360.         search parameters, it creates additional files.
  361.  
  362.                 To run DB-Dupe, just copy the files from the diskette to
  363.         your hard drive.  Copying into the your database directory is
  364.         probably most convenient, but not necessary.  Start the program
  365.         by typing DBDUP at the prompt.
  366.  
  367.  
  368.         II.B. Extended Video Support
  369.  
  370.                 One of the most important features of DB-Dupe is that it
  371.         runs in 43 or 50 line modes on EGA and VGA monitors,
  372.         respectively.  This makes it much easier to compare duplicate
  373.         records, because you are able to see almost twice as much in 43-
  374.         line mode, and exactly twice as much in 50-line mode.
  375.  
  376.                 The DB-Dupe program automatically uses the highest
  377.         number of lines possible on your monitor (up to 50 lines).
  378.         However, it allows you to override this manually.  To start DB-
  379.         Dupe with a certain number of lines, you must specify the number
  380.         after the program name on the command line, using the format
  381.         "/L:number".  For example, to start DB-Dupe in 25-line mode on
  382.  
  383.  
  384.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 6 ***
  385.  
  386.  
  387.  
  388.  
  389.         an EGA or VGA monitor, you would type:
  390.  
  391.         DBDUP /L:25
  392.  
  393.         The only three values that are valid on the command line are 25,
  394.         43, and 50.  Any other value on the command line is ignored.
  395.  
  396.                 If you have a CGA or monochrome monitor, you would never
  397.         need to use this option, since the program can only run in 25-
  398.         line mode on those displays.
  399.  
  400.                 Another video option you can specify on the command line
  401.         is to run in monochrome mode.  You do this by adding "/M" on the
  402.         command line.  This forces the program to run in monochrome mode
  403.         when it would normally go into color mode.  It is helpful on AT&T
  404.         computers and some laptops that can fool programs into thinking
  405.         they are color monitors when they are really monochrome.  Note,
  406.         however, that if you have used the color picking function to
  407.         choose colors other than the default colors, your color
  408.         selections override the "/M" on the command line.
  409.  
  410.  
  411.  
  412.         II.C. Help System and Function Keys
  413.  
  414.                 The DB-Dupe program offers extensive on-line help.  Help
  415.         is available at all menus by pushing F1.  Help is also available,
  416.         by pushing 'H', from virtually every pop-up message that DB-Dupe
  417.         shows you.
  418.  
  419.                 You can scroll through the help message by pushing the up
  420.         and down arrows.  To remove the help, push Esc.
  421.  
  422.                 Besides F1, the other function keys and what they do are
  423.         listed along the bottom edge of the Record window.  These keys
  424.         perform various operations on your database records: Swap, Delete,
  425.         Undelete, Zoom, and View Memo.  Excluding F2, the odd-numbered
  426.         keys work on the top window, and the even-numbered keys work on
  427.         the bottom window.  Precisely what each of these operations does
  428.         is discussed later.
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 7 ***
  449.  
  450.  
  451.  
  452.  
  453.         II.D. The Main Menu
  454.  
  455.                 The Main Menu of the DB-Dupe program has six options on
  456.         the menu bar: File, Search, Goto, Utils, About, and Exit.
  457.  
  458.                 FILE lets you load a database, along with indexes,
  459.         formats, etc.  You also specify duplicate record search
  460.         parameters from the FILE sub-menus.  Whenever you run DB-Dupe,
  461.         you will want to go to this sub-menu first.
  462.  
  463.                 SEARCH does the actual searching through the loaded
  464.         database for duplicate records.  You cannot use SEARCH until you
  465.         have loaded a database.
  466.  
  467.                 GOTO lets you move through a loaded database.  You can
  468.         view records, advance the record pointer, look at memos attached
  469.         to records, and delete or undelete records from this menu.  You
  470.         cannot use GOTO until you have loaded a database.
  471.  
  472.                 UTILS lets you set colors for the program.
  473.  
  474.                 ABOUT tells about the program, and begs you to PLEASE
  475.         register the program.
  476.  
  477.                 EXIT closes all files and ends the program.  Note that
  478.         the DB-Dupe program does not have a "Shell" function.  But we
  479.         might add one if you write and say it needs one.
  480.  
  481.  
  482.         II.E. The FILE Sub-Menu
  483.  
  484.                 The File sub-menu is where you load all database files,
  485.         indexes, and formats, etc.  You can load these files
  486.         individually, or load them all at once by loading a previously
  487.         saved format file.
  488.  
  489.                 The menu options on the File sub-menu are: Use, Info,
  490.         Params, Load, Save, Index, Recall, and Return.
  491.  
  492.                 USE opens a database file.  It is functionally equivalent
  493.         to the USE statement in Dbase.  If you have another database
  494.         loaded when you choose this, it asks you if you want to save the
  495.         current file parameters before loading another file.
  496.  
  497.                 INFO tells you some things about a loaded database file,
  498.         such as the last update, the number of records, the size of a
  499.         record, and the size of the file.
  500.  
  501.                 PARAMS opens up another window where you can set search
  502.         parameters, specify an index and format, etc.
  503.  
  504.                 LOAD lets you load an SPT (Search ParameTer) file that
  505.         you previously saved.
  506.  
  507.                 SAVE lets you save an SPT file for later use.  The SPT
  508.         file saves the name of the database, index, and format file you
  509.         are using, along with other search parameters.  When you load the
  510.  
  511.  
  512.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 8 ***
  513.  
  514.  
  515.  
  516.  
  517.         SPT file, these are automatically reloaded and opened.  If you do
  518.         regular searches on certain files, you will want to use this
  519.         function.
  520.  
  521.                 INDEX lets you create a specially designed DLX (DeLete
  522.         indeX) file for search your database.  The index created is
  523.         automatically loaded as the current index, replacing any other
  524.         loaded index.  The DLX index is optimized for fast searching, and
  525.         is much faster than using other index formats.  The DLX index is
  526.         discussed later in this document.
  527.  
  528.                 RECALL undeletes all records in the database which have
  529.         been marked for deletion.
  530.  
  531.                 RETURN takes you to the previous menu.
  532.  
  533.  
  534.         II.E.1. USE(ing) a Database
  535.  
  536.                 As mentioned before, you can load a database by the USE
  537.         function, or by loading a previously saved search parameter (SPT)
  538.         file.
  539.  
  540.                 The DB-Dupe program is far more liberal than most
  541.         programs as to what it considers to be a DBase-compatible
  542.         program.  Most DBase-compatible databases, such as FoxPro and
  543.         DBase IV, use what is called a "signature byte."  This is a
  544.         special code at the beginning of the file which identifies the
  545.         database as in a certain format (also whether there is a memo
  546.         file associated with the database).  If this signature byte is
  547.         not correct, then the database will not be loaded, regardless of
  548.         whether the data in the file is actually compatible or not.  This
  549.         is the reason that DBase IV and FoxPro are incompatible.  They
  550.         use different signature codes, and simply refuse to load a file
  551.         without the right code.
  552.  
  553.                 The DB-Dupe program, however, ignores such signature
  554.         bytes.  Thus, it will attempt to load any file you tell it to,
  555.         whether you tell it to load a database file, a word processing
  556.         file, a spreadsheet file, or an executable program.  Only when
  557.         the file itself is found to be incompatible is it rejected.  A
  558.         file is deemed incompatible by the DB-Dupe program when its
  559.         header information does not end at the right place, or when the
  560.         file has more than 128 fields, or when the header reports a
  561.         record length of 0, or when the year of the last update to the
  562.         file is less than 80 or greater than 99, or the record length is
  563.         less than 1.  These five checks provide pretty good safety that a
  564.         file deemed compatible is compatible.  It is possible, although
  565.         unlikely, that a non-Dbase file could have data that would fool
  566.         the DB-Dupe program into thinking it was a DBase file when it was
  567.         not.  However, from the record display the DB-Dupe makes upon
  568.         loading the file, you could easily see the file was not
  569.         compatible.  Needless to say, you should not do a duplicate
  570.         record search on a file that is clearly not compatible.  The
  571.         results might be unpredictable, to say the least.
  572.  
  573.  
  574.  
  575.  
  576.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 9 ***
  577.  
  578.  
  579.  
  580.  
  581.                 Because the DB-Dupe program is so liberal as to what it
  582.         considers a compatible file, the program should work with almost
  583.         any program calling itself Dbase-compatible.
  584.  
  585.                 a. The DB-Dupe Screen Layout
  586.  
  587.                    When you load a database, the program displays the
  588.                    first database record, or as many fields as will fit,
  589.                    in the top window.  It displays the database fields,
  590.                    or as many fields as will fit, along with their type
  591.                    and length, in the bottom window.  (If there are too
  592.                    many fields to see the whole database structure in
  593.                    the second window, use the F8 key to "Zoom" the
  594.                    window.)  If this information does not look right,
  595.                    then perhaps you have loaded a file which is not
  596.                    actually compatible.  You should not perform a
  597.                    duplicate search on a file that does not appear to
  598.                    have the proper data and/or fields.  You most
  599.                    emphatically should not perform an automatic search on
  600.                    such a file.
  601.  
  602.                    The name of the currently loaded database appears in
  603.                    the upper left corner of the screen.  The record
  604.                    number of the record currently being read appears in
  605.                    the top center.  This number changes as a search is
  606.                    performed.
  607.  
  608.                    Along the bottom line of the first window, and the
  609.                    bottom line of the second window, notices about the
  610.                    record in the window are displayed.  At a minimum, the
  611.                    record number of the record in each window will be
  612.                    shown.  Notices are also placed on these lines if the
  613.                    records have attached memos, or if the records have
  614.                    been marked for deletion.
  615.  
  616.  
  617.                 b. Network Compatibility
  618.  
  619.                    If you are using DOS release 3.10 or later, database
  620.                    files are automatically opened for shared use, whether
  621.                    you are using a network or not.  If you are using DOS
  622.                    3.0 or earlier, all files are opened for your own
  623.                    exclusive use.
  624.  
  625.                    The DB-Dupe program is fully network compatible, which
  626.                    means that it opens files in shared mode, and checks
  627.                    for file and record locks as it operates.  Thus, other
  628.                    people can continue to use a database which the DB-
  629.                    Dupe program is processing.  The only problem you
  630.                    might encounter when others are using the database
  631.                    you are also using is that the program may not let you
  632.                    delete or undelete or swap fields using a record which
  633.                    is being edited by another person.  This will not
  634.                    cause an error -- the program simply won't let you
  635.                    access the record.
  636.  
  637.  
  638.  
  639.  
  640.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 10 ***
  641.  
  642.  
  643.  
  644.  
  645.                    You should also be aware of the difference between
  646.                    hard locks and soft locks on a network.  A hard lock
  647.                    uses DOS calls to physically prevent any other program
  648.                    from writing to a locked record.  This is the type of
  649.                    lock which DB-Dupe uses.  A soft lock is internal to a
  650.                    particular program which "remembers" what records are
  651.                    locked, and does not let anyone else use those
  652.                    records.  Soft locks will not prevent DB-Dupe from
  653.                    altering records.  Thus, you could inadvertently alter
  654.                    a record while someone else is editing it, causing the
  655.                    changes made to be lost.  Unfortunately, there is no
  656.                    way that DB-Dupe can detect such a situation.
  657.                    Fortunately, it would be a rather unlikely occurrence.
  658.  
  659.                    Of course, you will need network versions of whatever
  660.                    database you are using in order to make use of the
  661.                    network functions.  Single-user databases usually open
  662.                    files in exclusive mode, which means that no other
  663.                    program may access them.  If a file is being used
  664.                    exclusively by another, the DB-Dupe program will
  665.                    not be able to open the database.
  666.  
  667.                    Files which are used only by the DB-Dupe program
  668.                    (such as DLX indexes, SPT files, etc.) are opened in
  669.                    exclusive mode, since it is highly unlikely that any
  670.                    other program would need to access them.  All
  671.                    database-related files (DBF's, IDX's, NDX's, and
  672.                    FMT's) are opened for shared use.
  673.  
  674.                    Even though the DB-Dupe program can use files across a
  675.                    network, it runs much faster when files are located on
  676.                    the local computer.  Thus, you should try to use the
  677.                    DB-Dupe program on local files, rather than network
  678.                    files, whenever possible.
  679.  
  680.  
  681.         II.E.2. Info
  682.  
  683.                 This is pretty straightforward.  It tells you the number
  684.         of records in the file, the file size, the last update, and the
  685.         length of a record.  It doesn't really have any utility as far as
  686.         searching for duplicates goes, but sometimes the information is
  687.         helpful.  For example, if the info doesn't look right the program
  688.         might not really be compatible with the DB-Dupe program.
  689.  
  690.  
  691.         II.E.3. Setting Search Parameters
  692.  
  693.                 Setting search parameters is done via the 'Params'
  694.         menu option.  Once you choose this option, a pop-up box will
  695.         appear with ten search parameters listed.  These parameters
  696.         determine the search fields, the way in which you will view your
  697.         data, and the type of search.
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 11 ***
  705.  
  706.  
  707.  
  708.  
  709.         II.E.3.1. Search Fields
  710.  
  711.                 Lines 1 and 2 of the pop-up box ask you which fields of
  712.         the database you want to compare when you are doing an
  713.         interactive search (more on interactive vs. automatic later).
  714.         You can only specify 2 fields because, frankly, more than that
  715.         would be superfluous.  (You can, however, specify only one search
  716.         field, which is often more effective.)  If a record is the same
  717.         on two fields of your choosing, then it is a pretty good bet you
  718.         will want to see the record.
  719.  
  720.                 For example, suppose the two fields you pick are LASTNAME
  721.         and ADDRESS1 (which contains the street address).  That would
  722.         mean that the program would show you records for people who have
  723.         the same last name and the same street address.  Such people are
  724.         probably the same person, and, even if they aren't, there is
  725.         enough chance that they are the same that you would want to see
  726.         the record.  On the other hand, if you want to check as many
  727.         duplicates as possible, choose only one search field.
  728.  
  729.                 When specifying fields, the program opens up another pop-
  730.         up box from which you may choose the field you want.  The first
  731.         "field" listed is "Not defined".  If you choose "Not defined", it
  732.         wipes out any previously chosen field.  For example, if you have
  733.         previously chosen "ADDRESS" and "NAME" as search fields, and you
  734.         decided you only wanted to search by name, you could pop up the
  735.         Search Fields box again and replace "ADDRESS" with "Not defined"
  736.  
  737.                 Numeric fields can present a special problem when they
  738.         are used as a compare field.  A numeric field which has not been
  739.         edited at all will be filled with blanks, but a numeric field
  740.         which has been edited, even if the cursor simply passed through
  741.         it, is filled in with at least 1 zero character.  If you the
  742.         field has decimal places, then the field is filled with zeros to
  743.         the right of the decimal.  Blank numeric fields and zero filled
  744.         fields are *not* considered to be the same, no matter what search
  745.         mode you are using.
  746.  
  747.                 Memo fields cannot be chosen as fields to be compared.
  748.  
  749.  
  750.         II.E.3.2. Sort Field
  751.  
  752.                 Sort Field tells the DB-Dupe program what field the
  753.         current database is sorted by.  The database must either be
  754.         physically sorted by some field, or an index must be loaded, for
  755.         the DB-Dupe program to effectively find duplicates.  Because of
  756.         the way the program searches, DB-Dupe cannot find duplicates in
  757.         an unsorted, un-indexed file.  YOU MUST SPECIFY A SORT FIELD IN
  758.         ORDER FOR THE DB-DUPE PROGRAM TO SEARCH FOR DUPLICATES.
  759.  
  760.                 The DB-Dupe program searches by comparing all records
  761.         which are the same on the sort field.  When it reaches a record
  762.         with a different sort value, it stops comparing.  Thus, the
  763.         program would only find duplicates in an unsorted file if they
  764.         just happened to be physically next to each other -- not the most
  765.         efficient way to purge duplicates.
  766.  
  767.  
  768.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 12 ***
  769.  
  770.  
  771.  
  772.  
  773.  
  774.                 Although you could do a physical sort of your file by zip
  775.         code (or some other field), the program searches much more
  776.         quickly when an index is loaded.  The reasons for this are
  777.         explained in the next section.
  778.  
  779.                 When you specify an index, you cannot change the sort
  780.         order of the database unless you unload the index, or load
  781.         another index.
  782.  
  783.         II.E.3.3.  Index
  784.  
  785.                 Along with using a database file, you will usually want
  786.         to load an index file (SET INDEX TO in DBase lingo).  Searching
  787.         using an index is astronomically faster than not using an index.
  788.         This is because the DB-Dupe program compares index keys directly,
  789.         a function not available in Dbase.
  790.  
  791.                 To compare database records themselves, the DB-Dupe
  792.         program must read the raw data from disk, then break it up into
  793.         its component fields, and place it into an array.  It performs
  794.         this operation very quickly, but the larger number of fields a
  795.         database has, the longer it takes to break the raw data into
  796.         fields.
  797.  
  798.                 When the DB-Dupe program has an index loaded, however, it
  799.         compares only index keys until it finds an index key match.  Only
  800.         when it finds such a match does it access the database itself,
  801.         and loads the associated records.  Since indexes are usually
  802.         small, they are faster to access (the hard drive heads don't need
  803.         to move as far) and they can usually be held entirely within a
  804.         RAM cache.
  805.  
  806.                 The index file you specify to load can be one of three
  807.         types: a FoxBase/FoxPro .IDX index, a Dbase III/IV .NDX index, or
  808.         a DB-Dupe .DLX index.  DB-Dupe does not currently support Dbase
  809.         IV MDX indices, or FoxPro 2.x compact indices or compound
  810.         indices.
  811.  
  812.                 a. DLX indexes
  813.  
  814.                    The "native" index format of the DB-Dupe program is
  815.                    the DLX index.  Whereas NDX and IDX indexes are
  816.                    optimized for finding records quickly, a DLX index is
  817.                    optimized for moving quickly through the index itself
  818.                    sequentially.  Duplicate record searches using the DLX
  819.                    index are generally substantially faster than searches
  820.                    using the FoxBase format IDX indexes, and several
  821.                    times faster that using no index at all.
  822.  
  823.                    You can create a DLX index by using the Index command
  824.                    from the File sub-menu, or the DB-Dupe program
  825.                    automatically creates one when you load a Dbase
  826.                    format NDX file.  Note that DLX indexes created from
  827.                    the Index command are indexed solely on the contents
  828.                    of one database field (although "Soundex" or
  829.                    "Alphanumeric only" can be specified).  They cannot
  830.  
  831.  
  832.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 13 ***
  833.  
  834.  
  835.  
  836.  
  837.                    index on multiple fields or use Dbase expressions.
  838.  
  839.                 b. Dbase NDX
  840.  
  841.                    Dbase NDX file are not used directly by the DB-Dupe
  842.                    program.  Rather, they are converted to a simpler DLX
  843.                    index.  When you tell DB-Dupe to load an NDX file, it
  844.                    automatically converts the index to a file with the
  845.                    same root, but with the extension .DLX.  (The original
  846.                    NDX file is left unchanged, of course.)  If the
  847.                    program finds that a DLX index with the same root as
  848.                    the NDX file already exists, it will ask you if you
  849.                    want to use that, or if it should go ahead and convert
  850.                    the index.
  851.  
  852.                    For example, if you load an index called
  853.                    D:\DB4\MASTER.NDX, the program will automatically
  854.                    convert it the first time you load it, and create a
  855.                    file called D:\DB4\MASTER.DLX.  If you tell the DB-
  856.                    Dupe program to load D:\DB4\MASTER.NDX another time,
  857.                    it will tell you that D:\DB4\MASTER.DLX already
  858.                    exists, and ask you if you want to use it.  If you
  859.                    haven't made any changes to your data since the DB-
  860.                    Dupe made D:\DB4\MASTER.DLX, then you probably will
  861.                    want to use it.  Otherwise, you will want to convert
  862.                    the NDX index again.
  863.  
  864.                    Why convert an existing NDX index instead of just
  865.                    generating a new DLX index?  Two reasons.  First, as
  866.                    mentioned above, the DLX created by the Index command
  867.                    itself cannot use Dbase functions or expressions, and
  868.                    it cannot index on multiple fields.  DLX's converted
  869.                    from NDX's can have multiple field values and Dbase
  870.                    functions.  Second, the process of converting an NDX
  871.                    file usually takes less time than creating a new DLX
  872.                    file.  The DB-Dupe program converts about 4000 NDX
  873.                    entries per minute (on a 10 Mhz AT).  It converts the
  874.                    same number of entries per minute regardless of the
  875.                    total index size.  The creation of a new DLX index is
  876.                    very similar to a record sort, and sorting does take
  877.                    exponentially longer with more records.
  878.  
  879.                 c. FoxBase/FoxPro IDX indexes
  880.  
  881.                    The DB-Dupe program has the capability to use
  882.                    FoxBase+/FoxPro IDX indices directly, without
  883.                    converting them.  They are faster for searches than
  884.                    NDX's would be.  However, they are not as fast as
  885.                    DLX's.  Since IDX indices are directly supported,
  886.                    there is no facility to convert them to DLX format.
  887.                    You can, however, use the Index command to create DLX
  888.                    indices for FoxBase files.
  889.  
  890.                    Generally speaking, if you are indexing on a straight
  891.                    database field, you are better off creating a DLX
  892.                    index than using the IDX index.  However, for a small
  893.                    database (fewer than 2000 records), it probably
  894.  
  895.  
  896.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 14 ***
  897.  
  898.  
  899.  
  900.  
  901.                    doesn't matter much one way or the other.  Which index
  902.                    type to use is a function of deciding whether a slower
  903.                    search balances off the fact that generating DLX
  904.                    indexes takes a little while, whereas your IDX index
  905.                    would be immediately available.
  906.  
  907.  
  908.                 To unload an index, you can simply load another index.
  909.         Alternatively, to unload an index, without loading another index,
  910.         use the delete key to delete the name of the current index.  This
  911.         will unload the index, and set you back at physical record number
  912.         1.
  913.  
  914.  
  915.         II.E.3.4. Loading a format file
  916.  
  917.                 Normally when you load a database, the fields are
  918.         displayed one field per line, along the left side of the screen.
  919.         Depending on how many fields your database has, and how many
  920.         lines your monitor can display, you may or may not be able to see
  921.         the data in all fields.
  922.  
  923.                 In order to let you see all fields (or more fields at any
  924.         rate), DB-Dupe supports the use of DBase format files.  Dbase
  925.         format files are files which use "@ say" and "@ get" to display
  926.         field data and field prompts.  Normally these files have the
  927.         extension ".FMT".  If you are unfamiliar with format files,
  928.         you should look in the documentation for your database, or pick
  929.         up a book about Dbase at your local computer store.
  930.  
  931.                 The DB-Dupe program does not support all format functions
  932.         and commands that the Dbase supports.  It is limited to straight
  933.         "@ say"'s using either field names or quoted text strings, and
  934.         "@ get"'s followed by field names.  It further ignores any
  935.         "Picture" or "Valid" clauses in format files.  If the DB-Dupe
  936.         program encounters an "@ say" which is not a quoted text string
  937.         or field name, it displays an exclamation point.  If it
  938.         encounters an "@ get" which is not followed by a field name, it
  939.         displays a one-character blank field.
  940.  
  941.                 The DB-Dupe program supports lines containing both "SAY"
  942.         and "GET" in the same lines, such as:
  943.  
  944.              @ 1,1 say "First Name" get FIRSTNAME
  945.  
  946.         It also supports the alternate format, often used by program
  947.         generators, of:
  948.  
  949.              @ 1,1 say "First Name"
  950.              @ 1,10 get FIRSTNAME
  951.  
  952.                 The program also supports multiple page format files,
  953.         which use the "READ" or "READ SAVE" command in between pages.
  954.         Fields shown on pages other than first format page can be seen by
  955.         using the DB-Dupe "Zoom" function (discussed later).
  956.  
  957.                 One other limitation on format files (which would
  958.  
  959.  
  960.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 15 ***
  961.  
  962.  
  963.  
  964.  
  965.         probably never actually come up), is that format files used by
  966.         DB-Dupe are limited to 256 lines, or a combination of 384 total
  967.         SAY's and GET's.  A format file which was 256 lines would be an
  968.         extremely long format file, and would be very rare indeed.
  969.  
  970.                 The DB-Dupe program does not support the use of compiled
  971.         format files.  The format files must be straight ASCII text.
  972.  
  973.                 Dbase IV Note: DBase IV uses a .SCR source file from
  974.         which .FMT files are generated.  DB-Dupe cannot load the .SCR
  975.         files, but only the .FMT files which are generated from them.
  976.         For information on generating .FMT files from .SCR files, see
  977.         your Dbase IV manual.  FoxPro 2.0 also uses many different screen
  978.         files.  Why can't people keep things simple?
  979.  
  980.  
  981.         II.E.3.5.  Soundex
  982.  
  983.                 The Soundex function of the DB-Dupe program is a very
  984.         powerful method of searching for duplicates.  This function finds
  985.         records which sound alike.
  986.  
  987.                 Oftentimes, due to misspellings, bad handwriting, etc., a
  988.         person's name may be spelled incorrectly in your database, and,
  989.         hence, be entered twice with slightly different spellings.  An
  990.         exact search will show these two records as being different, but
  991.         a Soundex search will often show them as the same.
  992.  
  993.                 For example, suppose someone named "Tim Johnson" orders
  994.         something from your company and is added to your mailing list.
  995.         The next time he orders, his name is entered as "Tim Jonson".  A
  996.         Soundex search will flag these two records as being the same.
  997.         Similarly, it would find records such as "Jerry" and "Gerry", or
  998.         "Stephens" and "Stephans".
  999.  
  1000.                 Setting Soundex on does make searches slightly slower,
  1001.         and so it is not the default setting.  Its effectiveness at
  1002.         finding duplicates, however, more than offsets the slower speed.
  1003.         You will be amazed at how many more duplicates you find with
  1004.         Soundex on than off.  Soundex should only be used, however, when
  1005.         you are comparing fields which are primarily text, such as names
  1006.         and addresses.  Zip codes, being all (or mostly) numeric data,
  1007.         are not suitable for Soundex searching, since Soundex would show
  1008.         all zip codes as being the same.
  1009.  
  1010.                 The Soundex setting is ignored when you are doing an
  1011.         Automatic search, since records must be identical to be deleted
  1012.         during an Automatic search.
  1013.  
  1014.  
  1015.         II.E.3.6.  Alphanumeric Only
  1016.  
  1017.                 When this is turned ON, any punctuation characters in
  1018.         fields are ignored.  For example, the following two fields would
  1019.         be seen as the same:
  1020.  
  1021.         "123  W. Main    St., Apt #452" and "123 W Main St, Apt. 452"
  1022.  
  1023.  
  1024.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 16 ***
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.         because both would evaluate to: 123WMainStApt452
  1031.  
  1032.                 Using the Alphanumeric only setting helps you to find
  1033.         records which are only different because the punctuation is
  1034.         different, or where spacing is different.  This is especially
  1035.         helpful for comparing Address fields, which usually contain a
  1036.         good deal of punctuation.  It is not good when comparing ZIP
  1037.         codes, because searching for punctuation in the ZIP code just
  1038.         slows things down.
  1039.                 If you have turned Soundex ON, then Alphanumeric Only is
  1040.         ignored, because Soundex already strips punctuation.
  1041.  
  1042.  
  1043.         II.E.3.7.  Search Type
  1044.  
  1045.                 Three types of duplicate searches are supported --
  1046.         "Interactive", "Automatic", and "Auto, Exclude...".
  1047.  
  1048.                 "Interactive" search shows you duplicate records, based
  1049.         upon Search Fields and Soundex setting, and lets you decide
  1050.         whether to delete one of the records.  Interactive search is much
  1051.         more effective at deleting duplicates than automatic search, but
  1052.         it takes much longer.
  1053.  
  1054.                 "Automatic" search compares database records and deletes
  1055.         exact duplicates without any user intervention.  Records must be
  1056.         EXACT duplicates in order to be deleted, including upper/lower
  1057.         case, and memo field number (if any).  A window in the middle of
  1058.         the screen shows you how many records have been marked for
  1059.         deletion.
  1060.  
  1061.                 "Auto, Exclude..." searches allow you to exclude one
  1062.         field from an automatic duplicate search.  You can exclude any
  1063.         field except memo fields.  For example, many databases use date
  1064.         fields to track when a record was entered.  Thus, if a person is
  1065.         entered into the database in twice, the two records will be
  1066.         exactly the same except for date of creation.  Normally, this
  1067.         would require you to use interactive search, but with automatic
  1068.         exclude, you can exclude the date field and automatically delete
  1069.         records which are the same on all other fields.  This can be a
  1070.         real time-saver, since automatic searches are must faster than
  1071.         interactive searches.
  1072.  
  1073.         II.E.3.8. Report
  1074.  
  1075.                 This function allows you to generate a report of what
  1076.         records have been deleted, or recalled, by DB-Dupe.  This is
  1077.         especially helpful after an automatic search, in case you want to
  1078.         go through the database and check records just to make sure that
  1079.         no records you want to keep have been deleted.
  1080.  
  1081.                 Besides sending the report to the printer, you can
  1082.         generate a text file with the above information.  If the file you
  1083.         specify exists, the new information is appended to the end.  That
  1084.         way, you can keep a running record of all deletions made to a
  1085.         database over time.
  1086.  
  1087.  
  1088.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 17 ***
  1089.  
  1090.  
  1091.  
  1092.  
  1093.         II.E.4.  Save
  1094.  
  1095.                 The Save command saves the currently loaded search
  1096.         parameters to a file that can be loaded later.  The name of the
  1097.         currently loaded database, along with all parameters in the
  1098.         Params pop-up menu are saved.  SPT files are saved only in the
  1099.         default directory, so you cannot add a file path on to them.  The
  1100.         file extension .SPT (Search ParameTers) is added to the name you
  1101.         specify.
  1102.  
  1103.  
  1104.         II.E.5.  Load
  1105.  
  1106.                 The Load command loads a previously saved search
  1107.         parameter (.SPT) file.  This function automatically loads the
  1108.         database file, and opens any index or format files associated
  1109.         with the database.
  1110.  
  1111.  
  1112.         II.E.6.  Index
  1113.  
  1114.                 The Index command creates a new DLX format index file for
  1115.         the currently loaded database.  The new DLX index becomes the
  1116.         active index.
  1117.  
  1118.                 The index is created based upon a single field of the
  1119.         database which you specify.  Any field except memo fields can be
  1120.         used in creating the index.  Character fields are converted to
  1121.         all upper case, so the DLX index is the functional equivalent of
  1122.         indexing on UPPER(fieldname).  Also, date fields are indexed
  1123.         according to their raw data format of YYYYMMDD, which is the
  1124.         functional equivalent of indexing on DTOC(Datefield,1).
  1125.  
  1126.                 You can specify that a DLX index be created using the
  1127.         Soundex or Alphanumeric Only options (see above).  These options
  1128.         are appropriate for character fields, but not appropriate for
  1129.         primarily numeric fields such as ZIP codes.  Specifying either of
  1130.         these options slows down index generation time.
  1131.  
  1132.                 The indexing process uses the Quicksort, which is
  1133.         believed to be the fastest sort available these days.  After
  1134.         writing index keys to the index file, the process sorts them in
  1135.         place, so it does not create lots of temporary files, and does
  1136.         not require extensive disk space, as a sort using Dbase often
  1137.         can.  Furthermore, the streamlined DLX format only takes up about
  1138.         50%-70% of the disk space that a comparable NDX or IDX index
  1139.         would take.
  1140.  
  1141.                 Because the indexing is performed primarily on disk, and
  1142.         not in RAM, it can take a while to index a very large file.  You
  1143.         can cut down on the time somewhat if you index onto a RAM disk.
  1144.         If you are working over a network, you should always index onto a
  1145.         local hard drive, whenever possible.  If you do not specify a
  1146.         path for the index, the current default directory and drive are
  1147.         used.
  1148.  
  1149.  
  1150.  
  1151.  
  1152.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 18 ***
  1153.  
  1154.  
  1155.  
  1156.  
  1157.                 This version of the program (1.1) comes with an external
  1158.         indexing program called SORTDLX.EXE.  If the DLX index has a file
  1159.         length of more than 30000 bytes, this external program is used.
  1160.         It is generally much faster than the internal indexing routine,
  1161.         because it makes much better use of RAM.  The internal indexing
  1162.         routines use a RAM buffer of about 12K, but the external routine
  1163.         uses a RAM buffer of 128K.  If the external indexing routine
  1164.         fails for any reason, the internal routine automatically takes
  1165.         over.
  1166.  
  1167.                 The format of the DLX index is very simple.  See Appendix
  1168.         A for more information.
  1169.  
  1170.  
  1171.         II.E.7.  Recall
  1172.  
  1173.                 Recall undeletes records in the loaded database.  It is
  1174.         the equivalent of issuing the RECALL ALL command in DBase.  DB-
  1175.         Dupe may perform this function faster than your regular database,
  1176.         depending on which database you use.  You can interrupt the
  1177.         process by hitting -Esc- during the recall.
  1178.  
  1179.                 The Recall function does not recall in index order, but
  1180.         rather in true record order.  This makes it a lot faster.
  1181.  
  1182.         II.E.8.  Return
  1183.  
  1184.                 Return takes you to the previous menu.
  1185.  
  1186.  
  1187.         II.F.  The Search Menu
  1188.  
  1189.                 The Search command on the main menu immediately begins a
  1190.         search, as long as you have specified the required search
  1191.         parameters.  During this search, the record numbers of the
  1192.         records being read are displayed at the top of the screen.  These
  1193.         will go in numerical order if there is no index, and will jump
  1194.         around if there is an index loaded.
  1195.  
  1196.                 You may hit -Esc- to temporarily halt the search, and
  1197.         return to the main menu.  You can start the search up again
  1198.         later from where it left off, unless you specify a new sort order
  1199.         or load a new index.
  1200.  
  1201.                 Once a duplicate record has been detected, the Search
  1202.         sub-menu comes up.  This sub-menu contains several functions and
  1203.         several sub-menus.  These are: Delete 1, Delete 2, Zoom, Memo,
  1204.         Undelete, Continue, and Stop.
  1205.  
  1206.  
  1207.         II.F.1.  Delete 1 & Delete 2
  1208.  
  1209.                 Delete 1 and Delete 2 mark the record in window 1 or
  1210.         window 2, respectively, as deleted.  After you choose one of
  1211.         these, the program waits approximately one second, and then
  1212.         continues searching.  If you want to delete both records shown,
  1213.         use the function keys, and then hit "C" for continue.
  1214.  
  1215.  
  1216.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 19 ***
  1217.  
  1218.  
  1219.  
  1220.  
  1221.                 If you delete record #2, the program continues to search
  1222.         for records which duplicate record #1.  However, if you delete
  1223.         record #1, then the program immediately skips to the next record,
  1224.         and starts looking for duplicates of it.
  1225.  
  1226.  
  1227.         II.F.2.  Zoom
  1228.  
  1229.                 The zoom function allows you to see all of the present
  1230.         record, even if it will not all fit into its window.  This can
  1231.         happen either because there are more fields than available lines
  1232.         in a window, or because one or more database fields is too long
  1233.         (more than 65 characters) to see the whole field.  (Of course,
  1234.         you can still use the function keys to zoom.)
  1235.  
  1236.                 If no format file is loaded, the zoom function pops up
  1237.         the record data in a window in the middle of the screen.  If
  1238.         there are more fields than can fit in this window, then you can
  1239.         move the field highlighter up and down to see the remaining
  1240.         fields.  Field which are longer than 65 characters are stretched
  1241.         over multiple lines in the window, so you will be able to see all
  1242.         data in the record.
  1243.  
  1244.                 If a format file is loaded, then the record is shown
  1245.         using the entire screen, pretty much as it would appear in Dbase.
  1246.         You can use the PgUp and PgDn keys to see subsequent pages of
  1247.         multi-page format files, just as you would in Dbase.  You can
  1248.         also hit -R- to remove the little instruction box from the lower
  1249.         right corner, if it is getting in the way of your data.
  1250.  
  1251.                 When you are through using the zoom function, push -Esc-
  1252.         to clear it.
  1253.  
  1254.  
  1255.         II.F.3.  Memo
  1256.  
  1257.                 The memo function allows you to view the contents of
  1258.         memos attached to database records.  When a record does have a
  1259.         memo attached, the DB-Dupe program displays a notice saying
  1260.         "Memo" beneath the record.
  1261.  
  1262.                 The DB-Dupe program supports the memo formats of DBase
  1263.         III Plus, DBase IV, FoxPlus, and FoxPro.  It also supports the
  1264.         use of memos with any program which has a compatible memo format.
  1265.  
  1266.                 To display a memo file, the DB-Dupe program pops up a
  1267.         window in the upper half of the screen.  If a memo is more than
  1268.         13 lines long then the up and down arrow keys can be used to
  1269.         scroll the memo.
  1270.  
  1271.                 Just as when using Dbase/FoxBase, a memo file must be in
  1272.         the same directory as its host database.  Dbase III, Dbase IV,
  1273.         and FoxPlus memo file must have the extension ".DBT".  FoxPro
  1274.         memo files have the extension ".FPT".  DB-Dupe determines what
  1275.         type of memo file it is dealing with based upon information
  1276.         contained in the header of the database.
  1277.  
  1278.  
  1279.  
  1280.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 20 ***
  1281.  
  1282.  
  1283.  
  1284.  
  1285.                 To cut down on RAM used by memos, the DB-Dupe program
  1286.         limits how much of a memo it will show you to either 100 lines or
  1287.         5K.  If a memo is truncated based upon the number of lines, it
  1288.         will give the message "*** Memo truncated at line 100  ***".  The
  1289.         program does not give any special message if it cuts a memo off
  1290.         at 5K, but it should not be too hard to spot such a cut off.
  1291.         This limitation should not be much of a problem, since few people
  1292.         use memos of such length.  And, in any case, you will be able to
  1293.         see enough of a memo to determine if you want to delete the
  1294.         attached record.
  1295.  
  1296.                 Note about FoxPro Memos: FoxPro memos can contain any
  1297.         type of information in them, even graphics files.  DB-Dupe,
  1298.         however, treats all memos files as text.  So, depending on the
  1299.         type of information stored, it may or not be displayed properly
  1300.         by the DB-Dupe program.
  1301.  
  1302.  
  1303.         II.F.4.  Undelete
  1304.  
  1305.                 Undelete unmarks a record that had been marked for
  1306.         deletion.  This is equivalent to the RECALL command in Dbase.
  1307.  
  1308.  
  1309.         II.F.5.  Continue
  1310.  
  1311.                 This command continues the duplicate record search
  1312.         without marking either of the record shown for deletion.
  1313.  
  1314.  
  1315.         II.F.6.  Stop
  1316.  
  1317.                 Stop suspends the current search and returns you to the
  1318.         main menu.  It is functionally equivalent to hitting the -Esc-
  1319.         key while the program is searching.
  1320.  
  1321.  
  1322.         II.G.  The Goto Menu
  1323.  
  1324.                 The Goto menu allows you to advance through your
  1325.         database.
  1326.  
  1327.                 Many times when searching for duplicate records, you may
  1328.         not want to start searching at the first record.  It may be that
  1329.         you were interrupted in the middle of searching, and want to take
  1330.         up where you left off.  Or perhaps with a zip-code-indexed
  1331.         database, you have collected several hundred records at the
  1332.         begining that have no zip, and hence take a long time to search
  1333.         through.  The Goto menu allows you to begin your search wherever
  1334.         in your database you want.
  1335.  
  1336.                 The Goto menu is slightly different depending on whether
  1337.         you have an index loaded or not.  If an index IS NOT loaded, then
  1338.         the menu has the options: Goto #, Next, Previous, and Return.  If
  1339.         in index IS loaded, the menu has the options: Top, Next,
  1340.         Previous, Advance, and Return.
  1341.  
  1342.  
  1343.  
  1344.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 21 ***
  1345.  
  1346.  
  1347.  
  1348.  
  1349.         II.G.1.  Goto #
  1350.  
  1351.                 Goto # is only an option when an index is not loaded.
  1352.         This option allows you to specify an absolute record number to go
  1353.         to.  This is functionally equivalent to the GOTO statement in
  1354.         Dbase.  The program shows you how many records are in the
  1355.         database.  Obviously, you cannot goto a record number higher than
  1356.         the number of records in the database.
  1357.  
  1358.                 Goto # is not available when an index is loaded because
  1359.         all records are relative to an index.  Specifying an absolute
  1360.         record number to go to would really you do you any good, because
  1361.         you wouldn't know if you were actually going forward or backward
  1362.         through the index.
  1363.  
  1364.  
  1365.         II.G.2.  Top
  1366.  
  1367.                 Top is only available when an index is loaded.  This
  1368.         takes you to the first record listed in the index.
  1369.  
  1370.  
  1371.         II.G.3.  Next and Previous
  1372.  
  1373.                 Next and Previous are available whether an index is
  1374.         loaded or not.  Next takes you to either the next physical record
  1375.         or the next record based on the index.  Previous takes you to
  1376.         either the previous physical record or the previous record based
  1377.         on the index.
  1378.  
  1379.  
  1380.         II.G.4.  Advance
  1381.  
  1382.                 Advance is only available when an index is loaded.  This
  1383.         option skips through the index a certain number of records.  This
  1384.         is equivalent to the SKIP [#] command in Dbase when an index is
  1385.         loaded.  Advance only skips forward through a database, not
  1386.         backwards.  If you need to go to a previous record, you can
  1387.         either just use the Previous option, or you can use Top and then
  1388.         Advance.
  1389.  
  1390.                 The Advance function is somewhat slow when a
  1391.         FoxBase/FoxPro index is loaded.  This is because it must actually
  1392.         work its way through the index a certain number of times.  To
  1393.         show you its progress, a box pops up in the middle of the screen.
  1394.  
  1395.                 When you have a DLX index loaded, the Advance function is
  1396.         instantaneous, no matter how many records you are advancing.
  1397.  
  1398.  
  1399.         II.G.5.  Deleted
  1400.  
  1401.                 This function allows you to advance to the next deleted
  1402.         record.  If you choose this and then find yourself waiting a long
  1403.         time, you can hit -Esc- to stop.
  1404.  
  1405.  
  1406.  
  1407.  
  1408.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 22 ***
  1409.  
  1410.  
  1411.  
  1412.  
  1413.         II.G.6.  Return
  1414.  
  1415.                 Return takes you back to the main menu.
  1416.  
  1417.  
  1418.         II.H.  Utils
  1419.  
  1420.                 The Utils menu currently only has one option, setting
  1421.         program colors.
  1422.  
  1423.                 Setting colors allows you to change all the colors the
  1424.         DB-Dupe program uses.  There are 11 different colors setting you
  1425.         can change.  You cannot change all colors directly, but you can
  1426.         change all colors at least indirectly.  (For example, the colors
  1427.         used for on-line help are based upon the colors you pick for
  1428.         Dialog Boxes.)
  1429.  
  1430.                 Start changing colors by hitting 1-9, or A-B to specify
  1431.         which color setting you want to change.  Once you do this, a
  1432.         large block cursor will appear in the color box at the left.  You
  1433.         can move this cursor with the arrow keys to the new color you
  1434.         want.  As you move the cursor, the new color will be shown in the
  1435.         box at the right.  When you have the color you want, push -Enter-.
  1436.         You can then go on to set the rest of the colors similarly.
  1437.  
  1438.                 When you are done setting colors, you can hit -S- to save
  1439.         the new colors, -X- to exit without saving, or -R- to restore the
  1440.         program color defaults.
  1441.  
  1442.                 Your new colors take effect immediately upon exiting the
  1443.         color setting function.
  1444.  
  1445.  
  1446.         II.J.  Quit
  1447.  
  1448.                 Quit closes all files and exits the program.  It is
  1449.         functionally equivalent to the QUIT statement in Dbase.
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 23 ***
  1473.  
  1474.  
  1475.  
  1476.  
  1477.         III. Suggestions for Use
  1478.  
  1479.             1. Always make sure you are using a RAM cache with DB-Dupe.
  1480.         Use a RAM disk also when possible for indexing.
  1481.  
  1482.             2. When you are creating an index, create it with a field
  1483.         that will have few duplicates.  For example, address databases
  1484.         are usually best indexed by street address, since there will
  1485.         likely be few duplicates; but, you could also try indexing by
  1486.         zip, or last name, or city, etc.
  1487.  
  1488.             3. If you have a database with lots of blanks in the
  1489.         beginning, use the advance function to skip them.  Checking
  1490.         through several hundred blanks can take a couple of minutes, and
  1491.         is usually not worth the time.
  1492.  
  1493.             4. You can delete all blank records in the a file by indexing
  1494.         on any field, and then letting the program do an automatic
  1495.         delete.  Let the program go until the record counter at the top
  1496.         of the screen goes from 1 to 2.  When the record counter reaches
  1497.         2, hit escape to stop searching.  The program will have deleted
  1498.         all blanks except the first one, which you can delete manually.
  1499.  
  1500.             5. Always make backups before doing a duplicate record
  1501.         search.  Really, you should have a program of regular backups,
  1502.         every day or at least once a week.  Such backups are especially
  1503.         necessary when using a new piece of software.
  1504.  
  1505.             6. Use the report function, especially when you are using
  1506.         DB-Dupe for the first time on a database.  That way you can make
  1507.         sure that the program worked properly.
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 24 ***
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.                                     Appendix A
  1543.                                Format of DLX Index
  1544.  
  1545.                 We provide this information on DLX indexes because we
  1546.         feel that file formats should always be made available.
  1547.  
  1548.                 DLX indexes are somewhat like IDX or NDX indexes in that
  1549.         they have a header, followed by the actual index values and
  1550.         record numbers.  However, the DLX headers and record entries are
  1551.         much simpler and, hence, faster.
  1552.  
  1553.                 The DLX header is 255 characters in length.  The first 13
  1554.         bytes contain the string "DBDup 1.1 DLX".  The next two bytes are
  1555.         an integer specifying the length of the database field
  1556.         (FieldLendth) upon which the index was created.  The next four
  1557.         bytes are a long integer specifying the file length of the DLX
  1558.         index.  The next 64 bytes are a string specifying the Key
  1559.         Expression of the DLX index.  The next 2 bytes are an integer
  1560.         specifying whether the DLX index was successfully completed.  Any
  1561.         value other than 5 means it is an invalid index.
  1562.  
  1563.                 The actual record entries in the DLX are strings of the
  1564.         length of FieldLength, followed by a long integer representing
  1565.         the record number.  These record entries begin at byte number 256
  1566.         (255 if you consider the first byte to be 0), and the length
  1567.         between entries is the FieldLength + 4.
  1568.  
  1569.                 A BASIC type representation of the header would be:
  1570.  
  1571.         Type DLXHeader
  1572.                 ID            as String * 13
  1573.                 FieldLength   as Integer
  1574.                 FileLength    as Long
  1575.                 KeyExpression as String * 64
  1576.                 DlxCode       as Integer
  1577.                 Reserved      as String * 169
  1578.         End Type
  1579.  
  1580.  
  1581.                 A BASIC type representation of the record entries would
  1582.         be:
  1583.  
  1584.         Type RecordEntry
  1585.                 FieldValue    as String * FieldLength
  1586.                 RecordNumber  as Long
  1587.         End Type
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 25 ***
  1601.  
  1602.  
  1603.  
  1604.  
  1605.                                     Appendix B
  1606.                                       Errors
  1607.  
  1608.                 There are three types of errors which you might encounter
  1609.         when using the DB-Dupe program.
  1610.  
  1611.                 The first type of error is a program logic/code error.
  1612.         This is what is typically called a "bug".  When using a program
  1613.         as complicated as DB-Dupe, which supports multiple file formats
  1614.         in multiple screen formats, bugs are not terribly uncommon.
  1615.         We've done our best to catch all the bugs, but no one can ever
  1616.         catch them all.  The bugs that might remain in the program are
  1617.         probably display bugs, meaning that the screen might not be
  1618.         updated correctly for some reason.  Other bugs might occur when
  1619.         you are loading unusual combinations of files, or loading and
  1620.         unloading many different files during one session.  If such bugs
  1621.         do occur, the easiest thing to do is simply to exit the program
  1622.         and restart.  We would appreciate it if you would contact us with
  1623.         bug reports if you find any bugs.  We will fix the bug, and send
  1624.         a corrected copy to you for free, whether you have registered
  1625.         this program or not.
  1626.  
  1627.                 The second type of error is an incompatible or corrupted
  1628.         file error.  The program tries to trap such errors and keep
  1629.         going, but this is not always possible.  These errors can occur,
  1630.         for example, if you attempt to load a bad index or format file
  1631.         (although the program tries very hard to catch such errors).  If
  1632.         you load a corrupted (or compiled) format file, the program may
  1633.         try to process it and encounter an error.  In the same way, a
  1634.         corrupted index file could cause an error.  Also, if you load an
  1635.         index file from an unsupported database, an error might occur.
  1636.  
  1637.                 The third error is a hardware error.  This can occur if
  1638.         you have a bad sector on your hard drive, or some other hard
  1639.         drive problem, or a computer memory error.
  1640.  
  1641.                 If the DB-Dupe program encounters an error from which it
  1642.         cannot recover, it will show you the number of the error, and ask
  1643.         you if you want to save current file parameters.  The numbers the
  1644.         program shows are equivalent to BASIC error numbers listed in the
  1645.         BASIC manual which came which your copy of MS-DOS.
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 26 ***
  1665.  
  1666.  
  1667.  
  1668.  
  1669.                                     Appendix C
  1670.                        Using DB-Dupe with Microsoft Windows
  1671.  
  1672.                 Although DB-Dupe is not a "Windows program," you may find
  1673.         it convenient to run DB-Dupe from Windows.  If you run Windows in
  1674.         386 enhanced mode, then DB-Dupe can run in a background window
  1675.         while you do something else in the foreground.  This is
  1676.         especially handy when you are doing a long indexing job, or when
  1677.         you are using DB-Dupe in automatic mode.
  1678.  
  1679.                 You can only run DB-Dupe in the background when you are
  1680.         in 386 enhanced mode.  If you are not running in enhanced mode,
  1681.         then you are better off exiting Windows and running DB-Dupe
  1682.         separately.
  1683.  
  1684.                 We provide a Windows .PIF file (DBDUP.PIF) and a Windows
  1685.         Icon (DBDUP.ICO) for DB-Dupe on the distribution disk.
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.         *** DB-Dupe 1.1, Copyright 1991, BC Enterprises. Page 27 ***
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.                                    DB-Dupe 1.0
  1736.                                     Order Form
  1737.  
  1738.  
  1739.         Name ________________________________________________________
  1740.  
  1741.         Company _____________________________________________________
  1742.  
  1743.         Street Address ______________________________________________
  1744.  
  1745.         City _______________________  State _______   Zip ___________
  1746.  
  1747.         Date _____________________   Your P.O. # ____________________
  1748.  
  1749.         I require  3.5 inch _______   5.25 inch _______ diskettes.
  1750.  
  1751.         Number of Copies of DB-Dupe (at $59 per copy) _______________
  1752.  
  1753.                                         Total Cost    _______________
  1754.  
  1755.  
  1756.         Optional:
  1757.  
  1758.         What database program are you using? ________________________
  1759.  
  1760.         How would you rate DB-Dype on speed? ________________________
  1761.  
  1762.         How would you rate DB-Dupe on ease-of-use? __________________
  1763.  
  1764.         Suggestions? ________________________________________________
  1765.  
  1766.         _____________________________________________________________
  1767.  
  1768.         Note: Registering ONE copy of DB-Dupe allows you to use it on all
  1769.         computers at one site (normally one building, or one group of
  1770.         buildings owned by one owner, such as a college).  If you plan to
  1771.         use it at more than one site, then you must register multiple
  1772.         copies.
  1773.  
  1774.         In return for your registration, you will recieve the latest
  1775.         version of DB-Dupe, along with a printed manual for every copy
  1776.         purchased, as well as free or low-cost updates, as well as large
  1777.         discounts on new Dbase-compatible software.
  1778.  
  1779.         We do accept purchase orders from business, schools, and
  1780.         government agencies.
  1781.  
  1782.         Please mail this form, along with your check, to:
  1783.  
  1784.         BC Enterprises
  1785.         P.O. Box 18
  1786.         Front Royal, VA  22630
  1787.  
  1788.  
  1789.