devxlogo

Attaching a DataGrid Control to ADO

Attaching a DataGrid Control to ADO

Question:
How can I use ADO and DataGrid (OLE DB) control in a VFP form? This code does not work in VFP as it works in VB 6.0:

 DataGrid1.DataSource=mADORecordset1

Answer:
The Datagrid object cannot be attached to a “forward-only” ADO recordset. The type of recordset is set with the CursorType property, which defaults to 0 (forward-only). Therefore you need to set the CursorType property to another value (for example 1, which means static recordset). With slight modification (ODBC datasource and SQL), the code below will accomplish what you need.

Create a form with two properties: oConnection and oRecordset. Put the following into the INIT method:

 this.oConnection=CREATEOBJECT("adodb.connection")*-- Open the ADO connection to the*-- ODBC datasource - change the dsn*-- and file to settings you requirethis.oConnection.Open("dsn=rick;file=rick.dbf")this.oRecordSet=CREATEOBJECT("adodb.recordset")*-- Make the recordset staticthis.oRecordSet.CursorType=1 *-- Run a query against the ODBC datasource*-- change the SQL to the SQL you requirethis.oRecordSet.open("select * from rick",this.oConnection) this.DataGrid.Datasource = this.oRecordSet

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist