------------------------------------------------------------------------------ ------------------------------------------------------------------------------ NNNNNNNNNNNN NNNNNNNNNNNN NNNNNNN NNNNNN NNNNNNN NNNNNN NNNNNNNNNNNNNN NNNNNNNNNNNNNN NNNNNNNN NNNNNN NNNNNNNN NNNNNN NNNNNN NNNNN NNNNNNNNNN NNNNNNNNN NNNNNN NNNNNNNNN NNNNNN NNNNNN NNNNN NNNNNNNN NNNNNNNNN NNNNNNN NNNNNNNNNN NNNNNN NNNNNNNNNNNN NNNNNN NNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNN NNNNNN NNNNNN NNNNNNN NNNNNN NNNNNNNNNN NNNNNN NNNNNNNNNN NNNNNN NNNNNN NNNNNNNN NNNNNN NNNNNNNN NNNNNN NNNNNNNN NNNNNNNNNNNNNN NNNNNNNNNNNNN NNNNNN NNNNNNN NNNNNN NNNNNNN NNNNNNNNNNNNN NNNNNNNNNNN NNNNNN NNNNNN NNNNNN NNNNNN ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ Boston Computer News Network April 1994 A Service of the Boston Computer Society, USA Vol.1, No.3 Sponsored by the Foxpro SIG Foxpro Version ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ 0. Introduction. -------------------------------------------------------------------------- ReplyTo: David Rose [73164,2263] We reach an important milestone this month. We have finally received more submissions than we can put into this issue. I want to thank all of you who have contributed and hope that you keep it up! Those articles that I was forced to leave out were chosen on a last received basis. You can look forward to reading them in the May issue. There are many ways we can, as a developer community, leverage the resource that an email newsletter provides. One way is for you, our readers, to respond to the editors on how you feel about this newsletter. Let me or one of the other editors know what articles you have most enjoyed reading and what kinds of articles you want to see more of. 1. May 11th User Group Meeting: "Productivity Tools". ----------------------------------------------------------------------- ReplyTo: Arnold Bilansky [71533,1031] (617)522-3700 x374 Meeting: May 11, 1994, 7:00 p.m. ** Place: Microsoft Office, 9 Hillside Avenue, Waltham, MA USA. Eldor Gemst presents "Tom Rettig's Office" and "FoxExpress" along with a comparison with the "CodeBook 2.6" method. 2. May 16th User Group Meeting: "DevGet II". ----------------------------------------------------------------------- ReplyTo: Arnold Bilansky [71533,1031] (617)522-3700 x374 Meeting: May 11, 1994, 7:00 p.m. ** Place: Microsoft Office, 9 Hillside Avenue, Waltham, MA USA. Attorney Gene Landy, author of "The Software Developer's and Marketer's. Legal Companion" (Addison-Wesley), is the featured speaker for our second Developer's Get-Together. 3. Free BCS Fox User Group Event at Database & Client/Server World Boston. ----------------------------------------------------------------------- ReplyTo: Arnold Bilansky [71533,1031] (617)522-3700 x374 Meeting: June 29, 1994, 7:00 p.m. ** Place: Hynes Convention Center, 900 Boylston Street, Boston, MA USA. SCHEDULE 9:30am Hank Fay: Building an Event-Driven FoxPro Application on the Fly 11:30am Dick Bard: Multi-Window Programming - The Real Power of FoxPro 1:00pm Whil Hentzen: FoxPro Rapid Application Development 3:00pm Panel Discussion: Programming Today in Anticipation of FoxPro 3.0 Panelists include: David Kalman, Dick Bard, Hank Fay, Whil Hentzen, Ted Roche and moderator Arnold Bilansky. 5:30pm Microsoft FoxPro Product Manager on New FoxPro Technology, or DBMS Magazine Editor David Kalman on FoxPro Data Warehousing. Topic will depend upon Microsoft's ability to provide a speaker, which was not finalized at "press" time. For More Information on The BCS Meetings: Call BCS at 617 290-5700 The BCS meetings are free and require no reservations. Door-prizes! For information on, or to register for, DCIs Database & Client-Server/ World Expo (free), or Conferences (fee) call DCI at 508 470 388. 4. Why We Went to Fox ... ------------------------------------------------------------------------- Reply To: Robert de Kock [100333,622] My first acquaintance with Fox was in late 1986. I am a tropical forester and get sent to out of the way places advising on forest inventory and management. At the time I found myself in a dump of an office in Chittagong, Bangladesh, with a borrowed XT (clock speed 0.005 MHz), lots of data, a mains power failure on average every 3 hours, and a job deadline. No UPS, generator on the blink, and we'd failed for the third consecutive night to pump 12 hours' worth of data through a dBase 3+ program. It wasn't really practical to cut the data up into pieces. I was sweating on some kind of trick to write running totals into a file at short intervals so we could restart the bugger after each blackout, when a friend dropped in for a chat before he went on building village latrines. He saved the day: from his disreputable briefcase he produced a copy of Fox+ (*one* 360K disk) telling me not to worry any longer. After a while the lights came on and we installed the program. This was the old version where you still had to replace your dBase indexes manually, but 'reindex' was the only complication. The dBase program ran, unchanged, through the whole data set in just under two hours! Five minutes later we went home, happily, in pitch darkness. I've been a Fox fan ever since. Robert de Kock, Balikpapan, Indonesia. 5. UART Follow-up. ----------------------------------------------------------------------- ReplyTo: Wilfried A Faulkner, 71670,2050 ResponseTo: Chris Pels, 73777,3562 (BCNN, February, 1994). I read your contribution in BCNN about the UART 16550 chip and the BOCA card. I can only sustain your findings. I myself have a BOCA 2x4 with four serial and two parallel ports and noticed a significant increase i speed. However, unless you also replace the standard Windows COMM.DRV with something that takes advantage of the UART chip, you still don't realize the full benefits of the chip. You can use TurboCom/2 from Pacific Comm-Ware which will blow your socks off. Or you can try KingCOM which I hear also has a replacement for the standard COMM.DRV. The latter is second hand information and I don't vouch for its correctness. 6. Using FoxPro and an AS/400 to develop Client/Server Applications. ------------------------------------------------------------------------- Reply To: Bob Simmons [76170,2263] New York Central Mutual I have been working on connecting to data stored on our AS/400 using Foxpro for a client server application. To do this I have tried two products: Showcase ODBC and ESS/400. There have been many stumbling blocks to overcome, since both of these products are fairly new. First of all, Showcase and ESS/400 work very differently from one another. Showcase uses Microsoft's ODBC to connect to the AS/400 platform, so you need the FoxPro Connectivity Kit. To get data from the AS/400, you pass SQL commands and get a cursor or table in return. Since Showcase uses ODBC, you are limited to using Foxpro for Windows. ESS/400 is a library that links directly to Foxpro, and comes with both a DOS PLB, and a Windows FLL. ESS/400 does not use SQL (at this time). Instead, this product accesses data on the AS/400 one record at a time. I personally do not like reverting to low-level file access using a tool like FoxPro. In future releases, ESS/400 should be shipping with some higher level routines in it as well, to make it much more flexible. Using Showcase ODBC, I ran into a number of problems. The first is a bug in Microsoft's ODBC driver, which is documented in the Microsoft Knowledge Base in article number Q105797. This bug is referred to as a "Memory Leak." Doing an SQL UPDATE command in a program that is running in a loop, memory will start to disappear. The ODBC driver is not releasing memory that is being allocated for this command. A quick work around is to disconnect and then reconnect to the data source (AS/400 database) periodically in your program. This releases the lost memory. The next problems I hit were caused by the large number of columns, or fields, in the AS/400 database. When the connectivity kit passes data back to FoxPro, FoxPro attempts to create a cursor to accommodate it. If there is a large number of fields, you run up against FoxPro's compiled line length limit, resulting in a nasty GPF error from Windows. There is no real work around for this, except to not bring down all the fields at once. Also, I have found FoxPro's 255 field limit to be a problem when integrating with AS/400 data files. One of the files I have to work with has 258 fields. So if the GPF were not occurring, I still would not be able bring a whole record into FoxPro. In my particular application, I have been able to bring down just certain fields, allowing me to get around these size limitations. Other than these roadblocks, I found ODBC relatively straight forward. The FoxPro Connectivity Kit has very few commands, so it is pretty easy to learn, and if you have used much SQL, you'll be up and running pretty fast. The main limitation to ESS/400 was it's low level file access. I don't find that to be a good fit with FoxPro. The data from the AS/400 is of very little value until you get it into a cursor or DBF to use FoxPro's tools to manipulate it. You have to use one command to put an AS/400 record into a string buffer. Then you can use another command to translate the string buffer into an array. From the array, you put the fields into a DBF or cursor. At this time, routines are being added to the product for future release that will simplify these tasks. 7. Errata - Dick Bard's "Foxpro Event Driven Programming". ----------------------------------------------------------------------- ReplyTo: David Rose [73164,2263] ResponseTo: David Rose [73164,2263] (BCNN Foxpro, March 1994) In my review of Dick Bard's book, I mentioned that I couldn't get his sample application AYCDEMO to work. As he mentions in his README file (after the legal disclaimers) and as he mentioned to me, the index on one of the files is corrupted. I followed the directions on the README and everything worked fine. Of course, this leaves the interesting question, how can an index file be corrupted by PKZIP? 8. Undocumented Foxpro. ----------------------------------------------------------------------- ReplyTo: Pete Kruckenberg [INTERNET:kruckenb@peruvian.cs.utah.edu] Salt Lake Foxpro User's Group Aaron Fessler submitted the following tip on resizing windows to the Polarbear Foxpro mailing list: I just happened to stumble upon a feature in 2.5b DOS that isn't in the documentation. I called MicroSoft and the tech support guy said he didn't have any information on it. He also gave the standard line about it possibly not being supported in future versions, etc. ad infinitum, et nausea. The command is SIZE WINDOW TO , | BY , This is the only command that I am aware of that will allow you to size an existing browse window. MODIFY WINDOW will not allow you to modify browse windows. MOVE WINDOW will not allow you to size windows. I've tried this command in Foxpro 2.0, and 2.5x, and it works in all these versions. 9. Customized FoxPro Startup. ----------------------------------------------------------------------- Reply To: Robin Escalation Software London ON Canada (519) 679-7459 42131_4001@uwovax.uwo.ca Here's a simple but effective time-saving device for FoxPro developers. Most of you will be aware that you can put a COMMAND line in your CONFIG.FP (or CONFIG.FPW) which will run a program every time you start FoxPro. This is equivalent to the AUTOEXEC.BAT file which is executed whenever DOS starts. I prefer to put as few configuration settings as possible in the CONFIG file. By placing them in a regular PRG, they maintain the usual syntax. (As an example, "CLOCK = ON" in CONFIG.FP is equivalent to "SET CLOCK ON" in a PRG.) My sample CONFIG.FP ends with the following line: COMMAND = DO c:\fox\robin The file ROBIN.PRG contains all of the settings I prefer, and the following helpful startup routine: IF !ADIR(zzA, "*.pjx") == 0 zzHits = zzA[1,1] MODIFY PROJECT (zzHits) NOWAIT ENDIF The result is that every time I start FoxPro, the project in the current directory is displayed ready for editing. A small thing, perhaps, but helpful! But what about Windows? One of the (dis)advantages of this environment is that applications always start from the same directory. However, all that is needed is to use the File Manager to associate PJX files with FOXWIN.EXE. Double-clicking on a project file launches FoxPro and sets the default directory to that of the PJX. The result is that the same code opens the project, as desired. 10. Fooling the Screen Generator - Part 1. ----------------------------------------------------------------------- ReplyTo: Bill Passman [INTERNET:bpassman@internet.kronos.com] This method allows the user to use the screen generator for placement, size and other characteristics of data, but it lets you get the prompt information for radio buttons from a data dictionary. This is useful for multi-language support, or any data-dictionary driven application. The example uses a get_prompt function. The arguments are used by the get_prompt function to return a prompt string. In the Radio button prompt field I typed: ]+get_prompt( "05", "3", 'a', 1 )+[ for the 1st entry and: ]+get_prompt( "05", "3", 'a', 2 )+[ for the second entry. The following code was generated by the screen generator in the .SPR: @ 4.692,43.200 GET pa_p5s3[ 1 ] ; PICTURE [@*RVN ]+get_prompt( "05", "3 ", 'a', 1) ; +[;]+get_prompt( "05", "3 ", 'a', 2 ) +[] ; SIZE 1.308,37.500,0.077 ; DEFAULT 1 ; FONT "MS Sans Serif", 8 ; STYLE "BT" This tricks requires that my prompt use double quotes ("), single quotes (') and brackets ([]). If I don't use all three, the screen generator will use one of them to surround my get_prompt and treat it as "get_prompt(...)", and that is what will show up on the screen. 11. When Dr. Dave Speaks... ----------------------------------------------------------------------- ReplyTo: Arnold Bilansky [71533,1031] On April 28, 1993, after a FoxPro 2.5 presentation, a handful of us local folk went out with Dave and Amy Fulton, and Tod Nielson. We discussed a great amount of interesting information. Did you know that in the mid-80's Microsoft negotiated to merge with Microrim (makers of RBase) for 25% of Microsoft stock? The deal fell through because Microrim held out for 30%. As a further irony, the basic design of Access was created by a group of ex-Microrim programmers. A couple of the comments made by Dr. Fulton are of particular relevance to events that unfolded one year later. Dave professed great admiration for Bill Gates' grasp of the where technology was headed and Gates' resources to pursue his goals. Dave was most animated when alluding to certain unnamed projects Gates was working on which could make him "not just the richest man in America, but the richest man in the world." It is now my belief that Dr. Fulton had in mind Gates' vision for the Information Superhighway, with which Dave is soon to be involved. There has been a fair amount of speculation on CompuServe and elsewhere in the aftermath of Borland's sale of Quattro Pro to Novell as to whether this is an indication that Borland's days are numbered. Dr. Fulton stated one year ago that "Borland is through as a company." He said that all they had to do when they bought Ashton-Tate was ship product (dBase for Windows). It did not have to be the greatest or even a fully complete implementation. They would have maintained credibility and the database leadership position. When they failed to do that they were through. 12. Foxpro Hitchhiker's Guide to the Internet ----------------------------------------------------------------------- ReplyTo: Pete Kruckenberg [INTERNET:kruckenb@peruvian.cs.utah.edu] Salt Lake Foxpro Users' Group The Internet is host to over 20 million subscribers (and 1 million more each month), including many Foxpro users. However, probably few Foxpro users are aware of the variety of resources that are available free-of- charge on the Internet. Following is my personal collection of mailing lists, Foxpro archives, and other Internet resources. E-mail resources are also available from Compuserve via the Compuserve/Internet gateway by preceding the Internet address with "INTERNET:". (Unfortunately, Compuserve users have to pay both for sending and receiving Internet mail.) Foxpro archives --------------- Foxpro archives are available by using login id "ftp" and your email address as the password. Remember to use binary transfer mode for all non-ASCII files. Address (name) Address (number) Directory ----------------- ---------------- ---------------------- ftp.microsoft.com 198.105.232.1 developer/devtools/fox ftp.rahul.net 192.160.13.1 pub/coneill lenti.med.umn.edu 128.101.81.1 pub/foxpro mercurio.univr.it 157.27.1.2 pub/msdos/foxpro nstn.ns.ca 137.186.128.11 pub/pc-stuff/foxpro Mailing Lists ------------- polarbear.rankin-inlet.nt.ca : send email to foxpro-help@polabear.rankin-inlet.nt.ca to receive a help file. ukanvm.bitnet : send email to LISTSERV@UKANVM.BITNET with "help" as the first word of the message. Newsgroups ---------- comp.databases.xbase.fox is an unmoderated Usenet newsgroup currently receiving about 150-200 messages per week. A Frequently Asked Questions list in 3 parts is posted regularly and is also available from ftp.rahul.net as file foxfaq.zip. Technical Support ----------------- Microsoft does not officially support Foxpro on the Internet, though there are at least 3 MS employees who are on the Polarbear mailing list, and they do have an ftp archive (see above). However, the Foxpro Wish List is supported, by emailing to foxwish@micrsoft.com. Perhaps you could wish to this address for more Internet support by Microsoft. 13. Son of "Been Thinking 'Bout Colors..." ----------------------------------------------------------------------- Reply To: Brad Schulz [76640,152] San Carlos, CA USA 415-593-3224 I've been thinking about colors a lot lately... ...and it's all Whil Hentzen's fault! After reading his BCNN FoxPro Newsletter submission in March, I down- loaded COLORS.ZIP from the FoxForum and instituted Whil's program to bring up a random color set when starting FoxPro. OK, I admit it ... I was hooked. Hours melted away as I ran my start-up program again and again and again and... Well... it was addicting, as Whil admitted. So, when I got sick of semi-normal color sets, I decided I'd go for the really wild, so I wrote the following program which will set color schemes 1-12 to random colors. And I mean *random*! Whil, if you're reading this, you'll throw up more than a pizza when you try this! My wife walked in while I was composing this message in a particularly obnoxious color scheme and... well, it wasn't pretty. (My two children love it, of course). Use at your own risk! SET TALK OFF SET SHADOWS OFF SET BLINK OFF &&So we have 16 background colors available =RAND(-1) DIMENSION kolors[16] kolors[1]="N" kolors[2]="W" kolors[3]="R" kolors[4]="G" kolors[5]="B" kolors[6]="RG" kolors[7]="RB" kolors[8]="GB" FOR i=1 TO 8 kolors[i+8]=kolors[i] ENDFOR FOR skeme=1 TO 12 skemestring="" FOR pair=1 TO 10 fgkolorix=INT(RAND()*16)+1 bkkolorix=INT(RAND()*16)+1 DO WHILE fgkolorix=bkkolorix &&We gotta see it, don't we? bkkolorix=bkkolorix=INT(RAND()*16)+1 ENDDO fground=kolors[fgkolorix]+IIF(fgkolorix>8,"+","") bground=kolors[bkkolorix]+IIF(bkkolorix>8,"*","") skemestring=skemestring+IIF(pair=1,"",",")+fground+"/"+bground ENDFOR SET COLOR OF SCHEME skeme TO &skemestring IF skeme=1 CLEAR &&Let's look at the main screen ENDIF ? str(skeme,2)+": "+skemestring ENDFOR RETURN 14. Excerpt from Bill Gates Q & A Session ----------------------------------------------------------------------- Reply to: Ted Roche, CIS 76400,2503 Computer Resource, Contoocook, NH (603) 746-4017 Bill Gates was in town on October 18th, 1993 to present a preview of the new Microsoft Office 4.0, to a main meeting of the BCS. At the Q & A session, he and Arnold Bilansky, the FoxPro SIG's meeting coordinator, had the following exchange, a portion of which was quoted out of context up by one of the industry's more famous (infamous?) rumor columnists. In the interests of clearing the air, and perhaps sharing a little more insight into Microsoft and FoxPro, the following conversation is presented in its entirety: AB: I've just returned from the FoxPro Developer's Conference in Orlando, and I'd like to share with you a concern that a lot of the FoxPro developers have, in that FoxPro has not, until now, seemed to be part of the family of Microsoft and sort of ghettoized. We see glossy ads, but if you talk to sales reps, if you go to Tech Ed, anything, there's no talk of FoxPro. In fact, we've had situations where people have talked to local reps and they've come back asking about Access. So I'd like to know what, based on statements that Dave Fulton said that Microsoft is going to support FoxPro as the database of choice, is that actually, going to occur and will it be a change in Microsoft with regards to FoxPro? BG: OK, first of all, to correct your impression about what's going on. We're selling now over six times as much FoxPro as Fox Corporation sold as a standalone company. In terms of making Fox important, I think selling a lot of it is a big element to that, and we're doing a great job of that. We've increased the size of the Fox development team measurably now that it's out at Microsoft. I think you saw at the conference, we're now going to share the database engine and the end-user tools in the future Fox products, so that the team is focused on Fox can focus on language extensions, making that language faster, putting events into it and making sure it's the best database-oriented language that's out there and upwards-compatible from whats come in the past. We're getting a lot more leverage out of being part of the Microsoft family than we ever did in the past. Right now the team is very focused on getting the Mac version done, and only part of the team is off on that new version where we have a lot of shared technology. It is a developers tool, and so sometimes we treat it like we treat C. I don't think you'll ever see us bundle Fox in the Office product, because most people who buy Office just want the end-user tools. In fact, as we partition Access into the programming piece and the end-user piece, we'll take the program- ming piece out of the Office box, and just have the end-user tools, and then you can pick whether you want to use Visual Basic or Fox or C++ as your way of driving those objects that are common to all of our database access capabilities. So the leverage through ODBC, the shared tools, the resources we have, the marketing we have, is very dramatic. Our individual reps can hardly understand - you know, you could ask them some questions about C++, you might say do we believe in C++ - yes, we write a lot of C++, and like Fox, it's very strategic to us. And so, if you want to ask questions, that developer conference is the time to do that. We sent as strong a message as we know how at that conference about our commitment to Fox. If it didn't come across, there are no words we can utter that would possibly be con- vincing. We were so hard-core--I made a video, Roger Heinen got up there and said how strategic it is. It's not Word, it's not an end- user product. But as a development tool, we have an absolute, total commitment to keep enhancing that product and have that language be one of the ones you can choose working with all the different things we do--OLE Automation, OLE 2.0, all of those things. So, maybe hearing it from me will help reinforce the point. 15. BCNN Statement of Ownership, Copyright, and Responsibility. ---------------------------------------------------------------------- The BCNN Newsletter is sponsored by the Foxpro User Group of the Boston Computer Society. BCNN is dedicated to keeping professional database developers (both consultants and corporate employees) informed about educational events, meetings, job openings, world events, notable articles, technical tips, new and 'must have' products, etc. As an electronic network BCNN is also a hub where developers can address world class issues with fellow developers around the world. Recipients agree to respond via Email to periodic polls of their directions, opinions, and needs. For those who do not have User Groups in their areas, BCNN is a vehicle for individuals to volunteer and contribute to something larger than themselves. Over 7,500 persons world-wide participate with CA-Clipper, Microsoft Access and FoxPro. The newsletter is distributed monthly by electronic mail via CompuServe, Internet, FidoNet, and other electronic gateways. It is free of charge to individual developers. Modest fees are charged to corporations for job placement and third-party announcements. Opinions expressed are solely expressed by the Foxpro User Group or the author found in the ReplyTo of the article. No warranties are made by the authors, editors, the Foxpro User Group or BCNN regarding the accuracy or applicability of the information provided in this newsletter, nor are the above named parties responsible for direct or incidental damages due to your use of this information. All materials are copyrighted by the BCS, unless otherwise indicated, and free for any user group to redistribute on their own BBS on the condition that a by-line referencing the BCS is included. Associate Editors: ---------------------------------------------------------------------- David Rose, Days (508)538-8064, Eves (617)935-6843. CIS:73164,2263 Internet:73164.2263@CompuServe.Com Arnold Bilansky Days (617)522-3700 x374 CIS:71533,1031 Internet:71533.1031@CompuServe.Com Ted Roche, CIS 76400,2503 Computer Resource, Contoocook, NH (603) 746-4017 Submissions. ---------------------------------------------------------------------- Send submissions to 73164,2263 with the subject 'BCNN Foxpro Submission'. Format your submissions similar to this letter. Distribution and Subscription Services. ---------------------------------------------------------------------- Les Squires, Director, Xbase Language Group. bcnn@World.Std.Com or 73020,3435 Add Subscribers: @BCNN@FoxYes to bcnn@World.Std.Com. Delete Subscribers: @BCNN@FoxNo to bcnn@World.Std.Com. Address Changes: Email using OLD Address. Indicate new Address. Back Issues: (to be announced...) Boston Computer Society, Inc. 101 First Avenue Suite 2 Waltham, MA 02154 617-290-5700 General Number 617-290-5700 Ext. 432 for up-to-date meeting information. BCNN Email Services donated by Word Jenny Inc. LSquires@World.Std.Com (c) 1994 Boston Computer Society, Inc.