Wiki Home

Steven Blake

Namespace: WIN_COM_API
No, I'm not Steven Black.

I'm from the Saint Louis, Missouri area and started programming on a PC back in the early '80s. I'm proud to say I knew dBase when it was only II. I have been primarily an xbase programmer since then. I did write some dBase articles for a user group web site newsletter but normally I'm utilizing others contributions to web sites.

My first contribution to this site came from a nagging problem where a Data Session would not close even though the form was released. Eventually I tracked down the cause one afternoon when I couldn't stand the mystery any longer.

A user asked for a one-click method to SELECTALL the items in a LISTBOX (of which there was a substantial number.) I experimented hoping for a straightforward solution but instead wrote the List Box Items Select All method.

My front end Microsoft® SQL Server™ application (VFP6.0) had a LISTBOX with the Multi Select Property set true. Once the user made selection(s), the joins on the local workstation took forever because several remote tables each had hundred thousand rows to retrieve. My solution was to utilize a SQL - Temporary Table.

The reverse operation to the DTOS() function has always seemed a curious omission in the supplied arsenal from Microsoft®, especially before the introduction of the Strict Date Format. My remedy was a UDF (User Defined Function) called STOD() and is described in String To Date.

Sometimes closing tables needs a little managing. I have two items in the Close Tables page:
Determining the date when Easter occurs depends upon the first full moon of spring -- usually. I found some algorithms that return the date of Easter from supplying the year to validate a NYSE process I was coding. See the math at Algorithm Easter Date.

There has been a bug within the Class Browser tool since version 6 that's still thriving in 8. After you load a library, you may redefine the Parent Class property by right clicking the name of the intended class. The Re Define Module works great with drive letters but not with UNC pathing.

Imagine removing rows from an array in a FOR...NEXT loop and determining you are done because ALEN() = 0. dBase users have that feature but FoxPro requires at least one row in an array. Is that one row empty or in use? Code that returns zero for an empty, one row array is published in Array Zero Length.

A user wanted bands of background color to distinguish alternating groups of rows and other features on the spreadsheet reports generated by FoxPro. So I built an Excel Wrapper Class after I found that the Excel object model is not as simplistic as it first looks.

Working with AMEMBERS(), my first encounter with the Write Expression method was not as straight forward as the sparse documentation led me to anticipate. After working out the strategy for writing a string expression as the second parameter, I opened a new topic to reveal my findings.

DOS FoxPro 2.5 work exposed a flaw in my ISDIR() UDF based upon the ADIR() function. I had used the function for years, but when there were hundreds of names in the folder I was testing, the return result bogged down. I found a more expedient solution with only slight change as shown in the Isdir()Foxpro2UDF topic.

A remote view that had worked as expected suddenly stopped responding to the REQUERY(). I had studied the view properties documentation and thought I was tweaking my views for peak performance. Setting the Fetch As Needed property to false where FETCHSIZE is set to -1 seemed to be the culprit. I wrote a program to revert the view properties to where the view behaved again as expected.

My C# program could not see the method parameters in a COM object created with VFP, however VFP saw them just fine. The compiler handles the PARMETERS/LPARAMETERS command line alternative differently as shown in the DLLMethod Parameter In Dot NET topic.


Category People
( Topic last updated: 2006.06.01 11:35:11 AM )