Visual FoxPro (VFP), and its predecessor FoxPro, is a data-centric, object-oriented, procedural, database programming language and IDE from Microsoft last released in 2007 that still has some active use due to its low cost of deployment and fairly rapid development. In 2008, Microsoft released a set of add-ons for VFP's xBase components to allow interoperability with various Microsoft technologies. It allows data processing against its native file-based data tables or database servers such as SQL Server.

Share tech news, updates, or what's on your mind.

Sign up to Post

Hello everyone,

I have a parameter view (lv_prname) that I am passing a name string on a VFP form.  The view is tied to a grid resource in a grid.  The view is using a "Like" sql statement.  When I pass a name value (example "TOM J", the view is not returning all the records that I have in the table.  I know I have 25 records in the table that should match, but it returns on 19 records.

My code that I am running

with thisform
do case

	case .a = 2 && processed record by name
		c = alltrim(.t1.value)
		lc_name = ALLTRIM((c)+'%')
		.Grid1.recordsource = 'lv_prcname'
		.parm2 = lc_name
		b = reccount('lv_prcname')
		.hqp = lc_name
		if b = 0
			messagebox('No Records Found',0,'Record Not Found Message')
			.cmdok.visible = .f.
			.cmdok.visible = .t.

Open in new window

My local query view has following

SELECT * FROM payroll!payroll_tbl WHERE Payroll_tbl.fname LIKE ?lc_name ORDER BY Payroll_tbl.fname

DBSetProp(ThisView,"View","Comment","processed rec view for like names"+CHR(13))

Open in new window

OWASP: Avoiding Hacker Tricks
LVL 12
OWASP: Avoiding Hacker Tricks

Learn to build secure applications from the mindset of the hacker and avoid being exploited.

I am using VFP 8.0.  I have a textbox that has some value.  How can I check if that value changed from original value?

I've got a FORM that is being used as a progress message window, to report stages in a lengthy piece of processing.
When the processing has finished, I click on the [x] close button. This calls the .QueryUnload() method, which asks a "do you want to close?" question.
If the answer is "Yes", then it calls THISFORM.Release().
But this doesn't close the FORM!
What am I doing wrong here?
I have an application using MSXML to retrieve data from a web site. On Successful receipt I 'PUT' an XML document to the web site confirming this and the data is cleared from the web site.

Subsequent retrievals then exclude documents previously downloaded.

However within the same application data session I am getting replicated downloads even though all objects related to the download are released after successful download and recreated each time a download process is started.

When I close and restart the application the correct data position is returned.
I am trying to create a DSN to link to a Visual Foxpro 5 table from Microsoft Access (Office 365).  I am using Windows 10.
A combobox control I am adding to a Visual Foxpro 9 form shows only the first item in the list.
I am creating a two column array from a table, and the debugger shows all rows are created.
If the record in main table in the form is tied to that first item, the item shows up in the control.
If not, the control is blank.
I can drop down the list, pick the one item, and it will now be tied to the main table in the save procedure, and appear in the combo box if I call up that record again.
So the create array procedures and save procedures seem to be working, but I am only seeing the first record in the array on the form. .
I have used this combobox class for many years, although not recently.

RoWSource is 'this.aitems' which seems to be created properly.
RowSourceType is 5-Array

Any thoughts?
I have created a serie of executable files that each generate a specific report on the server.(Visual Foxpro 9).

I need to enable the user , but doing something (send an email., copy a file to a folder, do anything that will trigger that executable file.
I can not give him access to the server. and there are many executables.. (around 20)

I was thinking of creating a watchdog on a folder... but don't know how to do this in Visual Foxpro
Microsoft have created a Printer Class described here

It gives the invocation syntax for C#, C++, F# and VB

Anyone know how to invoke it in VFP?
how to send retrived value from cursor into textbox in vfp
LVL 45

Expert Comment

Simply set the Textbox  ControlSource to  alias.column  of the cursor.

Just remember the textbox can display just one value from the current row.
LVL 25

Administrative Comment

by:Andrew Leniart
Hi Venkata,

What you have done here is made a Post, which is just a way of sharing information with the Experts Exchange community.

To get help with your question from our experts, please use the blue "Ask a Question" button at the top of your browser. You'll get a lot more help that way.

I hope that's helpful.

Regards, Andrew
EE Topic Advisor
I have a client asking about their VFP app being able to export data to QuickBooks.  I am wondering if anyone has suggestions on how to best go about making that work, using 3rd party tools or otherwise?
Become a CompTIA Certified Healthcare IT Tech
LVL 12
Become a CompTIA Certified Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

I have a client asking about their VFP app with a SQL backend database being able to import/export data from SalesForce (  I am wondering if anyone has suggestions on how to best go about making these tasks work, using 3rd party tools or otherwise?
Hey guys,
I have a client who use a Visual FoxPro based program.  The program is contained in a shared folder that is shared from a server that all the users access.  This is everything that has happened with it:

The client recently migrated from SBS 2011 to a Server 2016 DC that was also doing file and print sharing. The program was then being hosted from the 2016 server.

The users reported all kinds of performance issues after going back and forth with the vendor I finally just spun up a Windows 7 VM and migrated the program (shared folder) to that.  I was told that though it was not working as well as it was before, it ran much better.

Now I have two Windows 10 users both of which are getting an "invalid seek offset," error.  The vendor told me that the error message means that there was a network drop and even what you research online says the same thing, however one user switched back to Windows 7 and never reported the error after that.  Also this same user who is now having this issue had Windows 7 before and was setup in the same cubicle as before. Also I ran utility called, "Ping for life," which a 100% ping success rate, which means no networking issues.

Right now I want to check with you guys, if there are any known issues with Visual Foxpro and the newer operating systems.  Any articles that say anything about this?
                var cdxExpressions = new List<CDXExpression> {
                new CDXExpression { expression = "ENTRY_DATE", name = "cdx_p1"},
                new CDXExpression { expression = "LOSS_PD", name = "cdx_p2"}

                string strCon =
                    @"Provider =vfpoledb;Data Source=C:\DBF_files_Folder\20180921\" + tableName + ".DBF"; // TestDataBase1.DBF";
                OleDbConnection con = new OleDbConnection(strCon);
                OleDbCommand cmd = con.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "ExecScript";

                var myCode = "use " + tableName + " exclusive\n" +
                      string.Join("\n", cdxExpressions.Select(e => $"index on {e.expression} tag {}")) +

                cmd.Parameters.AddWithValue("code", myCode);
            catch (Exception ex)

C# -

Code above used VFPOLEDB driver. This driver should be installed on machine explicitly.
When I put my WPF application on common drive and ask users to access it, they also got to install VPFOLEDB. Is there a other than installing this MSI on all client machines.
Tried using JET OLEDB. It gives an error saying 'Cannot execute a Select Query'.

Hi Experts

Could you point a strategy to access a DB that remains at AWS cloud by using Visual FoxPro?

The reason it to reuse an alrealdy developed app to do that.

Thanks in advance!
I have a Visual FoxPro program running. it uses a local cursor engine.
To use the program from home, people use a VPN solution (openVPN)

Using this, we have poor performance.
We use lines with a 200mbit down and 50 mbit upload speed.  (vendor = Telenet Belgium)

The database has a traffic of 100mbyte totally  during a complete session, so it should fly.
However: on a 100Mbit network it works realtime. response times are very low.

Using openVPN, response times are like minutes.
The internet connection is real fast. So OpenVPN is what slows us down.

I put send and receive buffers to 0 in both server and ws config file. This fastenes the systyem up, but far..  far from enough.

There must be other settings to speed openVPN traffic up. But what can I do?
Our Desktop systems are written in VFP-9, and from time to time we have users reporting errors due to loss of connection to MSSQL (usually when the system is idle for a few minutes - a coffee break, for example). Until Windows 7, this problem no longer occurred by unchecking IPV6 and turning off the power-saving feature of the network card.

With Windows 10, we found that there are other places with the power saving feature such as monitor and HD. We have already cleared all this, but some users still report the same error (loss of connection).

Is there any way to avoid this loss of connection?

Translate from portuguese:

Os nossos sistemas Desktop são escritos em VFP-9 e, de uns tempos para cá, temos usuários reportando erros por perda de conexão com o MSSQL ( normalmente quando o sistema fica inativo por alguns minutos – uma pausa para o café, por exemplo ). Até o Windows 7, esse problema deixava de ocorrer desmarcando o IPV6 e desativando o recurso de economia de energia da placa de rede.

Com o Windows 10, descobrimos que existem outros lugares com o recurso de economia de energia, como monitor e HD. Já desmarcamos tudo isso, mas alguns usuários ainda reportam o mesmo erro ( perda de conexão ).

Tem alguma forma de evitar essa perda de conexão ?
I have this csv file which i want to convert into foxpro table.

The first row is a header, The second row is details.

Will like some advice on how to go about it.20180807_144846.csv

Thank you in advance.

Erick Nyange
I have a foxpro table with sequence 55,56,57,59,60,70,70,71,72,73,74,74,75.76. Will like to reset the numbers to have a uniform sequence like
55,56,57,59,60,70,71,72,73,74,75,76,77.78. i have tried a loop program that increments by 1 for every record loop but to no avail. it skips reset the similar numbers

can some assist me please

I will appreciate
I need to link an access database to what i think is a visual foxpro table the data is from an accounting program in foxpro
which is called Pegasus Opera version 2

I have managed to convert the table into a csv format then into MS ACCESS  but I could do with a live link if possible

Many Thanks

Become a Microsoft Certified Solutions Expert
LVL 12
Become a Microsoft Certified Solutions Expert

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

down vote
I am having a problem with seeks not working on descending indexes key values.

I set up my DBE as follows:



// Use server rights not user rights DbeInfo( COMPONENT_DATA, ADSDBE_RIGHTS_MODE, ADSDBE_IGNORERIGHTS )

I am connecting through an ADS data dictionary and the tables were added using the FoxPro (DBF/CDX) driver (not the Visual Foxpro driver.)

The indexes are created through ADS.

I have an index that puts empty dates first followed by descending dates then ascending IDs as:

Whenever I do a seek as either dbseek(descend(‘99999999’)) or dbseek(descend(dtos(dMyDate))) the seek goes to EOF or the proper record (date does exist) is not found properly.

I have the character set set to ANSI for both systems and the collation to Engl.(Amer) in both.

I've attached a sample program, table and other information in case anyone wants to take a look.
Within a VFP app, when certain users print a report, the report is automatically sent to the default printer and to multiple (4) networked printers.  This causes the system sending the print jobs to lock up for 30-45 seconds multiple times a day.  They are wondering if we could speed this process up.

Below is the critical block of code.  

A brief explanation of it's intent: Names of the printers receiving this report (WorkOrder) are stored in a SQL table as such:

When designated users print the work order report it is sent to their default printer, the default printer name is stored, the next printer name is queried from the SQL table, the VFP printer is set to it and the report is printed, etc.  While this process is running the users cannot do anything else in VFP.  I don't think the SQL queries or the VFP code are causing any delays, but the multiple print calls (REPORT FORM source\workorder TO PRINTER NOCONSOLE) are.  Any suggestions for me?

FOR lnX = 1 TO lnQty  && Print desired qty of the work order to the default printer

SET REPORTBEHAVIOR 80  && Sets to VFP 6 printing rules.

* If a printer is not available skip the error and continue
ON ERROR llErrFlg=.T.

* …
Hi Experts

Could you point what is preventing vfpcompression.fll to be used in a VFP9 project running under Windows10?

Accordingly to:

The same .fll perfectly runs under Windows 7

Any workaround?

Thanks in advance
Need to send SMTP email from FoxPro app that includes CC and BCC on a windows machine WITHOUT installing any ocx's or dll's. Is this possible with standard windows api calls?

Server restrictions are high, so no regsvr statements are allowed, no registry changes. dll's or libraries residing in the same directory may be permitted.
Using ODBC I am trying to redirect a VFP app to new SQL 2016 database.  If I use Windows Authentication the app will run as desired.  If I use the preferred SQL Server Authentication the ODBC connection is made and tests successfully, but when trying to run the VFP app I'm continually getting SQL Server Login dialog box popup.  I have confirmed the SQL server is set to Mixed Authentication Mode.
Sometimes, when my FoxPro application does not close gracefully for whatever reason, I get an error message upon its restart: "Index does not match the table. Delete the index file and recreate the index". Can somebody provide me with a sample code to do it automatically? Also, I have a significant number of indexes, and some of their expressions are fairly complex. So, it would be nice to have all of them listed in a single text file for convenient copying and pasting into "INDEX ON". I am still using VFP6 (I know, I know...)

Thank you.


Visual FoxPro (VFP), and its predecessor FoxPro, is a data-centric, object-oriented, procedural, database programming language and IDE from Microsoft last released in 2007 that still has some active use due to its low cost of deployment and fairly rapid development. In 2008, Microsoft released a set of add-ons for VFP's xBase components to allow interoperability with various Microsoft technologies. It allows data processing against its native file-based data tables or database servers such as SQL Server.

Top Experts In