Archive for July, 2007


Today I received my June/July 2007 issue of the Advisor Guide to Microsoft Visual FoxPro (AGTMSVFP) and they implemented the Journal format (similar to fading FoxTalk 2.0). I like the change for a couple of reasons:

1) It will be more profitable to Advisor Publications since they are not printing in many colors on glossy paper. A profitable Advisor will produce this publication longer, which benefits the Fox Community.

2) No smearing. The glossy magazines seem to smear in my hands. I am not sure if this is something that only happens to me, but I hate ink smears on my fingers.

3) Same great authors and content.


Just in case you were wondering were I has been for the last couple of weeks: I have been to Alaska. Yep, 49 states down, 1 to go (Louisiana for those keeping track). We also hit the Yukon Territory and British Columbia, both Canadian Provinces I have not previously visited.

I hope to discuss my trip more and post some of the 1000 photos I took (along with a couple of hours of video) somewhere at a later date. I was really disconnected on this vacation with rare cell coverage and spotty Internet access. A real vacation. In fact, I rarely turned on the computer. It felt good to disconnect. Fortunately all emergencies and urgent problems got handled in a timely manner.

Thanks to all who were concerned when they heard a tour plane went down and killed four folks from a Princess cruise ship. Some folks did not get a response from me, or see me online for the two weeks and were a little worried at first. I never saw the report until the cruise line left a notice in our room. I actually took one of those plane rides around Mt. McKinley (different location from the one that did crash), and was on a Princess Cruise ship, but a different one. We actually ported with the ship suffering from the loss of passengers during their excursion. We feel sad for the families involved knowing how much we anticipated this trip and all the planning involved, just to have it end the way it did.

So more later after I catch up on the 27 items still remaining on my to-do list for the next couple of days.

, ,


I received a notification from Visionpace this evening about their next VFP bootcamp coming up in August. I get inquiries from VFP developers looking for training, and I have Visionpace on the short list of vendors I recommend. Here are the details from Visionpace:

The next VFP Boot Camp will be in Kansas City, Missouri, August 20-22, 2007

Registration ends on August 1, 2007 for the highly-acclaimed VFP Boot Camp. This event delivers three jam-packed days of solid, hands-on learning. From the fundamentals of VFP development through the very latest VFP 9.0 features, this boot camp is designed to quickly get your VFP skills up to speed. Attendees will receive a 500 page manual in both print and electronic format.

For more information visit or email info AT To register call 888-904-7900.



Two new sponsors to announce today:

1) Information Technology Associates (ITA) is a new bronze sponsor. ITA is a professional software development, computer services, and information systems consulting firm specializing in the design, development and support of custom software for business and office applications. ITA is owned and operated by VFP guru Rick Borup. Rick is presenting”Framework Fundamentals” and “So You Want to be an Independent Developer” at this year’s Southwest Fox, and presented at the last two Southwest Fox conferences.

2) Red Gate Software is a new bronze sponsor. Red Gate Software has been developing ingeniously simple tools that simplify the business of working with SQL Server and .NET. I personally use some of their tools when working and deploying Visual FoxPro applications in conjunction with SQL Server on the backend. Red Gate has provided us with some great door prizes for the conference.

If you are interested in being a sponsor, please send an email to sponsors AT

Southwest Fox 2007, Mesa, AZ, October 18 - 21, 2007


I can only start this post out by saying THANKS!

I am overwhelmed by the response to Southwest Fox 2007 and the number of registrations we have taken for the conference. When I talked to Bob about taking over the conference he cautioned me to not be concerned if the registrations were not hot and heavy until a month before the conference. He said I probably would be worried when less than half would register for the early bird. This puts a lot of pressure on the organizer when planning the budget and determining where money can be spent on things like food for attendees, travel for the speakers, and things like meeting the number of room nights we have committed to before hitting financial penalties. He told me to stock up on Tums (and I do have a Costco membership so I can purchase in bulk {g}).

Southwest Fox is in terrific shape for 2007. We have 88 paid registrations so far, which is more than were at the conference last year, and are on a pace to break all attendance records for this conference. I guess it is even possible to sell-out the conference (something we really did not think about when putting this together).

The Who’s Going page is going to be generated and posted in the next few days.

So thanks from the bottom of my heart for the great response and making the planning much easier. For those who still plan on registering, no need to wait until the last minute. Only 98 days before we meet in Mesa!

, ,


Just got back from the theatre and can tell you I really enjoyed the movie. Well done. Two thumbs up from the entire family. It will be interesting to see the edited clips that did not make it into the movie when the DVD comes out. I was interested in seeing how the director was going to squeeze this ginormous book into 2.5 hours.

I am also looking forward to the last book in the series later this month. I will be on vacation when it is released so I have to wait until I get home to start reading.


Let me start out by saying I have been extremely happy with my AT&T; Yahoo! DSL line. I have had this line for four or five years and in this time I would guess it has been down less than five times for less than a week of time. I happily pay US$27.99 for the service even though I get about 1200-1300 kbps when the service is rated at 3000-6000kbps. It is fast enough for what I do including email, Internet browsing, downloads of apps, and the occasional VOIP call. Today I did some mentoring with PcAnywhere and was talking on the VOIP line at the same time and there was barely a hiccup.

Last week I got an email from my beloved vendor:

Dear AT&T; Yahoo! High Speed Internet Member,
We truly appreciate your business and would like to remind you that the introductory pricing for your AT&T; Yahoo! High Speed Internet Elite service is scheduled to expire within the next 60 days.

To ensure your continued enjoyment of all the many benefits you have come to rely upon from AT&T; Yahoo! High Speed Internet, your service will automatically continue at the low ongoing rate of $34.99 per month*, with absolutely no term commitment! That is the lowest month-to-month rate for AT&T; Yahoo! High Speed Internet Elite service.

How lucky am I? Only a 25% increase! What do these people think they are Blue Cross Blue Shield (who hit me up for a 22% increase this month)? I check their Web site and see new customers get the same price, but get two months free. I called AT&T; and while on hold I checked out Comcast cable who is offering 6.0 up to 12.0 mbps for US$20 a month for six months followed by US$42.50 (or an average of US$31 and some change).

I ask about other deals and mention how loyal customers are treated like dirt compared to new customers. My daughters laugh at me when I do this, but I see it is a trait getting passed down to them because I heard my son beat the crud out of a Verizon sales guy a few months ago. It seems to be an annual tradition with the company now referring to themselves as the “New AT&T.;” For me, it is the same old garbage.

So for my time I was rewarded with a new 12 month contract with one month free, plus two more months free because I pointed out that I was not getting as good of a deal as the new customers. So it pays to be persistent!

I thought I would pass this along to you in case you are “up for renewal” on your broadband plan. I also see they are dropping the monthly US$2 fee to use the AT&T; wireless hot spots around the world. Nice bonus.



Today I used a new VFP 9 feature for the first time in a real world scenario – the new ability to query data from a buffered cursor using the new WITH (BUFFERING = .T.) clause/syntax.

I know there are VFP developers and database administrators who will say using this syntax is absolutely wrong because the data still has a chance to be reverted and thus the query result is not reproducible. The information could be used incorrectly to make business decisions and this is not smart, and is not a professional approach. These individuals are absolutely correct when you need to have checks and balances in the database, integrity of the data in the database, and integrity in reporting and analysis.

I on the other hand needed to use this new functionality to check the validity of the data before it was committed to the database. Here is my scenario:

  1. I have data to import from an outside source.
  2. I have data to import from an internal source, but is exported from a different application.
  3. There is a good chance there is duplication from the two data sources.
  4. All data is imported to tabled buffered cursors.
  5. I have to commit the import of the data across three different tables all at once, or not at all. Two of the tables are related.

I begin the transaction and import the data from the internal source, then import the data from the external source checking for the duplicates. I want to review it before I committed the transaction. In the review process I query the various tables to make sure there are no duplicate people, no duplicate vendors, and need to verify all the registrations get set for the appropriate year.

Here is my query to count the number of people with multiple registrations:

SELECT cLastName, cFirstName, COUNT(*) as nCount ;  FROM people WITH (BUFFERING = .T.) ;    JOIN registration WITH (BUFFERING = .T.) ;      ON people.cPeople_PK = registration.cPeople_FK  ;  GROUP BY cLastName, cFirstName ;  HAVING nCount > 1 ;  INTO CURSOR curMultiYearRegistrations

I counted the test data records in advance of the import to make my comparisons. This slicing and dicing of the buffered data saved me a lot of aggravation of removing the imported data when I found errors. I could have blown the database away and restored a backup, but that would have taken more time. I could have imported to a holding area, but that would have made twice the work. I was able to suspend the import process and do some ad hoc queries to verify all is well during each step of the import.

I have another idea where this new syntax will help in HackCX Professional. I anticipate adding a report or summary screen in the next version so you can see all the buffered changes you have made in the class library you are hacking. Sure I can do this without the SQL Select syntax, but I think writing a simple SQL Select is faster and less code than scanning through the whole table to determine what records have changed.

Have you used this new syntax? If so, what for?