Btrieve®

Autumn 1995 Developer’s Journal Vol. III No. 3

THE INDEPENDENT SOURCE OF NEWS AND INFORMATION ABOUT AND SCALABLE SQL Released — BTI Announces Support Plans for New OS files on the network. WINSTART.BAT Market Reaction Causes BTI to Repspond Quickly (the recommended location for invoking Redmond, Washington — August 24, snail’s pace, as thousands of new users BREQUEST) runs before Windows 95 1995 — released the long- called for help. A similar situation on the establishes its network connections, and awaited and oft-postponed Windows 95. telephone support lines resulted in busy consequently the requester fails. According to Microsoft, Windows 95 signals for many callers as an alternative Reconfiguring to use DOS- took only four days to reach the million- to spending long periods on hold. style 16-bit IPX/NETX network drivers copy sales mark. This compares to the At this writing no specific Btrieve instead of the built-in 32-bit drivers of previous record (held by MS-DOS Client Engine for Windows 95 was Windows 95, together with installation of version 6.0) of 40 days, and the 60 days available to the public, and user those drivers from WINSTART.BAT, required by Windows 3.1 to reach the experience with Btrieve on Windows 95 appeared to provide a temporary solution, same sales figure. has been mixed. Some developers found but not all sites were willing to make such The high sales volume seriously that applications using the 16-bit Btrieve changes. affected Microsoft’s product support, for Windows Client Engines or the BTI wasted no time in announcing despite an unprecedented level of Btrieve for NetWare 6.15 Server Engine Btrieve for Windows 95 (see the related preparedness and the greatly improved with its DLL-only requester appeared to on page 19), but not all developers are installation and trouble-shooting work flawlessly. eager to join the rush. “I know that we capabilities built into Windows 95. The Users who had not yet upgraded to will not be supporting our application on special Windows 95 support area the 6.15 version of Btrieve for NetWare Windows 95 for at least two months after established on CompuServe slowed to a found it more difficult to access Btrieve See Windows 95 on page 10... IN THIS ISSUE Hands-on-Review Smithware takes you on a tour of their new entry into the Btrieve reporting arena with Crystal Reports for Btrieve...... Page 12 BTI Technical Corner BTI talks about their upcoming Developer Conference, Windows NT and Windows 95 Q&A, their new Information Management Network strategy, Technical Insights on all BTI products...... 17 Inside Btrieve Doug Reilly opens the Btrieve for DOS Developer’s Kit to see what’s inside...... 25 Book Reviews In “Everything I Needed to Know I Learned in Btrieve Books,” Scott Smith reviews The Illustrated Guide to NetWare Btrieve and Btrieve Complete...... 28 Building Btrieve Steve Mook explores the development challenges faced by developers who move from 16 to 32-bit Btrieve...... 31

Plus Btrieve Applied by Solomon Software and Empire Studio complete news about the world of Btrieve! Smithware Crystal Reports for Btrieve, the “Complete Btrieve Data to Information Tool.” See page 12 for a Complete Demonstration of this Btrieve Reporting Solution. Btrieve Developer’s Journal From the Cockpit... Autumn 1995: Volume III, Issue 3 In our continuing attempt to Staff improve our coverage of the many Btrieve-related products that are on the Publisher: Scott Smith Editor: Steve Mook market, I am happy to announce that News Editor: Jim Kyle Jim Barber, Data Processing Manager Product Analysis Editor: Jim Barber for Crystal Linen, has joined our Contributors: Doug Reilly, Jon Saunders editorial staff in the role of Product Technical Corner: Linda Anderson, Doris Eldridge, Sharon Kimball, Diane Klinetob, Analysis Editor. Jim’s experience with Cathy Martin, Brett McAnally, Rudy various Btrieve-related products (and McNeese, Chris Ojeda, Jose Pruneda, Jim Bruce Gallassero the fact that he rights good) makes him Sneary, Laruie Wisbrun Publisher Scott Smith climbs back out of the perfect for this new post. In our Corporate Aircraft, happy to be alive! Graphic Design: Arthur Austin attempt towards making Btrieve Photographers: Empire Studio, Bruce Gallassero Developer’s Journal an advocate for the Btrieve developer and user, we are Illustrators: Will Owen, Albrecht Dürer excited that Jim has joined us in this role. Circulation Manager: Cindi Gourley In fact, I want to put out a similar invitation to you in this column. If you Administrative Assistant: Diane Kugel feel as though you have something to say, and you feel as though you can put Subscruption Sales: Kim Finnell Inspiration: Piper Archer those statements in writing, we would like to hear from you. Steve and I are working week-to-week to find more contributors to BDJ so we can help it fulfill Subscriptions its potential. Annual subscriptions are for four issues per In order to do that, we need your help. If you are interested in contributing to year at $49/year for delivery inside the BDJ in any way, download the file WRITEBDJ.DOC from the 3rd Party Vendors United States and Canada, and $79/year for section of the BTRIEVE forum. This document has the details of what we are delivery outside the United States. really looking for in terms of content and focus over the coming year. Back Issues: Back issues are available for On another note, we are very excited to announce a new opportunity for $20.00 per issue. Contact Cindi Gourley at (615) 386-3100 for additional information. subscribers of Btrieve Developer’s Journal. This past month, we signed agreements with Addison-Wessley and Golden West, publishers of Btrieve Advertising Complete and The Illustrated Guide to For information about advertising your product NetWare Btrieve, allowing us to offer or service in Btrieve Developer's Journal, call each book to our readership at a Carolyn Lighty, Advertising Manager, at (800) reduced price. With a paid new 685-2403 or (201) 712-0044. subscription or subscription renewal to How to Contact BDJ BDJ, you can purchase each book for a Btrieve Developer's Journal great price: just $24.95 per copy, 2416 Hillsboro Road, Suite 201 $15.00 off the $39.95 suggested retail price. Nashville, Tennessee 37212 Telephone: (615) 386-3100 Contents... Facsimile: (615) 386-3135 CompuServe: 73173,2731 BTI Announces Support Plans Smithware Crystal Reports Internet: [email protected] for 32-bit Windows This hands-on-review demonstrates Btrieve Developer’s Jounral (ISSN 1071-7463) is Platforms Smithware’s new “Btrieve Data to published quarterly by Smithware, Inc. 2416 Hillsboro Rd., Ste. 201, Nashville, TN, 37212-5318. With the rapid market acceptance of Information Tool”...... 12 Subscriptions are $49 per year for delivery in the US Windows 95, BTI responds with and Canada, $79 per year for international BTI Technical Corner subscriptions. Application to mail at Second-Class Btrieve for Windows 95...... 1 Find out what’s new in the world of rates is pending at Nashville, TN. Btrieve News Btrieve and Scalable SQL from a Postmaster Btrieve support packages for Delphi, technical point of view...... 17 trends in accounting, Built-on-Btrieve Send address changes to: Btrieve Developer’s Journal, Inside the DOS Btrieve Box 2416 Hillsboro Rd., Ste. 201, Nashville, TN, 37212- campaign, new versions of Magic, Doug Reilley follows the trail of DOS 5318 DDF Builder and RaSQL/B, BTI Btrieve from the “Blue” and “Red” box Copyright 1995 by Smithware, Inc. All rights reserved. launches Web site, BTI secures With the exception of the “Technical Corner” section, this days to the present “Green” box...... 25 publication is produced independently of Btrieve capital, Snow releases report writer, Technologies, Inc. No part of this publication may be reproduced in any form by and unified 32-bit Btrieve engine goes Book Review any means without permission in writing from the publisher. into beta testing...... 4, 6, 10, 36 The Illustrated Guide to NetWare Smithware is a trademark of Smithware, Inc. Btrieve and XQL are registered trademarks and Scalable SQL, Btrieve and Btrieve Complete...... 28 Xtrieve Plus, and Microkernel Engine are Product Analsysis trademarks of Btrieve Technologies, Inc.All other names are 32-Bit Btrieve the trademark of their respective manufacturers. BSafe file integrity manager and Titan for Delphi...... 8 How to develop 32-bit Btrieve apps...... 31 Autumn 1995 Btrieve Developer's Journal 2 Summit National AmiSys Introduces at the same time while creating an Group Releases Second application. TITAN for Delphi Summit National’s Aaron Symanski, Version of Components talking with BDJ shortly after official Concord, California – A product name release of the package, said “We’re change and a new version release for the for Delphi quite pleased with its reception.” He former Apollo interface between Delphi Chicago, Illinois – Version 2 of Summit verified that all components function and Btrieve have been announced by National Group’s Btrieve Components for correctly under Windows 95. The AmiSys Incorporated, publishers of the Delphi significantly strengthens the toolset complete package is priced at $395. package. Now known as Titan, version available to users of Borland’s Delphi Summit National Group has created 1.2 of the interface is currently shipping. system, according to Bruce W. McDougal, software systems for the financial Bill Stanton of AmiSys explained that the Summit National’s president. “Btrieve industry since 1983, using Btrieve new release cleans up the master-detail users can now directly access their exclusively. The Btrieve Components relationships and adds many additional information with all the power inherent in were developed originally for in-house tables. Btrieve,” he said in announcing the use, and released as a product in Plans for distributing source code to September 11 release. response to developer demand. Unlike the package are being set up, Stanton New features of the package include a some other Delphi interface packages said, and may be in place by the time this repository that makes available all that simply replace Borland’s BDE news item goes to press. necessary record layout information and database engine, the Components Titan replaces the Borland Database can either be read from existing DDF files implement the standard Btrieve Engine with a compatible interface that or developed by hand. The repository can navigational model within the Delphi directly accesses Btrieve. Future plans be edited to restrict the information to only idiom and still allow use of BDE if include improved compatibility with the that required by an application. The desired. BDE. AmiSys is located at 1390 Willow component set now allows variable length Summit National Group can be Pass Road, Suite 930, Concord, CA records, and added events permit direct reached at (800) 621-9531, by fax at 94520-6253. Their voice phone is (510) control of Btrieve’s data buffer. With this (312) 944-8346, or via E-mail at 671-2103, fax (510) 671-2104, and package the developer can run and design [email protected]. ² Email [email protected]

Btrieve Save Developer’s Journal 2416 Hillsboro Road, Suite 201 $30 Nashville, Tennessee 37212 Phone: 615.386.3100 Fax: 615.386.3135 Please send me a one-year, four-issue subscription to Btrieve Developer's Joural Start Your Subscription or Renew Today ($49 for delivery within the US & Canada, $79 elsewhere). I am: and Get Special Subscriber Discounts! 0 A new subscriber 0 Renewing my subscription for an another year (4 more issues) Take advantage of special subscriber discounts on Btrieve 0 Please send me Btrieve Complete for only $24.95 Complete and The Illustrated Guide to NetWare Btrieve. 0 Please send me The Illustrated Guide to NetWare Btrieve for only $24.95 These two great reference books should be part of every Btrieve and Scalable SQL developer's library. They contain Name a wealth of up-to-date information, including tips for Address understanding, configuring, and programming the Btrieve record manager. For a limited time, you can save up to $30 when you begin or renew your subscription to Btrieve Developer's Journal. Both books retail for $39.95, but, with your paid subscription to BDJ, get either book for $24.95, Please charge my: 0 Visa 0 MasterCard 0 American Express a $15 savings off the cover price. Buy both, and save $30! Card # Expires Offer good only in conjunction with new subscriptions and renewals. Book will be Signature shipped when payment is received. Limit one copy of each book per subscriber.

3 Btrieve Developer's Journal Autumn 1995 BTI Makes Single-User Accounting News “Built on Btrieve” Engines Campaign Begins CYMA Introduces Modular Available Accounting Tempe, Arizona — The first two modules of a Austin, Texas — In response to requests from Austin, Texas — An aggressive new Btrieve-based accounting product for users and developers who need only a few advertising campaign, intended to build Windows were released by CYMA Systems this copies of the workstation engines, BTI is now awareness and acceptance of Btrieve and summer. The complete suite of integrated Windows accounting products, known shipping single-user versions of the Btrieve SSQL among key industry decision collectively as CYMAIV/Accounting for engine for DOS, Windows, and OS/2. makers, got under way this summer with Windows, will feature consistency of the user BTI part numbers are 10-130118-01 for full-page ads in Computer World, interface to improve quality and reduce training the DOS engine, 10-130218-01 for the Network World, and LAN Times that requirements. “Our release strategy is straightforward,” Windows engine, and 10-130318-01 for the featured the Arctco story. explained Cheryl Lasek, director of marketing OS/2 engine. No similar product for One of the most serious issues raised at CYMA. “We will release the product in a Windows NT or Windows 95 has yet been by developers at the 1994 BTI Summit phased module-at-a-time manner. A staged announced. List price for the single-engine conference in Austin was how to release lowers the economic barriers of moving into Windows. Compatibility between our DOS packages are $149 per copy regardless of overcome a general lack of and Windows products encourages gradual platform. comprehension by upper management adoption. This allows acclimatization for users, BTI emphasizes that, while the single- about Btrieve and its importance. The dealers, and CYMA.” user engines include all technical features of “Built On Btrieve” campaign is a highly Modules released initially include System Manager and Accounts Payable. Still under the unlimited use Client Engine packages, the visible response by BTI to that problem. development are General Ledger, Accounts license applies only to the Btrieve engine. “One of our major goals,” said Bo Receivable, Sales Order Entry, Inventory, Users planning to run a client/server Holland, BTI’s director of product Payroll, Job Control, and Report Writer. Each application in single-user mode away from marketing, “has been to define our module features on-line help, integration with the other modules, system security and user their original network installation of the company’s market position and build the application must verify whether such use is tracking. The system supports both cash and See Built on Btrieve on page 36... accrual based accounting techniques. permitted by the application license itself. ² Suggested retail price of each module ranges from $795 to $1095, with System Manager priced from $295 to $1145 depending was demonstrated at the conference, and upon the number of concurrent users. Solomon CYMA sells and supports its software is functionally similar to the Scalable products through a nationwide network of Developer Conference SQL release which Solomon is currently certified dealers, resellers, and CPA partners, shipping. Solomon and Microsoft with additional support available through NEW EDITIONS OF SOLOMON IV FOR representatives, responding to questions CYMA’s staff. Offices are at 2330 West INDOWS NTRODUCED University Drive, Suite 7, Tempe AZ 85281. W NT I about which version to recommend to Voice telephone is (602) 303-2962 and the fax customers, suggested that the SQL number is (602) 303-2969. Detroit, Michigan — Solomon Software Server edition would be appropriate to held their annual Developer Conference customers who required the vaguely- Solomon IV for Windows August 16-19, bringing together defined “additional functionality” the Wins 1995 Editors’ Choice consultants, developers and resellers of product provided. Graveyard-shift Award Solomon’s accounting software products television personality Susan Powter also Findlay, Ohio — Solomon IV for Windows from across the United States and Canada attended, but made no request that the accounting software has won the prestigious as well as a number of other countries. insanity be stopped. (Ed note: Ms Powter 1995 Editors’ Choice/Price Waterhouse Award for Multi-User Accounting. Much of the conference focused on limited her participation to accosting “This recognition legitimizes the approach Solomon IV, Solomon's multi-user strangers in the hallways and elevators. we have taken with Solomon IV for Windows,” Windows-based accounting packaged We don't think she was invited.) said Gary Harpst, president and chairman of developed using Visual Basic and Among the software vendors Solomon Software. Regarding Solomon IV SQL database capabilities, PC Magazine commented Scalable SQL. represented at the conference were BTI, that “Solomon IV uses BTI's Scalable SQL Solomon IV for Windows NT will be Intersolv, Microsoft, and Smithware. database and does a good job of exploiting its the first commercially available product Solomon hosts the conference each year power. Using standard SQL statements to to incorporate a special OEM version of to keep their resellers and developers access data, Solomon IV can push more of the database processing onto the server, thereby Btrieve Technologies Scalable SQL for informed regarding the Solomon products reducing network traffic.” Windows NT Server. BTI Road Warrior and third-party tools for creating Solomon IV for Windows is sold and Gary Vander Stoep presented a seminar customized accounting solutions.² installed exclusively through a network of on plans for Scalable SQL version 4.0, authorized resellers and consultants worldwide. For more information about Solomon Software, which is currently scheduled for release call 1-800-4-SOLOMON, or 419-424-0422, early next year. email [email protected]. Solomon Software’s Solomon IV will also be available in home page URL on the World Wide Web is a Microsoft SQL Server release for http://www.solomon.com/ Windows NT. This SQL Server version

4 Btrieve Developer's Journal Autumn 1995 Installation Installing Bsafe is a snap. The installation dialogues specify default installation directories, but allow you to change them if you wish. After installation, about the only other preparatory step is to “load” the provided NLM (Netware Loadable Module) from your Netware server’s console.

Operation Bsafe is actually composed of two pieces: one, a Windows “front end” program that is used to select files and set up schedules, and two, a Netware NLM module that is loaded on the server. After it initially loaded, the NLM by Jim Barber, Crystal Linen, Inc. component of the product can be ignored, unless of course Email: [email protected] you want to monitor what it is doing with BTRMON.NLM. The “front-end” program has two distinct modes of operation: File Set Mode, and Configuration Mode. File Set BSafe Version 2 by Mode allows you to specify directories and build file sets, then save those file sets to disk. Configuration Mode is used Mesa Business Solutions to specify the day and time a given file set will be processed. Both modes use the familiar Windows “drag-and- If I were asked to list the ten most-overlooked features in drop” method. You can switch the program’s modes easily average Btrieve program suites, the lack of an easy-to-manage by clicking the “switch” button at the top of the program’s file compaction utility would certainly make it into the top five. window. Deleted records stack up quickly in most systems, and their only A typical session with the program would involve first contribution is to cause a steady increase in the size of your creating a list of files to be processed, then either starting Btrieve files! If you have packages from different vendors, the immediately (by dropping the list on the Queue box), or problem is compounded, because even if vendors ‘A’ and ‘B’ specifying a particular day of the week and time for them to provide compaction utilities, then you must run both. This is be processed. where Bsafe comes in. Note that once an operation is scheduled, the “front- According to Mesa’s advertising material, “Bsafe is a end” program is not needed . The NLM ‘part’ of the product Btrieve file integrity manager that checks Btrieve files and operates independently. reduces their size by exporting/importing records”. After Being the nasty sort of guy I am, I presented the review, I would probably rephrase it to read “Bsafe is a batch- program with a couple of typical situations that might come oriented, scheduled, Btrieve file compaction utility that will up in “real-world” use, primarily involving file contention. check the integrity of your files, and log any problems it finds.” Bsafe never failed, or caused my server to “abend”.

Bsafe Version 2 from Mesa TITAN for Delphi, from Business Solutions compresses AmiSys, Inc., replaces Delphi's and checks the integrity of IDAPI file manager with a Btrieve data files. native Btrieve interface.

5 Btrieve Developer's Journal Autumn 1995 Jim Says: didn’t even have to miss my Star Trek re-run! As the manual states, the only component I found that didn’t work with TITAN The only gripe I have with this product is rather minor. was the Tquery component. Writing an SQL parser is a Since the makes use of “iconized” buttons, I had formidable task; Rumor Central has it that AmiSys is working on to refer to the documentation often when running the front-end it even as you read this. program. A small label at the bottom of the window that would Inside Delphi, you use TITAN by selecting any of the explain the function of a button when the mouse cursor was over supported Delphi components from the toolbar, and dropping it on it would be a distinct plus. On the other hand, with a little a form. Since the INI file already has the path to your DDF files, practice, it would not be a big issue. A little further down the Btrieve tables show up in the properties sheet for the component. road, I would like to see a “workstation” version of the After selecting the table, index, etc., (depending on the program, as well as a version that could operate as an installable component) you can set the ‘Active’ property to True and see the service on a Windows NT Btrieve server. results, even before compiling. Bsafe is a reliable, easy-to-use file compaction utility that supports both immediate and scheduled operation on Btrieve Jim Says: NLM servers.² Before we finish up, you need to be aware of a potential ‘gotcha’ with this product. Because TITAN replaces the IDAPI, Product: BSafe Version 2 the only database work you are going to do is with Btrieve. If you Company: Mesa Business Solutions don’t need access to dBASE, Paradox, or other database formats, Address: 27405 Puerta Real #160 then this isn’t going to be a problem. Aside from that, another Mission Viejo, CA 92691 feature I would like to see added to the product would be an Phone: 714-582-3086 Fax: 714-348-0568 additional property to ‘tell’ TITAN whether to use it’s own INI Price: $395 file (which it does now) or, optionally, the application’s INI file. That’s just a personal thing with me; you know, non-proliferation and all that. If you don’t have a Btrieve DDF (Data Dictionary File) tool, be advised that you will need one. You can purchase one from a number of sources; Smithware and Classic Software are two that come to mind. DDF files are a necessary evil for database TITAN by AmiSys programming of this type, whether it be Delphi, or MS Access. TITAN is a fast, stable, add-on product that works well with Delphi: Nice environment, fast compiler, great tools, no Delphi’s built-in database components. If you are a Btrieve-only Btrieve. (Well, discounting ODBC, anyway) Not a pretty picture. developer and need quick results with Delphi, give it a shake.² Rising to the challenge, AmiSys provided us with an evaluation copy of TITAN, which is a ‘drop-in’ replacement for the Borland Product: TITAN for Delphi DataBase Engine, or IDAPI. Company: AmiSys Incorporated Address: 1390 Willow Pass Road, Suite 930 Installation Concord, CA 94520-5253 Installation went smoothly, with only one (minor) quirk. Phone: 510-671-2103 Fax: 510-671-2104 The manual states that your original COMPLIB.DCL (component Price: $295 Runtime License, $495 Source Code library) will be backed up to the SAVEBDE subdirectory. No soap. So, although the original compiled units are backed up, I would recommend copying (under the \delphi\bin directory) COMPLIB.DCL to something, say COMPLIB.OLD. That way, if Murphy points his bony finger at you, you can smile blithely, and copy it back again. We're happy to welcome Jim Barber, who takes over the On the ‘plus’ side, TITAN’s installation program did not muckraking and mudslinging in our Product Analysis attempt to do any ‘tweaking’ of my Btrieve configuration, an section this issue. Jim's impeccable qualifications include omission for which I am deeply grateful.. at least a little Btrieve programming, and his previous journalistic endeavors have involved “collaboration on a Operation few boring and obscure technical papers, product manuals, and largely anonymous contributions to public Since TITAN replaces the IDAPI, it is obviously intended to media when I had an ax to grind.” When he isn't work with Delphi’s data aware components, and yes, it does just spending quality time with his wife and four children, that. In thirty minutes time, (with no prior experience with the Jim's hobbies include MIDI music, Amateur Radio product) I was able to build a complete Btrieve file-browser! To (N7CXI), and caring for his venerable old 450SEL, reinforce the significance of this, it took me roughly two days of which, he says, “has lasted longer than many Eastern work to duplicate this effort in Visual Basic, calling WBTRCALL European countries.” directly. I now have a fast, professional-looking browser, and I

Autumn 1995 Btrieve Developer's Journal 6 Computer Accounting Solutions Windows Magic TAS to VB Converter Released Other News... Irvine, California – With the release of Redlands, California — A program to BTI Launches World- Magic Version 6, Magic Software convert TAS 3.0 Source EDT code into Enterprises eliminated what had Visual Basic code is now available from Wide-Web Site previously been a major weakness of their Computer Accounting Solutions. The Austin, Texas – BTI’s new Web site is product: absence of a native Windows TAS2VB program also reads your TAS now on-line at http://www.btrieve. version. The new version adds a Screens and converts them to VB style com. Windows forms editor to Magic, which Forms. When generating code the According to Laurie Wisbrun, has been recognized as one of the fastest program can write lookup tables, default Web Master at BTI, this is only phase development tools on the market. function keys, buttons and all other 1 of BTI’s planned Web presence. In addition to the new forms editor, controls. Look for more in the near future. The Magic Version 6 includes a new color While the output still requires some site is optimized for Web access with table that allows users to create their own manual correction, Computer Accounting Navigator. color schemes, and provides a migration Solutions reports that their tests indicate it path for upgrading of applications from should save about 20 hours of BTI Secures $4 previous versions. Windows WinHelp programming for each TAS program capability now augments, but does not converted. Specifically, the average Million in Venture replace, Magic’s proprietary online help program in their tests took 20 to 25 hours Capital capabilities. Dynamic Data Exchange of programming without the converter, capabilities enable an application written but only 1 hour to complete when using Austin, Texas – BTI announced that it using Magic Version 6 to communicate the converter. has raised over $4 million from three with other Windows applications that The converter package includes venture capital firms to fuel its support DDE. programs to convert data and build DDF expansion. The financing was lead by First marketed in 1986 as a files from TAS dictionaries, and also has Austin Ventures, and includes Applied revolutionary approach to application bundled with it Controls for Btrieve and Technology and Triad Ventures. development, Magic has been built on DDF Builder for Windows, both from In March, BTI announced the Btrieve almost from the start. While the Smithware. Price for the complete establishment of its Japanese product now optionally supports other package is $999.00. Computer subsidiary, Btrieve Technologies Japan Ltd., as a joint venture with several database managers, Btrieve remains its Accounting Solutions can be reached by companies including Japan, Ltd. foundation. At the rollout of Magic mail at 555 Cajon Street Suite # C, Novell, Inc. remains a minority Version 6, BTI president Ron Harris Redlands, California 92373. Voice investor in BTI. With almost half of its explained the current capabilities and telephones are (800)358-4222 and total revenues generated internation- future plans for Btrieve to Magic User (909)335-1205. Their fax number is ally, BTI officials indicated that the Conference attendees to Magic User (909)793-6974, and the E-mail address is financing would provide the necessary Conference attendees. dba [email protected]² working capital to build marketing and A “Technology Audit” prepared by sales activities in Europe, Asia, and the Butler Group (a UK consulting firm) Developer Conference Rescheduled Latin America. that fully describes features of the latest Austin, Texas — The 1995 Btrieve “BTI participates in a large version is available upon request from Technologies Developers Conference, growing market, has an experienced Magic Software Enterprises Inc., 1200 originally scheduled for October 23- management team and a substantial Main Street, Irvine, CA 92714. Voice 25 in Austin, has been rescheduled market position,” said Joseph Arogona, phone is (714) 250-1718 and the fax for January 15-17, 1996. See the general partner with Austin Ventures number is (714) 250-7404. ² related story on page 17. and new member of BTI’s board. “The company’s plan is to build a very large Related articles in this issue include client/server database software Windows 95 ...Continued from page 1 company,” said Arogona. more information related to the “This successful financing is introduction of Windows 95. On page 19 its release,” observed Bill Bach. “We further validation of our strategy and simply don’t have the staffing to devote to in their Technical Corner section, BTI direction. Moreover, it clearly setting it up and working out any bugs discusses the new 32-bit Windows Btrieve demonstrates the market’s belief in the which may occur.” Developer’s Kit and Engine which is future potential of our company,” said In addition to the CompuServe forum scheduled for release sometime during the Ron Harris, president and CEO of and standard telephone support lines, month of October. Also, Steve Mook Btrieve Technologies, Inc. “The capital Microsoft provides a FastTips service at looks into the transition from 16-bit raised will assist in our drive to become (800) 936-4200. Daily updates are also development to 32-bit development in the recognized leader in delivering available through the world-wide-web at “Going from Two Bytes to Four Bytes high-performance database engines http://www.windows.microsoft.com in Without Getting Bit” beginning on page embedded in commercial applications the What’s New area. 31.² throughout the world,” said Harris.

7 Btrieve Developer's Journal Autumn 1995 for Btrieve, is compatible with Microsoft's New Smithware Windows 95 . It adds the Communication Horizons capability to print multiple table definitions, to import or export Btrieve data in delimited text RaSQL/B Updates Available Products Ship format, and to export DDF table definitions to Btrieve 6 for FoxPro, Clipper Company Reports Record Sales with C structures, Basic TYPE variables, and the Release of Smithware Crystal Scalable SQL CREATE TABLE scripts. A new Stamford, Connecticut — The popular RaSQL/B Btrieve libraries, one for Reports for Btrieve, DDF Builder 2.5 data grid accessible from the table design screen simplifies the task of defining field FoxPro and the other for Clipper, now and DDF Sniffer structures, especially when used in conjunc- support Btrieve version 6. The tion with DDF Sniffer results. upgrades also provide Btrieve for Nashville, Tennessee – Smithware, Inc. has Additional information is available from Windows support to both platforms, introduced several new packages during the the Smithware FAX-On-Demand system at according to Neil Weicher, president of summer and early fall months. These include (615) 386-3139. Document numbers are: 21 Communication Horizons. Smithware Crystal Reports for Btrieve and for Smithware Crystal Reports for Btrieve, 23 In both libraries, Btrieve access is DDF Sniffer. Version 2.5 of DDF Builder for for Smithware High-performance Btrieve direct as opposed to access through Windows, with an updated design and new Drivers for Crystal Reports, and 24 for ODBC. This eliminates ODBC features compatible with Microsoft's Win- Crystal Reports features. overhead and takes advantage of dows 95 operating system, is also available. Contact Smithware at (800) 828-7438 or Btrieve performance features. Both Smithware Crystal Reports for Btrieve (615) 386-3100, FAX: (615) 386-3135, libraries support variant record combines the latest versions of Smithware's Email: [email protected] or structures, and both provide client/ database maintenance tools, DDF Builder and CompuServe: 75470,546. ² server record filtering using Btrieve DDF Sniffer, and Crystal Reports 4.0 with extended operations. Smithware’s new High-performance Btrieve Additions specific to the FoxPro Drivers for Crystal Reports, to produce a Snow Releases Second library include support for Windows package the company describes as the (the FoxPro library previously complete data-to-information tool for Btrieve. Generation Windows supported only DOS), and use of “This package is really what a version of special overlaid PLB technology to Xtrieve for Windows should look like,” said Report Writer reduce the memory requirement of the Smithware president Scott Smith, “it includes DOS version by 30 percent. everything you need to access Btrieve data Clearwater, Florida — Snow Software is Clipper-specific enhancements files. It combines Smithware's Btrieve shipping a second-generation Windows include DOS-Extended operation, and database technology with Crystal's unmatched product, Snow Report Writer for Windows support for Clip4Win or reporting capabilities.” Windows. Snow Report Writer supports FiveWin. “The Crystal Reports package is meeting most SQL database products and also a RaSQL/B can use, but does not a very real need in the market for a fast, number of PC . These include require, DDF files. The product is complete, and easy to use Btrieve reporting Btrieve, xBase, Paradox, and COBOL. designed to be immediately intelligible solution,” said Steve Mook, Smithware vice- “While first generation products to an experienced xBase user. “This president. “Our business has increased were about sizzle,” said Scott Snow, allows the many of us who have SQL- substantially (since the product began “second generation products are all about phobia to take advantage of client/ shipping).” the steak.” Snow Report Writer for server technology while continuing to Smithware Crystal Reports for Btrieve Windows is based on the word processor use the commands and functions we are has a suggested retail price of $495.95, but is metaphor. Features include the ability to used to,” explained Weicher. available from Smithware at a special route an entire report, regardless of its The libraries are available direct introductory price of $395.95 through the end size, to a window, and to scroll through from Communication Horizons at 65 of 1995. as if it were a word processor document. High Ridge Road, Suite 428, Stamford, DDF Sniffer, an add-on to Smithware’s Snow has been developing GUI CT 06905, or from the primary popular DDF Builder, automatically parses report writing products since 1990, distributor, The Zac Catalogs. List the field structure of Btrieve data files. DDF starting with the Macintosh platform. price for either version is $299, and Sniffer results can be imported into DDF Their current product family includes current users may upgrade for $129. Builder to create a data dictionary for the packages for OS/2, MS-DOS, LAN use, To contact Zac, call (800) 254-7737 or files, allowing them to be accessed with , AIX, and VAX, in addition to (617) 551-0860, or fax them at (617) applications such as Microsoft Access, Visual Windows and Macintosh. 551-0857. FaxBack information is Basic, Crystal Reports, Borland Delphi, and Pricing for Snow Report Writer for available from (617) 551-0020; product others. DDF Sniffer is available at a suggested Windows starts at $299. Dealer inquiries codes are 1600 for the Clipper library, retail price of $199. are welcome. Contact Snow Software and 1598 for the FoxPro product. DDF Builder version 2.50, released Distributing at 2360 Congress Ave., Communication Horizons may be concurrently with Smithware Crystal Reports Clearwater, FL 34623. The voice phone reached at the following numbers: number is (813) 784-8899 and the fax (203) 324-2323 for voice, and (203) number is (813) 787-1904. 324-0448 for fax.² Autumn 1995 Btrieve Developer's Journal 8 product includes Smithware’s Btrieve database definition tools, DDF Builder and DDF Sniffer, the Btrieve 6 client engine and utilities, the optimized high-performance Btrieve report engine drivers combined with Crystal Reports 4.0 to provide a complete, easy-to-use solution for reporting on Btrieve data. The package is the one, complete source for everything that a user needs to build complex reports on Btrieve data. In this article we’ll present examples of how to use Smithware Crystal Reports for Btrieve to make the best use of data stored in your Btrieve files. First we will create a sales report from existing Btrieve data, and then we will see how Crystal Reports can present that data in the most informative way through the use of Crystal Reports’s Smithware Crystal advanced report designer features.

Reports for Btrieve Creating and Customizing a Sales Report Creating a quick sales report using Crystal Reports is USING SMITHWARE’S NEW REPORTING PACKAGE quite easy. The product includes a series of “Report Experts” that walk you through report creation. For our TO TURN DATA INTO INFORMATION example in this article, we are going to create a report on sales for a company grouped by states across the country. by Steve Mook and Scott Smith, Smithware, Inc. See “7 Easy Steps to a Complete Sales Report” on the next Email: [email protected] or [email protected] page to see how to generate the basic sales report.

Undoubtedly, sometime recently you have heard about a product called Crystal Reports. It has been bundled with so many successful commercial products on the market that the list would be far too long to print here. Most notably, Crystal Reports has long been shipping as the built-in reporting tool for Microsoft’s Visual Basic. Crystal Reports is now shipping with Visual Basic version 4 and also the new version of Visual C++. In fact, Crystal Reports is known in the industry as the “Number One Award Winning

Windows Reporting Tool” on the market. Crystal Reports ○○○○○○ was developed and is marketed by a unique software company in Canada, called Crystal, which is owned by Seagate (the hard disk drive company).

Like most reporting tools, Crystal Reports has always ○○○○○○○○○○○○○○○○○○○ ○○○○○○○ supported many different database formats, including Btrieve. But just like so many other report writers that access many different databases, Crystal’s Btrieve drivers Once the report is generated, the Crystal Report (they have always had native Btrieve drivers instead of Designer gives us a vast array of reporting options. By relying on ODBC for Btrieve access) were not truly hiding the detail portion of the report, we can quickly optimized for speed or compatibility. This is where convert our detail report into a summary report: Smithware came onto the scene.

Smithware has long been a leading force in the Btrieve ○○○○○○○○○○○ add-on market. The company’s DDF Builder has been used by thousand’s of Btrieve application users to define their Btrieve databases for many commercial products including Crystal Reports. In late 1994, Smithware, in partnership with Crystal, embarked on a mission to help improve the way Crystal Reports accessed Btrieve data. This work led to Smithware improving Crystal’s native Btrieve drivers so that Crystal’s “Drill-Down” facility allows you to zoom into they worked with almost any kind of Btrieve file and so that the underlying data that is presented on the report. For they worked with those files in the smartest and fastest way example, if we double-click on the line on the report for possible. California, we get the individual order headers that were The result of all of this labor was Smithware’s newest generated in CA: product called Smithware Crystal Reports for Btrieve. The 9 Btrieve Developer's Journal Autumn 1995 7 Easy Steps to a Complete Sales Report... Smithware Crystal Reports for Btrieve comes with “Smart Guides” that guide you through quick report configuration to produce complete results:

1. Select the Tables to be Used in the Report 2. Review Links Between Related Tables 3. Choose Which Fields to Print The goal is to print a sales report by state for Since all orders are linked to a particular The Fields screen allows us to select the fields our company. We will use one of the Crystal company, use Links screen to have Crystal link which will be printed on the report. For this Report Designer’s built-in “Smart Guides” to the “CUSTNUM” field from the order header sales report, we will print ORDERNUM, help design the report. The first step is to to the “CUSTOMER” field in the company DATE, and AMOUNT from the HEADER select the Btrieve tables that we will be using. table. With this link defined, whenever the table and CONAME and STATE from the For this report, we will use data from the report engine is looking at an order HEADER COMPANY table. We can also enter the COMPANY table and the order HEADER for a particular company, the correct company column headings that we want associated with table. The Tables screen steps us through the will be slected in the COMPANY table. each field on the report. selection of the correct tables.

4. Choose Fields to Sort and Group by. 5. Choose the Fields That Control Totaling. 6. Select the Correct Records for the Report Since our goal is to generate a report that Here we tell the report designer which fields If we were only interested in printing this shows our sales by state, we can use the Sort will control subtotal calculations. For the sales report for certain states, we could select to screen to group the report by the STATE field report by state, we choose the STATE field print just for those states using the Select from the COMPANY table.We can also select from the COMPANY table. When the STATE screen. This tab is especially useful when a the sort direction for the selected groups. field changes on the report, it will cause a report is being generated from a lot of data. subtotal line to be generated which is the sum Entering field selections here causes the report of the AMOUNT fields from the HEADER engine to enable client/server optimization table for the state. through the use of extended operations. Now that we have generated the report, all aspects of the report and data are at our disposal. One of the most powerful features of the Smithware Crystal Reports for Btrieve is its drill-down capability. While you are looking at the total of all sales in the state 7. Finally, give the Report Some Real Pizazz! of Arizona, you can You can choose from several pre-defined double-click on an order report styles to make your report look great! line and see the detail Every aspect of the report is at your control from that order. You from fonts and colors, to shading and graphics. can continue to work Now, after 7 easy steps... on-line with the data The Result: A complete State by State sales report in 7 easy steps! until the report fully meets your needs. This is one of the ways Crystal reassures the user of the accuracy of the underlying data.

necessary DLLs, EXEs, and configuration files you need Crystal allows you to alter the attributes of just about for report execution. any aspect of the information generated on the report Once a report is compiled and all necessary files have including fonts, colors, lines, and just about anything else been copied onto a target computer (this is easy with the “Report Distribution Expert”), the receiving party can execute the report which allows viewing on the screen and printing:

Since Crystal Reports is MAPI enabled, you can easily Email reports to various recipients. You can also export report data to one of many different formats including Excel and Lotus spreadsheets, and various others.

Smithware’s Improvements to Crystal Reports Smithware Crystal Reports for Btrieve includes a version of Crystal Reports that supports Btrieve, Scalable SQL, and all of the other non-Btrieve databases supported by Crystal Reports Standard Edition including DBase, Paradox, ASCII text, etc. The Smithware version also includes the Crystal Dictionary from the Professional version of Crystal. The major distinction that sets Smithware Crystal Reports apart from the version available from Crystal is performance. The new Smithware high-performance Btrieve drivers for Crystal enhance Crystal Reports from three you can imagine. distinct optimizations implemented in the report engine’s Adding bitmap images and special header lines was native Btrieve database drivers. First, the drivers take simple: advantage of indexes to limit the records retrieved to those which meet the record selection criteria of the report. Crystal also comes with a complete set of integrated Second, the drivers will take full advantage of Btrieve’s graphs that can add to the visual impact of a report: client/server capabilities whenever possible, off-loading most of the record selection processing to a Btrieve server Report Compilation and Distribution engine, and thereby reducing network traffic. And third, the drivers will cache only those parts of a particular record One of the best features of Crystal Reports is the ability which are necessary for the report being generated, to distribute the report to the people who need the reducing the amount of memory used by any given report. information. Once a report is defined properly, the report Smithware enhancements to the Crystal Reports Btrieve can be compiled into an EXE file. There is a “Report database report drivers also include support for extended Distribution Expert” that helps distribute all of the

11 Btrieve Developer's Journal Autumn 1995 data types. Btrieve data files defined with DDF Builder you to create a set of DDFs and to manually enter the which contain data in extended data type fields will display definitions of the tables that you wish to report on. correctly on reports generated with Crystal Reports. If you do not know about the structure of your Btrieve Extended data type fields are commonly found in Btrieve files, DDF Sniffer will automatically look at the data that a databases created by various COBOL-language applications, Btrieve file contains and come up with a likely field applications written in Borland’s Turbo Pascal and Visual definition for it. Basic, and rapid application development systems like The combination of DDF Builder and DDF Sniffer give Business Tools’ TAS Professional 3.0 and Magic Software’s you the tools you will need to access your data. Fortunately Magic. with Smithware Crystal Reports for Btrieve, there is no Smithware Crystal Reports also ships with the complete other option that you will need to purchase to get your Btrieve 6 client engine and all of the necessary Btrieve tools reports up and running, it’s all right there in the box. and utilities. Also, comprehensive printed documentation and on-line help is included to guide you through configuring Btrieve, defining your databases, and creating Planned Enhancements and distributing reports. Smithware Crystal Reports for Btrieve was designed to be complete, easy to use, and fast. Crystal is in the process of introducing a new version of Completeness means that if you have Btrieve data files, and Crystal Reports, version 4.5. This is a combination 16 and you want to use that data in reports, this package contains 32-bit version of the reporting system. As soon as 32-bit everything you need to do that. versions of the Btrieve DLLs are available for distribution, Smithware will introduce 32-bit database report drivers for Smithware’s Btrieve Maintenance Tools Crystal Reports. Smithware will also begin shipping² version 4.5 of Smithware Crystal Reports for Btrieve at that time. Our first step (of the seven steps we went through to SmithwareSmithware Crystal will continue Reports to for implement Btrieve improvements to build our sample sales report) was to choose the tables, theFull high-performancePackage: $495.95, Add-on drivers Pack suchfor users as who DDF-level already have variant Crystal HEADER and COMPANY, that we wanted to report on. We recordReports support4.x: $349.95, and High-Performancesupport for other Driver Pack:popular $229.95 Btrieve also were able to choose fields such as STATE and dictionaryContact Smithware: formats 800.828.7438/615.386.3100including Magic PC. Smithware will also AMOUNT from the two tables. The information about table introduceFAX: 615.386.3135 a set of Email:native [email protected] SSQL report engine CIS: drivers75470,546 by the and field names comes from a set of configuration files end of the year. called DDF files. DDF Builder is the application that allows Conclusion Smithware Crystal Reports is the premier reporting solution for Btrieve data. The package includes everything you need to build top-notch, eye-catching reports in Windows. After you use this system, you’ll see why Doug Woodward of BTI called it the, “Xtrieve for Windows we’ve always needed.”

Autumn 1995 Btrieve Developer's Journal 12 BTRIEVE TECHNOLOGIES TECHNICAL CORNER

AUTUMN 1995 SUPPLEMENT TO BTRIEVE DEVELOPER'S JOURNAL BTRIEVE D EVELOPER C ONFERENCE Q&A - WINDOWS NT

Due to space requirements and ex- interactive sessions. Sessions will include Btrieve for Windows NT Server panded content, Btrieve Technologies’ in-depth reviews and demonstrations of Edition is a 32-bit engine that runs as a Developer Conference has been resched- new product features, including replica- service on an NT Server. Applications can uled from October 23-25, 1995 to Janu- tion, scripting, triggers and stored proce- access this engine locally or remotely ary 15-17, 1996. This Conference has dures, nested transactions and ODBC, (client/server mode) via function calls to a been designed to provide a unique op- performance tuning presentations by - dynamic link library (DLL) or a DOS TSR. portunity to preview the future direction work partners Microsoft, Novell, and of BTI’s technologies and products, and Banyan, and case studies on the success- What is included in the Btrieve for to help forge their new directions. It ful implementation of Btrieve and Scal- Windows NT Server Edition? promises to be an important and informa- able SQL. Other sessions will present The Btrieve for Windows NT Server tive event for the Btrieve and Scalable overviews of BTI’s Solution Network and Edition contains the MicroKernel SQL community. new customer support programs, and Database Engine, requesters (DOS, This conference will focus on the panel presentations by BTI Information Windows, Windows for Workgroups, specific needs and concerns of Btrieve Management Network partners. Windows NT), communication modules, and Scalable SQL developers. Conference The conference will be held at the Monitor utility, BUTIL (32-bit Windows attendees will get a comprehensive pre- Stouffer Renaissance Hotel in Austin, NT utility) 16-bit roll forward utility and view of BTI’s new products and technol- Texas. Reservations must be made di- DOS based Brebuild utility and Btrieve ogy directions, information about BTI’s rectly with the Stouffer Renaissance Hotel Installation and Operation manual. strategies for designing the future of infor- at (512) 343-2626. Special conference mation management, and one-on-one in- rates have been negotiated for attendees. What do I need to run a Btrieve teraction with BTI’s senior development These rooms are limited and on a first application on my Windows NT server? engineers, leading commercial and in- come, first served basis. house developers, users, and resellers. In For further information on the confer- You must install and start Btrieve as a addition, there will be hands-on demon- ence or to register, please call (800) 580- service. To run in standalone mode, no strations of BTI’s new product technolo- 6715, or (512) 306-0422. communication module is required. For gies and informal product discussions. The conference agenda includes ses- 32-bit applications, WBTRV32.DLL must The keynote speakers include both sions specific to BTI’s Solution Network be in the search path. To run 16-bit industry visionaries and leading analysts. Program. Attendance at these sessions applications on an NT server, the Nancy Woodward, BTI’s co-founder and can be used to fulfill the Solution Net- WBTRCALL.DLL, WBTRTHNK.DLL, and Chairman, will speak on the “State of work Authorized Program (SNAP) train- WBTRV32.DLL are required. You must BTI.” Ron Harris, BTI's president and ing seminar required to become copy BTI.INI to the WINNT35 directory, CEO, will present “BTI’s Vision for the authorized. and set Thunk=Yes in the [Btrieve] Future.” Rob Tholemeier of the Meta Continued on next page... Group will discuss “Open Systems and Server Strategies,” and Cheryl Ball of the ALSO COMING UP... IN THIS ISSUE Business Research Group will present the latest results from the new syndicated cli- Btrieve Technologies Inc., will be Developers Conference...... 17 ent/server database market study. Doug exhibiting at the following industry trade Q&A: Btrieve for Windows NT...... 17 Woodward, BTI’s Chief Technology Of- shows: Btrieve for Windows 95/ NT...... 19 ficer, will give a “Technology Update” Database Client/Server World in Information Managment Network...... 20 presentation, and BTI’s Director of Mar- Chicago, Illinois, December 6th and 7th, New BTI Solutions Directory...... 20 keting, Bo Holland, will outline “New 1995, in the Novell partner booth. Product Directions.” Comdex in Las Vegas, Nevada, Technical Insights...... 21 The conference breakouts will bring November 13th through the 17th, 1995, Files Available on CompuServe...... 23 together small groups of participants in in the Microsoft partner booth. SNAP Seminar Schedule...... 24

Autumn 1995 Btrieve Developer's Journal 13 section. You can only run Windows 16- THNK, WBTRV32, and NTBTICOM Btrieve Server using the Windows NT bit and WIN32 based applications in DLL's are required. Modify BTI.INI to set requester. This may happen when the standalone mode. We have identified an Thunk=Yes in the [Btrieve] section. frame types are set for auto-detection (in issue relating to server performance with For DOS applications, you can load the , Network, and NWLink the access from the Btrieve for DOS BREQNT from a command prompt and IPX/SPX Compatible Transport). When requester to the engine on the local load NWIPXSPX.EXE in AUTOEXEC.NT this occurs, the NWLNKIPX Network Windows NT server. As a result, we are to target NetWare and Windows NT number is either set to a zero or non-zero not able to support this configuration at servers. You can also use BREQUEST to value; yet IPXROUTE CONFIG (an NT this time. We are working with Microsoft access a NetWare server. Install NWLink DOS utility) still shows the network to reach resolution. IPX/SPX Compatible transport and number as 00000000, even after To access the files on a different Microsoft Client Software for Windows restarting the system. Auto-detection may server (remote access), NTBTICOM.DLL NT from the control panel. play a role in this. is also required. The MicroKernel To avoid a status 91, set “NWLink IPX/ Database Engine must be running on the What do I need to run a Btrieve SPX Compatible Transport” frame type to target server. You must install NWLink application on my Windows for manual mode. (Select at least 2 so that IPX/SPX Compatible transport as network Workgroup workstation? the internal network number remains set). software from the control panel. Run Set the Internal Network Number to a BREQNT.EXE from a command prompt To target a Windows NT or NetWare unique non-zero value. Set the network to access remote files from a DOS server, WBTRCALL.DLL and number to non-zero in the REGISTRY. To application. Load VWIPXSPX.EXE from WBTICOMM.DLL must be in the search reach the network number, take the AUTOEXEC.NT for running DOS path. following path: applications via BREQNT. To run a Btrieve DOS application in HKEY_LOCAL_MACHINE\System\CurrentControlSet\ client/server mode and target a Windows How can I develop applications to run NT server from a Windows for Services\ NwlnklPX\NetConfig\ on Windows NT? Workgroups workstation, you must use \ NetworkNumber BREQNT.EXE. This requester requires a Note: IPXROUTE CONFIG, an NT utility The Btrieve for Windows NT or Win- full redirector in order to function run from a DOS box, displays the Internal dows 95 Developer Kit contains the correctly. A Windows for Workgroup Network Number (if set), as well as all MicroKernel Database Engine DOS box is a full redirector by default. other bound networks with associated (W32MKDE.EXE) which runs as an ex- network numbers and frame types. ecutable on the Windows NT, a 16-bit What do I need to run a Btrieve Set the Internal Network number to a (WBTRCALL.DLL) and a 32-bit application on my DOS workstation? non-zero value. To do this, set the frame (WBTRV32.DLL) interface for 16-bit and types via manual mode. 32-bit on Windows 95 workstation devel- In DOS Client mode, you must use opment on Windows NT or Windows NET START FULL to load a full redirector. The Data Buffer setting on the MKDE 95, 16-bit utilities (Btrieve Function Ex- (If you do not use NET START FULL, the and the Requester are set appropriately. ecutor and Btrieve File Manager and DOS workstation returns a Status Code Why do I still receive a Status Code 97? Btrieve roll forward), 32-bit BUTIL (run 11.) To verify the mode of the redirector from a Windows NT or Windows 95 (basic mode or full mode), type the A Status Code 97 can occur when command prompt), and Btrieve command “net ver”. attempting to target a Windows NT ’s Manual and Btrieve Instal- You must load the following at a Btrieve Server (Windows NT 3.5 build lation and Operation manual. (This prod- DOS workstation to connect to a 807) using the DOS requester BREQNT uct is scheduled to ship at the end of Sep- Windows NT server: from a Windows for Workstations DOS tember.) LSL.COM Box. It can also occur using the NT The Developer Kit does not ship any LAN Card Driver requester on an NT Workstation to target of the requesters or communication mod- IPXODI.COM the same server. ules for remote access (NTBTICOM.DLL, IFSHLP.SYS The first situation usually occurs after WBTICOMM.DLL, BREQNT). If you do NET START FULL a GET NEXT or a PREVIOUS not have a copy of the Btrieve for Win- OPERATION command, and it may dows NT server edition, your develop- You can load most of these drivers occur after GET FIRST and GET LAST ment should be local. high, using emm386. LSL.COM, LAN Card Driver, IPXODI.COM, IFSHLP.SYS, commands. To avoid a status 97, set the network What do I need to run a Btrieve and most of NET START FULL load in number in the REGISTRY to non-zero. To application on my Windows NT upper memory. You do not need to load locate the network number, take the workstation? NETX if you are not connected to a NetWare server. following path: WBTRV32 and NTBTICOM DLL's HKEY_LOCAL_MACHINE\System\CurrentControlSet\ must be in the path for 32-bit applications How can you avoid a Status Code 91? Services\ NwlnklPX\NetConfig\ targeting the Windows NT server and NetWare server. To run 16-bit A Status Code 91 can occur on a \ NetworkNumber applications to access Windows NT and Windows NT Workstation when NetWare servers, WBTRCALL, WBTR- attempting to target a Windows NT

14 Btrieve Developer's Journal Autumn 1995 WHO’S WHO AT BTI BTRIEVE FOR WINDOWS NT / WINDOWS 95

Btrieve for Windows NT Workstation Developer’s Kit and Windows 95 The Win32 Developer’s Kit In response to customer demand, contains all the components necessary Btrieve Technologies has pushed ahead to build true 32-bit Btrieve applications Marc Marshall the scheduled release of Btrieve for on all 32-bit language platforms that Vice President, Windows NT and Windows 95 comply with Microsoft’s DLL calling Development & Developer Kits and Engines. Bo convention. Support Holland, Director of Product Marketing, In addition to 32-bit components, said, “Since we’re a customer-driven the kit includes a thunk DLL, WBTR- With an extensive background in company, and customers are asking for THNK, and a current version of computer-based systems and software this product, we’ve changed our WBTRCALL.DLL. This “thunk” allows engineering, Marc Marshall is respon- priorities.” The estimated release date 16-bit programs using WBTRCALL.DLL sible for BTI’s product development and for the 32-bit Windows Developers Kit to access the 32-bit MKDE, allowing technical support. and Engine has been slated for October developers to maintain existing Win16 Before joining BTI, Marshall served 1995. code while developing new 32-bit as the Director of Software Engineering applications. for Computer Resources International Product Features The Developer’s Kit does not where he was responsible for the devel- include network requesters. Current opment and creation of a UNIX-based Win32 programs are supported Btrieve 6.15 Server (Netware or integrated software engineering environ- natively, and Win16 programs are Windows NT) customers will be able to ment. Prior to his key role as Vice Presi- supported through a thunking DLL. obtain these requesters (Win16 or dent of Development at CRI, Marshall Win32s development, though, requires Win32) from BTI free of charge with was responsible for the management the Btrieve For Windows (16-bit) proof of ownership. and technical direction of all software workstation engine. engineering activities for International The shipping version of the product Product Summary Software Systems, Inc. will also have a standard install and Marshall has a Masters and a B.S. in uninstall, which will be a requirement The Developer’s Kit allows Electrical Engineering both from Rice to get a Windows 95 application to develop new 32-bit University. certified with Microsoft’s logo program. Windows programs on both Windows 95 and Windows NT workstation, while maintaining existing Win16 projects. The MicroKernel Database Engine The Workstation Engine supports applications both on Windows 95 and The Btrieve MicroKernel Database Windows NT. Clients can use the same Engine (MKDE) sports some new application, workstation engine, and Charles Craft features for Win32. It is a true 32-bit license on either platform. application, and can thus make use of Senior Sales the preemptive multitasking in Pricing and Availability Representative Windows 95 and Windows NT. MKDE settings, which have historically been The Developer’s Kit lists for $595 With a broad background in sales stored in INI files, have been moved to and includes development components and marketing of high-tech products, the Win32 registry, in compliance with and a developer’s version of the Charles Craft is BTI’s newest Senior Win32 standards. The package provides workstation engine. Sales Representative. an MKDE setup utility to modify the A single-seat workstation engine Prior to his tenure with BTI, Craft registry settings. license is available for $149, and an provided strategic sales and marketing Like all version 6.15 Btrieve unlimited-distribution workstation planning for several high-tech manufac- products, this release supports engine license lists for $1995 and turers. Craft built and directed company transaction processing, logging and roll includes both the Windows 95 engine direct response and sales marketing forward, and data caching. In initial and Windows NT. programs for Austin Computer Systems. testing of the beta version, performance These products are scheduled for Craft has a B.S. in Marketing from of 32-bit Windows applications was release in October, 1995. the University of Illinois, and an M.B.A. measurably better than their 16-bit from DePaul University. Windows counterparts.

Autumn 1995 Btrieve Developer's Journal 15 THE NEXT STEP SOLUTIONS D IRECTORY Btrieve Technologies' Information developers and will be based upon With a customer base of over Management Network ODBC and standards. 60,000 registered developers, there are Figure 1 illustrates the flow of thousands of applications and tools The growth of commercial client/ information exchanged within the across virtually every vertical and server applications in the first half of the Information Management Network. horizontal market that are built on 1990’s has provided businesses with Applications that will benefit from the Btrieve Technologies’ products, Btrieve new functionality and increased information provided include: Mission and Scalable SQL. The Btrieve productivity. However, these applica- Critical Applications (accounting, Technologies Solutions Directory tions have generally been unable to general business), Collaborative Services provides a comprehensive list of the interact and have created distinct (project management, group schedul- applications, tools, and utilities that “islands of information.” No industry ing), Documentation Services support Btrieve and/or Scalable SQL. standards have existed to allow such (documentation, imaging applications), Currently, the directory contains over diverse software as accounting systems, Network Services (network manage- 1000 listings of these applications and network management, and project ment, data storage management), and tools. management applications to exchange Data Warehousing Services (multidi- BTI’s Solutions Directory, first information. mensional databases, on-line analytical edition, made its debut at DB/Expo ’95 The inability to exchange informa- processing). in San Francisco. Scheduled for release tion between applications that manage Computer telephony, the integra- this fall, the next edition will be different activities within a business tion of computer and telephone available on CD-ROM. The CD-ROM makes it difficult to integrate these systems, demonstrates how information will also include a new section offering business activities. Large corporations exchange between applications can BTI product literature, success stories, have spent vast amounts of money help integration business activities. and strategic directions. developing custom solutions, but this Using Caller ID, a telephony system can The directory has proven to be a level of effort is far beyond the re- determine the identity of the caller and valuable sales and marketing tool. sources of most small and midsize then locate the customer’s account in However, until now, it has had limited companies. To enable small and the accounting system to determine the distribution. Beginning in November, a midsize companies to integrate their account status. If the customer’s account 1995 copy of BTI’s Solutions Directory business activities, the commercial is overdue, the call can be automatically CD will be included with all Btrieve and applications they depend on need an routed to the credit department. This Scalable SQL Servers, Developer Kits, industry standard for exchanging type of information exchange allows and Client/Server Bundles. The CD will information. This plug-and-play stan- business rules to be automated and contain Hypertext links to facilitate dard must be vendor-independent. increases the efficiency of the business. searches by product or category and Another example is an accounting will allow users to locate applications or system that accesses the installed tools in a matter of seconds. software inventory maintained by a There is no charge for product network management system. Using this listings on the upcoming release of the information, the accounting system can Solutions Directory CD. If you have an compute software capital investment application or tool that supports Btrieve and calculate software depreciation. In or Scalable SQL, either directly or contrast, most businesses today are through ODBC, and you would like to unable to capitalize software because of have your product listed on the CD, the difficulty of manually maintaining please complete and return a Product the necessary inventory information. Profile. For a limited time, with your As we move into the second half of new listing you will receive a Btrieve Figure 1 - Information Management Network the 1990’s, the growing need to in- Magic Motion mouse pad. crease the efficiency of businesses The Product Profile is available on This standard is the vision behind requires the integration of business CompuServe — Go Btrieve, Library 10, the Information Management Network activities. The islands of information that Third Parties. Please return profiles by of Btrieve Technologies, Inc. By virtue prevent this must be bridged. Commer- fax to BTI at 512-794-1755, or contact of its market position as the leading cial applications must be able to BTI directly at 1-800-BTRIEVE or 512- supplier of database engines to commer- exchange information in a vendor- 794-1719 to request a copy of the cial developers, BTI can facilitate the independent manner. This is the goal of profile. development of a standard for vendor- the Information Management Network. For more information on BTI’s independent information exchange Solutions Directory, contact Robin between commercial applications. This Barker at 512-794-1668 or standard will be developed in conjunc- [email protected]. tion with key commercial application 16 Btrieve Developer's Journal Autumn 1995 TECHNICAL INSIGHTS User Counts in Scalable SQL and After completing the installation, you can level. Files with smaller record sizes can be Btrieve flag the files in SYS:SYSTEM Read Only if you accessed, but status 97 will be returned on any prefer. If you have an existing MKDE.TRN file in file access with a larger record size. A sniffer Btrieve v6.15 and Scalable SQL v3.01 your SYS:SYSTEM directory, this should NOT be trace was used to verify that Windows NT was What is the difference in how users are flagged Read Only. trying to send a 10001 byte data message within counted for Btrieve and Scalable SQL server en- one SPX packet. The work-around is to modify gines? Both Btrieve v6.15 and SSQL v3.01 server Getting Status 12 When using Brequest the registry: engines limit the total number of concurrent us- on NetWare 4.x Server HKEY_LOCAL_MACHINE\ ers, but the scheme they use for counting is dif- system\ Btrieve for NetWare v6.x ferent. currentcontrolset\ Btrieve v6.15 counts users based on the A status 12 (File Not Found) can be re- services\ workstation’s network id. If the user has a 20 turned when using Brequest on a NetWare 4.x nwlinkipx\ user Btrieve license, 20 workstations can connect server. This symptom will be seen when a work- netconfig\ to the Btrieve database engine at a time. Each station is using the NETX driver instead of the landriver workstation can be running multiple Btrieve ap- VLM driver to attach to the NetWare 4.x server. and set the MaxPktSize to 576 bytes. plications, yet still count as only one user. The new 4.x version of LOGIN.EXE sets up the The drawback is that non-SPX packets will SSQL v3.01 counts users based on the drive connection table differently than what be forced to send out the data in 576 byte number of active sessions (database log-ins). NETX is expecting. Btrieve applications trying to chunks, which could have a negative impact on Since a person may run multiple SSQL applica- open a file specified as performance. However, it will prevent the server tions on a workstation and SSQL applications drive:path\path\filename.ext will not have the from attempting to send out SPX packets larger can have multiple sessions, an individual work- drive letter interpreted properly, causing the sta- than 576 bytes. station can “use up” more than one SSQL user tus 12. There are three ways to resolve this prob- count. Ten workstations each running two SSQL lem: BTRMON Abend on NetWare 4.x applications would total 20 sessions and be the Btrieve for NetWare v6.15 maximum allowed on a 20 user SSQL v3.01 li- 1. Change the application to specify the cense. server and volume in the path instead of a NetWare 4.x servers will abend if you use drive letter. This is often not a feasible solu- NWSNUT.NLM that ships with a 3.12 NetWare tion. server. Error Installing NetWare Btrieve v6.15 In order to get BTRMON or BSETUP Btrieve for NetWare v6.15 2. Reconfigure the workstation to load VLM.EXE instead of NETX.EXE. Consult loaded on a NetWare server, you need to have When installing Btrieve for NetWare v6.15, your network administrator for assistance in NWSNUT.NLM. NetWare 3.11 servers do not you may get an error “Unable to write to changing your workstation drivers to make ship with NWSNUT.NLM; Btrieve v6.15 for destination location”, causing the installation to sure you get the latest versions. NetWare ships a copy of NWSNUT.NLM and it abort. In most cases, this is caused by older specifies in the README file that this NLM components of Btrieve that are flagged Read 3. Use a 3.x version of LOGIN.EXE to log needs to be put in the system directory if you are Only that the install program is attempting to in to the NetWare 4.x server. Take a copy using a 3.11 NetWare server. 3.12 and 4.x overwrite with the new version. Usually, this of LOGIN.EXE from a 3.x NetWare server versions of NetWare come with happens with files in the SYS:SYSTEM directory and place it in the \LOGIN directory of the NWSNUT.NLM. If a user copies the on your server. 4.x server. You will probably want to re- NWSNUT.NLM provided with Btrieve for Simply flag the files Read Write and re-run name it to LOGIN3.EXE so as not to over- NetWare v6.15 into their system directory of the installation program. Following is a list of write the 4.x version of LOGIN.EXE. You their 4.x server, the server will abend every time files that get installed in the SYS:SYSTEM should also have users that are running they try to load BTRMON, and possibly directory by default (the installation program lets NETX log in to the 4.x NetWare server with BSETUP. you specify a different directory for these if you the LOGIN3 utility. This will set up the want): drive connection table correctly and elimi- Btrieve for OS/2 and THREADS nate the Btrieve status 12s. If this solution is Btrieve for OS/2 v6.15 BTRIEVE NLM 220,637 03-10-95 chosen, it is suggested that version 3.x of BROUTER NLM 21,560 03-12-95 the MAP.EXE utility also be used to map When using Btrieve for OS/2 v6.15, be sure BDROUTER NLM 22,400 03-12-95 drives on the NetWare 4.x server. that your THREADS statement in CONFIG.SYS BSPXCOM NLM 22,450 03-13-95 is set to handle all the threads in the system. BSPXSTUB NLM 1,342 11-18-94 Note: Solution number 3 is NOT recommended When going from Btrieve for OS/2 v5.10 to RSPXSTUB NLM 1,883 11-18-94 by Novell. v6.15, this is one consideration you must take BSETUP NLM 59,293 02-27-95 into account. Btrieve v5.10, as a simple DLL, al- BDIRECT NLM 15,896 02-25-95 located no threads. Btrieve v6.15 uses at a mini- Btrieve for Windows NT and status 97 mum of 5 threads including 1 worker and I/O BTRMON NLM 76,953 03-08-95 Btrieve for Windows NT v6.15 BREBUILD NLM 35,044 03-07-95 thread each. Increasing either of these settings BUTIL NLM 54,371 03-04-95 Under certain circumstances, a Windows must be accounted for in the overall system. BSTART NCF 90 08-30-94 NT Server will not divide data larger than 576 If there is no THREADS statement in BSTOP NCF 49 04-21-92 bytes into several 576 byte SPX packets. It tries to CONFIG.SYS, the default is a mere 64, which is BTIMSG NLM 40,033 11-18-94 send out the data in a packet larger than 576 probably the minimum to get the OS booted. AFTER311 NLM 14,651 03-29-94 bytes. Therefore, this will cause the buffer to See your OS/2 documentation for more informa- A3112 NLM 12,425 03-29-94 overflow and result in status 97 at the Btrieve tion on setting this value.

Autumn 1995 Btrieve Developer's Journal 17 WFW Setup for DOS Applications Btrieve Status 20 from WBTRCALL in Btrieve Status 95 Btrieve for Windows NT v6.15 Windows-On-Windows (NT) Btrieve for NetWare v6.x In order to run a Btrieve DOS application in Btrieve for Windows NT (Server Edition) v6.15 A status 95 (session no longer valid) client/server mode and target a Windows NT Btrieve for Windows NT supports Windows indicates that an SPX session had been established, but due to network delays and/or server from a Windows for Workgroups worksta- 3.x applications running on Windows NT in the network communication problems, the SPX tion, you are required to use BREQNT.EXE. This Windows-On-Windows (WOW) subsystem. It requester requires a full redirector in order to session has been terminated. If the problem is provides a simple DLL (WBTRCALL.DLL) that due to delays in receiving a response from the function correctly. calls WBTRTHNK.DLL, whose only purpose is server, it may be advisable to increase the SPX A WFW DOS box is a full redirector by to call the corresponding 32-bit Btrieve API in TIMEOUT parameters in the workstation’s default, but in a straight DOS Client mode, you the native WBTRV32.DLL. The WBTRV32.DLL NET.CFG file or in the SPXCONFG.NLM at a must use NET START FULL to load a full is linked as a DLL and has multiple data seg- NetWare server. These parameters are shown redirector. If you do not use NET START FULL, ments. This means that each process that at- below with their default values: the DOS workstation will return a Btrieve status taches itself to the DLL gets its own copy of the 11, “Invalid Filename”. To verify the mode of the DLL’s data segment. Net.cfg redirector, type the command “net ver”. This will The Windows v3.x applications, which are SPX VERIFY TIMEOUT=54 tell you if the redirector is running in “basic” or running in the same address space by default, are SPX LISTEN TIMEOUT=108 “full” mode. handled as separate threads of the same process SPX ABORT TIMEOUT=540 The list of what needs to be loaded at a by the OS. This causes them to share the same DOS workstation to connect to a Windows NT data segment of the WBTRV32.DLL. As a result, SPXConfg server is as follows: whenever a Windows 3.x application tries to SPX AckWait Timeout = 54 LSL.COM access Btrieve after another application has al- SPX Watchdog Verify Timeout = 108 LAN Card Driver ready done so, the WBTRCALL.DLL returns a SPX Watchdog Abort Timeout = 540 IPXODI.COM Status 20. SPX Default Retry Count = 10 IFSHLP.SYS Since WBTRV32.DLL expects every pro- NET START FULL cess to have a separate data segment with sepa- The first three parameters (in the order listed You can load most of these drivers high rate global variables, the only clear solution is to above) have values in a 1:2:10 ratio. If the values using EMM386. LSL.COM, LAN Card Driver, allow the Windows 3.x applications that use are changed from the default settings, they IPXODI.COM, IFSHLP.SYS, and most of NET Btrieve to run in separate WOW sessions. This should be kept in this ratio. It is a good idea to just double, or at most triple them all. If the status START FULL will load in upper memory. will cause the OS to treat the applications as separate processes and allocate separate data 95s persist, the problem is probably not related You do not need to load NETX if you are to a timing issue. SPX timing issues are common segments of the DLL to each of them. You can not connected to a NetWare server. Please note in WAN environments or large LAN segments, that you may run into some problems using the accomplish this in two ways: and are usually resolved by increasing these pa- Microsoft SPX protocol stack instead of the rameters. (Refer to the NetWare workstation 1. Check the “Run in Separate Memory NetWare SPX protocol stack. documentation for more information about these Space” checkbox in the property or the run parameters.) dialog box. SPX II Support Other causes of status 95s are related to 2. Use the “start /separate ” communication problems on the network. This Btrieve for NetWare v6.15 & Scalable SQL for can be due to old workstation drivers for the net- syntax to start the application from a NetWare v3.01 work, old LAN card drivers at the workstation or command line. Btrieve only supports SPX II in a configura- server, bad hardware (usually the LAN cards at tion that has a Windows NT requester talking to the workstations or server), or routing configura- tion problems in routers and/or bridges. It is often a Windows NT server. Scalable SQL does not Roll Forward Utility Installation Btrieve for Windows NT (Server Edition) v6.15 difficult to diagnose exactly what is causing the support SPX II today. Note: no Windows NT re- problem, but there are some actions that can be quester or server engine currently exists for The installation of both the Server and taken to help prevent it. SSQL. Developer Kit versions of Btrieve for Windows First, make sure your system is equipped NT does not create an icon for the Roll Forward with the latest workstation drivers from Novell, Gateway Service for NetWare on utility in the Program Group. However, the Roll as well as the latest LAN card drivers from your Windows NT Server Forward executable is installed. LAN card manufacturer. Also, make sure that your LAN cards and drivers are certified by An icon can be added to the group for the Btrieve for Windows NT Server v6.15 Novell to run on the version of NetWare that BROLLFWD.EXE utility. However, there are a you are using. The Windows NT server contains a feature few other steps that need to be performed in called Gateway Service for NetWare. This Next, try to isolate the problem. Is it hap- order to run this utility on the Windows NT pening on all workstations, or only some of feature provides multiple capabilities. One server, since this is a 16-bit Windows option allows a user to access a NetWare drive them? Check with workstations on different seg- application. A copy of the BTI.INI file must be ments on the LAN. You may want to try swap- from the Windows NT server. Btrieve for copied to the windows system directory. Also, Windows NT (Server Edition) supports this ping hardware components at the server or at the default BTI.INI has a line THUNK=NO; this option for applications running on the Windows workstations to see if different LAN cards make a needs to be changed to THUNK=YES. If this is difference. NT server. Another option allows a NetWare not done, an error message “Call to Undefined drive to appear as a Windows NT server drive It is often a good idea to try other SPX appli- DynaLink” will be returned. Also, from a remote workstation. This option is not cations. RCONSOLE is a good test for DOS WBTRV32.DLL will have to be copied into a supported by the Btrieve requesters. If users try to workstation applications that use SPX. If having problems with a DOS Btrieve application: access Btrieve in this situation, they can receive directory in the PATH for the utility to work. different error codes depending on whether the 1. Run RCONSOLE on a workstation. Btrieve for Windows NT server is running. 2. Let it run the length of time it takes for

18 Btrieve Developer's Journal Autumn 1995 the Btrieve application to get the status 95. 3. See if RCONSOLE reports any errors. FILES AVAILABLE ON COMPUSERVE Try running RCONSOLE from DOS and in a Windows or OS/2 DOS box if the problem is The following is a list of files submitted to the Btrieve Technologies’ Forum Windows- or OS/2- related. on CompuServe (GO BTRIEVE). The files are listed by library. Within each In almost all cases, Btrieve status 95s are library, the files are ordered by number of downloads. The first file in each caused by a problem in the communications on your network. Consult with your NetWare library list has the most downloads and the last file has the fewest. reseller for more assistance with SPX configurations. FILENAME LIB SIZE DESCRIPTION BTRVSM.C 17 5840 Small Fast Btrieve Interface C/C++/BASIC NTREQ.ZIP 17 50291 Btrieve for WIN NT requestor for NT with source Status 841 on a SELECT DISTINCT SHELL.ZIP 17 55286 MFC C++ Shell for Btrieve for Windows Statement Scalable SQL v3.x WBTRME.ZIP 17 232101 Btrieve/SSQL Message Displayer for Windows BTDIR.ZIP 17 29166 BtDir - A Btrieve file directory display. A status 841 “Scalable SQL cannot create a BTRERR.ZIP 17 3369 Pop-Up Btrieve Error Message Displayer for DOS Temporary Sort File” can be returned on a BTPLUS.ZIP 17 237310 C++ Wrapper Class for Btrieve SELECT DISTINCT * FROM Tbl statement. If the DEMO.ZIP 17 402800 DBF To Scalable SQL for Windows 1.01 lengths of the fields in the table add up to more BTRVERR.ZIP 17 21104 Btrieve Error Message DLL than 255, or the table includes a variable length BTVER.ZIP 17 26872 Utility returns Btrieve version in errorlevel field with long enough data to exceed the 255- SPCDEM.ZIP 17 1198206 Demo Of A BTRIEVE Based Business System byte index limit, the status 841 will be returned by Scalable SQL. Reduce the number of fields in BTEDXT.EXE 10 196605 BTedit V 1.20 Btrieve file edit/view utility the select list of the statement to avoid this error. BTFL15.ZIP 10 184314 BTFILER Ver. 1.50 Btrieve File Maintenance Utility BTCRXT.EXE 10 192652 BTcreate V 1.05 Btrieve/DDF file create utility BTVIEW.ZIP 10 205743 BTVIEWER Ver. 1.20E Query/Edit Tool Multiple Sessions in BTRMON Btrieve for NetWare v6.15 BTUTIL.ZIP 10 91972 BTUTIL Version 1.20 VBTRV.ZIP 10 555215 VBtrv Toolbox Controls Demo-Classic Software, Inc It is possible to see multiple sessions for the WBC.EXE 10 27432 WBC Win/Btrv Config Diagnostic same user in the Btrieve Monitor utility MITDDF.EXE 10 873421 DDF Manager (BTRMON.NLM). One reason for this would be WBTRLI.ZIP 10 18920 BTRLIB-Btrieve C++ class lib if a user were running Btrieve applications in CEASY.TXT 10 11274 C Easy Overview multiple DOS sessions on a Windows or OS/2 DDFMAKER.ZIP 10 71370 DDF Maker workstation. APOLLO.TXT 10 7170 Apollo For Delphi Information Another scenario that would produce mul- BTRVCOMP.HLP 10 116645 Btrieve Components for Delphi From Summit National tiple sessions for the same user in BTRMON is TYPCON.ZIP 10 98833 TypConst - VB Utility for Btrieve Users caused by repeating the following steps: load SNIFFER1.TXT 10 2331 Smithware DDF Sniffer Press Release Brequest v6.15 or higher , run the application, BTRVCOMP.ZIP 10 155241 Eval Copy of Btrieve/Delphi Components and do NOT issue a reset or unload Brequest. OEREAD.WRI 10 9856 OpenExchange Import/Export/Conversion The key to this problem is having a RBUPDA.TXT 10 5523 Upgrade News: RaSQL/B 6.1 Btrieve RDD for Clipper BTI.CFG in the directory from which Brequest is OEDEVK.ZIP 10 379549 OpenExchange Developer’s Kit- Import/Export modu loaded, which has specified MultipleLoad=Yes WOODPECK.ZIP 10 43180 Woodpecker V. 1.12 Btrieve Debugging Utility in the [Btrieve Dos Requester] section. Getting in TITAN.TXT 10 7589 Titan(tm) for Delphi - Shipping Rel. 1.0 8/4/95 and out of the application without unloading PB2.EXE 10 103400 Multiuser phonebook and project database Brequest would cause multiple instances of NOTES.ZIP 10 145446 C Easy Notes & Names data entry interface example Brequest to stay in memory, leaving multiple BSAFE.TXT 10 1650 BSafe Version 2 Press Release sessions with Btrieve.NLM that show up in BTSEARCH.ZIP 10 207908 BtSearch Ver. 1.0 for Windows - Shareware BTRMON. RBFFAX.TXT 10 7231 RaSQL/B FoxPro “fax back” information Either set MultipleLoad=No in BTI.CFG, or RBC61B.ZIP 10 69630 RaSQL/B Clipper patch to 6.1B unload Brequest before attempting to reload it to RBCFAX.TXT 10 8670 RaSQL/B Clipper “fax back” information avoid this situation. RBF21C.ZIP 10 77278 RaSQL/B Fox patch to v2.1C OEDLL.WRI 10 10880 OpenExchange DLL - Spreadsheet & Database access

Performance of Btrieve Server Engines BTOOLS.EXE 5 198001 Btrieve and SQL debugging utility programs. Btrieve for NetWare v6.15 and Btrieve for BWINCFG.TXT 5 13821 Configuring a Windows workstation for Btrieve Windows NT v6.15 WDDL.EXE 5 77054 Windows API set for maintaing DDFs The Btrieve v6.15 server engines for Net- ODDL.EXE 5 53388 OS/2 API set for maintaining DDFs Ware and Windows NT will, in general, show CORPT1.TXT 4 18346 File Corruption:Causes, Prevention, Analysis improved performance if provided with addition- BDJ24.TXT 4 297689 Btrieve Developer’s Journal, Oct-Dec 1994 al cache over the default 512K bytes. It is recom- BDJ31.TXT 4 158039 Btrieve Developer’s Journal, Jan-Mar 1995 mended that you configure Btrieve for at least BACKCOV.TXT 4 1357 Press release for Btrieve Complete 2048KB or 4096KB (2 or 4 Meg) of cache in the Btrieve setup utility at the server. There is no BTRXFC.EXE 3 65545 Protected-mode interfaces for Borland/PharLap upper limit on the amount of Btrieve cache that can be allocated, except for available memory CUSTORDR.TXT 2 10615 Btrieve Technologies, Inc, Product Order Form on your server. WHITPAPR.TXT 2 27627 MicroKernel Database Architecture(TM) White Paper DISTLIST.TXT 2 1932 List of Authorized Channel Partners SSQLFEAT.TXT 2 2974 New feature hightlights for Scalable SQL v4.0 FRONTEND.TXT 2 4320 List of Third Party Front-Ends

Autumn 1995 Btrieve Developer's Journal 19 SNAP TRAINING SEMINAR SCHEDULE CURRENT V ERSIONS

The Btrieve Technologies Solution Network Authorization Program (SNAP) is designed to Btrieve Data Management Products provide organizations and individuals with the products, support, sales tools, and training Btrieve Engine for DOS...... 6.15 required to successfully deliver information management solutions. To recieve information Btrieve Developer Kit for DOS...... 6.15 on SNAP, contact Talitha Walter at 512-794-1696, email [email protected]. Dates and locations of upcoming SNAP training seminars are: Btrieve Engine for Windows...... 6.15 October 11, 1995 New York, NY Novell New York City 212-403-7800 Btrieve Developer Kit for Windows.....6.15 October 17, 1995 Ft. Lauderdale The Weston Hotel Cypress Creek 305-772-1331 October 19, 1995 Minneapolis, MN Novell Minneapolis 612-830-9033 Btrieve Engine for OS/2...... 6.15 October 26, 1995 Los Angeles, CA Novell Los Angeles 310-996-5901 November 2, 1995 St. Louis, MO Novell St. Louis 314-997-3777 Btrieve Developer Kit for OS/2...... 6.15 November 14, 1995 Jacksonville, FL Omni Jacksonville Hotel 904-355-6664 November 28, 1995 Philadelphia, PA Novell Philadelphia 610-640-8020 Btrieve for NetWare Server...... 6.15 November 30, 1995 Greensboro, NC Courtyard Marriott 919-294-3800 Btrieve for Windows NT Server...... 6.15 Btrieve Dev Kit for Win NT Server...... 6.15 BTI AUTHORIZED C HANNEL PARTNERS Scalable SQL Relational Data AUSTRALIA MALAYSIA Fagan 61-3-9699-9899 Autocomp 6-03-2442002 Management Products Scalable SQL for DOS...... 3.01 BELGIUM NETHERLANDS SSQL Developer Kit for DOS...... 3.01 IQN 32-16-502381 Artefact 31-15-617532 Scalable SQL for Windows...... 3.01 SSQL Developer Kit for Windows...... 3.01 BRAZIL RUSSIA Inbras 55-11-2884077 ELCO 7-095-1315555 Scalable SQL for NetWare...... 3.01 Lanit 7-095-2673038 SSQL Dev Kit Supplement for OS/2.....3.01 CROATIA Unitech 7-095-9395069 SYS 385-1-615223 LOVINIA S Query and Reporting Tools CZECH & SLOVAK REPUBLICS OPAL 386-64-632359 Abakus 42-2-24510942 Oksystem 42-2-6843413 SOUTH AFRICA Xtrieve for DOS...... 4.11e SWS 42-67-981446 SYS:COMM 27-11-8867812 Xtrieve for OS/2...... 4.11e

FRANCE SWEDEN Interquad 33-1-41101500 Linsoft 46-13-111588 Micro Sigma 33-1-46229988 Scribona 46-8-7343400 OW TO EACH GERMANY THAILAND H R BTI Compu-Shack 49-2631-9830 Thaisoft 66-2-237-7622 Btrieve Technologies, Inc. Sienersoft 49-6126-5950 8834 Capital of Texas Highway North NITED INGDOM SOS 49-8212-57820 U K Suite 300 Southdown House 44-1306-877998 Austin, Texas 78759 HUNGARY System Science 44-71-8331022 Phone: (512) 794-1719 3Soft 36-1-212-2552 (800) BTRIEVE Walton 36-1-2679010 UNITED STATES/CANADA GATES/Arrow 800-332-2222 Fax: (512) 794-1778 ISRAEL 803-627-2100 CompuServe: GO BTRIEVE Mashov 972-3-7520190 GBC/Vitek 800-229-2296 InterNet: [email protected] ITALY 609-767-2500 [email protected] [email protected] A&B 39-10-2770530 Programmer's Shop 800-421-8006 You may also contact individual staff members 617-740-2510 via the Internet. The BTI Internet Domain Name APAN J is btrvtech.com and user names consist of the Novell Japan 81-3-54811161 OTHER COUNTRIES person’s first initial followed by up to seven AG-Tech 81-52-9512706 Contact Btrieve Technologies characters of the last name. 512-794-1719/Fax 512-794-1778 20 Btrieve Developer's Journal Autumn 1995 Inside The DOS Btrieve Box

By Douglas J. Reilly Access Microsystems, Inc. Email: [email protected]

This time, we will really get inside Btrieve: That is, the subject to the terms and conditions of a redistribution DOS Btrieve developer’s kit. Version 6 brought some agreement. This arrangement lasted through the “red box” changes to the packaging and pricing of Btrieve, and I think days when Novell owned Btrieve. To further add to this might be a good time to take a look at the current state widespread availability of the Btrieve engine, Novell of Btrieve, beginning with the DOS platform. shipped the Btrieve NLM with every copy of NetWare, First, back to a question raised in the last Inside giving every NetWare site in the world access to the Btrieve Btrieve. In that column, I had estimated that a particular file database engine. would take 90 pages when rebuilt under Btrieve version 6. Now, in the “green box” days in which we live, Using the client based BTRIEVE.EXE 6.15, the actual Btrieve Technologies sells two distinct products related to number of pages used by the file was 141 pages. At this DOS Btrieve development: The Btrieve Developer Kit for point, I created the same file using BREQUEST.EXE 6.10e DOS, and the Btrieve Client Engine for DOS. The two and BTRIEVE.NLM 6.10c on a NetWare server, resulting products essentially replace the single “red box” Btrieve for in a file that took up 112 pages. I found this most curious. DOS kit from Novell. The Btrieve Developer Kit is used in I had posed the question to some folks at BTI, and here order to develop a Btrieve-based application. The Btrieve is the answer: Contrary to what I had presumed, the Client Engine is required to distribute your application. In difference was not due to a client-only versus client/server most traditional development situations both kits will be issue. The reason for the difference was in the way that required to produce and distribute a Btrieve-based Btrieve version 6.15 allocated space. The 6.15 version of application. Btrieve allocated larger chunks of pages at a time, thus, at The developers kit contains the “Btrieve for DOS any given time, there were likely to be more slack pages Installation and Operation” manual and the “Btrieve allocated. In theory, the version 6.15 BTRIEVE.NLM will Programmer’s Manual,” as well as a limited version of the generate files of about the same size as the BTRIEVE.EXE Btrieve DOS engine designed for testing your application version 6.15, but I have not tested this theory. In the global and some utilities such as BUTIL.EXE. Unlike previous scheme of things, assuming that a file will have records versions of Btrieve, version 6.15 contains an installation added and deleted over the life of the file, and assuming procedure that handles placing files in appropriate that the overall size of the file will be much larger than the directories and setting path statements. The installation allocation unit size, the performance benefits are probably routine also brings you to the registration program, which worth the extra space. Of course, “your mileage may allows you to enter demographic information and creates a vary.” registration file on a provided diskette, eliminating the need for a postcard for registration. Btrieve the old fashioned way - the Btrieve The Btrieve engine itself uses the DOS/4G protected Developer Kit for DOS mode runtime. This requires at minimum an Intel 386 processor, and 2 megabytes of , and somewhat more stringent IBM AT compatibility In the early “blue box” SoftCraft days, Btrieve was requirements. The Btrieve TSR consumes 56K of sold with a per-user fee. Each machine where you were to on my PC. This is much less than the use Btrieve required a seperate license fee payment to version 5.10a TSR would have required, but not quite as SoftCraft. Early on, this was seen to be less than ideal by low as I would have thought, given the extended memory developers, if only for the paperwork burden. Soon, this requirements. was replaced with a one time license fee that allowed The quality of the manuals has improved in version essentially unlimited distribution of Btrieve executables, 6.15, making them a reasonable sole source for

Autumn 1995 Btrieve Developer's Journal 21 programming information (in fact, except for two or three see if Btrieve was resident using a call to the C language third-party books, they are the sole source for Btrieve BTRV() function, then prompt the user to enter an owner programming information). The Installation and Operation name, and finally pass that owner name, in encrypted form, manual gives some general background on Btrieve features as a parameter to the actual TSR program. The actual TSR and functionality, and then steps through the utilities then hooked itself into the Btrieve vector, and was provided. The most interesting and under-used utility in the then supposed to intercept any OPEN call, and stuff the developers kit is the BTREXEC.EXE utility. This utility owner name provided to the TSR into the data buffer, allows you to single step through Btrieve operations on one allowing access to the ownername-protected files only when or more files, making it easy to reproduce and test the way my TSR was loaded. in which Btrieve will behave in the context of the I say “The actual TSR then hooked itself into the application you are developing. For instance, if a series of Btrieve interrupt vector, and was then SUPPOSED to Btrieve operations performed by your program results in an intercept any OPEN call...” because at first, it simply unusual status code or garbled data, repeating the steps in didn’t work. Once my TSR was loaded, any other Btrieve BTREXEC.EXE will enable you to isolate any problems in programs did not work, reporting a status 20 (Record your application from the symptoms seen. If the problem Manager Inactive). This led me to look at the C interface can be duplicated in BTREXEC.EXE, you need to call BTI. source code, which contained this interesting bit of code If it can’t be, you probably have to look within your (my comments added): application. Perhaps the most useful sections of the Installation and b_regs.x.ax = 0x3500 + BTR_INT; // Get vector for the Operation manual are the two appendices. These cover // Btrieve interrupt. details of creating description files for use by BUTIL.EXE in creating Btrieve files or adding indices to existing Btrieve int86x (0x21, &b_regs, &b_regs, &b_sregs); //Call the DOS files, and Btrieve status codes. While I do not generally use //function 0x35 BUTIL.EXE to create Btrieve files, the appendix covering status codes gets a lot of use. Many Btrieve status codes are if (b_regs.x.bx != BTR_OFFSET) // Offset in BX not 0x33 return (BTR_ERR); // Return Btrieve not ingrained in the psyche of all Btrieve developers (for // loaded error (20) example status 2 for I/O errors, or my all time favorite, status 30 - not a Btrieve file), but others are much less frequent, and thus not often memorized. For instance, what This code was calling a DOS function, in this case, 35 does one do with a status 16, Expansion Error? hex, Get Interrupt Vector. BTR_INT was defined as 7B The Programmer’s Manual for version 6.15 is hex, the interrupt that my TSR was hooking. It was then interesting for what it eliminates from the previous versions testing to see if the offset, returned in BX was equal to of programmer information. In previous versions, among BTR_OFFSET, defined as 33 hex. This was an interesting all of the language interfaces was an assembly interface. way of testing for the presence of an interrupt handler. In This is not in the current manual, perhaps a sign of the most applications I had seen, the interrupt vector was first times, as machines (especially machines running DOS checked to ensure it was a nonzero value, and then some applications) are “fast enough” without use of assembler. offset from the handler was searched for a particular string. On the other hand, anyone with enough knowledge of Btrieve’s method, while in many respects novel, works assembler to want to use Btrieve could probably use the C quite well, since interrupt vectors with an offset of 33 hex interface, or derive what is need from the documentation, generally did not appear without some effort. or even from “PC ,” a book by Jim Kyle and Ralf Since my TSR was written in C, my control over the Brown. starting offset of any TSR I was to install was a bit more challenging than it would have been using assembler, but Btrieve, Are You There? with the addition of a number of “_asm NOP” lines, by offset met the test, and the TSR worked quite well. Interfacing to Btrieve leads to an interesting issue regarding the use of the Btrieve DOS TSR. Some time ago, Language Implementation Details I had a customer who needed an interesting modification done. Concerned that access to all company data should be The most useful section in the Btrieve Developer’s controlled, he wished to use owner names to control his manual is devoted to descriptions of the operation codes Btrieve files. Unfortunately, the vendor was not willing or available using Btrieve. Much has changed since the early able to accommodate him, and so he turned to me. This led days of Btrieve, but one thing has remained constant: to an interesting project that forced me to research the Btrieve is accessed using a single function call, with the implementation details of the Btrieve TSR. various operations selected by passing different operation My first attempt was to simply create my own TSR to codes. Some of the operations are quite complex (for sit on top of Btrieve. When you went to load the TSR (using instance, extended operations) and understanding all the a loader program), the loader program would first check to ramifications of each operation is critical. One often

22 Btrieve Developer's Journal Autumn 1995 overlooked but very important detail covered for every applications have a fighting chance. For instance, a DOS- operation, is positioning information. In many cases, the Btrieve-based nursing documentation package can coexist positioning after an operation is obvious, but in some cases, with a brand new, Win32-Btrieve-based messaging package. for instance failed extended operations, understanding Several months ago, this was simply not practical. positioning is the difference between a robust program an As with every silver lining, this one comes with a one just on the edge. cloud. In Windows 95 (or in 3.1x for that matter), open up Much of the Programmer’s Manual is devoted to the a DOS session and load Btrieve for DOS 6.15. So far, so many language interfaces available to Btrieve. It is good. Try and open up another DOS session and load important to remember that the Programmer’s Manual is Btrieve and you will see the following, not terribly helpful generic in nature, and will cover features of all operating message: system platforms supported by Btrieve, and some features discussed will not be available on all platforms. An example C:\>btrieve DOS/4G Run-time Version 1.97 of this is a lengthy discussion of call back functions within Copyright (c) Rational Systems, Inc. 1990-1994 the C section. These are only available in the Windows Protected Mode Switch Program for DOS Version 1.00 environment. (C) Copyright 1982-1994, Btrieve Technologies, Inc. Another improvement in the C interface is improved All Rights Reserved. understanding of the differences required to support C and Btrieve Client Engine for DOS Version 6.15 C++ with the same interface. While this is as simple as (C) Copyright 1982-1994, Btrieve Technologies, Inc. wrapping the interface code within lines such as these: All Rights Reserved. The transaction control file cannot be created. Error during initialization - unable to load client engine. #ifdef _cplusplus extern “C” { What this mess is trying to tell you is that Btrieve #endif cannot gain exclusive access to the transaction control file. /* the actual C style code... */ A more helpful message would include some indication of #ifdef _cplusplus WHY the transaction control file cannot be opened. Btrieve }; 6.15 requires a separate transaction file for each instance #endif of the Btrieve engine. Since the first DOS session is using the Btrieve transaction file in the directory specified in the the result is that C++ programmers have a better chance BTI.CFG file (with a default value of C:\), this second of compiling correctly the first time. Interfaces for several instance cannot. flavors of BASIC are provided (primarily oriented towards A workaround (though admittedly not an ideal DOS BASIC), an interface designed to work with all workaround) is to set up multiple BTI.CFG files. Start the popular C and C++ compilers (with most support common second instance in a location where it will see a different between DOS and Windows platforms), several Cobol BTI.CFG file, with a different directory to store the interfaces, and interfaces for several Pascal compilers, with transaction control file (specified in the BTI.CFG line support listed as “future” for Extended DOS Turbo Pascal TRNFILE=), and you are set. This method will allow you programs. to test for network record contention even when you are not attached to a network, with each DOS session acting like a Windows and DOS Btrieve, Perfect together? different user.

These days it seems that Btrieve for DOS is often asked Conclusions to coexist with Windows, operating within a DOS session of Windows. My experiences running DOS applications using DOS is not dead. Despite rumors to the contrary, there Windows 3.1x led me to seldom try it. The conventional are large numbers of users who wish to or have to continue memory constraints placed by using Windows, combined to run DOS applications. Btrieve allows a migration to with the general instability of Windows 3.1x forced me to newer platforms, while at the same time allowing existing the conclusion that using any non-trivial Btrieve program applications that are simply “good enough” in their DOS within a DOS session was just not worth the risk. incarnation to continue doing their jobs. ² In a strange twist of fate, Windows 95 may be just the thing to revitalize these DOS-based Btrieve applications. On my PC, with a network and CD-Rom installed, I have DOS Doug Reilly is the owner of Access Microsystems Inc., a software sessions that report 617,984 bytes as the largest executable development house specializing in C/C++ software development, often using Btrieve. He has had articles on Btrieve published in size. This allows me to run all of my current DOS Btrieve Dr. Dobb's Journal and is the author of BTFILER and applications, with significant room to spare. Rewriting the BTVIEWER Btrieve file utilities available on CompuServe. Doug applications may not be feasible, but now these older DOS may be reached at: 404 Midstreams Road, Brick, NJ, 08724, by applications that must “work and play well” with other phone at (908) 892-2683, or via CompuServe at 74040,607.

Autumn 1995 Btrieve Developer's Journal 23 Everything I Needed to Know I Learned in Btrieve Books By Scott A. Smith Smithware, Inc. Email: [email protected]

Introduction Although much of the information contained in the book was similar to material found in the Btrieve Actually I wish the title of this review were true. documentation, it was a good first book on the topic. Unfortunately, everything I ever needed to know Everyone in the Btrieve community (including the about Btrieve I learned primarily through trial and higher-ups at Novell Austin) was very happy to finally error. Many developers, when they are first see a book on Btrieve. confronted with the prospect of getting into Btrieve In 1994, just before the announcement of the spin- development, wisely seek detailed books on Btrieve. off of Btrieve Technologies from Novell, Richard If you’ve ever cruised through the message completed his second and most recent Btrieve book: sections on the BTRIEVE forum on CompuServe, you The Illustrated Guide to NetWare Btrieve. This edition have undoubtedly seen messages like: “I’m just built on the material from the first book, but also getting into Btrieve development and I wondered if focused on client/server Btrieve as it was being there are any books available to help me get started. implemented in conjunction with NetWare. Any help would be appreciated!” I have personally Jim Kyle, author of many successful Addison- answered similar questions at least a hundred times Wessley books and a longtime Btrieve advocate (also this year alone. now the News Editor for Btrieve Developer’s Until a few years ago, the answer to this question Journal), had long hoped to write a book on Btrieve, was, “No, there are no books other than the reference but could never convince his publisher Addison- manual that comes with the Btrieve Developer’s Kit.” Wessley of the book’s potential market. The growth of That was a shame too, because if you are like me, Btrieve Developer’s Journal, the formation of Btrieve when you get into a new area of development you Technologies in early 1994, and the news that want to have as many resources available to you as surrounded their spin-off from Novell caused you can for immediate reference. Addison-Wessley to reconsider. Jim’s new book, And there really is a lot of good, juicy information Btrieve Complete: A Guide for Developers and System about Btrieve that just can’t be included in the Administrators finally hit bookstores this summer. documentation provided with the Developer’s Kits: general history and overviews of indexed filing systems and binary trees, detailed analysis of the Guidelines for the Review internal structure of Btrieve files, the history of the While The Illustrated Guide to NetWare Btrieve development of Btrieve, and lists of the third-party and Btrieve Complete have a lot of information in add-on products and utilities that are available, just to common, they are dissimilar in their approach to name a few. presenting information on the topic. For that reason, Fortunately, in 1992, Richard Trocino, then a and since we believe that both books deserve a Novell Austin employee, took it upon himself to write prominent place in your developer’s bookshelf, this such a book: The Illustrated Guide to Btrieve. This review does not strive to tell you which of these books first Btrieve book attempted to answer questions such is better, but rather treats the strengths and as “What is Btrieve,” “Why Use Btrieve,” and “How weaknesses of each book on its own. Does Btrieve Work?”

24 Btrieve Developer's Journal Autumn 1995 The Illustrated Guide to NetWare Btrieve: easily be found in the reference manuals. The real meat of this book begins in chapter 4, The Power of Client/Server Computing “Programming with Btrieve.” Through a fairly extensive use of example source code, this book Since Btrieve is supported on so many different covers most of the necessary topics to understand how platforms (DOS, Windows, NetWare, OS/2, etc.), if I one would develop a complete Btrieve application. were going to write a reference manual on Btrieve, I The next chapter, “Advanced File Techniques,” is would pick one of them to concentrate on. I would especially enlightening, and covers chunking also pick the one used by the majority of developers operations that allow Btrieve to store and retrieve very and applications. That is precisely what Richard large records, advanced file indexing, and, since they Trocino did with The Illustrated Guide to NetWare are particularly useful in client/server implementations Btrieve. of Btrieve, extended operations. Most advanced This book is essentially a better version of the programming topics also include illustrative source NetWare Btrieve Record Manager manual that used to code examples. ship with Novell NetWare. The book was written just The remaining sections of the book include a before Novell spun off the Btrieve product line to reference covering all Btrieve operation codes (similar Btrieve Technologies, and only mentions BTI in one to those found in the Btrieve Reference Manual), 60 sentence on page 20. The reference material in the pages of C source code examples, all status codes and book is still basically up-to-date and informative. their meanings (several higher numbered status codes There are a few exceptions, however. It contains the have been added since this book was published in Novell Btrieve product list. There is a section on 1994, but those documented here are, for the most getting Btrieve help that still refers users to the part, complete and correct), and handy quick NETWIRE forum instead of the BTRIEVE forum and reference guides that I have taped over my computer. also still refers to the Novell support phone numbers. I like several things about this book, including the Also, this book was written when NetWare Btrieve fact that it has much better example code fragments was in version 6.10. Now, BTI is shipping 6.15 than the Btrieve reference manuals. I would like to see NetWare Btrieve and of course, those features new in a similar book written for Windows and Windows NT 6.15 are not covered in this book. One markedly because there is so much information that this pleasant feature of this book is the very clear NetWare-centric book cannot cover about these other illustrations (hence the name) used to make some of areas. I just wish there were a way to either freeze the details more clear. They say a picture is worth a Btrieve in one spot so a book on it would always be thousand words and in this case, they are right! up-to-date and completely accurate, or there was a The book begins, as you would imagine any book way to put the book on-line so it could change on Btrieve should, with a brief introduction and quickly. Oh well, we don’t live in a perfect world, history of Btrieve. It is clear that the author’s and I guess we have to accept some things as they are! employment at Novell before the spin-off to BTI I like The Illustrated Guide to NetWare Btrieve and it helped give him the groundwork to put together has a permanent spot on my bookshelf next to the 29 complete details of the history of Btrieve. The next or so copies of various Btrieve manuals that I have chapter entitled “Inside Btrieve” is pleasantly short collected over the years. (only 20 pages), but is enough to get across a basic understanding of how Btrieve really works. If you’re a hacker at heart, this chapter will leave you yearning The Illustrated Guide to NetWare Btrieve: for more HEX dump details. You won’t be able to The Power of Client/Server Computing write your own Btrieve page poker with this book, but you can see Jim Kyle’s Btrieve Complete for that. by Richard B. Trocino The next chapter, “Database Administration” ISBN: 0-9640897-1-8 goes into great detail on how to setup, configure and Published by Golden West Products International administrate the Btrieve NLM on a NetWare server. 15233 Ventura Blvd, Penthouse 8 Although BTI likes to tout Btrieve “set-it and forget- Sherman Oaks, CA 91403 it” approach to database maintenance, those who are Phone:818.955.7579 required to “set-it” will find this chapter useful. Price: $39.95 Again, some details of the chapter are a little out of date (the new NetWare Btrieve now has DLL-only This book is available at the special discount rate of requesters that do not require loading the DOS TSR $24.95 for subscribers of Btrieve Developer’s Journal. BREQUEST.EXE anymore), but the overall See page 4 of this issue for ordering information , or introduction is informative. Now that the Btrieve call 800-828-7438 or 615-386-3100 for additional documentation has improved, the details can fairly information.

Autumn 1995 Btrieve Developer's Journal 25 Btrieve Complete: A Guide for Developers fits into the big picture. That’s good. and System Administrators “Getting to Know Btrieve” is really the only place in this book where you can learn how to write a As opposed to The Illustrated Guide to NetWare Btrieve application. It is 70 pages in length, and Btrieve, Jim Kyle's Btrieve Complete does not covers everything from the basic Btrieve API all the presume to contain enough reference material to make way to advanced topics such as extended operations it a suitable replacement for the Btrieve Developer Kit and the differences of Btrieve when implemented on documentation. Way up on page 94 of the book, Jim various platforms. Although it covers a lot of material actually does a great job of summarizing the purpose in a few pages, it is remarkably complete (there’s that and scope of his book. He writes, “(Btrieve Complete) word again!) Because the chapter is in narrative form makes no attempt to completely replace the official rather than reference, it was able to retain my Btrieve manuals, which are replete with detailed attention longer than if it had been a detailed list of 40 examples and illustrations. Instead the purpose is to some-odd operation codes. (It’s sort of like the 10 provide a complete introduction to this record commandments... I always started daydreaming by the manager, together with a somewhat different point of time we got to number 7). view than that of its originators. The additional In the next 279 pages, Kyle demonstrates his perspective may thus help you more easily accomplished hacking abilities to the fullest extent comprehend the official manuals.” allowable by law. From “The (Undocumented) File From page one, it is evident that the author has Layout” to “Applying the Internal Details,” you will thoroughly researched his topic. I contend that the title get every bit of information (pun intended) you could of this book may have just as well been, “All You ever want about the internal operation of Btrieve. Ever Wanted to Know About Btrieve, But Were Chapter 11, “Getting the Best out of Btrieve,” is Afraid to Ask.” If you are looking for a quick filled with useful advice and tidbits about how to make overview telling you how to write a Btrieve Btrieve perform best. From page-size optimization to application, look elsewhere. If you want to have configuring Btrieve in Windows, the information is almost every fact concerning Btrieve at your disposal, useful and up-to-date. this book is for you. This book is exceptionally comprehensive, and its This is not the first technical book written by Jim laid-back style kept my attention. One comment I Kyle, and from his list of other contributions would make, though, is about its subtitle, “A Guide (Undocumented DOS, PC Interrupts, Network for Developers and System Administrators.” This Interrupts, and DOS 6 Developer’s Guide, to name a book is clearly primarily for developers. Its scope is few), you quickly learn that Jim is a true hacker at far beyond what the typical system administrator is heart. He thrives on getting deep inside his topic, looking for. As a developer, though, I like it. ² exploring how it came to be what it is, and finding out how it really works (or doesn’t work, in some cases). He has done just that with Btrieve Complete. The introduction and the first chapter, “A Brief History of Btrieve,” is rife with details that may have Btrieve Complete: A Guide for Developers gone unmentioned (and possibly unnoticed) by an and System Administrators author less narrowly focused than Kyle. In fact, by Jim Kyle chapter 2 and 3, “Database Versus Record ISBN: 0-201-48326-2 Management” and “Indexing Methods: An Published by Addison-Wessley Overview” are the best and most comprehensible One Jacob Way summaries of the nature and evolution of computer Reading, MA 01867 storage and retrieval of information that I have ever Phone: 617.944.3700 seen. Price: $39.95 It’s not until chapter 4, “Getting to Know Btrieve” beginning on page 93, that these topics are applied to This book is available at the special discount rate of the technology of Btrieve. I like that. Give me some $24.95 for subscribers of Btrieve Developer’s Journal. broad information on how filing systems have evolved See page 4 of this issue for ordering information , or call 800-828-7438 or 615-386-3100 for additional over the years, give me some background on how information. everything should work, and then tell me how Btrieve

26 Btrieve Developer's Journal Autumn 1995 Going from Two Bytes to Four Bytes Without Getting Bit

By Steven A. Mook Smithware, Inc. Email: [email protected]

FOUR-LANE INTERSTATE HAS ADVANTAGES OS/2, and Windows NT behind them, the BTI engineers have had lots of practice adapting this code to new operating OVER TWO-LANE HIGHWAY, BUT THE RULES OF systems. In the meantime, we’ll all just have to sit quietly THE ROAD ARE DIFFERENT... and be patient, as hard as that may seem. If you make it through to the end of this article I promise to give you a little taste of what we all have to look forward to when the The introduction of Windows 95 in August of this year 32-bit unified Developer Kit ships. marks a real turning point for applications developers. We’ve tested the 16-bit version of the Btrieve for Windows 95 is certainly not the first 32-bit operating Windows 6.15 client engine and the Btrieve for NetWare system; OS/2, Windows NT, and Win32s support in version 6.15 requester extensively in the Windows 95 Windows 3.x have all been around for a while. As far as environment, and both perform as expected. So it’s not as if developers are concerned, the difference between these you can’t get there from Windows 3.1. But until the operating systems and Windows 95, regardless of its Windows NT/Windows 95 Developer Kit release, you’ll relative merits, is that the huge and growing installed base have to settle for either 16-bit applications or a “thunk” of Windows 95 systems will make this operating system interface from your 32-bit app to a 16-bit Btrieve interface. impossible to ignore. In ever-increasing numbers, customers are going to demand applications which take advantage of Windows 95 capabilities. Bill Gates has hired Who’daThunk It? the Rolling Stones in the hope of starting an avalanche, so if The basic difference between a 16-bit operating system you haven’t thought through the consequences of all the like DOS or Windows 3.1 and a 32-bit operating system media hype surrounding that annoying little Start button, it’s like Windows 95 is the way in which memory is addressed. time to step up and face what passes for music in our time. Sixteen bits give you a memory segment size which is only one sixty-five-thousandth that of a 32-bit operating system. Some Good News, and Some Bad News The quantum leap in “flat” memory address space can give 32-bit applications a considerable performance advantage. It First the good news. Most everything that works in also means that 16-bit components which use a Windows 3.x will continue to work in Windows 95. Ditto “segment:offset” addressing scheme won’t play well with for DOS. That includes, for the most part, Btrieve other 32-bit components which use a “flat” memory model. applications. So there’s no real reason to panic. Granted, In order for developers to use both 32-bit and 16-bit I’ve talked with developers and users who are more than components in applications, Microsoft made available as willing to panic at the least provocation, or even entirely part of the operating system a “Universal Thunk API”, a without cause. utility which will translate the addresses of variables passed Next the bad news, and there’s naturally more of it. to a function between their “segment:offset” and “flat” Here’s the bad news about Btrieve: As I write this, BTI has representations, thus allowing both a 32-bit and a 16-bit not yet released its 32-bit Windows 95 Btrieve Developer’s component to address the same area of memory. Kit or MicroKernel Database Engine. Not that one isn’t in The problem with thunking, aside from the silly name, the works, mind you. In fact, it’s scheduled to ship in is that like most patch jobs it’s troublesome to implement. It October. But it’s late September now, and Btrieve requires creating two DLL’s — one 32-bit DLL which is Technologies engineers are still struggling with some of the called by the 32-bit component, and one 16-bit DLL other issues I’ll presently set forth. A repeat of the kind of interface to call functions within the 16-bit component. You sliding release schedule we’ve seen with BTI’s ODBC get one pair of these per application, so you’ll need to pack drivers is unlikely, since, with NetWare, DOS, Windows,

Autumn 1995 Btrieve Developer's Journal 27 everything you want to accomplish into it. The next thing which you may or may not be able to readily find 32-bit you’ll notice is that to compile a 16-bit DLL, you’ll need a replacements. You’ll either need to replace or thunk any of 16-bit compiler, and to compile a 32-bit DLL, you’ll need a your own 16-bit code, any code licensed from third parties, 32-bit compiler, more on this later. The result of all this and even, as things currently stand, most of the bells and trouble is that if you’re successful, you’ll have salvaged whistles that came with your development environment. some 16-bit parts and stuck them in as the weak link in your new, otherwise state-of-the-art 32-bit application. One Painful Example Windows 95 is naturally happiest running 32-bit First came the search for a 32-bit compiler. In the past applications. Now, to write 32-bit applications, you have to we’ve run Windows for Workgroups and Windows 3.1 on have 32-bit development platforms. Regardless of what you the workstations around our office, and used either the may have been told, these are just beginning to coalesce. Microsoft Visual C or Borland C compilers. I mentioned Let’s take Microsoft Visual C/C++ version 2.2 as an earlier that the Microsoft 32-bit compiler was a completely example, which Microsoft is currently promoting as the separate package from the more familiar 16-bit product. compiler of choice for serious Windows 95 programmers. Now I’ll mention that when you double-click the bilious Visual C/C++ version 2.2 is really two compilers, the yellow “plus” icon to start it up, you’re greeted by a whole Visual C/C++ 16-bit version 1.52 compiler and its ‘nuther development environment. This can make simple development environment, help files, libraries, and tasks like creating a new project and adding files to it (piece component gizmos, and the Visual C/C++ 32-bit, version of cake after you’ve done it a few times in the 16 bit 2.2 compiler (and it’s development environment, help files, version 1.5) something of an adventure. After wasting the libraries, and component gizmos). Far from sharing an hour or so it took to get my poor 16-bit Btrieve sample code integrated development environment, the two products don’t into a very simple project, I compiled, and was greeted by a even share the same installation disk. slew of wholly unfamiliar error messages from the compiler Then there’s Microsoft Visual Basic 4.0, which, as I and a list of unresolved externals from the linker which write this, is still scheduled for release. Also purportedly a made me wonder whether it and I were talking about the 32-bit development environment, it nonetheless shares much same set of source. As it wasn’t immediately apparent of the schizophrenia of its C/C++ namesake. It has two where I might find the project options, I decided rather to distinct modes, 16 and 32 bit. But many of the goodies switch than to fight. The Borland compiler at least which make Visual Basic such an attractive programming presented the same face in both 16-bit and 32-bit mode. environment are still 16-bit — for example, all those VBX But the 32-bit components of Borland C version 4.0 controls. You’ll still be able to use them in 16-bit were not at all happy on Windows 95. So to actually create applications, and the OCX 32-bit versions are starting to a compiled 32-bit Btrieve application, I had to run down the ship, but as a general rule of thumb you can count on the hall and install Borland C and Win32s on one of the old fact that the ones you really want will be six to twelve Windows 3.1 machines. With that done, I managed to months arriving. In short, most of the 32-bit development compile the project to a 32-bit target. options currently available still consist of a round peg and a Fortunately the project I chose for this experiment was square hole, with a little grease thrown in for the peg. dirt simple: put up a window with a standard menu and list Converting a Btrieve Application to 32-Bit box, and run an extended get operation against a name and address file to add the names of everybody in Austin, Texas Converting a 16-bit Btrieve application written in C or to the list box when the user clicks the Start menu. The C++ to a 32-bit Windows platform should be as simple as compiler tossed back a handful of parameter type warnings replacing the 16-bit Btrieve library with its 32-bit the first time through, so I went back and cleaned up the counterpart, setting a BTI_WIN_32 flag in place of the non-portable types. A little more tweaking and there it was: BTI_WIN flag the Btrieve API module, BTRAPI.C, uses to 32BTRV.EXE, zero errors, zero warnings. determine its target environment, and re-compiling the Couldn’t run it, though, since the MicroKernel application to a 32-bit target. You’re dreaming if you think Database Engine for Windows 95/Windows NT didn’t want you’re getting off that easy. to load for me under Win32s. Can’t say I blame it, A lot will depend on how portable your code was to considering. Back down the hall on the Windows 95 begin with. You’ll run into some differences between the 16 machine, I finally saw my project again in all its new 32-bit and 32 bit Windows , and you’ll probably have some glory, after only about fourteen hours’ work and two, ambiguous integer types lying around, regardless of how maybe three miles of walking between offices. The only hard you’ve tried to avoid them. You’ll probably won’t be problem was, the menu was gone. It might have been able to avoid making some minor modifications to your code something the compiler did, it more probably was — at least that was my experience. something I did, but whatever the reason, the menu was More will depend on whether or not your application gone. In this particular application that wasn’t important, depends on other 16-bit components. Most do. One of the but in a more menu-intensive program it would mean that most arduous tasks in converting an application to 32-bit will somebody would have to go in and find it again before be identifying and dealing with 16-bit components, for declaring the application successfully converted.²

28 Btrieve Developer's Journal Autumn 1995 Putting Client/Server Btrieve to Work in a Mid- Sized Business

By Skip Reardon, Solomon Software Email: [email protected]

Introduction Careful Search The scope of change on the horizon for One typical example of a move to a Windows- accounting systems at middle-sized businesses has based client/server accounting system is the been likened to a nuclear mushroom cloud. The experience of HG Fenton Companies, located in San reason is that mid-sized businesses — companies with Diego, a well-established, privately-owned company annual sales ranging from $1 million to about $100 comprised of six smaller businesses, all of which million — are just now discovering the very serve the concrete and aggregate market in the San significant benefits of client/server computing, Diego area. particularly as it relates to financial applications. The company, with about 300 employees in Accounting systems comprise the fastest-growing all, operates eight concrete batching plants and five segment of the burgeoning client/server computing aggregate plants in San Diego County. Annual sales market for good reason. Client/ for its six operating units range server computing allows optimum from $10 to $50 million. use of processing abilities in a Many companies According to MIS manager Tom networked environment, offering Fazekas, until very recently HG benefits in areas such as system are downsizing their Fenton was a Windows- performance, data security, financial systems to standardized office (running flexibility and scalability, all mostly 486DX66s with 8 RAM) important in intensive number- client/server from in most areas except for crunching operations. mini or mainframe accounting. The company was Windows-based client/server looking for a Windows-based accounting systems offer additional computers, while accounting system that allowed advantages, including integration others are upscaling it to maintain a single database with Microsoft Office and other that could be accessed and Windows software packages, so from standard PC utilized by its six subsidiary data can be shared for many companies. purposes. As a result, many LAN networks. “We were still using a 10-year companies are downsizing their old accounting system that was financial systems to client/server strictly financial,” Fazekas said. from mini or mainframe computers, while others are “All product usage, sales and inventory reports had to upscaling from standard PC LAN networks. be done through other systems. Everything had to be What all of this means to the average user is great reconciled with everything else.” In 1994, the gains in the way that data can be shared, manipulated and company began an extensive search for a new reported to provide the financial and business information accounting information system, a process that took that companies want, in a timely and cost-effective about six months. They began by researching various manner.

29 Btrieve Developer's Journal Autumn 1995 platforms and systems. issue statements by company. When invoices are “We identified 15 to 20 accounting systems received, journal entries create an automatic balancing and called the vendors with lots of questions. Very intercompany entry in the General ledger. quickly we determined that we wanted a Windows- “Our companies share customers and based system on a Novell LAN. That ruled out a lot,” vendors,” Fazekas said. “We did not want multiple Fazekas said. The selection team also knew they databases, but we wanted to be able to run the data wanted a system that would allow them to maintain a simultaneously. Solomon’s unique account/ single database that could be accessed and utilized by subaccount structure allows us to maintain one the company’s six subsidiaries. database and still function like separate companies.” Eventually the list was narrowed to four The best thing about the new technology, systems, and after in-house testing, Findlay, Ohio- according to Fazekas, is that “...even people with based Solomon Software’s Solomon IV for Windows very little computer background can make basic was selected, and a 25-user license purchased. customizations. The customization tools give you huge Solomon, a well-known name in LAN-based capabilities to make the system do anything you want, accounting, has taken a leadership position in the up to and including writing your own modules. The Windows accounting market with Solomon IV. The SQL-scope tool allows you infinite data importing, mid-range product offers a broad range of modules exporting and manipulation capability directly into the for single-user, peer-to-peer and client/server Solomon tables, if you are careful and technically installations. adept.” Written in Microsoft’s Visual Basic, Solomon Modules implemented include General IV is easily configurable for individual end-user sites. Ledger, Accounts Payable, Accounts Receivable, It is known for its very flexible, scalable and Inventory, Order Processing, Best Fixed Assets, SQL accessible open architecture, its ability to be quickly Report Writer, Visual Basic Rapid Development changed and customized without source code Toolkit, Customization Manager, Script Language, modifications, its robust SQL-based security, data and System Manager. Solomon IV is running on a integrity and high performance, and a well-designed separate file server to assure optimum performance. . According to John Kelly of LAN Sharks, Solomon IV was selected because it was the Orange County, CA, a Solomon value added reseller only Windows-based accounting system in its price called in to assist with the customization, a six-to- range which allowed HG Fenton to use the database twelve month customization and implementation as desired. It was selected in December and scheduled period is about standard for an installation of this size. to go “live” July 1. With success stories like this one becoming “We found Solomon IV to be the most more and more common, it’s no wonder that the flexible and customizable system available,” Fazekas growth of client/server accounting is set to explode. said. “It was the only Windows-based accounting So, what to look for when investigating client/server system in our price range that allowed us to use the accounting systems? database as we wanted. It is technically superior to, “Be sure the system is truly Windows more truly Windows-compliant, and less-expensive compliant, not a DOS package that runs through than competing systems.” Windows,” Fazekas said. “And you’ll want something that you can customize yourself and use for a long Custom Solutions time, so look for an open system that uses no proprietary development tools.”² Selecting the system was only the beginning, however. Customizing it to meet the company’s Solomon Software was founded in 1980 and is a leading specific needs required about another six months developer of Windows, Windows NT, NetWare and DOS- before going “live,” during which HG Fenton based accounting information systems software for middle- continued to operate its previous system. market companies. In 1995, Solomon is celebrating 15 years in the accounting software industry. The system is being designed to interface Address: 1218 Commerce Parkway, Findlay Ohio 45839 sales, inventory and delivery information into the Phone: 800-476-5666) or 419-424-0422 Fax: 419-424-3400 Solomon database to eliminate reconciling between Email:[email protected] sources. CompuServe: GO SOLOMON Customizations allow HG Fenton to run reports and World-Wide Web: http://www.solomon.com

Autumn 1995 Btrieve Developer's Journal 30 Scalable SQL. Beginning in the fall, Built on Btrieve ...Continued from page 6 Btrieve success stories will appear in Dr. Accounting News image of our products.” The “Built On Dobb’s Journal, DBMS magazine, and Btrieve” campaign focuses on companies Windows/DOS Developer’s Journal. Great Plains Adds NT that have achieved success in developing Registered Btrieve developers Support to Dynamics systems built on BTI’s Btrieve and SSQL received sample copies of all three ads, products. The Arctco story became the plus the fulfillment piece sent to those Suite initial focus when BTI and Arctco who respond to the initial ad, for use in New York, New York – Great Plains received the 1995 RealWare Award at both internal and external promotion. Software has added support for Btrieve DB/Expo. Developers who desire reprints of the ads for Windows NT to its Dynamics LAN Other ads scheduled in the series may contact Laurie Wisbrun, marketing and Dynamics C/S+ open suite of 32-bit feature the High Value Products division communications coordinator, at (512) financial applications. The announcement of North American Van Lines, and 794-1709 or by E-mail as lwisbrun@ came during this summer’s PC-Expo here. Babbages, a leading mall-based consumer btrvtech.com.² The addition broadens the range of software retailer. A fourth ad features database options for Great Plains customers by allowing them to choose between NetWare and Windows NTAS as information gathered by one application their server platforms. With this addition, BTI Developing IMN may be used in new ways by another both Dynamics LAN and Dynamics C/ application. S+ support the entire family of Windows Standard desktop environments, in addition to Each application using the standard Macintosh and Power Macintosh clients. Austin, Texas – Btrieve Technologies, will retain full control of its own data. An Inc., with support from Novell, Intel, application must register its data with the IBM, and Cheyenne Software, is creating public dictionary to allow other Platinum Accounting a standard which will allow applications applications access. Any application can Releases Platinum for to share common information (see related keep specific fields or areas within its Windows story on page 20). data private. Irvine, California – Platinum Software The planned Information BTI proposes that IMN be a vendor- Corporation this summer released Management Network (IMN) standard independent standard. Applications based Platinum for Windows, which “combines will create a public dictionary on each on competing data management engines advanced GUI desktop technology with user-site network, similar to the directory will be able to work with IMN, as will the reliability and performance of Btrieve services currently implemented by Novell those built on Btrieve. ODBC is the likely 6.15.” The upgrade, fully compatible NetWare. Any application coded to the interface to provide such independence. with previous Platinum products, includes IMN standard will be able to determine, No timetable has been announced for the System Manager, Foreign Currency using this dictionary, the locations of publication or implementation of the first Manager, and Platinum Premier information items at the dictionary site. Financials. IMN version. Anyone interested in While Platinum’s product is not the The goal of the IMN standard is to participating in the project, or wanting first Windows-based financial permit users to leverage existing data more information about it, can contact application, the company claims that it is stores, consequently reducing the amount BTI at (512) 794-1719 or E-mail to the first to provide a native Windows of duplicated or redundant information [email protected].² solution that matches the performance of kept on each network. Additionally, its DOS predecessors. To achieve this performance level, system clients offload all processing to application servers, Unified 32-bit Btrieve Engine server engine package (for NetWare or communicating by way of the LAN- for Windows NTAS). All current owners standard Btrieve database. Currently in Beta Testing of either of the version 6.15 network The new product “represents an Austin, Texas – A unified 32-bit interface server editions will receive the Windows aggressive leap forward in client/server to Btrieve engines for Windows 95 and 95 DLL as a free upgrade, however. LAN technology,” said David R. 1234567890123456789012345678901212 Proctor, president and chief operating NT was in beta test as this issue of BDJ 1234567890123456789012345678901212 1234567890123456789012345678901212 officer of Platinum. However, because goes to press, and was expected to be 1234567890123456789012345678901212 1234567890123456789012345678901212 the underlying model remains unchanged, released by mid October. According to 1234567890123456789012345678901212 1234567890123456789012345678901212 no data conversion is necessary for BTI president Ron Harris, the product 12345678901234567890123456789012Surf the Net 12 1234567890123456789012345678901212 existing Platinum 4.02 PC-LAN users, will be a single developer kit that 1234567890123456789012345678901212 1234567890123456789012345678901212 and Windows clients can be added to 12345678901234567890123456789012with BTI! 12 supports application development for all 1234567890123456789012345678901212 such systems when and if needed.

1234567890123456789012345678901212

32-bit Windows platforms. 1234567890123456789012345678901212 Platinum for Windows runs on

1234567890123456789012345678901212

The kit will not include the DLL-only 12345678901234567890123456789012Visit BTI’s new 12 Novell 3.12 and 4.1, Windows 3.1,

1234567890123456789012345678901212 requester version of WBTRCALL that 1234567890123456789012345678901212 Windows for Workgroups, Windows NT 12345678901234567890123456789012page on the Web: 12 replaces BREQUEST.EXE for these 1234567890123456789012345678901212 3.51, and Windows 95. The company can 1234567890123456789012345678901212 platforms. This DLL will continue to be 12345678901234567890123456789012http://www.btrieve.com 12 be reached at (714) 453-4000. 1234567890123456789012345678901212

1234567890123456789012345678901212 supplied only as part of the applicable 1234567890123456789012345678901212

1234567890123456789012345678901212

31 Btrieve Developer's Journal Autumn 1995 Please let us hear from you! You may address any news, comments, suggestions, derision, or praise to:

Steve Mook, Editor Btrieve Developer's Journal 2416 Hillsboro Road, Suite 201 Nashville, TN 37212 Email: [email protected] CompuServe: 71660,27461

(This issue’s mail comes from messages we found interesting recently on the BTRIEVE forum on CompuServe)

Dear BTI, As a loyal Arctic Cat rider since 1969, as well as a professional Arctic Cat racer sponsored by the Arctco race program and Black Magic Motorsports since 1990, you can probably imagine that the Arctco ad in Network World more than just caught my eye! I am currently Director of Data Processing and Telecommunications for our company that has quadrupled from 25 milllion dollars to 100 million dollars in less than 2 years. Our call centers have grown to now process over 200,000 calls/month and our inbound 800 traffic is in excess of 7000 hours monthly. We are processing over 166,000 CICS transactions per day on an IBM group 20 2.4 MIP 16 Megabyte (yes I know laser printers have more core) mainframe. We are currently pushing our data processing and telecommunications systems harder than I push Tim Berg’s 600ZRT down the 660 foot drag strip (around 6.4 seconds, improved stock - of course). We are in line for a major mainframe upgrade that will include over $600,000 of hardware/software investment. Please send me the Arctco story and let me know if I should be considering BTRIEVE as Arctco did. Thank you. John S. Perfetto, Email: [email protected] Ed Note: Your message inspired BTI to run their Arctco “Built on Btrieve” ad in this issue of BDJ. See the back cover of this magazine and contact BTI directly for a copy of the “Arctco Client/Server Case Study.”

Dear BTI, Here’s to BTI! I would just like to thank BTI for their timely and important responses to my inquries about the Windows 95/ Windows NT engines and developer’s kits. I was one of the developers who originally suggested that there should be a single engine for the two platforms, and BTI listened and produced just such an animal. When I complained about the price and lack of an upgrade option BTI came through again. As a developer, I **love** Btrieve. It’s fast, portable and BTI provides great tools for database sleuthing and repair, not to mention the technical support. Thanks again! Rob Levine, Grip Software, Email [email protected]

Dear BTI, Thanks very much for the package of brochures for my new membership in the Btrieve Solution Network. I received it just last week and have now had a chance to unpack it and go through the materials. Enclosed in the package were three purple balloon-like objects that I initially thought were some kind of packing filler. They turned out to be some kind of bean-bags. Curious, I unpacked them and showed them to my wife and child. None of us, including the 3yr old, have been able to figure out what they are. I sat them at the back of my desk for further study at a later time. Later, while taking a thinking break from programming, I picked up one of these items (What are these things called, anyway!?) I noticed that my hands couldn’t stop molding them into strange shapes. When stuck with difficult bug chasing, I seem to pick one of these do-dads up and try to strangle them. When speaking with potential customers on the phone I squeeze and mold them. When calling the IRS I throw them against the wall. When taking support calls from synaptically challenged Vice Presidents, I pound them into the desk. What are these things, anyway?! I am beginning to fear for my sanity. Are they addictive? I haven’t broken any of them yet (good or bad??) but I don’t know... Is this a conspiracy of some kind? Also: the three year old would like to know if she can eat one. John Curtis, Email: [email protected]

32 Btrieve Developer's Journal Autumn 1995