Btrieve¨

Spring 1996 Developer’s Journal Vol. IV No. 1

THE INDEPENDENT SOURCE OF NEWS AND INFORMATION ABOUT BTRIEVE AND SCALABLE SQL BTI Holds Conferences in the US, Europe Developer Conferences Showcase New Technologies, Market Opportunities, and Partnerships

Cannes, France — Btrieve Technologies company plans to position itself in both cur- speed as the guiding design principles. began the year with two well-attended rent and emerging mass markets, stressing a The ball to keep you eye on this year developer’s conferences, one stateside in commitment to its commercial developers will be BTI’s “Client/Server in a Box” strat- mid-January, and a second in Europe at the with a “Client/Server in a Box” approach to egy, particularly on the server side where end of February. Over 250 developers, con- product architecture and licensing, and a Btrieve, as the native engine for sultants, and VAR’s attended the US confer- long-range strategy to support Internet and the leading network , had ence held in Austin, Texas. Over 100 devel- intranet platforms. No mention was made of previously held a home court advantage. As opers and distributors from across Europe the “middle market” which figured so the gap widens between the out-of-the-box attended the Btrieve Technologies Europe prominently in the projections at last year’s version of Btrieve included with NetWare conference in Cannes, France. Summit conference. and the state-of-the-art releases from BTI, The conferences gave Btrieve Presentations by BTI engineering staff and as ’s hegemony in the LAN mar- Technologies a chance to outline new tech- and technology partners included seminars ket is eroded by Microsoft’s NT Server and nology directions and business plans for the on current products including the recently IBM’s OS/2 Warp Server, keeping the server coming year, and to receive valuable feed- released ODBC interface, and previews of in client/server may prove to be the most back from customers. Conference attendees new technologies such as nested transaction challenging task facing BTI over the coming came away with a first-hand preview of new processing, the Inscribe scripting language year. BTI is working to address these issues technology and marketing strategy, and an for triggers and stored procedures, and bi- in partnership with server vendors IBM, opportunity to meet and exchange ideas with directional database replication technology Microsoft, and Novell, and with the VARs colleagues and BTI engineers, support staff, slated to appear in new product releases in and systems integrators who make up the and . the coming months. The new technology Solution Network Partners. Conference highlights included presen- follows in the “built to be bundled” tradi- tations by BTI management on how the tion, with modular design, compactness and See related stories on pages 4, 15 and 28... John Scudder Executives from Btrieve Technologies met with authorized European Btrieve Distributors during the Btrieve Developer’s Conference in Cannes, France. See page 28 for complete details on the European Conference. Btrieve Developer’s Journal From the Cockpit... Spring 1996: Volume IV, Issue 1 It’s been an exciting quarter here at Btrieve Developer’s Journal and Smithware, to say the least! In November, the senior Staff members of the BDJ writing staff were in Austin, Texas to cover the second annual Btrieve Developer’s Conference. Steve Mook, Publisher: Scott Smith Jim Kyle, Doug Reilly, and I all had a great time covering the Editor: Steve Mook News Editor: Jim Kyle event and this issue of BDJ is in large part a result of what we Product Analysis Editor: Jim Barber learned there. Contributors: Doug Reilly, Jon Saunders In late February, John Scudder, Smithware’s sales and market- Technical Corner: Linda Anderson, Richard ing manager, and I represented Btrieve Developer’s Journal and Arnlold, Michael Beris, Doris Eldridge, Bo Smithware at the Btrieve European Developer’s Conference held in Holland, Sharon Kimball, Cathy Martin, Brett Cannes, France. As the weather was a bit chilly, we decided to McAnally, Chad Miller, Chris Ojeda, Jose actually attend the majority of the conference meetings, rather than Pruneda, Johnson Varughese, Shiva Waldecker, John Scudder live it up on the beach as we had originally planned. The European Laurie Wisbrun, Lance Wolfe Conference was a great opportunity for us to meet face-to-face Publisher Scott Smith poses next to Art Director: Trudy Mook French entertainment sensation with so many of the people who have helped to drive our global Photographers: Al Plotkin, John Scudder Johnny Haliday during the Btrieve business over the past eight years, and to get insights on how the Illustrator: Will Owen Europe Developer’s Conference in European market is taking shape. Circulation Manager: Cindi Gourley Cannes, France. It’s hard to tell One conclusion we brought home from both the US and Administrative Assistants: Diane Kugel, Keli who looks more washed up... European Btrieve Developer’s Conferences was that BDJ needed Jackson, David Babcock to focus primarily on “developer” related issues. For a while during the formative years of BDJ, we Subscriptions debated whether we needed to focus on the Btrieve user as heavily as we focused on the Btrieve developer. But, after all, this is “Btrieve Developer’s Journal” and not “Btrieve User’s Journal.” It Annual subscriptions are for four issues per has become clear, not only from our experience of having worked with many of you over the years, year at $49/year for delivery inside the but also from what we learned through interaction with developers at the conferences, that you real- and Canada. ly do dig our down-and-dirty articles on development and technical issues. So, that’s what you can Back Issues: Back issues are available for continue to expect, right here in the pages of BDJ! $20.00 per issue. Contact Cindi Gourley at Another thing you will begin to notice will be more contributions from those who are driving (615) 386-3100 for additional information. the Btrieve technology of the future: Dale Hunscher with behind-the-scenes information about the Advertising development challenges of the BTI ODBC Interface Kit, Mark Andress on how his com- For information about advertising your product pany ThinkNet is helping to shape database or service in Btrieve Developer’s Journal, call replication technology for the next generation Carolyn Lighty, Advertising Manager, at (800) of Btrieve, and others. 685-2403 or (201) 712-0044. At any rate, you’ll begin to notice more How to Contact BDJ and more in our magazine, that we will live up to the “Developer” in our name. Btrieve Developer’s Journal 2416 Hillsboro Road, Suite 201 Nashville, Tennessee 37212 Telephone: (615) 386-3100 Contents... Facsimile: (615) 386-3135 CompuServe: 73173,2731 Austin Developer’s Conference Inside Btrieve - ODBC Email: [email protected] Jim Kyle covers the Btrieve Developer’s Doug Reilly looks at Btrieve’s latest interface Internet: http://www.smithware.com Conference in Austin, including an inter- option, ODBC ...... 21 Btrieve Developer’s Journal (ISSN 1071-7463) is published quarterly by Smithware, Inc. 2416 Hillsboro Rd., Suite 201, view with Mr. Kogo Shinohara and Mr. Nashville, TN, 37212-5318. Subscriptions are $49 per year for delivery in the US and Canada. Yoshio Tanahashi of Btrieve . . . . . 4 New Technology - Nested Postmaster Product Analysis Transactions Doug Reilly explores the nether world of Send address changes to: Btrieve Developer’s Journal, Jim Barber reviews SupportAbility configu- 2416 Hillsboro Rd., Suite 201, Nashville, TN, 37212- 5318. ration maintenance software and looks at nested transactions ...... 26 the PowerBASIC DLL Compiler...... 8 Second Class postage paid at Nashville, TN, Permit #013665.

Copyright© 1996 by Smithware, Inc. All rights reserved. With the exception of the “Technical Corner” section, this Btrieve For Windows NT European Conference publication is produced independently of Btrieve Technologies, Inc. Jim Barber takes a real-life look at Btrieve Scott Smith covers the Btrieve European No part of this publication may be reproduced in any form by any means without permission in writing from the publisher. Developer’s Conference ...... 28 Smithware is a trademark of Smithware, Inc. in NT ...... 12 Btrieve and XQL are registered trademarks and Scalable SQL, Xtrieve Plus and Microkernel Database Engine are trademarks of Btrieve Technologies, Inc. All other names are the trademark of their respective manufacturers. Technical Corner Smithware Tech Talk Information and insights from BTI . . . . . 13 Smithware Product News and Tips . . . . 30

Spring 1996 Btrieve Developer’s Journal 3 user count licensing for server Developers Building on Btrieve at engines, long a key concern of major users, is in the pipeline. Using elec- Austin Conference tronic keys or alternatively physical Austin, Texas — Several hundred surpassed only by Oracle’s 21 percent. diskettes, instant user count upgrades Btrieve developers from at least three Ron Harris, BTI president, then intro- will be available on an additive basis. continents gathered in Austin this past duced the management team to the Licensing will be based on worksta- January for the 3-day Btrieve group. New faces included Ted tion IDs rather than on the potential Developer’s Conference, and observed Doucet, VP of sales, Marc Marshall, number of connections, allowing the future first-hand. Key BTI person- VP of engineering, and Rich Stroum, smaller user counts for specialized nel explained in detail many of the VP of tech support. International rep- applications even when installed on features to be added later this year resentatives when the next version of the included MicroKernel Database Engine appears Kogo in Btrieve and SSQL (scheduled for Shinohara, late 1996 delivery). president of Developers began arriving at the Btrieve conference site, the Stouffer Technologies Renaissance hotel in northwest Austin Japan, and (only a few blocks from the BTI Patrick offices), during the afternoon of Duboisset, Sunday, January 14. Upon registration, European each received a black canvas laptop general man- bag crammed with a complete confer- ager. ence agenda. The bag became essen- Harris tial equipment as each session added announced more information sheets. A barbecue BTI’s busi- party that evening served to welcome ness priorities Al Plotkin the crew to Texas. for 1996 as Over 250 developers from around the world gathered at the Stouffer BTI Chairman Nancy Woodward growing the mar- Renaisance Hotel in Austin for the three-day Btrieve Developer Conference. officially opened the proceedings on ket for commercial applications, large networks. Monday morning with her State of expanding the international business, Automated installation tech- BTI report noting that all goals and enabling Internet communication. niques, hinted at in Holland’s presen- announced at the 1994 Summit con- A new slogan, “Client/Server in a tation, became much more real later in ference had been reached or sur- Box,” made its appearance (BTI the conference when South Wind passed. A noteworthy accomplishment claims it as a trademark) and popped Design demonstrated its was that BTI has become the second up repeatedly in subsequent presenta- Supportability/BTI package. most popular foreign DBMS vendor in tions. Holland told the group to expect Japan with 20 percent of the market, Following Harris’ presentation, file support up to 64 GB, nested trans- product mar- actions, TCP/IP requesters, and high keting direc- performance ODBC interfaces, in tor Bo coming versions. He listed the plat- Holland form rollout sequence for the new fea- expanded on tures as NetWare first, followed by the new slo- Windows 3.x, NT, and 95/NT in that gan’s theme order, with DOS fifth and the while reveal- OS2/Warp server bringing up the rear. ing the prod- Other platforms are under considera- uct directions tion but not yet added to the schedule. for the next Not all platforms will get all proto- generation of cols, however; DOS will continue to Btrieve tech- support IPX/SPX only, while OS/2 Al Plotkin nology. will handle only TCP. Melissa Edwards from Vision Consulting discusses BTI’s plans for the coming year with Storm Garcia at the BTI Developer Conference. Simplified Finally, Holland described the See Austin on page 6...

4 Btrieve Developer’s Journal Spring 1996 Austin ...Continued from page 4 cross-network data interchange tech- Btrieve Technologies Japan: Moving Ahead nology goal that will enable applica- How did Btrieve become the second most popular foreign DBMS product in tions to share data to a much larger Japan? We found the question fascinating and while at the conference arranged a degree than is now possible. luncheon meeting with the key people making it happen, to find out more about Following the initial group ses- Btrieve Technologies Japan. We wanted to know how the company came into sion, attendees scattered to a number existence, and where it expects to go in the next year or two. of simultaneous presentations at more Present were Ron Harris, BTI president; Kogo Shinohara, BTJ president; detailed levels. In one of these, chief Yoshio Tanahashi, president of AG-Tech Corporation and a principal of BTJ, architect Andras Budinsky and Btrieve Steve Mook, editor of BDJ, and news editor Jim Kyle. Over pasta, we discussed product manager Dewitt Gimblet BTJ’s history and described new features of the naviga- hopes. tional model, giving a technical JK: How did this overview of the features coming in the come about, and next version of the MKDE. These where do you plan include replication, a scripting tool, to go from here? nested transactions, and increased file RH: It goes back size limits. to a time before In another session, Ajay Bhargava SoftCraft was and Paul Antosh demonstrated perfor- acquired by mance of the new ODBC drivers and Novell. In 1986 described the technology involved. Yoshio translated Other demonstrations filled the sched- version 4 of Btrieve into ule for the first two days; space here Japanese. It took Left to right: Jim Kyle, Mr. Kogo Shinohara, Mr. Yoshio Tanahashi isn’t adequate to describe it all. him five months. At that time, Oracle wasn’t available for PC use, and dBase did- In between the presentations and n’t support network operations. general sessions, conference attendees YT: I did not translate the software itself, just the SDK so that developers could had plenty of time to visit with each use it. At that time every PC in Japan had its own version of Basic, so our primary other and with BTI notables. A vendor localization was to support these local languages. AG-Tech continued supporting fair Monday afternoon gave everyone Btrieve until Novell-KK took over in 1991/92. a chance to learn about third-party RH: Did the product support Japanese network software? support (and to collect souvenirs, such YT: There was no Japanese version of NetWare before 3.10; we wrote our own as BTI’s purple stress-relief squeeze- Japanese shell to support networking before NetWare 3.11. We used the English version of Btrieve in its VAP form until NetWare 3.11j was released in 1991. bags and Novell’s NetWare4 caps). Novell became the exclusive supplier for Japan in late 1992, and AG-Tech became Magic Software Enterprises main- a reseller and provided technical support. We also did the testing for new Btrieve tained an open demonstration area, versions. and hosted a party Tuesday evening. RH: How did the Japanese market accept Btrieve? A highlight of the Tuesday’s gen- YT: When Novell purchased SoftCraft in February 1987, Btrieve was not popular eral session was presentation of the in Japan. By 1990 it had some popularity, but after NetWare 3.11j (in 1991) the BTI Champion award to Arctco, Inc. program became much more popular. Ray Koukari, Information Services KS: Borland Japan was established in 1991 and I headed its marketing. My main director for Arctco, accepted the competitor at that time was Btrieve. Of course Kiri was the most popular data- award from Ron Harris. base... YT: Kanri Kogaku was the first company to have a Windows database, with its The final day’s session wrapped Kiri program. Many people in Japan liked the Crystal Reports we had in Btrieve, up all the details and put the proceed- but some traditional people did not like it. The reporting format is quite different ings into perspective, then adjourned between worldwide and Japanese users. For example, Japanese people like lines at noon leaving exhausted participants and borders very much. The handling of lines and borders in Crystal is not very the afternoon in which to start their good. Kiri supported lines well. journeys home. SM: Did Oracle offer you much competition then? The BTI participants, however, YT: Oracle announced a Japanese version in 1991, but targeted the Unix market. weren’t finished; they repeated the NTT (Nippon Telephone and Telegraph) imported Oracle but never released it. show the next month in Cannes, RH: How did things go after Novell Japan took over the product? France, for their European customers. YT: Novell Japan did not market Btrieve at all. However AG-Tech continued to advertise and sell to small developers and corporate users. In Japan we have a BDJ publisher Scott Smith attended kind of computer that is neither desktop nor true networking: we call it the “office that meeting and reports it separately.

6 Btrieve Developer’s Journal Spring 1996 computer.” It has from two to 10 . Novell wanted to replace these... KS: There may be a decrease but they are still popular. SM: What are the main uses of Btrieve in Japan? YT: The top three accounting packages are Obic (Obic Business Consultants), PCA, and Milky Way. Obic uses Btrieve, and almost 50 percent of the PCA installations use Btrieve. JK: How did BTJ come to be? RH: Nancy Woodward visited Yoshio in October of 1993, and I went to see him in December of that same year. We discussed plans then. BTI was incorporated in January 1994, and the following June I spent two weeks in Japan studying the market. I looked at 100 companies during that time. KS: I left Borland Japan in July 1994. RH: We announced the formation of BTJ in late March 1995. As in BTI itself, Novell is a stockholder (through Novell Japan), and Microsoft Japan is another partner. KS: We maintain a small office in Tokyo, and immediately started work on the 6.15 translation. We began shipping Btrieve 6.15j for DOS in June 1995, and the Windows NT version in September. DOS still accounts for 30 percent or so of the market in Japan. SM: Where do you want to go from here? RH: We want to develop the Solutions Network in Japan, and take the “Client/Server in a Box” there. All new code we’re writing now here in Austin is DBCS (double byte character set)-enabled to make it easier to localize for Asian markets. We’re not using Unicode, though, because DOS does not support Unicode. And we have a lot of utilities to ship. Our challenge is to get all new technology to a baseline of having been translated once. Then we will incrementally move forward. YT: Windows NT almost dominates the market in Japan already. Novell KK has only about a 40 percent market share. Since Microsoft Japan includes a coupon offer for our NT server with their 3.51j Windows NTAS package, starting in January 1996, the outlook for Btrieve Japan is very strong. KS: We are now shipping Japanese versions of new Btrieve packages within 90 days of their release in the U.S. and hope to reduce that time. RH: At BTI we have a goal of shipping for all platforms within 30 days after the first release. When BTI left Novell’s fold we had some 45 employees. Today the figure is over 100, and including all contract personnel is nearly 130. The same kind of opportunity exists in Japan. JK: Thank you all very much. It’s been an enlightening luncheon!

Btrieve Save Developer’s Journal $30

2416 Hillsboro Road, Suite 201 Nashville, Tennessee 37212 Start Your Subscription or Renew Today Phone: 615.386.3100 Fax: 615.386.3135 and Get Special Subscriber Discounts! Please send me a one-year, four-issue subscription to Btrieve Developer’s Journal ($49) for delivery within the US & Canada, $79 elsewhere). I am: Take advantage of special subscriber discounts on Btrieve A new subscriber Complete and The Illustrated Guide to Netware Btrieve. Renewing my subscription for another year (4 more issues) These two great reference books should be part of every Btrieve and Scalable SQL developer’s library. They contain Please send me Btrieve Complete for only $24.95 a wealth of up-to-date information, including tips for Please send me The Illustrated Guide to Netware Btrieve for only $24.95 understanding, configuring, and programming the Btrieve Name ______record manager. For a limited time, you can save up to $30 Address ______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, ______a $15 savings off the cover price. Buy both, and save $30!

Please charge my: Visa MasterCard American Express Offer good only in conjuction with new subscriptions and renewals. Book will be Card# ______Expires______shipped when payment is received. Limit one copy of each book per subscriber. Signature ______

Spring 1996 Btrieve Developer’s Journal 7 Btrieve for Windows v6.15 Btrieve for Windows NT / 95 v6.15 Btrieve for Windows NT Server Edition v6.15 Scaleable SQL for Windows v3.01 Client for Btrieve for Windows NT Server v6.15 Scaleable SQL for Netware v3.01 ODBC Interface for Windows v1.0

by Jim Barber, Crystal Linen, Inc. E-mail: 75230,[email protected]

If there were a single word that could be used to give some- one an impression of the computer industry, the word “change” would be a prime candidate. The last four years or so have seen the industry re-invent itself several times, and I’ve seen no indica- tion lately that things are slowing down. Btrieve is no exception to this, with new versions of old products, new products, and even new platforms showing up all the time. After the analysis is complete, you can view the results on-screen, or refer Version control, and duplicate (or missing) files are real to one of two report files that the program generates. problems for both a vendor’s support personnel and the end user these days. We’re going to look at a product that offers some According to the README file included with the software, relief for this ailment, and it’s specifically designed to work with they are considering including Btrieve for OS/2 v6.15 and the Btrieve on Windows platforms. ODBC Interface for in a later release. Once you’ve selected a configuration, you can either choose to perform an analysis centered around a specific application that SupportAbility/BTI (beta release) may be giving you trouble, or to do an overall analysis. After the analysis is complete, you can view the results on-screen, or refer to one of two report files that the program generates. In a nutshell, SupportAbility/BTI’s purpose in life is to Both the on-screen report and the files contain a lot of infor- examine your finely-honed Btrieve installation, (on a variety of mation that can be used to troubleshoot a Btrieve installation. platforms) and report any potential problems it may find. One of the most common problems in a Btrieve installation is Although our review copy was the version, it is multiple or mixed versions of Btrieve components, and it seems available in several different configurations, including server and to do a pretty fair job of ferreting these out. In fact, the program workstation, and also as a ‘toolkit’ to allow software vendors to contains file version and date information, and if you click the perform their own ‘support magic’ from inside their products. ‘Details’ button, it will actually display the differences between what it found, and what it ‘expected’ to find for a given file. Installation/Removal Jim Says: Not a problem. Simply choose ‘Run’ from either File Manager or (Windows 95) Explorer, type “A:\SETUP”, then I don’t know if it’s a personality quirk or what, but occasion- press Enter. SupportAbility will install itself, and create icons. ally a product will come along that “challenges” me to break it. This is what we’ve all come to expect from well-behaved SupportAbility/BTI pushed my button, so I gave it the nastiest Windows programs at installation. One of these icons happens to challenge I could think of: my personal development machine. be for un-installing the program, which is what we should expect I’m quite confident this machine represents the worst the industry (and, in fact, demand) from well-behaved Windows software. I’m could offer, since I install, remove, and modify programs daily, putting so much emphasis on this because although most new have both Windows NT and Windows 95 loaded, and use several Windows 95 packages include an un-install feature, few Windows different Btrieve configurations. Well folks, not only did it not 3.1 programs do, and this one does. ‘Nuff said. break, it (quite calmly, I thought) went through and identified the version problems, duplicate files, and other nightmares I knew Operation were there, and a few I didn’t know about. Having passed Barber’s Hairball Test, it’s OK in my book. After ‘launch’, the you’ll be presented with a list of potential There are only a couple of things I would like to see configurations to choose from. As of this (beta) release, supported added/changed: configurations are :

8 Btrieve Developer’s Journal Spring 1996 ¥ Add an option to print the report(s) to a window, and then the additional option to send that data to the printer. • From the ‘View’ menu, make ‘All Problems’ the Update Data, Tech Notes, default, rather than ‘Errors Only’. Now Available

Austin, Texas — Six detailed reports that list current patch PowerBasic DLL Compiler levels for all Btrieve platform packages, describe how to configure Btrieve for multiple applications, and show the latest revision levels for all BTI products, are now available What does this product have to do with Btrieve? Well, that for download from the BTI forum on CompuServe. depends on you. If you’re a BASIC programmer, I doubt you First distributed to attendees at the recent Btrieve would argue that Visual Basic has been to ‘wannabe’ Windows Developer Conference, the documents are in Microsoft BASIC programmers what wheels have been to cars. With regard WinWord 6.0 format. To retrieve any or all of them, GO to Btrieve, I would bet that the majority of new Windows/Btrieve BTRIEVE at any CompuServe prompt to reach the forum, applications to hit the market in the last couple of years have then search Library 4, The Reference Shelf, for these file been written in Visual Basic, as opposed to all the combined ver- names: BTRPARMS.DOC describes how to configure for sions of C++. multiple applications; DCMATRIX.DOC is a table that The availability of third-party add-ons from Smithware, shows filename, version, file date, and size for the current Classic Software, and others has made it a very attractive and versions of all BTI products. The other four files describe productive platform for the Btrieve developer. Quite simply, it current patches for the various available platforms; all are named BxUPD.DOC, with the “x” replaced by a single let- works, and, in most cases, VB is fast enough. But what about the ter that specifies the platform. For MS-DOS packages, the cases where it isn’t? I expect that about here someone will raise letter is “D” while the NetWare NLM’s file uses “N.” Data the Delphi banner. Fair enough. But what if it were possible to for the OS/2 platform uses the letter “O” and Windows take your existing BASIC code, and have it run as an equal packages (3.x, 95, and NT) use “W.” among the C++ and Delphi apps? Now you can. When downloading the files, be sure to use a “binary” The PowerBasic DLL Compiler (PB/DLL) is, simply, a protocol; attempting to retrieve WinWord documents as BASIC compiler for Windows. It accepts ASCII source files as “text” files invariably renders them unusable. If you don’t input, and spits out remarkably fast DLL’s and EXE’s in very have WinWord, Microsoft makes available a free reader short order. It does not have a fancy GUI, a forms builder, wiz- that will display the documents. Also, Windows 95 users ards, or extensive help screens. It does compile BASIC code, and can use either QuickView or WordPad to look at WinWord supports in-line assembler code as well. documents. If you’re a purist, you can create your own Windows app from the ground up; creating your own windows, writing the message loop, etc. What most of us will use it for is to enhance our VB programs by writing critical or time-consuming code into SuperNova 4GL Works With DLL’s, or Dynamic Link Libraries. This code can then be called from a VB program in exactly the same manner as a ‘C’ DLL, or Btrieve Data a Windows API call. To summarize, build your forms, controls, and event handlers in VB, then use PB/DLL to do the loops, file- Edison, — Four Seasons Software has thrashing, and other things that would normally be slow in VB. announced a series of flexible configurations, user-based The result? Fast, marketable code with the shortest development pricing and enhancements for its enterprise 4GL, cycle possible. All written in BASIC. SuperNova. As of this writing, PB/DLL is available in a 16-bit version The line starts with SuperNova desktop, priced at only, which means that it is directly compatible with VB 3.0, and $990. This package allows a single user or workgroup the 16-bit version of VB 4.0. The folks at PowerBasic assure me developer to build graphical or character-based applications that they are working feverishly on a 32-bit version, and will get using local data files such as dBase, Btrieve or flat ASCII it out ASAP. files, on the PC. For client/server needs the company has Supernova You’ve no doubt noticed that this ‘analysis’ hasn’t followed Client/server Classic, with development licenses starting at my normal format for such things. I’m not going to show pic- $2,490. This product supports development of client/server tures, (nothing to see) or get into the details of the product. The applications with mixed database access. bottom line is that it’s a ground-breaking product, and one that I The SuperNova Server, also starting at $2,490 for a believe will have an enormous impact on VB programmers development license, supports developers using dumb ter- everywhere. minals, X-terminals or Motif. It offers support for SQL I’ll leave you with a small example: I’ve worked very hard . over the last couple of years to write a small, efficient, Btrieve At the top is Supernova Enterprise Client/server, source-code interface for VB. I think it’s a good one. In about 8 intended for developing mission-critical applications in hours, I was able to port it to PB/DLL, and now it is small, effi- complex environments with application partitioning. This cient, and very, very, fast. Mission accomplished. Good job, package is priced from $4,980. guys.

Spring 1996 Btrieve Developer’s Journal 9 Btrieve Configuration Problems Solved BTI, Backup Vendor, Join Forces New Product Addresses Btrieve, Scalable SQL, and Austin, Texas — BTI and Cheyenne Software, Inc. have ODBC Configurations formed a strategic relationship to manufacture and distribute a shrink-wrapped client/server package that combines BTI’s Nashville, Tennessee — Smithware, Inc. has introduced two new Btrieve 6.15 client/server database engines and Cheyenne’s products aimed at helping Btrieve developers and users properly setup and configure the various files associated with Btrieve, ARCserve 6 for NetWare. The product bundle will provide Scalable SQL, and the Btrieve OBDC Interface Kit. Novell NetWare computing environments with a robust tape Smithware SupportAbility for Btrieve searches a computer’s dri- backup solution. ves for Btrieve components and prepares a report detailing possi- With the Btrieve/ARCserve bundle, users will benefit from ble configuration conflicts. SupportAbility suggests the proper Btrieve 6.15 enhancements that include enhanced data caching versions of associated files required for a Btrieve application to and improved file integrity. The improvements enhance the data execute properly, helping the application user to diagnose and fix protection during online backups or in the event of a server sys- potential conflicts. tem failure. The bundle also includes BTI’s Windows(tm) DLL There are two versions of Smithware SupportAbility for requester, which loads dynamically as needed and thus elimi- Btrieve: SupportAbility Pro for Btrieve and SupportAbility Lite nates the need for static allocation of real mode memory on for Btrieve. Smithware SupportAbility Pro for Btrieve is workstations. designed for developers who wish to customize or to distribute “Cheyenne is known throughout the industry for best-of- the SupportAbility product to end users of their Btrieve or breed backup and restore solutions for NetWare,” said Ron Scalable SQL enabled applications. SupportAbility Pro can be Harris, BTI’s president and CEO. “This partnership underscores customized to maintain setup and version information about all our success in building world-class database engines that are modules used by an application, in addition to those used by built to be bundled in high volume, client/server applications, Btrieve. Source code in Visual Basic, Delphi, and Visual C++ for enabling our partners to deliver a new class of fully integrated, the SupportAbility Pro front end is included. Smithware client/server solutions that install and execute right out of the SupportAbility Lite for Btrieve is a single-user runtime version box.” of SupportAbility for users who simply want to verify, manage “We are pleased to offer our customers the enhancements and report on Btrieve configurations. included in Btrieve 6.15,” said Jim McNiel, Cheyenne’s execu- “We are excited to have such an innovative product that can tive vice president of Corporate Development. “With this solve so many Btrieve configuration problems,” said Scott Smith, agreement, we are providing our customers a fully integrated Smithware president. “Over 50% of our own technical support client/server solution with improved data management capabili- issues can be resolved much more quickly with SupportAbility ties, maintenance-free operations, high performance and scala- for Btrieve. And with SupportAbility Pro, Btrieve developers bility.” have a very nice, customizable configuration utility to easily add to their products and greatly improve their product support.” SupportAbility for Btrieve was developed by South Wind Design Oracle Announces Btrieve Competitor of Ann Arbor, Michigan. The company has been developing Btrieve-enabled applications for many years, and did consulting Redwood Shores, California. — Oracle has introduced a work recently for Btrieve Technologies, Inc. during the develop- potential competitor for Btrieve and SSQL at the lower end ment of their ODBC Interface Kit. of the DBMS price range, with its Personal Oracle Lite BTI anticipates using SupportAbility to assist in their own software priced at $199 per user. The target market, technical support. Rich Strom, vice president of technical support according to Denise Leahy, director of product manage- for BTI said, “We expect SupportAbility to assist us to quickly ment for personal technologies at Oracle, consists of diagnose and resolve client/server configuration issues.” mobile computer users who have less than 1MB of RAM According to Dale Hunscher, President and CEO of South and 10MB of hard-disk space available. Wind Design, and chief architect of SupportAbility, customer ser- While the product will allow corporate data access, vice is one of the biggest issues that shapes a company’s image and will eventually (but not initially) update server-based and reputation in the industry. “I am confident that these tools data, it lacks many features found in the Personal Oracle 7 will significantly reduce the burden of customer support. Not product. For instance, missing are distributed updating only can they reduce direct support costs, they can also help capabilities, local security, distributed queries, support of increase product revenues through heightened customer satisfac- PL-SQL and concurrency support. tion,” said Hunscher. However, the new product does include Oracle Smithware SupportAbility Pro for Btrieve ($149.95) and Objects for OLE, together with various object-data types Smithware SupportAbility Lite for Btrieve ($79.95) are both and ODBC drivers. Personal Oracle Lite will run on available directly from Smithware, and are also available through Windows 3.1, Windows 95, and Windows NT platforms, as the Smithware Authorized Distributor Network. A white paper well as on the Apple Macintosh and PowerMac. entitled “Supporting Software Products Based on Shared You can contact Oracle at http://www.oracle.com or by Components on Windows 3.1, Windows 95, and Windows NT calling (415) 506-7000. Platforms” is available as document number 65 on the Smithware FAX-On-Demand at (615) 386-3139, or from Smithware’s Web page http://www.smithware.com.

10 Btrieve Developer’s Journal Spring 1996 BTI, Magic Software, has been a natural synergy between both the companies and their prod- Form Alliance ucts,” said David Assia, chairman and Primavera Enhances president of Magic Software. SureTrak Project Austin, Texas — At the start of the “Together we are delivering a toolkit January conference, BTI and Magic that provides unsurpassed perfor- Manager Software Enterprises, Inc. announced mance and scalability for the rapid formation of a strategic alliance to development of client/server applica- Bala Cynwyd, Pennsylvania — Prima- develop and market a bundled toolkit. tions.” vera Systems Inc. has enhanced its The bundle will consist of BTI’s Magic is a highly productive, SureTrak Project Manager for Windows Scalable SQL and Btrieve database table-driven rapid application devel- 1.5 with a multitude of features. engines plus Magic’s development opment tool for building client/server SureTrak 1.5 is a low-end ($299) pro- tools. applications. Based on a visual pro- ject management package for those who This new toolkit will make avail- gramming methodology, Magic is need to monitor projects having hun- able to developers an integrated solu- highly portable across all standard dreds of tasks. tion for rapid development of high- computing environments, from legacy The list of enhancements includes performance applications that can systems to LAN workgroups. Many “wizards” to help managers set up pro- scale from palmtop to client/server of the world’s largest Btrieve applica- jects initially, e-mail connections for environments. The partnership tions are developed in Magic at orga- communicating with project members includes joint technical development nizations such as Whirlpool, Inc., and collecting project data, and instant and product integration. The two Keyport Life Insurance and localization for any of 22 different lan- companies also plan to increase their VisionTek. Magic has won numerous guages. SureTrak uses Btrieve for its global reach and market penetration development awards, including the , allowing users to export through international co-marketing Client/Server Applications Challenge data to a variety of report generators and channel development programs. (UK), and four consecutive victories and databases. “This partnership emphasizes at the annual International Droege Existing users of SureTrak can BTI’s commitment to offer world- Developers Competition (USA). In upgrade for $99. System requirements class database engines bundled with the most recent Droege competition, are 4MB RAM, 15MB hard disk space, leading application development the top five finishers all used Magic. and Microsoft Windows 95, NT, or 3.x. tools,” said Ron Harris, president and Due to BTI’s advanced You can reach Primavera Systems at CEO of BTI. “Developers need a MicroKernel Database Architecture, (800) 423-0245. solution that will allow them to build the toolkit will also allow developers multi-platform, maintenance-free to create relational and navigational applications. For the commercial applications that concurrently share developer, that solution must be access to all data. BTI Product Specs licensed for mass deployment. This No schedule for release of the new bundled toolkit delivers it all.” package had been announced by press Featured in DBMS “Since Magic’s inception there time. CD-ROM Redwood City, California — Btrieve BTI-IBM Pact Attracts He went on to characterize Btrieve as Technologies spec sheets and white a “flat file database” while calling papers on the company’s products were Industry Attention SSQL BTI’s “relational product.” among the goodies featured in the sec- Paul Krill’s report in the ond edition of DBMS magazine’s Nashville, Tennessee — The agree- December 11, 1995 issue of Buyer’s Guide and Client/Server ment between BTI and IBM to port InfoWorld seemed a bit more objec- Sourcebook CD-ROM. Btrieve into the OS/2 Warp Server tive, noting that IBM could have a The disk, included with the January has attracted considerable attention in strong motivation for bundling 1996 issue of the magazine, also con- the general computer trade press, but Btrieve with OS/2 Warp Server to tained a database of more than 43,000 the coverage has underscored just convince NetWare sites to migrate to U.S. five-digit zip codes, Netcom’s how poorly that segment of the media Warp Server rather than to NetWare NetCruiser, and Dvorak Development’s keeps up with desktop data-oriented 4.0 or Windows NT. Krill also noted NavCIS Pro, preconfigured for the issues. that Btrieve is the “dominate data- DBMS Forum on CompuServe. Also on For example, in reporting the base on NetWare LANs” but, like the disk were a variety of document agreement in the January 15, 1996 Willett, consistently referred to the viewers, including Microsoft’s Word 6.0 issue of Computer Reseller News, product as a “database” rather than as viewer, Adobe’s Acrobat 2.1 viewer, the Shawn Willett identified Btrieve as “a a database engine. PowerPoint 4.0 slide viewer, and low-end database” while going on to Microsoft Video for Windows 1.1. say that many accounting and other packages are built on top of Btrieve.

Spring 1996 Btrieve Developer’s Journal 11 Life with Btrieve for Windows NT

By Jim Barber, Crystal Linen, Inc. E-mail: [email protected]

I’m putting on the corporate hat for this one folks. In far, I’ve obviously been in the “silver lining”. There are a the context of this article, I’m the hard-bitten NT bigot that few black clouds, as well. As far as I can tell, the Microsoft most of you suspected, but could never prove. DOS network client does not support SPX. So, no Btrieve The trumpets fanfared, the spotlights swiveled, and the for the DOS-only boxes. If someone could prove me wrong CEO just spoke. “The mainframe must go!” We could argue on this, I’d be eternally grateful. For those I haven’t had the the various points for hours, but then it wouldn’t help or opportunity to insult yet, let me repeat something I’ve said change anything, would it? The leather chair has spoken, before: If it runs under DOS, it’s days are numbered! and it shall be so. And specifically regarding Btrieve for Windows NT: Choice number one: Well, the letter-opener isn’t sharp TCP/IP is not currently supported. Pilgrims returning from enough, and you hate fluorescent lights, gray paint, and iron Austin have testified that BTI has committed to it this year, bars anyway. but I have yet to hear it from them. If you want it, let them Getting back to reality, you’ve seen the market sway know! from host-based systems to client-server. To make it worse, There is no positive way to programmatically detect if now it appears that it’s swinging back with the ‘sudden’ a file is in use by a client. This becomes a factor if your discovery of the Internet, or perhaps “host-side” computing batch processes require exclusive use of files. We’ve gotten would be a better way to describe it. Don’t despair! We’re around that by the liberal use of error traps in the batch pro- gonna do it with courage, flair, and Btrieve/NT, of course. grams, and by implementing a file-based “concurrency con- OK, Btrieve I’ll go along with, but why on NT? Well, trol” system. call me a control addict, but I can control what happens on It is not currently optimized for multi-processor opera- an NT server much better than I can the ‘other brand’. I can tion, and is available only on the i386 (Intel) platform. I’d write my batch programs with the same tools that I write really like to see it ported to the Alpha, if nothing else. the workstation programs with, and then run them on either OK, you’ve worn us down (or out). Anything else? As the server or workstation. That’s scalability, folks! positive as I am about this platform, it needs to be said that Obviously, running your Monster File Thrashers on the what we’ve accomplished with it did not come without server gains a lot. Reliability is a major factor, but the one cost. We’ve had to write many, many lines of code to “work that impresses the boys at the club is speed. In highly tech- around” things which are taken for granted in mainframe nical terms, they smoke. Even the folks in Redmond are environments. An example of this is the concurrency-con- beginning to acknowledge that few companies can afford trol system I mentioned above. I try not to be too hard on the latest and greatest on every desk, but you can afford to BTI when talking about these issues, simply because the buy the best-horsed server possible. concept of using PC’s for jobs that have been historically You talk a good line, but I’m still not convinced. Hard done on midrange and mainframe computers is a new one, to please, huh? Let’s talk about getting something for your and it’s going to take a while before vendors like BTI (and money. My lowly single-CPU (P120, 48mb) server is pro- even Microsoft) come to terms with it. viding client/server Btrieve, serving HTML pages, process- To finish up, let me describe a low-impact way to try ing email, and running a terminal gateway, as well as han- this out. You probably have at least one machine at hand dling our batch processes. It also runs all the basic TCP/IP that can run NT. Assuming you already have the services, including FTP, daytime, etc., and handles routing Developer’s Kit, buy a 10-user copy of Btrieve for between two of our networks. One box, many functions. Windows NT, and a copy of the 32-bit development envi- And perhaps the best part is that when the infrequent crash ronment of your choice. If you’re not comfortable with has occurred, it’s been because of human error, not some C++, try Visual Basic 4.0. (32-bit, Standard is fine). Learn vague fault in the operating system. about Win32 and try running Btrieve on it. You may just Uh-huh. Roses and champagne. Where’s the beef? So grow to like it.

12 Btrieve Developer’s Journal Spring 1996 BTRIEVE TECHNOLOGIES TECHNICAL CORNER

SPRING 1996 SUPPLEMENT TO BTRIEVE DEVEOPER’S JOURNAL

Q&A BTRIEVE FOR NETWARE UPGRADE

Btrieve for NetWare is a high perfor- are available to all registered users via the COMM.DLL. The following list of DLLs mance, reliable, client/server database maintenance release. Check with Btrieve are all required to run a Windows Btrieve management system used by thousands of Technologies Technical Support via application: applications around the world. Btrieve CompuServe, fax, or phone for information Technologies has been shipping Btrieve for on obtaining the latest patch revision. WBTRCALL.DLL 42K 6/16/95 NetWare v6.15 since March 1995. This WBTRVRES.DLL 4K 4/19/95 version provides improved performance, How do I run a DOS application with WBTICOMM.DLL 7K 5/23/95 improved data file integrity, a Windows Btrieve for Netware v6.15? TLI_WIN.DLL 15K 6/08/94 DLL Requester, a 32-bit Windows The configuration for a DOS applica- TLI_SPX.DLL5 2K 6/08/94 NT/Windows 95 Requester and several tion running with Btrieve for NetWare NWCALLS.DLL other enhancements. The need to stay up v6.15 is very simple: load the BRE- NWIPXSPX.DLL to date with current technology and gain QUEST.EXE DOS TSR before starting the NWLOCALE.DLL 38K 11/2/93 the benefits of the latest release brings with DOS application. You can load BRE- it the task of providing your users with the QUEST from the workstation’s AUTOEX- All of these DLLs except for NWCALLS proper configuration to run all their EC.BAT file, but we do not recommend and NWIPXSPX are included with the Btrieve-based applications simultaneously. that you load it from a NetWare login Btrieve for NetWare v6.15 package. This Q & A explains the migration process script. Most applications load BREQUEST NWCALLS.DLL and NWIPXSPX.DLL are so that you can run your applications with from the batch file that is used to start the provided by Novell; the latest versions of the most current and best performing ver- application. these components are available for down- sion of Btrieve for NetWare. The configuration for running a DOS load from Novell’s CompuServe forum and application in a DOS session on a Web site. What component differences exist Windows 3.1x, Windows NT, or Windows To run a Windows Btrieve for between Btrieve for Netware v6.10c and 95 workstation is basically the same as Windows application, place the DLLs list- Btrieve for Netware v6.15? running the application under DOS. ed above in the application’s working The components for Btrieve for Simply load the BREQUEST TSR in the directory, the WINDOWS\SYSTEM direc- Netware v6.15 are all the same as they are DOS session before starting the applica- tory, or a directory in your path. Also, you in Btrieve for Netware v6.10c. You use the tion. You should not load BREQUEST should have a BTI.INI file in your WIN- BSTART command to load the Btrieve before Windows, or in the AUTOEXEC.NT DOWS directory with the following set- NLMs at the server. The configuration or AUTOEXEC.BAT file in order to run a tings: parameters specified in BSETUP for DOS application in a DOS session. You BTRIEVE and BSPXCOM are also the same must load BREQUEST in the same DOS [Btrieve] between the two versions. The main dif- session with the application. If you are local=no ference between the 6.10c and vv6.15 running multiple DOS applications simul- Requester=yes components is in the Windows Requester taneously in separate DOS sessions, you DLLs. Version 6.15 provides a Windows must load BREQUEST in each DOS ses- When you invoke the Windows appli- DLL Requester rather than a DPMI DLL sion. cation, Windows automatically loads the Requester, thereby eliminating the need to DLLs. The most common cause of prob- load Brequest before Windows in order to How do I run a 16-bit Windows applica- lems with this Requester configuration is run a 16-bit Windows application. Also, tion on Windows 3.1? the existence of older versions of WBTR- Btrieve for NetWare v6.15 provides sup- The Btrieve for Windows Requester CALL.DLL that Windows finds and loads port for Windows NT and Windows 95 included with Btrieve for NetWare v6.15 is before finding this new version. Make workstations running 16-bit or 32-bit a DLL-only Requester. Unlike previous sure your workstations’ local drives and applications; Btrieve for Netware v6.10c versions of the Windows Requester, you your network drives do not contain any does not provide Windows NT/Windows are not required to load the DOS old versions of this DLL. 95 workstation Requesters. Requester BREQUEST.EXE before starting Since Btrieve for NetWare v6.15 is a Windows in order to run a Btrieve for How do I run a 32-bit Windows product which is shipping, maintenance Windows application with the client/server Application on a Windows NT or releases are available for this version. configuration. However, there is now an Windows 95 Workstation? Some components required for certain additional DLL required which handles the After the release of Btrieve for Net- configurations may not have been avail- communication to the server which was Ware v6.15, Btrieve Technologies released able at the time this product shipped, and formerly handled by BREQUEST: WBTI- a 32-bit Windows Requester that supports

Spring 1996 Btrieve Developer’s Journal 13 W32BTICM.DLL port is available via the Internet and Q&A CONTINUED... W16NR.DLL (Windows 95 only) CompuServe; Internet messages can be W32NR.DLL (Windows 95 only) sent to [email protected], and CompuServe messages can be posted in both 16-bit and 32-bit Btrieve for Windows Instead of having WBTRCALL use the BTRIEVE forum. applications running on a Windows NT or WBTICOMM for server communications, Windows 95 workstation. You may need you can instruct WBTRCALL to pass its to contact Btrieve Technologies technical calls to WBTRTHNK.DLL, which then uses support to get these components, if you the 32-bit Requester components ODBC INTERFACE received a Btrieve for NetWare v6.15 box (WBTRV32 and W32BTICM) to handle the that shipped prior to this Requester update. call. To do this, add a line to the BTI.INI REQUESTER STRATEGY The new DLLs used in the 32-bit file in the workstation’s local Windows Requester configuration are WBTRV32.DLL directory so that it appears as follows: and W32BTICM.DLL. In addition, the As developers or users of database Novell component NWCALLS.DLL must be [Btrieve] applications, we require options in our available when using this Requester config- local=no data processing environments. The uration. To run a 32-bit Btrieve for Requester=yes MicroKernel Database Architecture pro- Windows application, place these DLLs in thunk=yes vides a unified foundation for the data- the application directory, the WIN- base engine products of BTI. A primary advantage of this architecture is that it DOWS\SYSTEM directory, or a directory With the thunk option enabled, the enables applications that use different from which Windows NT or Windows 95 local and Requester options are ignored; data access methods to share common loads DLLs. There is no INI file that needs WBTRCALL passes all Btrieve calls to data. As an example, ODBC applica- to be set in conjunction with this WBTRTHNK and on to the 32-bit tions designed to take advantage of the Requester; the WBTRV32.DLL reads con- Requester components. The W16NR and ODBC access method can integrate with figuration information from the worksta- W32NR components are only required existing Btrieve and Scalable SQL appli- tion’s registry. The default configuration when running a 16-bit Btrieve for cations without any change to the data- used by the DLL is equivalent to the 16-bit Windows application on a Windows 95 base. INI settings Requester=yes and local=yes. workstation. Also, since the 32-bit com- In line with this multi access strate- With these settings, the Requester handles munication component is being used in gy, BTI has introduced the ODBC Interface Requester License which is a all access to files located on the NetWare this configuration, the new BSPXCOM. companion product to the Btrieve and server. NLM v6.15.824 must be running at the Scalable SQL Client/Server engines. The You must also make a change in the server. ODBC Interface Requester License server components to support Windows works with both the Btrieve and Scalable NT and Windows 95 Requester access. You Q. How do I run a 16-bit and 32-bit SQL Client/Server Engines for NetWare must load a new BSPXCOM.NLM Windows applications on a Windows NT and Windows NT. Product licensing v6.15.824 instead of the original 6.15.1 or Windows 95 Workstation? structures are based upon the licensing version. This new BSPXCOM is included Combining 16-bit and 32-bit Btrieve guidelines for the current client with the Requester update. Also, depend- for Windows applications on a Windows requesters that ship with both the Btrieve and Scalable SQL Client/Server Engines ing on your network architecture, you may NT or Windows 95 workstation is very for NetWare and Windows NT. The need to load this new BSPXCOM.NLM simple: just follow the configuration ODBC Interface Requester License pro- with a new parameter: Maximum SPX instructions for running a 16-bit Windows vides an unlimited client requester Receive Packet Size (-r). This parameter application on a Windows NT or Windows license for all workstations accessing the defaults to 576, and should be set to 95 workstation from the previous section. licensed server. match the value used by your topology This provides all the appropriate compo- Included in the ODBC Interface (maximum is 4096). For example, in an nents for the 16-bit application(s), which Requester License are the ODBC ethernet network, load BSPXCOM with a includes the components needed by the Interface Reference Manual, ODBC -r=1500. 32-bit application(s). It does not matter in Interface for Windows v1.0.1, ODBC which order the applications are started; Interface for Windows 95 v1.0.1, and a requester license agreement. Priced at Q. How do I run a 16-bit Windows you can start either the 16-bit or the 32-bit $295 (U.S. LIST), the ODBC Interface Application on a Windows NT or application first. Requester License-like BTI’s Btrieve and Windows 95 Workstation? Btrieve for NetWare v6.15 provides Scalable SQL Client/Server Engines, is When running a 16-bit Btrieve for you with a high performance, reliable sold through all BTI Solution Network Windows application in a 32-bit environ- environment for you to run your Btrieve channels. ment like Windows NT or Windows 95, a applications. The process of migrating With the ODBC Interface Requester different Requester configuration is your network from previous versions to the License, developers and users now have required. The 16-bit TLI DLLs used by the current version of Btrieve for NetWare is the option of running native Btrieve, 16-bit Windows Requester do not work very simple, as long as you understand the native Scalable SQL or ODBC applica- tions that leverage and access the same properly in a 32-bit environment. Instead, types of applications you need to support, database, thus providing easy integration a combination of the 16-bit and new 32- and the proper configuration for those of popular ODBC applications like bit components is required. applications in the various workstation Access and Crystal Reports into their The following DLLs must be made environments available today. If you existing Btrieve and Scalable SQL available on the Windows NT or Windows encounter problems during the migration, Client/Server configurations. 95 workstation: contact your application vendor for assis- tance. You may also contact Btrieve Brett McAnally WBTRCALL.DLL Technical Support by calling 1-800- Scalable SQL WBTRVRES.DLL BTRIEVE (1-800-287-4383) or 1-512-794- Product Manager WBTRTHNK.DLL 1719, or by sending a fax to technical sup- WBTRV32.DLL port at 1-512-794-1778. Electronic sup-

14 Btrieve Developer’s Journal Spring 1996 THE 1996 BTI DEVELOPER CONFERENCE A FOCUS ON PARTNERSHIP

Austin, Texas — BTI’s 1996 Developer Complementing these technical ses- BTI’s Solution Network Partners program Conference, held January 15-17 at Austin’s sions were several presentations on BTI’s also helped underscore the important work- Stouffer Hotel, provided ample evidence of future strategies and overall vision. In a ing relationship between the company and the company’s growth. There were 250 par- presentation attendees found particularly its developer partners. ticipants from around the globe, up 150% valuable, BTI President / CEO Ron Harris Most important of all, though, was the from the 100 who attended last year’s spoke about the company’s value proposi- substantial personal interaction. This one- Summit. What’s more, so successful was tion — “to deliver world-class database on-one communication — occurring in the conference that more than 70% of engines built to be bundled with high-vol- receptions and parties, in informal jaunts to attendees gave it an overall rating of ume, client/server applications” — and Austin’s famous 6th street entertainment dis- “Excellent,” and comments generally articulated BTI’s plans for enabling next- trict, and simply during breaks and meals echoed one participant’s view that it was generation “Client/Server in a Box” prod- — gave the 50+ BTI’ers who were there a “the most professional conference I’ve ucts. Similar strategic addresses by BTI Co- chance to put faces with the many names attended in years.” founder, Nancy Woodward, Product they had heard over the years and vice A primary reason for attending such an Marketing Director, Bo Holland, and VP of versa. It helped establish a concrete, spe- event is, of course, to enhance one’s techni- Engineering, Marc Marshall, helped create cific sense of the kinds of improvements cal skills with new information and state-of- the sense that participants were, in the BTI’s customers hope to see in coming the-art development strategies. The BTI words of one attendee, becoming “partners months. Most of all, as one attendee put it, conference attendees had plenty of opportu- and not just customers.” this vital interaction gave participants a nities for that, with over 20 breakout ses- Indeed, this feeling of partnership was sense that “the company cares and is listen- sions on topics ranging from replication, to key to the success of the conference — and ing to its developers and partners.” BTI’s ODBC Interface, to new features of the it was fostered not just in the talks by BTI’s Certainly there is no more effective for- navigational model and building scalable leaders, but in Case Study sessions in which mula for success. Already, preliminary applications. Specific sessions explored the customers described their successful use of plans are underway for the 1997 confer- exciting changes and enhanced architec- BTI technologies, through lively interactive ence, which promises to reflect the growth tures of upcoming releases of BTI’s Btrieve “birds-of-a-feather” product discussions, of the vital partnerships established this and Scalable SQL technologies. Others and at an 18-company vendor fair featuring January. offered a host of practical tips on transac- demonstrations of products from BTI’s part- tion processing, configuration management, ners and key tool vendors. Presentations on distributing database logic, and more.

WHO’S WHO AT BTI

sales of the database products through the keting and sales background focused on top National Reseller and Distribution launching high technology businesses and organizations. products. Julie Jones Prior to Novell, Jones was responsible Before joining BTI, Holland guided for the sales and marketing of Radian’s Citrix’ successful transition into the net- Director, expert system development tool through a work market. He developed a remote network of resellers and the implementa- control/remote node concept which culmi- Channel tion of promotional programs for Radian’s nated with Novell’s adoption of the tech- Marketing PC-based software products. nology. Prior to his tenure at Citrix, Jones has a B.B.A. in Marketing from Holland served as Business Development Lamar University. Manager for Universal Computer Systems. With extensive experience in Channel The company’s first international division Management and Marketing, Julie Jones is was launched under his direction. Holland responsible for BTI’s Distributor and also managed marketing and sales activi- Country Reseller relationships in North ties for Universal. America and Rest of World and directs the Bo Holland Holland has a B.B.A. in Finance and implementation and administration of the Small Business Management from Baylor Solution Network Authorization (SNAP) University. Program. Director of Prior to joining BTI, Jones spent 5 Product years in Novell’s Database Products Marketing Division driving the implementation of marketing programs designed to increase the awareness of its’ database products through Novell’s vast reseller channel. As BTI’s Director of Product Jones was responsible for marketing and Marketing, Bo Holland has a strong mar-

Spring 1996 Btrieve Developer’s Journal 15 INTERNET STRATEGY/CLIENT/SERVER IN A BOX™

BTI’s mission is to build world class application minimizing the level of complexi- Examples of BTI partners: database engines built to be bundled with ty and expertise required to install the appli- high volume, client/server applications. The cation. Application configuration manage- • Help desk application integrating focus is on enabling commercial developers ment utilities further simplify the installation with network management system. to build low maintenance, client/server appli- process by automatically identifying potential cations that can be sold to a large number of conflicts among shared components (old ver- • Help desk accesses NMS database organizations at price point significantly sions of requesters, engines or Windows dll’s) to gather configuration information on lower than the organizations could build the that may cause problems. caller’s workstation. NMS notes that a applications internally. Client/Server in a Box The database must be “stealthy” such new application was installed on the represents a shared value economic model that the user is not exposed to the complexity user’s workstation the prior day. similar to the model Microsoft brought to of the client/server technology driving the desktop applications. Microsoft Office is a application. In addition, the client/server in a • Help desk debugs and identifies an perfect example of a personal productivity box database must provide high perfor- incorrect version of a Windows .dll application that cost millions to develop, but mance, high reliability and require no main- The help desk then signals NMS to the cost is shared by many users that gladly tenance. Scalable SQL and Btrieve 6 repre- install the correct dll on the caller’s trade $350 for a multi-million dollar software sent the careful and deliberate blend of these system. The help desk then accesses the package - that is shared value. requirements making them the leading candi- accounting database to enter a charge BTI is enabling thousands of Indepen- dates for this next generation of client/server for the call for internall billing purposes. dent Software Vendors (ISV), Value Added and internet applications. Resellers (VAR), Systems Integrators (SI) and • Help desk debugs and identifies a resellers to apply the shared value economic Client/Server in a Box™ incorrect version of a Windows .dll model to client/server applications today. Client/Server in a Box delivers the power of Developer Commercial • Help desk then signals NMS to Products Developers client/server computing to mass markets at an install the correct dll on the caller’s affordable price and low cost of ownership. system. Key requirements include ease of instal- lation, maintenance and support. BTI’s • Help desk then accesses the Client/server in a Box technology enables accounting database to enter a charge developers to embed both the workstation for the call for internal billing purposes. and server database components such that C/S Application the application and client/serer database Buyers become one. The client/server database com- ponents are installed seamlessly with the Server Reseller Products Channel

SCALABLE SQL V4.0 BETA PROGRAM

Btrieve Technologies, Inc. (BTI) is cur- allowing applications to call precom- ODBC interface. rently recruiting applicants for participation piled subroutines which are processed • IPX network protocol support pro- in its beta test for the upcoming version of by the database engine. Supports vides improved network performance the relational database product-Scalable SQL. ANSI standard SQL and Visual Basic and increased reliability over Wide Beta testing, for qualified applicants, is compatible stored procedures. Area Networks (WANs). scheduled to begin in April of 1996. If you • Triggers enforce business rules at the are interested in becoming a beta tester for database level by initiating a user Other New Features BTI, simply call Ann Derrick at (512) 794- defined stored procedure when speci- • Additional Windows utilities 1673 and request a copy of the Scalable SQL fied update events occur. Supports improve ease-of-use and include v4.0 Beta Questionnaire or download a copy ANSI standard SQL and Visual Basic Monitor, Administration, and Main- from CompuServe at the BTI forum (GO compatible triggers. tenance tools. BTRIEVE) in library 2. Completed question- • Very large file support increases the naires can be faxed to BTI at (512) 794- Cost-based Optimization maximum database file size from 4 1778. Applicants will be selected based on • Statistical analysis improves query gigabytes to 64 gigabytes. the information obtained from the question- performance by determining the • TIMESTAMP, UNSIGNED, and CUR- naire. fastest access plan. RENCY data type variables are com- Scalable SQL v4.0 offers several new • Enhanced fetch algorithms provide patible with Visual Basic and features including new data types, transaction more efficient data access. Access™ data types and make appli- processing enhancements, stored procedures, cation integration more seamless. triggers, Visual Basic™ scripting, cost-based Transaction Processing Enhancements optimization, support for very large files, and • Nested transactions allow transac- IPX requesters. tions to be composed of small sub- transactions and minimize the time New Feature Highlights for Scalable SQL required for rollback operations. v4.0 • Full transactional logging records all operations on a database in a single Programming Extensions log file, improving both transaction • Visual Basic™ Compatible Scripting durability and logging performance. provides an industry standard lan- guage for developing routines that can Standards Enhancements be executed directly or from within an • Open Database Connectivity application. (ODBC) provides an industry standard • Stored Procedures improve perfor- data access mechanism for Windows mance and reduce network traffic by applications via a high performance

16 Btrieve Developer’s Journal Spring 1996 TECHNICAL INSIGHTS

Status Code 91 with Btrieve for Windows Status Code 95 with Btrieve for Windows all IPX/SPX sends from the Windows NT NT, Server Edition NT (Server Edition) server. Btrieve for Windows NT, Server Edition Btrieve for Windows NT, Server Edition The second method is to set the v6.15 v6.15 VirtualNetworkNumber in the Windows NT REGISTRY to a non- zero value. To You may receive a Status Code 91 You may receive a Status Code 95 reach the VirturalNetwork-Number, run from your workstation when attempting to when attempting to target a Btrieve for REGEDT32 and take the following path: target a Btrieve for Windows NT Server Windows NT Server using the Btrieve using the Btrieve Requesters. In some situ- requesters. The problem is usually the HKEY_LOCAL_MACHINE\System\CurrentControlSet\ ations, the workstation may appear to hang result of the SPX drivers changing network Services\NwlnklPX\Parameters\VirtualNetworkNumber instead of returning a Status Code 91. This frame types when trying to resend a net- may happen when the network frame type work packet. There are four steps to resolve You can also reach the Virtual- that SPX uses on the Windows NT Server this problem: NetworkNumber as the Internal Network does not match the network frame type Number shown in the Control Panel, that SPX uses on the workstation. 1. Determine which network frame Network, NWLink IPX/SPX Compatible Network frame types on the Windows type your Local Area Network is Transport dialog box. NT Server are specified in the Control using. In most cases, this is either Running the NWLink IPX/SPX- Panel, Network, NWLink IPX/SPX 802.2 or 802.3. Compatible Transport dialog box can reset Compatible Transport dialog box. the VirtualNetworkNumber to zero under Network frame types on a Windows 2. Set “NWLink IPX/SPX some circumstances. Setting the Virtual- for Workgroups workstation are specified Compatible Transport” to Manual NetworkNumber apparently only affects in the Network Setup, Drivers, IPX/SPX Frame Type Selection and select the the size of the SPX network packets. Compatable Transport, Setup dialog box. appropriate frame type. Select only Network frame types on a DOS work- one frame type. Do not use Auto Incorrect number of records returned on a station using the Novell ODI drivers are Frame Type Detection. STAT operation. specified on the Protocol IPX entry of the Btrieve for Windows NT/ Windows 95 Link Driver section of the 3. Restart the Windows NT server. v6.15 NET.CFG file. There are six steps to resolve this problem: 4. Restart the workstation and retry When issuing a B_STAT operation, the the Btrieve operation(s). number of records value is incorrect. This 1. Determine which network is caused by an alignment problem in frame type your Local Area Network is Status Code 97 with Btrieve for Windows Visual Basic 4.0, 32-bit edition. In Visual using. In most cases, this is either NT Server Edition Basic, 32-bit edition, long variables are 802.2 or 802.3. Btrieve for Windows NT, Server Edition aligned on even word boundaries. The v6.15 Number of Records variable in the STAT 2. Set “NWLink IPX/SPX Compatible data buffer structure is a long and is Transport” to Manual Frame Type You may receive a Status Code 97 aligned on word boundary. The solution to Selection and select the appropriate when attempting to target a Btrieve for this problem is to not use long variables. frame type. Select only one frame Windows NT Server using the DOS To do so, use a four (4) byte string instead type. Do not use Auto Frame Type Requester. The problem usually occurs of a long variable type. You can then con- Detection. because the Windows NT IPX/SPX driver is vert the string into a long, which will hold 3. Restart the Windows NT server. sending larger network packets than the the correct information. Btrieve DOS Requester is able to receive. 4. Restart the workstation and retry Two methods exist to force the Windows Status Code 29 on a CREATE operation the Btrieve operation(s). NT IPX/SPX driver to use a network packet with more than one index. size that the Btrieve DOS Requester can Product Btrieve for Windows NT/ Windows 5. If the problem persists, configure receive. 95, v6.15 the frame type at the workstation. The first method is to set the IPX/SPX MaxPktSize in the Windows NT REGISTRY If you try to issue a CREATE operation For Windows for Workgroups worksta- to 576 decimal or 240 Hex. To reach the with more than one key defined, you tions, specify the correct frame type via the MaxPktSize, run REGEDT32 and take the receive a Status Code 29. This only occurs Network Setup, Drivers, IPX/SPX following path: in the 32-bit edition of Visual Basic. Visual Compatable Transport, Setup dialog box. Basic aligns long variables on even word For DOS workstations using the HKEY_LOCAL_MACHINE\System\CurrentControlSet\ boundaries. The solution to this problem is Novell ODI drivers, specify the correct Services\ NwlnklPX\NetConfig\ \ to not use the long variable type in the frame type on the Protocol IPX entry of the MaxPktSize KeySpec structure. To do so, use an inter- Link Driver section of the mediate variable. Using a four (4) byte NET.CFG file. You can find more information about string in place of the long and then con- modifying MaxPktSize in the document verting the string into a long solves the 6. Restart the workstation and NETWORK.WRI on the Windows NT problem. retry the Btrieve operation(s). v3.51 CD. Modifying MaxPktSize affects

Spring 1996 Btrieve Developer’s Journal 17 b. Login name USER1 and USER2 Btrieve for Windows NT Server Edition on Fetching and End-Of-File Log in to the workstation and/or the server and on each of the two Scalable SQL, All Platforms, v3.x preferred server using Login name Windows NT workstations, can each of USER1. Then log in to the Btrieve these machines access all data? When issuing Scalable SQL XQLFetch server using Login name USER2. A: Yes. If any machine accesses data on calls in a loop to fetch records for a previ- USER1 does not exist on the Btrieve any other machine in this setup, it goes ously compiled SELECT statement, it server, so the Btrieve operation fails through the requesters. If the data is local, appears that XQLFetch returns the end of and you receive a Status Code 94. it uses the engine running locally. file status (Status Code -109) before return- ing the last record(s). For some SELECT 2. If the 32-bit communication SET BLANK and xChar() Effect statements, Scalable SQL is able to inform module, W32BTICM.DLL (formerly Scalable SQL, v3.01 the application that it has reached the end known as NTBTICOM.DLL), is missing of the file when it returns the last records from the path, the Btrieve Requester When a blank replacement character on an XQLFetch call. For other SELECT returns Status Code 94 to the applica- is defined for a Scalable SQL session, table statements, Scalable SQL does not return tion. names and field names that were previous- the end of file status until an additional ly defined with that character can not be XQLFetch call is made after all the data is 3. If Limit Concurrent Connections is accessed during that session. For exam- returned. set to Yes and Maximum Connection ple, if the table TEST_TABLE is created, When developing an application is set to (a) On a Novell Server using and then the SQL statement SET BLANK = using XQLFetch, check the value of the the Account Restriction Option under “_” is executed, an attempt to access lCount parameter (the number of records Syscon, the requester returns Status TEST_TABLE will returns a Status Code returned in the bDataBuf parameter) after Code 94 to the application. The 204 - Table Is Not defined in the each call that returns a Status Code 0 or a Maximum Connection must be set to Dictionary. Similarly, attempting to access Status Code -109. If lCount is greater than at least (b) The reason for this behavior a field that was defined with an under- 0, then your application should process is the 32-bit Btrieve Requester uses score in its name will return a Status Code the records returned in bDataBuf. Then, if the NetWare Runtime Support. 207 - Field Does Not Exist in the the status of the XQLFetch call was not 0, Therefore, the MicroKernel Database Dictionary. the application should terminate the fetch- Engine performs a login using the In the same manner, if an application ing loop. username and password passed to it calls the xChar Primitive function, table via the 32-bit Btrieve Requester. This names and field names that were previous- Status Code 94 Using the 32-bit Btrieve means the user must have permission ly defined with the specified blank re- Requester to at least two concurrent logins to the placement character cannot be accessed Btrieve for NetWare, v6.15.x NetWare server. during that session. The solution is to use a blank replacement character that is not You may receive Status Code 94 (per- Btrieve for Windows NT Server Edition being used in any table names or field mission error) when using the client/server Capabilities names in the dictionary being accessed. Btrieve for NetWare with the 32-bit Btrieve Btrieve for Windows NT, Server Edition Requester for Windows NT/Windows 95. v6.15 Cannot run NDBMON from Scalable SQL There are three solutions to this problem: v3.x if using Btrieve v6.15. Q: I have the Btrieve for Windows NT 1. The 32-bit requester always uses the Server Edition. If I install it on a Windows NDBMON.NLM suddenly stopped MicroKernel Database Engine’s run NT workstation, can I access my Btrieve working when a customer upgraded to time server support to check a client’s files on that workstation using the Btrieve Btrieve for Netware v6.15. Customer rights to a file. To do so, it uses the server engine or do I need to use the wanted to use NDBMON instead of BTR- username used to log in to the pre- Btrieve for Windows NT/Windows 95 local MON. Older versions of NBDMON do not ferred server or to log in to the work engine? work with Btrieve v6.15. To use the SQL station to verify if the client has the A: You can access files locally using the monitor, users must upgrade Scalable SQL proper rights and privileges to access Btrieve for Windows NT Server Edition. as well. the Btrieve files on the targeted Btrieve server. You must ensure that Q: If I install the Btrieve for Windows NT Running Btrieve for DOS and Windows the username you use to log in to your Server Edition on a second workstation, under OS/2 workstation or to log in to the pre- can I access the files locally and remotely? ferred server exists on the Btrieve serv- A: Yes. To access data locally, the Btrieve Btrieve will often return Status Code er, and that user must have the appro- server engine running on 20 or Status Code 91 when trying to run priate rights to access the files. the first workstation opens the file. To BREQUEST.EXE in a DOS box under OS/2 access the files on the second workstation 2.11 or Warp. Use the file IPX.SYS as a For example: (remote access), the request is sent to the reference for the applied patches on your MicroKernel Database Engine on the sec- operating system. You must check in the a. Login name USER1 Log in to the ond workstation via the Btrieve for \NETWARE\ directory for IPX.SYS. This workstation, preferred server, and Windows NT Requester (WBTRV32.DLL, file must be dated 5/15/95 or later. The Btrieve server using login name W32BTICM.DLL) R211FT.EXE patch will date IPX.SYS to USER1. As long as USER1 has the 5/15/95. The OS2C1.EXE patch will date proper privileges to the Btrieve files, Q: If I am running a network with a server IPX.SYS to 8/8/95. The current patch is the file access is successful. and two workstations, and I install the OS2C2.EXE with a 1/96 date and is avail-

18 Btrieve Developer’s Journal Spring 1996 able for download from Novell’s Novfiles Server Engines, v6.15.x 2. From the “Control Panel” select forum on CompuServe. “Network” and double-click on “IPX 32-bit Protocol for Novell For SPX sessions, the OS/2 worksta- What do you need to run a DOS Client 32” tion should have proper IPX and SPX application from a Windows NT entries in the NET.CFG file. The following command prompt using the Btrieve DOS 3. Select the “Advanced IPX is an example: Requester? Page”. NW16.EXE and VWIPXSPX.EXE must ECB COUNT = 20 4. From the “Primary logical board” DATA ECB COUNT = 89 be loaded prior to loading BREQNT or select a “valid frame type” and restart BREQUEST. We recommend you load the computer. netbios them from AUTOEXEC.NT. These files are sessions 256 located in the WINNT35\SYSTEM32 Microsoft Access & Btrieve directory. NetWare Requester directory services on You can also install them from your Q: Sometimes I get “Error encountered preferred server name Windows NT Installation CD. Use the net- while using Btrieve DLL” when accessing work icon from the control panel to verify Btrieve files from MS ACCESS. How can I Protocol stack IPX NWLink IPX/SPX compatible transport is avoid this error? sockets 256 installed. You can use the add software A: If Btrieve is loaded on the server, Protocol stack SPX button to install this software. From the increase the number of IPX sockets in RETRY COUNT=30 DOS command prompt, load BREQNT or NET.CFG; Novell defaults to 20. ABORT TIMEOUT=1000 BREQUEST. SESSIONS 256 Q: When using Microsoft Access with SPX CONNECTIONS 256 Link Driver 3C5X9 Novell Client 32-bit for Windows 95 Btrieve, I get “Btrieve is out of resource”. Frame Ethernet_II All Btrieve Requesters What does that mean? Frame Ethernet_802.3 A: If Btrieve files are compressed, turn the Protocol IPX 0 Ethernet_802.3 The Btrieve Windows 95 Requester compression on, with the /U parameter in Protocol IP 0800 Ethernet_II Protocol ARP 0806 Ethernet_II returns a Status Code 91 when using BTI.INI or WINI.INI Btrieve option line. incorrectly configured Novell Client 32-bit show dots=on drivers. There are four solutions:

Running the DOS Requester from 1. Determine the frame type used Windows NT for IPX communications at the client. Btrieve for NetWare and Btrieve for NT,

BTI AUTHORIZED CHANNEL PARTNERS

AUSTRALIA INDIA SLOVENIA Fagan 61-3-9699-9899 Integra 91-80-225-0073 OPAL 386-64-632-359

BANGLADESH ISRAEL SOUTH AFRICA Applied Computers 880-2-833-647 Mashov 972-3-752-0190 SYS:COMM 27-11-886-7812

BELGIUM ITALY SWEDEN IQN 32-16-502-381 A&B 39-10-277-0530 Linsoft 46-13-111-588 OPC LAN 39-2-287-0083 Scribona 46-8-734-3400 BRAZIL OSSAE-KOMI 55-21-987-9676 JAPAN SPAIN AG-Tech 81-52-951-2706 5 Generacion 34-1-639-4611 CROATIA Novell Japan 81-3-5481-1161 Danysoft 34-1-663-8683 SYS Informacijski 385-41-615-223 KOREA THAILAND CZECH & SLOVAK REPUBLICS Suntek 82-2-715-4796 Thaisoft 66-2-682-6222 Abakus 42-2-245-10942 SWS a.s. 42-67-798-1025 MOROCCO TURKEY Novatec 212-2-942070 Finnet 90-212-643-5651 FRANCE Micro Sigma 33-1-4622-9988 UNITED KINGDOM Artefact 31-15-617-532 Southdown House 44-1-306-877998 System Science 44-1-71-833-1022 Compu-Shack 49-2631-9830 POLAND Sienersoft 49-6126-5950 ABC DATA 48-2-633-7011 UNITED STATES/CANDA SOS 49-821-257-820 Junisoftex 48-32-130-69-33 GATES/Arrow 800-332-2222 Programmer’s Shop 800-421-8006 HUNGARY RUSSIA Tech Data 800-237-8931 3Soft 36-1-212-2552 ELCO 7-095-131-5555 Walton Networking 36-1-267-9010 Lanit 7-095-267-3038 R-Style 7-095-903-0058

Spring 1996 Btrieve Developer’s Journal 19 FILES AVAILABLE ON COMPUSERVE CURRENT VERSIONS

Btrieve Data Management Products The following is a list of some recently uploaded files from BTI’s Btrieve Engine for DOS...... 6.15 CompuServe forum. They are in descending order by date. The first file Btrieve Developer Kit for DOS...... 6.15 is the most recently uploaded file and teh last file is the oldest. Btrieve Engine for Windows...... 6.15 FILENAME LIB SIZE DESCRIPTION Btrieve Developer Kit for Windows...... 6.15

MILESTON.TXT 2 2062 BTI MILESTONES: Summary of all major BTI Btrieve Engine for OS/2...... 6.15 accomplishments Btrieve Developer Kit for OS/2...... 6.15 BNUPD.DOC 4 13824 Btrieve for NetWare v6.15 Patch Release Notes Btrieve Engine for Windows NT/Windows BOUPD.DOC 4 11264 Btrieve for OS/2 v6.15 Patch Release Notes 95...... 6.15 BWUPD.DOC 4 17408 Btrieve for Windows v6.15 Patch Release Btrieve Developer Kit for Windows Notes NT/Windows 95...... 6.15 BDUPD.DOC 4 17920 Btrieve for DOS v6.15 Patch Release Notes BTRPARMS.DOC 4 17408 Configuring BSTART when Mulitple Applications Btrieve for Netware Server...... 6.15 are Involved Btrieve for Windows NT Server...... 6.15 DCMATRIX.DOC 4 19968 Component matrix for Btrieve and Scalable SQL Scalable SQL Relational Data BTCRXT.EXE 10 193191 BTcreate V1.10 DDF/Btrieve file create utility Management Products BTEDXT.EXE 10 218577 BTedit V2.00 Btrieve file editor/browser SSQLFE34.TXT 2 4246 Scalable SQL Relational Client/Server Database Scalable SQL Engine for DOS...... 3.01 Features Summary Scalable SQL Developer Kit for DOS ...3.01 DISTLIST.TXT 2 3135 *UPDATED* List of Authorized Channel Partners Scalable SQL Engine for Windows...... 3.01 BSIMPLE.ZIP 10 125148 b_SIMPLE - Easy to use wrapper for BTRIEVE Scalable SQL Developer Kit for BTSEARCH.ZIP 10 197612 BtSearch V2.1 - Windows Btrieve Editor Windows...... 3.01 BFFAQ1.TXT 10 9861 FAQ: RaSQL/B Btrieve Library for FoxPro BCFAQ1.TXT 10 10214 FAQ: RaSQL/B Btrieve RDD for Clipper Scalable SQL Developer Kit Supplement TITANTST.ZIP 10 548615 Btrieve Interface for Delphi v1.3 - Eval Copy for OS/2...... 3.01 DDFSNFDM.ZIP 10 792086 Smithware DDF Sniffer Demonstration Scalable SQL for NetWare...... 3.01 WINDDFDM.ZIP 10 933063 Smithware DDF Builder Demonstration DDFSVC.ZIP 10 262312 Smithware WINDDF 2.5 Service Pack ODBC Interface Data Management NTCONFIG.WRI 4 6144 Configuring Btrieve under Windows NT Products DLLREQ.WRI 4 10240 Configuring the DLL requesters ODBC Interface for Windows...... 1.0.1 ODBC Interface for Windows 95...... 1.0.1 New Instructions for Requesting Technical Support Via CompuServe Query and Reporting Tools In order to effectively track and respond to CompuServeTechnical Support inquiries in a timely manner, BtrieveTechnologies has provided a Xtrieve for DOS...... 4.11e support request form for you to use. After we receive a completed sup- Xtrieve for OS/2...... 4.11e port request, an acknowledgment will be sent to you within 24 hours with an INCIDENT NUMBER. A response to your support question(s) OW TO EACH will be provided within two business days. H R BTI

Using this support request form will guarantee a response from Btrieve Btrieve Technologies, Inc. Technologies technical support. You do not have to use this form to post 8834 Capital of Texas Highway North, Suite 300 Austin, TX 78759 general questions, or messages to Sales, 3rd Party Vendors, or other Phone: (512) 794-1719 forum members. Btrieve Technologies will still attempt to respond to all (800) BTRIEVE (800-287-4383)

messages posted on the forum whenever appropriate. FAX: (512) 794-1778 CompuServe: GO BTRIEVE The Support Request Form can be downloaded from Library 1 (General Web Site: http://www.btrieve.com E-mail: [email protected] Information) under the file name of SUPPREQ.TXT. [email protected] [email protected]

E-mail addresses for individual staff members con- sist of the person’s first initial followed by up to seven characters of his or her last name.

20 Btrieve Developer’s Journal Spring 1996 Inside the ODBC Box

By Douglas J. Reilly Access Microsystems, Inc. E-mail: [email protected]

The life of the Btrieve developer keeps getting easier all the consider. With the 32 bit version of Delphi just around the corner, time. Well, some portions of a Btrieve developer’s life keeps get- the lack of an ODBC driver that was reasonable became signifi- ting easier. When it comes to Btrieve data access from other cant. applications, such as report writers and query/edit tools, there is BTI’s solution is represented both by their own release of 16 one key to making your life easier: ODBC. and 32 bit ODBC drivers, as well as their assistance offered to at Open Database Connectivity (ODBC) is the biggest thing to least one other ODBC vendor, Intersolv. In an effort to look at the happen to the database world in some time. ODBC offers the options for Btrieve developers and end users, I have examined the promise of access to data anywhere, in any supported format, single seat version of the 16 bit ODBC driver, as well as a late without the need to have a detailed understanding of the format of beta of the 32 bit ODBC driver. By the time you read this, the 32 the underlying data. The promise is not quite realized. You still bit version should be released. A developer’s 1000 seat license is need to know a little something about the data in question, and also available for $1995.00. The developer’s license includes both there are some nasty problems that keep ODBC data access from 16 and 32 bit versions, which may be distributed in a mix-and- being as transparent as it might be. With all its problems, ODBC match format. to too big and too good to ignore. The single seat ODBC package comes with either the First, some history. The sudden interest in ODBC is primari- Scaleable SQL or Btrieve engine, as well as the ODBC driver. ly due to BTI’s release of 16 and 32 bit ODBC drivers. Other The ODBC driver, of course, requires either one of these engines vendors have had ODBC drivers for Btrieve, most significantly, to be installed in order to operate. If you foolishly assume that Microsoft and Intersolv. To say that until now these drivers have been less than satisfactory is an understatement. The Microsoft driver was beyond merely bad. A search of a file on an indexed field might cause the entire file to be read from beginning to end. The Intersolv driver has recently been greatly improved, but pre- vious versions were not as efficient as they could have been, though not in the same league of bad as the Microsoft driver.

ODBC, Windows 95, Btrieve, and You As with many things in the world of PC’s, the state of ODBC drivers seemed to be “good enough” for all concerned until the release of Windows 95. One major reason for this is that one of the major data access tools (Microsoft Access) had it’s As part of the installation process, you are presented with own ISAM driver to support access to Btrieve data. The Access a screen that offers you a menu with only Btrieve 2.0 ISAM is not perfect, but it does work, and provided needed Technologies Database as an option. access for several years to developers and end users in the 16 bit since only one option is present, there is no need to select it, you Windows world. will discover that the files for the ODBC interface will be Ah, the good old days. Access 95 was released shortly after installed, but the actual interface will not be. Hey, BTI, how Windows 95, and at that time, there was not a 32 bit Btrieve DLL about seeing that the single option on the menu is selected by available, and so Microsoft simply dropped native support for default? Other than that one anomaly, installation of either ver- Btrieve from Access. One could argue that they could have sion of the ODBC driver goes smoothly. included the ISAM and have it “thunk” down to the 16 bit inter- face Btrieve DLL’s, but they did not do that, for whatever reason. Using BTI’s ODBC Driver Given the absence of a Btrieve ISAM driver, there was no way to access Btrieve data from Access. At about the same time as the The next step required is to actually set up a data source. In Access 95 release, Borland’s Delphi reached enough users so that ODBC parlance, a data source is a discrete set of tables to be the lack of any clean Btrieve support became a big deal. For accessed as a unit, using whatever resources are required. For Delphi, the 16 bit ODBC alternative was there, but the perfor- example, a Btrieve data source consists of all files (tables) mance of the previous ODBC drivers made this a hard option to defined within a set of Data Dictionary Files (FILE.DDF,

Spring 1996 Btrieve Developer’s Journal 21 FIELD.DDF and INDEX.DDF are required, unlike Access 2.0’s imum, but really likes much more. Run the two of these together, ISAM driver, which required only FILE.DDF and FIELD.DDF). and you are close to running on empty. For Access, a single data source would be all tables defined with- Assuming you have the memory, the ODBC driver, and Access 95 installed, you need to take the following steps. From the File menu, select Get External Data, and then Link Tables. Microsoft has modified some of its terms, so that what was called “attaching” in Access 2.0 is now called “Linking”. In Access you can also Import data, which can be useful if you simply need to generate some reports from a Btrieve database, and you can work with a static snap shot of the data imported into an Access table. Once you have selected the Link Tables option, a dialog will ask you to select a table to link to. The table type dialog will allow you to select ODBC as a table type, and then bring you to a menu of data sources. Select a particular data source, and all tables within that data source will be presented in a menu. Select the correct table or tables to link to (you can select more than one table at a time) and when you return, your tables will be in the The dialog used to create a data source. In the database window, with an indication that they are attached tables. “Data Source” field, you enter a tag that you will use to access the data source. This is the name that will appear in any listings of ODBC data sources. Known problems with using the BTI ODBC driver.

in a single MDB file, whether these files are actually contained in I noticed two substantial problems with using the 32-bit the MDB or attached. The “Owner Names” field in this dialog ODBC driver with Microsoft Access 95. First, if you modify note appears to be essentially undocumented, as it is not shown in fields, Access 95 will appear to accept the changes, but will screen shots or referenced in the documentation for either the silently ignore the changes to any note field. I know of no released 16 bit ODBC driver, or the beta 32 bit driver I have been workaround. able to test. And second, if you generate a query that uses “NOT” in the A recurring problem during my early testing of the BTI WHERE clause, it will fail. The workarounds are to simply not Btrieve ODBC driver is the management of configuration issues. do that, or to make the query an SQL Pass Through query by After the initial excitement with the ODBC driver, I happened to selecting SQL Specific, Pass Through from the Query menu in install some other software that happened to also use Btrieve. query design mode. From that point on, while I could get Btrieve to work within BTI indicates that both of these problems will be present in Smithware’s DDF Builder and even the Btrieve Function the released version of the 32 bit ODBC driver. The problem with Executor, I was unable to use the ODBC driver. The released ver- note fields appears to be a problem with Access 95. Overall, sion of the 16 bit ODBC driver has some more complete diagnos- Access support is not fabulous, but it is the only game in town, tics, and all is now well, but do prepare for the possibility of and given the correct set for files, it will work. problems with configuration. BTI is aware of the possible prob- lem, and is working with South Wind Design, Inc. on possible Using ODBC 16-Bit with Borland’s Delphi solutions. The product that South Wind is working on is a diag- Using ODBC with Borland’s Delphi is an alternative to nostic utility that will display information about the multitude of rolling your own interface that calls the Btrieve DLL directly (and DLL’s and other files required for the various BTI products, and thus bypassing all the included data bound controls) or using the point out situations where more than a single version of these alternative interfaces such as those from Amisys or Summit files exist. While this is useful for Btrieve itself, it becomes National. The ODBC interface provides complete compatibility essential for ODBC. with Delphi’s data bound controls, and also allows you to mix There are some unusual things involved with using BTI’s and match Btrieve access with access to other Delphi supported ODBC driver. First, all names that contain embedded spaces will tables. have the spaces replaced with the caret (‘^’). So “PAT FIRST To use ODBC with Delphi, you need to first set up the data NAME” becomes “PAT^FIRST^NAME”. The character used to source in ODBC, and then set up the driver and alias using the replace spaces in names may be set to other values, for instance, BDE Configuration program. Once the alias is defined, you can the more reasonable underscore (‘_’). Secondly, since the first then select the BTI ODBC alias just like other aliases. ODBC access to any ODBC data source is somewhat slow, and the first access in Delphi has some of the normal problems, such as some access to Btrieve during a session requires the loading of some slowness during the first connect, and less than native speeds of DLLs, the first access to a Btrieve ODBC data source will take other types of data access. Delphi 2.0 and the 32 bit ODBC driver some time. may work to lessen this as a problem (often the 32 bit drivers Once the data source is set up, you simply need to select an appear to carry less overhead than the 16 bit drivers) but as of ODBC compliant program and do whatever is required by that this writing (mid February, 1996) Delphi 2.0 has not yet shipped. particular program. Some specifics follow. Known problems with using Delphi and BTI’s ODBC driver include the inability to use the ODBC data sources with Report Using ODBC 32-Bit with Microsoft Access Smith. There is no indication of when a solution will be available. ODBC is the only game in town if you need to get at data using Microsoft Access 95. If this is your situation, be prepared to ODBC using the Mother Tongue - C and C++ have lots of memory. 16 Meg is the minimum required for Another option for accessing ODBC data sources is to use C Btrieve for Windows 95. Access says it requires 12 Meg at a min-

22 Btrieve Developer’s Journal Spring 1996 or C++. This might seem an odd way to access Btrieve data, since One thing that is unusual about ODBC access is that even the Btrieve interface with C/C++ programs is well understood, when the SQL statement is executed, the actual data is not yet but there are some circumstances where using C or C++ to access available to the program. A call to SQLFetch() is still required. the Btrieve ODBC driver might be called for. The ODBC API also provides an SQLExtendedFetch() routine, You may prefer to use ODBC if you are creating a query/edit that like Btrieve extended operations, retrieves multiple records in tool and you would rather have your tool create standard SQL a single call. strings than have it turn a user’s request into a set of extended call The process of using the ODBC API at the C/C++ level begs restrictions, if you need to write a program that might be used for a C++ class to handle the bookkeeping details of allocating with Btrieve, but might also be used with other data sources that and freeing resources, and hiding the implementation details. would have ODBC drivers available, or if ODBC is a company or Microsoft Visual C++ Version 2.x and greater offers an MFC department standard. class for ODBC access, modeled roughly after the Accessing ODBC through C and C++ is covered in great database/recordset model used by Access and Visual Basic. (some would say painful) detail in “Microsoft ODBC 2.0 Programmer’s Reference and SDK Guide” (Microsoft Press, Conclusions 1994). In about 800 pages, this book tells you more than you will likely want to know about accessing ODBC data sources. Other ODBC is here to stay. While there are many other ways to sources of information exist, including a chapter explaining access Btrieve data, more and more, if flexibility of data sources ODBC access from C and an appendix describing a simple C++ is an issue, ODBC will be the answer. The BTI ODBC drivers, class in my soon to be published “Windows 95 Client/Server while not perfect, are the best option currently available. If you Programming” (Addison-Wesley, March 1996). This shameless are an Access 95 user, the decision is simple: Get the 32 bit driver plug aside, you really do need the Microsoft Press book, or at as long as you can live within the current limitations. If you are a least the on-line equivalent included in the Microsoft Developer’s Delphi user, the choice is tougher. There are other alternatives, Network CD. none completely satisfactory. On the other hand, ODBC is not Listing 1 shows a code fragment that illustrates the steps completely satisfactory either, since they may not be “fast involved in connecting to and retrieving data from an ODBC data enough,” whatever that might mean for your application. If you source. It is adapted from a C language, console mode application are a C/C++ programmer, it may be in your best interest to at used as an example in “Windows 95 Client/Server Programming”. least take a look at what ODBC has to offer. If you should find The pattern is basically as follows: yourself in the position to need to access other data via ODBC (for instance, from a mainframe or mini-computer) accessing any ¥ Allocate resources, including an environment, connection, Btrieve files also used in the application via ODBC as well pro- and statement handle. vides a consistent way of accessing all data. If you may need to ¥ Connect to the data source. consider supporting multiple database engines, ODBC can also ¥ Bind some columns to local variables to contain data provide an industry standard that other databases will likely sup- fetched. port. ¥ Execute an SQL command. ¥ Actually fetch the data. ¥ Disconnect from the data source. ¥ Free the allocated resources.

Listing 1 • Sample Code for Connecting To & Retrieving WORD lineCnt=0; UCHAR buf[255]; Data From on ODBC Source UCHAR name[MAX_TEXT_LEN + 1]; UCHAR fname[MAX_TEXT_LEN + 1]; UCHAR coname[MAX_TEXT_LEN + 1]; FUNCTION: ODBCTest (UCHAR *source, UCHAR *uid, UCHAR *pwd, UCHAR invNum[MAX_TEXT_LEN + 1]; HANDLE hout) UCHAR select[MAX_STMT_LEN]; SDWORD namelen; PURPOSE: Test ODBC connection. RETCODE rc;

INPUT: source - ODBC Source // allocate an environment handle uid - user ID SQLAllocEnv(&henv); pwd - password // Allocate a connection handle hout - handle to stdout to write output SQLAllocConnect(henv, &hdbc);

RETURNS: non-zero if an error occurs, otherwise, 0. // connect to the data source. The data source must be set up using // ODBC the Administrator (or 32-Bit Administrator) program. int ODBCTest (UCHAR *source, UCHAR *uid, UCHAR *pwd, HANDLE hout) rc = SQLConnect(hdbc, source, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS); { HENV henv; // Two possible “successful” results... HDBC hdbc; if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) HSTMT hstmt; return(print_err(hdbc, SQL_NULL_HSTMT));

Spring 1996 Btrieve Developer’s Journal 23 // allocate a statement handle, the statement handle is used for other transactions. SQLAllocStmt(hdbc, &hstmt);

// construct an arbitrary SELECT statement. This statement gets // 4 fields, and orders them by company. This assumes knowledge // of the field names, and is designed to show Btrieve style field // names, with the ‘^’ characters. lstrcpy(select, “SELECT First^Name, Last^Name, Company, Invoice^Num FROM NAMES ORDER BY Company”);

// execute the SQL statment. We STILL do not have the // actual data back... if (rc=SQLExecDirect(hstmt, select, SQL_NTS) != SQL_ERROR ) { // bind the colums of the resulting output to buffers within the program. SQLBindCol(hstmt, 1, SQL_C_CHAR, fname,(SDWORD)sizeof(name), &namelen); SQLBindCol(hstmt, 2, SQL_C_CHAR, name, (SDWORD)sizeof(name), &namelen); SQLBindCol(hstmt, 3, SQL_C_CHAR, coname, (SDWORD)sizeof(name), &namelen); SQLBindCol(hstmt, 4, SQL_C_CHAR, invNum, (SDWORD)sizeof(name), &namelen);

// Put out title and a line of ‘-’ to pretty up display... wsprintf(buf,”%-30.30s %-15.15s %-15.15s %-10.10s”,”Company”,”First Name”, “Last Name”,”Invoice Number”); putLine(0,lineCnt++,hout,buf); putLine(0,lineCnt++,hout, “————————————————————————————————————-”);

// This is the line where the data is actually retrieved. This returns a // single row at a time, and moves the cursor one row forward. while (SQLFetch (hstmt))==SQL_SUCCESS ) { wsprintf(buf, “%-30.30s %-15.15s %-15.15s %10.10s”, coname,fname,name,invNum); putLine(0,lineCnt++,hout,buf); }

putLine(0,lineCnt++,hout,” “); putLine(0,lineCnt++,hout,”Press any key to continue . . .”); myGetchar(); return 0;

{ Btrieve Assists Anti-Counterfeiting SupportMagic and Btrieve Run for Measures the Border

Lincoln, Nebraska — Btrieve-supported desktop systems in Irvine, California — “Run for the border” may have been the Immigration and Naturalization Service offices all over the theme of a recent TV ad campaign by Taco Bell (a subsidiary country provide the starting point for the agency’s latest move of PepsiCo, Inc., Purchase, NY) but it’s something that cus- to resist counterfeiting of documents. The $275 million system tomers of the company’s Systems Help Desk don’t find neces- will fully automate document production, which is intended to sary. Instead, a simple telephone call to 1-800-SOS-TACO strengthen anti-fraud efforts. Btrieve also provides the back- hooks them up to instant help, thanks in part to a Btrieve-based bone of other parts of the system. system known as SupportMagic. “We will be using new technology to improve the integrity Peter McGarahan, senior manager of network operations of the documents while we enhance the efficiency of the pro- support at Taco Bell’s Information Technology Group, oversees duction,” said INS Deputy Commissioner Chris Sale. “This will the help desk, which supports non-restaurant personnel by solv- raise the ante significantly for counterfeiters.” ing hardware, software and procurement problems for users at The documents look like credit cards but include personal corporate facilities. “We provide first- , second- and third-level details currently collected as part of an employment authoriza- support,” he explains. “We call our help desk the `Systems tion application. Besides such basic information about each Solution Team’ and try to get everybody to be an information applicant as name and address, INS also takes a photograph and consultant rather than a help desk analyst.” a fingerprint. Taco Bell uses several software packages in its support Caseworkers using desktop PCs enter the application into efforts. One of the most important is SupportMagic, a help the agency’s Computer Linked Application Information desk call tracking and problem management system from Management System (CLAIMS), a Btrieve flat-file database. Inc., which is built on Btrieve. SupportMagic The CLAIMS data is uploaded to the corporate files at head- has been installed in the support center for several years, quarters, housed on an Amdahl 5995-4550M mainframe run- McGarahan said, and his group uses it to measure key areas of ning CA-IDMS, database management software from Computer customer satisfaction. “Based on the information we gather,” he Associates International Inc. continued, “we look for ways to decrease the time calls are The four regional INS service centers track work autho- open and increase the number of calls closed on first contact.” rization approvals. The files are downloaded from IDMS to Andrew Rawson, marketing vice president for Magic NetFrame 450 servers, multiprocessor servers from NetFrame Solutions, calls Taco Bell “more a partner than a client.” He Systems Inc. in Milpitas, Calif. The NetFrame servers, which said the firm had been “instrumental” in developing a more also run Btrieve, hang off NetWare LANs at the service centers. general product, SupportMagic SQL. The new product was After INS adjudicates and authorizes an applicant’s work scheduled to begin shipping early this year, and supports status, the card production system at each center will retrieve Watcom SQL, Oracle, Sybase and Microsoft SQL Server data- the data automatically and creates the document. It will even bases. enclose them in addressed envelopes for mailing to applicants. Taco Bell plans to move its SupportMagic operations to Because the data is so sensitive, INS uses dedicated lines Windows NT, from a Compaq file server connected to 32 to transmit all authorization information between its facilities, Compaq desktop clients running Novell 3.1.2. They expect the which generally run Novell NetWare LANs. To protect the data, new SQL product to be a significant help in the move. INS uses Computer Associates’ CA-top Secret security package Magic Solutions Inc. is located in Paramus, NJ. for its mainframe systems and has built-in authorization securi- ty checks in CLAIMS.

Macola, FRx Offer Alternate Solutions The new alliance represents a natural extension of the long-standing relationship between the two companies, Marion, Ohio — Customers of Macola Software will according to executives of both. Technical support will all be have extended report writing capabilities and broader done through Macola, and Macola also will deliver all enterprise-wide solution options available to them as a upgrades to customers as required. result of a new agreement between Macola and FRx FRx for Windows is a financial report tool that integrates Software Corporation. directly with the Btrieve-based Macola software to provide Customers who purchase Macola’s Version 7.0 users with highly customizable reports. The standard version WindowsPlus System Manager will receive the Version includes multiple fonts and styles for creating presentation- 4.1 Standard Edition of FRx for Windows as part of a quality output, drill down to transaction detail, and drag-and- bundled offering. This is expected to be a perfect solution drop restructuring of cost centers. It supports a single link to for those who have routine reporting needs, but if more the General Ledger and provides two roll up levels. The sophisticated requirements exist, the Advanced Edition of Advanced Edition adds e-mail reporting, multiple general FRx for Windows will be available and compatible with ledgers, and an unlimited number of multi-level reporting the Macola products. trees.

Spring 1996 Btrieve Developer’s Journal 25 Brazos Watch - Transactions in the Next Version of Btrieve

By Douglas J. Reilly, Access Microsystems, Inc. E-mail: [email protected]

I first fell in love with transactions way back in ‘87. I was locked (nowhere else in the system were files ever was doing a purchase order distribution system. In the system locked) but since the duration of the transaction might be involved, after a purchase order was entered for multiple measured in minutes, plan B needed to be put into action. My locations, the program was responsible for “splitting out” the plan B never approached the conceptual elegance of the single purchase order entered into multiple purchase orders, transaction solution (I never properly handled the ESC key as one for each location. My task was to ensure that either all a signal to roll back all operations up to that point) but at locations got their purchase order created, or none did. This least the database was not locked each time a purchase order was critical because the machines involved were almost was distributed. never connected to uninterruptable power supplies, and for a Version 6.x of Btrieve offered some improvements. In large user, the process could take up to three or four minutes. addition to the previous type of transaction (now called an In addition, users sometimes made mistakes, and would exclusive transaction) version 6.x added support for concur- watch in horror as this process worked through their files, rent transactions. This type of transaction is started with a doing things that they knew they would next have to spend begin transaction op code (19) biased by 1000 (making it hours undoing. 1019). This type of transaction is different in that only the Transactions seemed to offer the ideal alternative to my pages containing records that are modified during the transac- own makeshift, checkpoint restarting system, and frankly, I tion are locked, and changes are not visible to other users was at a loss to figure out a good way to allow the user to until the transaction is ended. press ESC and then undo all of the activities to that point. At the recent Btrieve Developer Conference, some Transactions seemed the ideal option. A transaction allowed details on the next version of Btrieve were introduced. you to place a Btrieve call to begin a transaction at the begin- Significant among the additions is the concept of a nested ning of a set of operations, and a Btrieve call to end the trans- transaction. In this case, more than one begin transaction action at the end, and all Btrieve operations between the operation can take place before the matching end transaction. begin and end transaction calls would be treated as an atomic An abort transaction operation only aborts the inner-most operation. That is, every operation was guaranteed to have transaction. For instance, in the following sequence of opera- taken place if the end transaction op code was sent, and none tions: of the operations will have taken place in the absence of an end transaction call. To make things even better, it was possi- Begin Transaction ble to call Btrieve with an abort transaction op code, which read file 1 would allow the user to abandon the transaction, thus allow- write file 1 ing the user to escape from a purchase order distribution Begin Transaction without having to unravel all of the changes made to different read file2 files in the interim. I was in heaven. That is, until the first write file 2 user tried to run the system on a network. Abort Transaction! End transaction The dark side of Btrieve Transactions only the write of file 2 will be rolled back. In normal, client Sigh. It was too good to be true. Of course, the problem transactions under the next version of Btrieve, called Brazos, was there in black and white the whole time. To quote the all cursors (represented by position blocks) will share the Btreive Developer’s Manual (for Btrieve version 5.10, same view of a file, and that view will reflect changes made Copyright 1990, Novell, Inc.): “Files which are operated on in any outstanding transactions. by Open, Get or Step operations inside a transaction become locked until the end of the transaction.” New Brazos Transactions Of course, if the operation involved was to take only a few moments, I could have had all operations retry if the file Another type of transaction is also allowed in Brazos.

26 Btrieve Developer’s Journal Spring 1996 Called Nested Cursor Transactions, these transactions allow savepoint as a handle to represent the particular level of nest- you to specifically include files in a transaction, with other ing. In nested cursor transactions, this will allow you to asso- cursors (represented by position blocks) are not included. ciate additional cursors with the same level of nesting. This offers some interesting possibilities. For example, Cursors can join and leave nested transaction levels, and assume three position blocks, each opened referencing the strictly speaking, there need not even be any cursor at a given same file. Lets call them A1, A2 and A3. Imagine the follow- level of nesting. If you move all cursors from the inner most ing set of operations: transaction level, the transaction level continues to exist, and the views of the files involved can be re-visited by simply write A1 (insert record 1, name is “Rielly”) associating another cursor with the savepoint associated with write A1 (insert record 2, name is “Cambers”) that level. Begin Cursor Transaction on A2 As you might imagine, there are some rules for reading write A2 (update record 1 - change name from and writing in multiple levels. Only cursors on the innermost “Rielly” to “Reilly”) level of transaction nesting can write to a file. For instance, in Begin Cursor Transaction on A3 the example above, after the call that began the nested trans- write A3 (update record 2 from “Cambers” to action on A3, only cursor A3 could be used to write to the file “Chambers”) involved, while all three cursors could be used to read the A1 reads record 1 and record 2 file. Further, if there was a call that ended the transaction A2 reads record 1 and record 2 level started on A3, both A2 and A3 could write to the file, A3 reads record 1 and record 2 but A1 would still be a “read only” cursor.

As the begin cursor transaction operation on cursor A2 With enough rope... occurs, each record contains names that, for our purposes, are spelled incorrectly. The first operation updates record 1, using There is an old saying “Give them enough rope, and they cursor A2, to correct the name. A new transaction is begun on will hang themselves.” I suspect that these new types of cursor A3, and using cursor A3, the name in record 2 is cor- transactions will give us, as Btrieve developers, enough rope. rected. This is not to say that the features will not be useful in many Now, the last three lines indicate that each cursor is used situations, nor do I feel that any of the restrictions placed to read each of the two records. What would each cursor upon users are unrealistic. That said, I am sure that I will be return? The results will be as follows: among the first to receive the new status code that will indi- cate that you have tried to write to a read-only cursor. Record 1 Record 2 More difficult bugs could result from using the wrong cursor (a cursor at the wrong level) and convey incorrect A1 “Rielly” “Cambers” information to the user. These kinds of bugs will be a bear to A2 “Reilly” “Cambers” track down, and the developers of tools for developers owe it A3 “Reilly” “Chambers” to their users to make sure the interface to these powerful fea- tures is a clean as possible, while conveying the most feed- What happens here is that each cursor has its own view back to users that is possible. of the file or files involved. For instance, A1 is not in any of Will I use nested cursor transactions? I expect I will. the cursor transactions, and so it sees the view of the file There are certain instances where they will be irresistible. before any transactions were active. A2 sees the file as it was The “what if” kind of scenario mentioned above is the most when the transaction began, as well as any changes that it obvious, but I am sure other uses will emerge as time goes made. A3 also sees the file as it was when the transaction on. However, before using this or any shiny new feature as began, as well as any changes that it made. This is an obvi- potentially complicated as nested cursor transactions, I will ously contrived example, but you should see some of the pos- make sure I have read and understand the manual’s explana- sible uses for this sort of transaction. tions of the new features and their restrictions, and try it all Imagine you are writing a software package that does out on toy systems before using it on real world applications. financial modeling. Lets say you want the user to be able to Do the same, and you will thank me. Come to think of it, if propose some changes to the model (represented by data in a you all do that, BTI technical support may even thank me! Btrieve file) and look and see what the changes mean. Using today’s Btrieve, you can have the user make changes and revert to the original data if needed. With the proposed changes, you could use nested cursor transactions to not only allow the user to look at changes and then optionally abandon them, you can allow the user to look at the changed data as Doug Reilly is the owner of Access Microsystems Inc., a software development house specializing in C/C++ software development, well as the original data before any changes made during the often using Btrieve. He has had articles on Btrieve published in cursor transaction. This can be a powerful tool. Dr. Dobb’s Journal and is the author of BTFILER and BTVIEWER Btrieve file utilities available on CompuServe. Doug Details of Implementation may be reached at: 404 Midstreams Road, Brick, NJ, 08724, by phone at (908) 892-2683, or via CompuServe at 74040,607. Of course, the idealized view of the world presented above does not represent all you need to know about nested transactions. In each case, a nested transaction will return a

Spring 1996 Btrieve Developer’s Journal 27 INTRODUCTION

In mid-December 1995, when news came into the Btrieve ing, sales, and distribution plans throughout the region. Developer’s Journal offices that BTI would soon host a European The sessions between BTI, BTE, and the distributors were Btrieve Developer’s Conference in Cannes, France, I must admit closed to the press, so I cannot directly report on the specifics of that several thoughts quickly came into focus. The warm balmy what was discussed there. But I can tell you that, based on what I beaches of the southern coast of France, a good thick and fluffy witnessed and based on my conversations with the players involved, novel, mirrored sunglasses and lots of light suntan oil, the blue- green Mediterranean waves washing hopes and dreams around like whims, all the umbrella-laden ever-so-fruity drinks and tanned bod- ies one could ever want to drink and see... Oh, just the thought of it would make anyone jump at the chance to pack their laptop and swimsuit and head to the conference. But soon after Smithware’s sales and marketing manager John Scudder and I arrived on a chilly, windy, cloudy afternoon in Nice, France to board the bus headed for Cannes, those fantastic thoughts of recreation faded somewhat. We were about spend perhaps the busiest 4 days of our recent life coordinating Smithware’s marketing activities and covering the whole event for BDJ. This is a personal account of what I saw, learned, and walked away with as a result of the whole event.

DISTRIBUTORS CONFERENCE The first two days of the conference was for the Btrieve Authorized Distributors throughout Europe. This is a very diverse Jon Grieve from the U.K., Kenneth Buitennan from the Netherlands and group of individuals, all with their own interests, motivations, plans, Gilbert Van Cutsem from France share ideas during the Smithware dinner at the conference. vision, and markets. Each partner is helping Btrieve Technologies (BTI) and Btrieve Europe (BTE) map the evolution of their market- the distributors left the conference with a heightened level of confi- dence about the BTI and BTE commitment to the European market and about the company’s recognition of their unique needs. BTI and BTE left with a clear understanding of the individual needs and pri- orities of each diverse region of Europe represented by the attending distributors and how to focus their priorities better in order to reach the levels of sales that they expect from the European market. BTI plans to focus on a strong central source for European support and to strengthen their distribution channels. I was invited to speak on Saturday evening (my presentation occurred just 45 minutes after my luggage finally arrived at the hotel, leaving me little time to clean up after 24 hours of getting there) to talk about the future of Smithware and Btrieve Developer’s Journal to the group, and to encourage closer cooperation among all of the participants. We then adjourned the conference to attend the Smithware-hosted evening cocktail dinner. This was a great chance to informally discuss the European market, and for the distributors Conference attendees sit spell-bound as BTI’s Andras Budinszky describes to discuss topics that were of particular interest to them. nested transactions.

28 Btrieve Developer’s Journal Spring 1996 DEVELOPER’S CONFERENCE once again for a lovely dinner with the entire group. Microsoft, IBM, Novel, Magic, and Smithware all offered free products to be The Btrieve Developer’s Conference got underway with a used as door prizes. Several lucky souls were the recipients of reception cocktail dinner on Sunday evening, which provided an Microsoft NT Server, IBM OS/2 Warp Server, NetWare 4.1, Magic excellent opportunity to meet informally about the topic that we Preview Disks, and a CD-ROM of all Smithware products. were all there to discuss: Btrieve. The dinner was attended by over Tuesday’s conference agenda included more business and tech- 100 developers from 17 countries, along with everyone from the nical presentations from BTI team and also a word about plans for Btrieve Europe office in Paris. The stateside BTI representatives at the BTI Support Program by Rich Strom, vice president of support. the conference included Nancy Woodward, Doug Woodward, Ron The sessions eventually concluded on Tuesday afternoon with a Harris, Richard Stroum, Marc Marshall, and Andras Budinszky. round-table discussion of the conference participants’ desires for the The conference formally began on Monday morning, with an future of Btrieve and Scalable SQL. introduction by Patrick Duboisset, General Manager of BTE and a brief introduction by Ron Harris, Btrieve Technologies president and CEO. Although many of the presentations at the European confer- INSIGHTS ON THE CONFERENCE AND PLANS ence were also made at the Austin conference in the US, it was evi- FOR NEXT YEAR dent that significant work went into making sure that the presenta- tions were specifically directed towards international, and specifical- I think that, overall, the conference was a major hit with just ly European interests. about everyone in attendance. It gave us from the United States the Nancy Woodward, BTI founder and chairman, gave the “State clear appreciation that Europe is not one big market, but rather a of Btrieve Technologies International Address.” Her speech focused substantial group of smaller markets with their own unique habits, on the success of Btrieve throughout Europe, which accounts for customer requirements, and language differences. It is certainly 23% of BTI’s revenues, and on BTI’s priorities for 1996. These pri- important to have a long-term, focused global strategy. It is also crit- orities include growing the market for commercial applications built ical to an American company’s success in Europe to concentrate on on Btrieve and Scalable SQL, expanding BTI’s international busi- local implementation, marketing, and support issues, taking into ness, and enabling Internet communication. account the various cultural differences. Ron Harris, BTI president and CEO, presented “New Product Paul Idelson, Marketing Manager for Btrieve Europe, said Directions” stressing BTI’s new focus on delivering client/server about the conference, “The most important result of the conference solutions to the mass market. The next versions of BTI’s Scalable SQL, version 4.0, and the next version of Btrieve, called “Brazos,” will feature increased performance, fully distributed application logic with the planned Inscribe scripting tool, fully distributed data management, and two-way database replication. There were several other presentations including “BTI Technology Update” by Marc Marshall, vice president, engineering, “New Features of the Navigational Model” by Doug Woodward, chief technical officer, and “Building Scalable Applications Using Transactions” by Andras Budinszky, chief architect. During his presentation, Andras talked about the advantages of Scalable SQL over Microsoft SQL Server and Sybase SQL Anywhere. At the end of the rather lengthy, albeit fascinating, pre- sentation, Andras rebooted the demo computer, went through the lengthy initialization procedure for each of the competing databases, and ran a demo showing the relative speeds of the same operation run on each databases. Finally, he continued to explain how much faster BTI’s offering would be and intended to press the “Test Btrieve Europe Headquarters, located next to the Grand Arch in Scalable SQL” button. You could hear the gasps of horror from the La Defense, Paris. audience as Andras talked and the mouse cursor drifted toward the was all the feedback we got from the developers about what was “Quit” button. As the screen went clear and returned to Windows, really important to them, and that they left the conference with the Andras could not understand why his demo did not work. I said knowledge that Btrieve is alive and quite well and that BTE as a from the back of the room, “You pressed the ‘Quit’ button,” and company would work hard to address their particular issues.” Andras scratched his head. One change in store for next year’s conference will be the addi- Everyone within earshot of me was generally in agreement that tion of break-out sessions. “This year, in order to enable all the although the presentation had been very interesting, we’d be happy attendees to sit in on all the presentations, we had decided not to to take his word for the fact that Scalable SQL would be faster. Still, have break-out sessions. Next year, we will have them, which will Andras forged ahead through the reboot procedure, finally got back enable longer question and answer sessions, and we may also try to the “Test SQL Server” button, pressed it, and immediately got a setting up workshops for developers to be able to work hands-on GPF. It just goes to show, when you have to demo a piece of soft- with the new products before they are released and to exchange ware in front of a group, don’t. ideas with the engineering team.” Andras’ address and all of the other presentations at the confer- No firm dates or locations have yet been set for next year’s ence were very informative and complete, and for the most part, dis- conference, but , Berlin, Paris, and are all aster-free. Monday’s conference agenda ended with a very up-beat among the top contenders. demo of Magic 6.0 for Windows by André Dan, International All in all, it seems that for the hosts and the attendees, the Marketing Manager for Magic. At the end of the day, we convened Btrieve European Conference was time and effort well spent!

Spring 1996 Btrieve Developer’s Journal 29 Patch: VCBTRV.VBX.

Refresh method not available in Smithware VBX Controls for Btrieve Description: When using the Refresh method of the VAccess control in version 2.50.001, an error is returned stating that the method is not supported. Patch: VCBTRV.VBX.

NetWare requester interface issues in Smithware Crystal Reports 4.5, 32-Bit edition Smithware Crystal Reports 4.5 for Btrieve, 32-bit edition, uses the Btrieve for Windows 95/Windows NT client engine. Smithware Tech Talk is a regular supple- Patch: WINDDF.EXE. Any program which uses the 32-bit ment to Btrieve Developer’s Journal that Btrieve for Windows 95/Windows NT gives you the latest information about Missing or Improperly Displayed Text interface requires, at minimum, the follow- Smithware products. in DDF Builder for Windows ing components in order to utilize Description: Some copies of Smithware NetWare server-based Btrieve: VBX Controls for Btrieve version 2.50.001 Patches Available were distributed with the incorrect version NetWare of WINDDFUI.DLL. As a result, some of BSPXCOM.NLM 6.15.824 08/29/95 19949 the text in the various windows in DDF This section lists the patch files that Builder will be missing or incorrectly dis- Windows 95 are available to solve problems with vari- played. WBTRV32.DLL 6.15 10/25/95 62464 ous Smithware products. All of the patch Patch: WINDDFUI.DLL files are available from Smithware’s Web W32BTICM.DLL 6.15 10/26/95 22528 site at http://www.smithware.com. DDF Sniffer locks up after selecting a WBTRTHNK.DLL 6.15 10/12/95 5616 file Specifying a date range for a report Product: DDF Sniffer 1.5 W16NR.DLL — — — 10/12/95 10784 causes a GPF Description: If a user chooses a Btrieve W32NR.DLL — — — 10/12/95 18944 Product: Smithware Crystal Reports for data file which has ZSTRING indexes or Windows NT Btrieve certain other characteristics as the file to Description: Smithware Crystal Reports is analyze, DDF Sniffer version 1.5 stops W32BTICM.DLL 6.15 10/26/95 22528 returning a GPF in SEDTCONV.DLL on responding to the system after the file is WBTRV32.DLL 6.15 10/25/95 62464 reports that use record selection criteria selected. Subsequent attempts to run on a date field. DDF Sniffer will also fail until the DDFS- WBTRTHNK.DLL 6.15 10/12/95 5616 Patch: SEDTCONV.DLL NIFF.INI file is deleted or the line Last These files are available as part of Btrieve File Selected = is deleted or mod- the Btrieve for NetWare v6.15 upgrade. Leap dates not showing up ified to indicate a file which does not have You may purchase this upgrade from Product: Smithware Crystal Reports for these characteristics. Btrieve Technologies or one of BTI’s Btrieve, VBX Controls for Btrieve 2.5, Patch: DDFSNIFF.EXE Authorized Channel Partners. If you pur- DDF Builder 2.51 chased a Btrieve for NetWare v6.15 Description: February 29, 1996, or other DDF Sniffer does not allow drive selec- upgrade prior to December 1995, you leap dates do not display. tion in Windows 95 may wish to contact Btrieve Technologies Patch: SEDTCONV.DLL Product: DDF Sniffer 1.0 Inc. to receive the latest patches and the Description: DDF Sniffer version 1.0 and Btrieve for NetWare version 6.15.1208 Rounding problem with negative val- 1.01 do not allow drive selection at run- update. ues in VB Currency fields time in Windows 95. Other known issues with using the Product: Smithware Crystal Reports for Solution: Either obtain version 1.5 of DDF Btrieve 32-bit requester with Btrieve for Btrieve, VBX Controls for Btrieve 2.5, Sniffer from Smithware, Inc. or use a text NetWare and Smithware Crystal Reports DDF Builder 2.51 editor to set the line Btrieve Directory= in for Btrieve 32-bit edition are: Description: Negative values stored in the DDFSNIFF.INI file in your WINDOWS ¥ Your Windows 95 or Windows NT Microsoft VB Currency being stored and directory equal to the drive you wish to login name must be the same as displayed inaccurately. select before running DDF Sniffer. your NetWare login name, or a per Patch: SEDTCONV.DLL mission error (status 94) will result VAComboBox does not allow text when you attempt to open a Btrieve Run-time Error 380 in DDF Builder for entry in Smithware VBX Controls for data file on the server. Windows Btrieve ¥ You may not be logged in to Description: A run-time error 380 is Description: The VAComboBox in NetWare as SUPERVISOR, or a returned in DDF Builder version 2.51 Smithware VBX Controls for Btrieve ver- NetWare runtimeserver error (status when using File - Copy Btrieve Table to sion 2.50.001 does not allow the user to 99) will result when you try to open a copy data from any file containing more type text into the text box portion of the Btrieve data file on the server. S than 200 records. control.

30 Btrieve Developer’s Journal Spring 1996 Smithware Ships 32-Bit Smithware Class Library Smithware Announces Report Writer 4.0 for Btrieve Ships Support for Microsoft’s Features New 32-Bit Support for ActiveX Technologies Cross-Platform C++ Applications Smithware, Inc. has announced Smithware to Move Current the release of version 4.5 of Smithware VBX Controls for Btrieve Crystal Reports for Btrieve, a complete On April 2, 1996, Smithware began to new Internet Platform 32-bit report writer designed for Btrieve shipping the latest version of reporting on Windows 95 and Windows Smithware Class Library for Btrieve. NT operating systems. The product is Smithware Class Library 4.0 for Smithware has announced plans to also available in a 16-bit build for Btrieve is a set of fully portable, plat- support Microsoft ActiveX technology Windows 3.1 and Windows for form independent component classes by migrating their award-winning VBX Workgroups platforms. which encapsulate all of the functionali- Controls for Btrieve product to the new “Thirty-two bit platforms are still ty of Btrieve. The new version has format. evolving,” said company vice president been tested with Borland and Microsoft ActiveX is the new brand name Steven Mook, “And we have the dubi- 16-bit C++ compilers and with the introduced by Microsoft last March for ous honor of being pioneers. Porting Microsoft Visual C++ version 4.0 32-bit component software variously referred the application to the new operating compiler. Complete source code is to in the past as OCX and OLE con- systems was only part of our challenge. included. The class library requires the trols. Smithware’s ActiveX Controls for Btrieve Technologies released the appropriate Btrieve Developer Kit for Btrieve, scheduled for release later this Windows 95/Windows NT developer kit the intended target operating system year, will build on the company’s award in late October, and our work on the (DOS, Windows, Windows winning VBX Controls for Btrieve, and application code was finished the first NT/Windows 95, OS/2 or NetWare will enable the technology to be staged week in November. Our development NLM). for deployment via Internet and efforts since that time have been direct- According to Steve Mook, intranet. ed at making sure that the product is Smithware’s vice president, “The Smithware’s ActiveX Controls for easy to install on either platform, easy Smithware Class Library for Btrieve has Btrieve and ActiveX Controls for to use, and well documented.” been designed to simplify the develop- Scalable SQL will allow developers to Smithware Crystal Reports for ment cycle of Btrieve based applica- create robust Btrieve and Scalable Btrieve is produced by Smithware tions using C++. Basic class concepts, SQL applications using diverse pro- under an OEM licensing agreement logical inheritance hierarchies, and gramming environments such as with Crystal, a Seagate company. It complete documentation, tutorial, and Microsoft Visual Basic and Visual C++, combines Crystal Reports with help files make this product very easy Borland Delphi, and others. Smith- Smithware’s Btrieve database tools to use and subclass.” ware’s ActiveX Controls will support DDF Builder and DDF Sniffer, and Smithware Class Library 4.0 for both 16-bit and 32-bit access to the includes high-performance report Btrieve has a suggested retail price of Btrieve engines. S engine drivers which can take advan- $249.95 and is available directly from tage of Btrieve client/server capability Smithware or through the Smithware and the extended database definition Authorized Distributor Network. S capabilities of DDF Builder. S

Smithware Establishes Product Marketing Group South Wind Design Joins Crystal Services and Object Resource Corp. as Members

Smithware, Inc. the parent company Class Library for Btrieve, and then in line will be much more successful than if of Btrieve Developer’s Journal, has 1995 with Crystal Services of Vancouver we tried to market our Btrieve products formed a new division called the in the extremely successful introduction of independently. Turning over the marketing Smithware Product Marketing Group or Smithware Crystal Reports for Btrieve of the product line to Smithware also PMG. This area will focus on software product line. gives us the opportunity to concentrate publishing, production, marketing, sales In March of this year, South Wind on our primary mission: software design and fulfillment for products developed for Design of Ann Arbor, Michigan agreed to and development.” the Btrieve and Scalable SQL market. place their new Btrieve support manage- According to Smithware president “The Smithware PMG is a natural ment system, SupportAbility for Btrieve, Scott Smith, “The Smithware PMG con- outgrowth of our existing marketing activi- under the marketing and distribution cept is just one aspect of what we have ties,” according to John Scudder, aegis of the Smithware PMG. “We made done throughout our company’s history to Smithware sales and marketing manager. the decision to join forces with Smithware allow us to deliver rock-solid Btrieve add- “We are confident that we will be able to because of their successful track record on products to our customers. We have provide exciting opportunities for many in the area of Btrieve add-on product made this strategic move to formally developers to market their Btrieve prod- marketing and distribution,” said Dale establish the PMG to drive our plans for ucts more effectively in partnership with Hunscher, President and CEO of South continued growth. We are also extremely the Product Marketing Group, far beyond Wind Design. “With Smithware’s ability to pleased that South Wind Design has what they could expect on their own.” clearly and effectively communicate our been the latest member to join the PMG.” Smithware began building the basis joint marketing message to the entire For more information on Smithware for the PMG in 1994 when they joined Btrieve and Scalable SQL development PMG services, contact John Scudder at forces with Object Resource Corporation community, we are confident that South (615) 386-3100, extension 16. S of Dallas, Texas to publish the Smithware Wind’s SupportAbility for Btrieve product

Spring 1996 Btrieve Developer’s Journal 31