Working with OleDB
You can use OleDB with the VFP OleDB driver if you need to work directly with existing VFP data. This works in desktop and cloud Apps.
OleDB is a COM technology so it is Windows-only. As opposed to ODBC, which is platform independent; Windows, Linux and macOS.
There is an updated version of the VFP OleDB Provider from the one included in Visual FoxPro 9.0, is available for download from:
http://microsoft.com/downloads/details.aspx?FamilyId=E1A87D8F-2D58-491F-A0FA-95A3289C5FD4&displaylang=en%7Chere
An ODBC driver for VFP can be downloaded from https://www.devart.com/odbc/
private oConn, oRS, m_count oConn = createobject("ADODB.Connection") oRS = createobject("ADODB.Recordset") lcConnString = "Provider=vfpoledb;Data Source=C:\Temp\Northwind\northwind.dbc" oconn.ConnectionString = lcConnString oconn.Open() oRS.Open("select * from customers where customerid='BOTTM'", oconn) m_count = oRs.fields.count // display the first record selected for i=0 to m_count try ? "Name=" + oRS.Fields.item(i).Name + ",value=" + etos(oRS.Fields.item(i).Value) catch // ignore error from Memo endtry endfor
Notice how you must use the item() method on the Fields property as this is exposed only as a property not a method.
The output produced is as follows:
Name=customerid,value=BOTTM Name=companyname,value=Bottom-Dollar Markets Name=contactname,value=Elizabeth Lincoln Name=contacttitle,value=Accounting Manager Name=address,value=23 Tsawassen Blvd. Name=city,value=Tsawassen Name=region,value=BC Name=postalcode,value=T2F 8M4 Name=country,value=Canada Name=phone,value=(604) 555-4729 Name=fax,value=(604) 555-3745
Note: There is a known issue with retrieving memo fields using the VFP OleDB driver which is why TRY/CATCH to ignore the error.