Difference between revisions of "Working with OleDB"
Barrymavin (Talk | contribs) |
Barrymavin (Talk | contribs) |
||
Line 1: | Line 1: | ||
+ | Note that since Lianja 6.3 you can integrate Lianja and VFP with concurrent data access. | ||
+ | |||
+ | See blog article: | ||
+ | https://www.lianja.com/community/entry.php?14-HOWTO-integrate-Lianja-and-VFP-with-concurrent-data-access | ||
+ | |||
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. | 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. | ||
Revision as of 02:18, 18 January 2022
Note that since Lianja 6.3 you can integrate Lianja and VFP with concurrent data access.
See blog article: https://www.lianja.com/community/entry.php?14-HOWTO-integrate-Lianja-and-VFP-with-concurrent-data-access
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 It 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.