home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #3.1 / RBBSIABOX31.cdr / ddut / db3pbug6.txt < prev    next >
Text File  |  1986-06-06  |  9KB  |  230 lines

  1. I don't know if everyone will call these thing bugs, anomalies or simply my 
  2. own ignorance and sloppiness, but I am placing these notes in the public
  3. domain so that others may profit from the time I lost, and not repeat the 
  4. same mistakes.
  5.  
  6.  
  7. This is a report of DBASEIII PLUS Version 1.0 BUGS.  According to ASHTON-TATE
  8. I am using their corrected version.  The original release was buggy and
  9. recalled.  It has very low serial numbers, but unfortunately, I don't know 
  10. what range was encompassed.
  11.  
  12.  
  13. This report ignores the numerous bugs which appear in the reports, formats,
  14. and labels generated by ASSIST.  ASSIST is definitely useable, but all files
  15. created may have errors and need to be checked.  
  16.  
  17.  
  18. CONFIG.SYS FILE has FILES=20, BUFFERS=40.  Using AT clone 101% compatible
  19. running at 8MHz, DOS 3.1, 44Meg disk, Taxan 640 display with Taxan 555 card. 
  20. DBase 3 Plus is legitimate copy with '0' time logo, and unprotect from 'Unlock
  21. Disk' so I can back up and restore easily from hard disk to streaming tape. 
  22.  
  23. *******************************************************************************
  24.  
  25. 'Too Many Files Open'
  26.  
  27. This message may appear despite the fact that you have set your CONFIG.SYS
  28. file so that files=20 and buffers=20+
  29.  
  30. There are at least two causes for the problem and several fixes and work-
  31. arounds.  The cause of the problem according to Steve at Ashton Tate is that
  32. the CLOSE command does not necessarily close the DOS FCB's (DOS file control 
  33. blocks.  Thus after a series of file openings and 'CLOSES', you can exceed
  34. the DOS limit of 20 open files and trigger the 'Too Many Files Open' Error
  35. Message.  A second cause of the problem may be because the files were opened
  36. in a Procedure.
  37.  
  38.  
  39. Fixes, Work-Arounds, and Comments
  40.  
  41. Steve (AT) suggests that a CLEAR ALL will close the open FCB's.  I have found
  42. that this does not always work, and of course, is not always a desireable
  43. command to implement in the middle of a program.  USE seems to be a far more
  44. reliable method which works, and causes much less havoc in my programs.  Also,
  45. there is a dependence between CLEAR ALL, CLOSE DATABASES, and the order in 
  46. which they are executed.  Thus, CLEAR ALL doesn't always close the FCB's, as
  47. DB3P may not always remember that there are any that need closing.  The USE
  48. command has proved effective for me 100% of the time.  That is, issuing a USE
  49. with no following database name closes all files in that database area.
  50.  
  51. A second area of concern has to do with the files opened from a procedure file.
  52. I suggest that you make sure that you close these files in the procedure when
  53. you are done, and do not make the mistake of assuming that CANCEL closes 
  54. procedures or the files in the procedure.  Use 'USE' and SET PROCEDURE TO in
  55. order to close procedures and files opened within procedures. 
  56.  
  57. *******************************************************************************
  58.   
  59. Syntax Checking
  60.  
  61.  
  62. Entered the letter T instead of the letter F when typing ENDIF in a program.
  63.  
  64. DBASEIII Plus seems to get confused.  That is, ENDI is a recognizeable command,
  65. so DB3P did not choke on 'ENDIT'
  66.  
  67. ENDIT is not in the DBASEIII Plus vocabulary, but when executing the program,
  68. no bad sysntax or bad command verb error appears!  DBASE simply ignores the
  69. command.  This is a disaster because it is tough to spot the error and because
  70. the program acts as if it is missing an ENDIF.
  71.  
  72. IF YOU TYPE 'ENDIT' FROM THE DOT PROMPT YOU WILL GET AN ERROR MESSAGE. 
  73.  
  74. - - -
  75.  
  76. With SET TALK OFF, "SET DEVICE TO PRINT NO EJECT" is accepted as a correct
  77. command.  The proper command does not, of course, include NO EJECT, and the
  78. phrase NO EJECT is only correct if written as NOEJECT.  
  79.  
  80.  
  81. Fixes, Work-Arounds, and Comments
  82.  
  83. FIX: TAKE A TYPING COURSE AND PROOF READ VERY CAREFULLY.
  84.  
  85. *******************************************************************************
  86.  
  87. Indexing
  88.  
  89. I Indexed on a compound set of fields which included a character field as the
  90. first entry and the compliment of the record number as the 2nd field.
  91.    [INDEX on ACCOUNT + STR(-RECCNO()) to FILENAME]
  92.  
  93. BROWSE present a Record not found error just like the old index bug in DBASEIII
  94. 1.0 AND 1.1 (the one which is solved by indexing on fields with lengths which
  95. are multiples of 4).
  96.  
  97.  
  98. Fixes, Work-Arounds, and Comments
  99.  
  100. You must set the length of the STR function when doing an INDEX.
  101.   [INDEX on ACCOUNT + STR(1000000-RECCNO(),6) to FILENAME] works fine.
  102.  
  103. - - -
  104.  
  105. 'File Not Accessible'
  106.  
  107.     SET TALK OFF (Source Tom Wells and Bob Schniebolk)
  108.  
  109.     1.  With SET TALK OFF issued a USE TCUST INDEX TCUST,TCUSTNA,TCUSTZI,;
  110.         TCUSTAD
  111.         REINDEX
  112.  
  113.     2.  DBASE 3 Plus responds with "File Not Accessible" (sometimes)
  114.  
  115.  
  116. Fixes, Work-Arounds, and Comments
  117.  
  118.     FIX 1:  SET TALK ON
  119.             REINDEX
  120.  
  121.     FIX and Comment 2 (per Tom Wells and AT):   
  122.     A - Set Talk on and Reindex now interact!
  123.     B - If you must Reindex, Set Talk On.
  124.     C - Watch % Index numbers.  If they jump immediately to 100 % you are NOT
  125.         reindexing.  (NOTE:  I have found that this is not always the case.  If
  126.         the file is small and you are using an AT, the indexing may be near
  127.         instantaneous and there does not appear to be any increments between 0
  128.         and 100 %, yet the file has been reindexed.) 
  129.     D - Workaround - Ashton Tate suggests using the expression INDEX ON
  130.         FIELDLIST + ' ' TO FILENAME  where one blank is added to the fieldlist.
  131.  
  132.     (UGH!  We are almost back to the old bug of multiple's of 4.)
  133.  
  134. NOTE:  In my discussions with Steve at AT, he said that the Workaround
  135.        presented in D (Above) is not effective 100% of the time!
  136.  
  137. - - -
  138.  
  139. APPEND FROM
  140.  
  141. 1.  When appending some fields from a large file to a small file , the index of
  142.     the small file sometimes grows to be twice as big as it should be. SEEKS
  143.     on the appended file operate properly.
  144.  
  145. Fixes, Work-Arounds, and Comments
  146.  
  147.     FIX - REINDEX will reduce the index file size to its proper size. 
  148.     (I wonder what this has to do with the indexing bugs?
  149.  
  150. - - -
  151.  
  152. Indexing
  153.  
  154. A client added another record to a file indexed by last name, and the program
  155. could not find the record, despite trying a REINDEX with SET TALK ON.  The name
  156. was ROTH, and there were other ROTHS in the file which could be found.
  157.  
  158.  
  159. Fixes, Work-Arounds, and Comments
  160.  
  161. Steve at AT says there are 60 + documented indexing bug reports and AT is
  162. having considerable difficulty finding similarities or common threads among
  163. the reports.  He mumbled an opinion that there would be a revision but said
  164. he had no idea if and when or what or whatever would be the update policy.
  165.  
  166. Since my client actually preferred to be able to do a lookup using last name 
  167. and first name I solved my indexing problem by the following:
  168.  
  169.   INDEX ON TRIM(LNAME)+', '+LEFT(FNAME,1)   
  170.  
  171. which worked.  That is, SEEK 'ROTH, B' is found and SEEK 'ROTH' produces the
  172. first ROTH in the database.  Page downs find the previously missing ROTH
  173. whether I SEEK by last name only, or if I SEEK on
  174. Last name,+first name, first initial.
  175.  
  176. Note that this fix or workaround changes the length of the fields used for
  177. indexing.  Thus, in this particular case, Steve's claim that adding a space to
  178. the index field isn't always effective, worked for this particular combination.
  179. Note also, that Steve reiterates that the old multiple of 4 bug is gone.
  180. UNFORTUNATELY, I think that it may have been replaced with a multiple of a
  181. random number where the multiplier may be random also, and where the fix may
  182. involve the addition of random lengths of random characters!  (Actually, it
  183. ain't all that bad, folks, I'm just a wee bit scared.)
  184.  
  185. *******************************************************************************
  186.  
  187. TO PRINT
  188. SET PRINT ON
  189. 'Printer Not Ready'
  190.  
  191. A note in the Data Based Advisor's Feedback column (a nice magazine) states
  192. that a TO PRINT command may produce a Printer not Ready Message and that
  193. REPORT FORM TO PRINT and SET DEVICE TO PRINT may not work for some serial
  194. printers.
  195.  
  196. The Editor comments that SET PRINT ON caused problems on some computers with
  197. serial or parallel printers. 
  198.  
  199.  
  200. Fixes, Work-Arounds, and Comments
  201.  
  202. Try ON ERROR DO FIXNAME where FIXNAME is a procedure program that includes a 
  203. RETRY statement.
  204.  
  205. The DBA Editor reported that it fixed the problem on one computer with a
  206. parallel printer, but didn't work on another computer type which had a serial
  207. printer.  
  208.  
  209. I have been using this fix for some time and it has been working for me and my
  210. parallel Epson FX-286 without a hitch.
  211.  
  212. *******************************************************************************
  213. History
  214.  
  215. Original message revised and Bugs 2 and 3 added on March 30, 1986. (RJS)
  216. Original message revised and Bugs 4 and 5 added on April 27, 1986. (RJS)
  217. Format revised, Indexing, Printer bugs, Notes added May 24,1986. (RJS)
  218.  
  219.  
  220. ROBERT SCHNIEBOLK                                       GAITHERSBURG,MD
  221. CONSULTING TECHNOLOGIES
  222. 301-840-0360                                            
  223.  
  224. DB3, dBase 3, DBASE III Plus etc and all combinations are, of course, the 
  225. copyright of the Ashton-Tate Corporation, and if I could figure out the
  226. proper way to write it, I would use that form.  AT themselves seems to
  227. use several different variations.
  228.  
  229. * EOF --- *
  230.