home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 12 / CD_ASCQ_12_0294.iso / maj / 421 / _whatis.txt < prev    next >
Text File  |  1993-08-03  |  6KB  |  98 lines

  1. What is BULLET?
  2. BULLET v1.0
  3.  
  4. If you've been wanting to create the ultimate database program, or just a simple
  5. mailing list to handle your holiday cards, BULLET is the programming library for
  6. you. BULLET is a library module for programmers developing in MS-DOS. What
  7. language you ask? Would you believe most any? That's right, BULLET is designed
  8. to operate as-is with most compilers* available for DOS (DOS 3.3 or above is
  9. required). This is possible because BULLET is written entirely in assembly
  10. langauge. Everything it needs it has built in, so no specific compiler run-time
  11. library is required. Your compiler simply needs to be able to:
  12.  
  13.  1. Perform a far call to an external routine using the Pascal calling
  14.     convention.
  15.  2. Build a parameter pack, as in a C struct or BASIC TYPE, for example.
  16.  3. Pass a single far pointer by value (of the parameter pack) to the external
  17.     routine.
  18.  4. Accept a return integer value from the external routine (optional).
  19.  
  20. BULLET uses high-speed b-tree indexes and the industry-standard DBF data file
  21. format to quickly and easily move data to and from disk. The BULLET API includes
  22. over 65 functions to perform tasks from low-level direct DOS file I/O to
  23. high-level transaction-based updates to network routines that let you control
  24. who has access to your files and when. National Language Support (NLS) is built
  25. into each key file. This allows you to properly sort mixed-case and/or foreign
  26. language alphabets. BULLET supports character keys up to 64 bytes as well as
  27. 16-/32-bit integer keys (signed or unsigned). Index files specify if duplicate
  28. keys are allowed or whether unique keys are to be enforced. And although dBASE
  29. DBF data file compatiblility is standard, you can create non-standard DBF files,
  30. such as having fields contain binary data. Key expressions are specified using
  31. text, as in kx = "SUBSTR(Fieldname,1,10)+Fieldname+SUBSTR(Fieldname,10,3)". Keys
  32. may be composed of up to 16 separate fields, located anywhere within the record.
  33.  
  34. The transaction nature of BULLET greatly simplifies what is required of the
  35. programmer. For example, let's say you have a 100,000-record data file with 12
  36. active index files and need to insert a new record. With BULLET, you simply
  37. build the data record and call the InsertXB routine. InsertXB adds the record to
  38. the data file, builds all 12 keys and inserts each into the appropriate index
  39. file. If an error occured, say, while inserting the 11th key, BULLET
  40. automatically backs-out all changes just made to the key files and data file. As
  41. another example, say, updating an exisiting data record, you'd make any
  42. modifications to the data record and call the UpdateXB routine. UpdateXB updates
  43. the record in the data file and automatically updates all 12 index files. If an
  44. error occured, say, with the 5th key, BULLET automatically backs-out all changes
  45. made to the key files and data file.  In addition, transaction-based network
  46. routines are available. These high-level lock/unlock routines also automatically
  47. handle the necessary reloading and flushing of file headers. And what  about
  48. performance? Read on.
  49.  
  50. * BULLET has been tested and used successfully under QuickBASIC 4.5, BASIC 7.1
  51.   (w/QBX), Turbo C 2.0, and QuickC 2.50.
  52.  
  53.  
  54. BULLET is fast! The ReindexXB routine indexes your DBF data files in no time
  55. flat: that 100,000 record .DBF can be completely reindexed in under 30 seconds
  56. on a fast computer system. The InsertXB routine can add 1,000 new records and
  57. keys to that 100,000 record database at a rate of over 50 new inserts per
  58. second. This isn't inserting into an empty database, it's inserting into a
  59. database that's already 100,000 records large. UpdateXB can update
  60. 1,000 records in that database at a rate of 20 updates/second. And what about
  61. access speed? How fast can you get to your data once it's in the database? Real
  62. fast! To access from first key to last all 100,000 keys takes less than
  63. 25 seconds (4500+/sec). That shows how fast you can find keys. To access the
  64. keys and also access each data record associated with that key takes a bit
  65. longer. Accessing all 100,000 keys and records takes just over a minute
  66. (1400+/sec). This is in-order access. Incredible. And if you wanted to access
  67. from the last key to the first (reverse-order), the times are just as fast.
  68. What do you get with the BULLET package?
  69.  
  70.  - The BULLET library module, 19K of code and static data space (small indeed)
  71.  - Sample programs in BASIC and C plus an interactive demo for browsing any DBF
  72.  - QuickBASIC .bi include and C .h header files
  73.  - Over 200K of documentation, source examples, and a tutorial, all online
  74.  - CZ, the 15K online, context-sensitive, hyper-text help manager
  75.  - Royalty-free use of BULLET in your programs
  76.  
  77. Routines by category:
  78.  
  79. SYSTEM: InitXB, ExitXB, AtExitXB, MemoryXB, BreakXB, BackupFileXB, StatHandleXB,
  80. GetExtErrorXB
  81.  
  82. MID-LEVEL RECORD/KEY ACCESS: CreateDXB, OpenDXB, CloseDXB, StatDXB, ReadDHXB,
  83. FlushDHXB, CopyDHXB, ZapDHXB, CreateKXB, OpenKXB, CloseKXB, StatKXB, ReadKHXB,
  84. FlushKHXB, CopyKHXB, ZapKHXB, GetDescriptorXB, GetRecordXB, AddRecordXB,
  85. UpdateRecordXB, DeleteRecordXB, UndeleteRecordXB, PackRecordsXB, FirstKeyXB,
  86. EqualKeyXB, NextKeyXB, PrevKeyXB, LastKeyXB, StoreKeyXB, DeleteKeyXB,
  87. BuildKeyXB, CurrentKeyXB
  88.  
  89. HIGH-LEVEL ACCESS: GetFirstXB, GetEqualXB, GetNextXB, GetPrevXB, GetLastXB,
  90. InsertXB, UpdateXB, ReindexXB
  91.  
  92. NETWORK: LockXB, UnlockXB, LockKeyXB, UnlockKeyXB, LockDataXB, UnlockDataXB,
  93. DriveRemoteXB, FileRemoteXB, SetRetriesXB
  94.  
  95. LOW-LEVEL DOS ACCESS: DeleteFileDOS, RenameFileDOS, CreateFileDOS,
  96. AccessFileDOS, OpenFileDOS, SeekFileDOS, ReadFileDOS, ExpandFileDOS,
  97. WriteFileDOS, CloseFileDOS, MakeDirDOS
  98.