Invalid object name 'dbo.customers'

Microsoft SQL server assigns character fields a collate sequence that determines how a field is sorted. These collate sequences can be case-sensitive or case-insensitive which makes it possible to write queries without using UPPER() on every single field name.
Read More…

Navigation to the webpage was canceled

When you download a CHM file or a ZIP archive containing a CHM file with IE 7, you get an error message when you try to open the help file. The message is "Navigation to the webpage was canceled" or "Dieses Programm kann die Webseite nicht anzeigen." on a German OS. This error message is part of Microsoft's attempt to make Windows more secure. After all, if you don't read the help files, you don't know all the variations of damaging your system.
Read More…

Resolution of SECONDS()

On Win 9.x SECONDS() has a resolution of 1 ms. On NT based systems, SECONDS() changes every 10 ms, as you can seewith the following program:
Read More…

Secure error handling

Recently I reviewed a Visual FoxPro application for security issues. This application was using a popular file encryption DLL to transparently encrypt all tables. That's actually a good thing because unencrypted DBF files allow hackers to inject code into a VFP application. Breaking encryption algorithms is a futile exercise for all standard encryption algorithms.
Read More…

Optimal slow

Optimizing queries in Visual FoxPro is often attributed with increasing speed. Years ago we've seen with the discussion about an index on DELETED() that this is not a universal rule. Optimizing queries can be quite a tricky thing. Here's a situation to think about. You have two tables A and B. The query returns all records from A and about half the records of B:
Read More…

SET PATH oddities

Without testing this code in the Command Window, can you say what paths Visual FoxPro searches for each of the following SET PATH statements?
Read More…

The current state of Guineu

I've been pretty busy in the past months which kept me from reporting on Guineu's progress. Since November I added the object engine, implemented a number of base classes and started working on the data engine. I also added several functions and commands. The entire feature set is still very basic compared to what Visual FoxPro offers, but it's sufficient to write working applications.
Read More…