
http://www.atoutfox.com/articles.asp?ACTION=FCONSULTER&ID=0000000230
Aqui otro link de ejemplo que utiliza conexion en ADO.
Si Algun experto pudiera convertirlo a conexion ODBC seria excelente para aquellos que deseamos implementar en nuestros proyectos este OCX que viene incluido en nuestro VFP 9.0
https://www.foxite.com/archives/axctive-x-flex-grid-0000169530.htm
LOCAL oCon as AdoDb.Connection, oRS as ADODb.Recordset
oCon = CREATEOBJECT('AdoDb.Connection')
oCon.ConnectionString = ;
"Provider=VFPOLEDB;Data Source="+_samples+'data\testdata.dbc'
oCon.Open()
TEXT to m.lcSQL NOSHOW PRETEXT 8
Select c.cust_id, c.company,
o.order_id, o.order_date,
e.First_Name-(' '+e.Last_Name) As Employee,
oi.line_no, p.prod_name,
oi.unit_price, oi.quantity
FROM testdata!customer c
INNER Join testdata!orders o
ON c.cust_id = o.cust_id
INNER Join testdata!Employee e
ON o.emp_id = e.emp_id
INNER Join testdata!orditems oi
ON o.order_id = oi.order_id
INNER Join testdata!products p
ON oi.product_id = p.product_id
order By p.prod_name
ENDTEXT
oRS = oCon.Execute(m.lcSQL)
PUBLIC oForm
oForm = CREATEOBJECT('myForm',oRS)
oForm.Show()
DEFINE CLASS myForm as Form
Height = 450
Width = 750
Add OBJECT hflex AS olecontrol WITH ;
Height = 420, ;
Width = 750, ;
DragIcon = "c:\program files\microsoft visual foxpro 9\graphics\cursors\h_point.cur",;
OleClass = 'MSHierarchicalFlexGridLib.MSHFlexGrid'
PROCEDURE init(toRS)
with This.HFlex
.Datasource = toRS
for ix = 1 to .Cols - 1
.MergeCol(ix) = .t.
endfor
.MergeCells = 3
endwith
this.DoSort(This.HFlex)
ENDPROC
PROCEDURE doSort(toObject)
with toObject
.Col = 0
.ColSel = .Cols - 1
.Sort = 1 && Generic Ascending
endwith
ENDPROC
PROCEDURE hFlex.MouseDown
LPARAMETERS button, shift, x, y
with this
.Tag = ""
If .MouseRow = 0
.Tag = Str(.MouseCol)
.Drag( 1 )
endif
endwith
ENDPROC
PROCEDURE HFlex.DragDrop
LPARAMETERS oSource, nXCoord, nYCoord
If !empty(this.Tag)
with this
.Redraw = .F.
.ColPosition(Val(.Tag)) = .MouseCol
thisform.DoSort(this)
.Redraw = .t.
endwith
endif
endproc
Enddefine
Saludos,
Integral
(Lima-Perú)
LOCAL loConn AS ADODB.Connection
LOCAL loCmd AS ADODB.Command
LOCAL loRs AS ADODB.Recordset
LOCAL lcConnString AS STRING
LOCAL li, ji, i, columnas, filas
LOCAL querysql AS STRING
TEXT TO querysql NOSHOW TEXTMERGE PRETEXT 8
SELECT * FROM usuarios;
ENDTEXT
*** Creamos la conexión ADO con la cadena de conexión del OLEDB Provider de MYSQL.
* conexion por usuario / password de MYSQL Server
loConn = CREATEOBJECT('ADODB.Connection')
loConn.ConnectionString = [Provider=MySqlProv.3.9;Data Source=datosmysql;Password=12345;] + ;
[User ID=root;Location=localhost;]
loConn.Open()
loRS = CREATEOBJECT('ADODB.Recordset')
loRS.ActiveConnection = loConn
loRS.LockType = 3 && adLockOptimistic
loRS.CursorLocation = 3 && adUseClient
loRS.CursorType = 3 && adOpenStatic
loRS.OPEN([SELECT * FROM usuarios;])
columnas = loRS.Fields.Count
filas = loRS.RecordCount
Thisform.Text1.Value= columnas
thisform.Text2.Value = filas
Thisform.Olecontrol1.Cols = columnas
Thisform.Olecontrol1.Rows = filas
Thisform.Olecontrol1.DataSource = loRS
loRS.CLOSE()
loConn.CLOSE()
-----------------------------------------------------------------------------------------------------------------------
LOCAL loConn AS ADODB.Connection
LOCAL loCmd AS ADODB.Command
LOCAL loRs AS ADODB.Recordset
LOCAL lcConnString AS STRING
LOCAL li, ji, i, columnas, filas
*** Creamos la conexión ADO con la cadena de conexión del OLEDB Provider de MYSQL.
* conexion por usuario / password de MYSQL Server
loConn = CREATEOBJECT('ADODB.Connection')
loConn.ConnectionString = [Provider=MySqlProv.3.9;Data Source=datosmysql;Password=12345;] + ;
[User ID=root;Location=localhost;]
loConn.Open()
loRS = CREATEOBJECT('ADODB.Recordset')
loRS.ActiveConnection = loConn
loRS.LockType = 3 && adLockOptimistic
loRS.CursorLocation = 3 && adUseClient
loRS.CursorType = 3 && adOpenStatic
loRS.OPEN([SELECT * FROM usuarios;])
columnas = loRS.Fields.Count + 1
filas = loRS.RecordCount + 1
Thisform.Text1.Value= columnas
thisform.Text2.Value = filas
Thisform.Olecontrol1.Cols = columnas
Thisform.Olecontrol1.Rows = filas
FOR li=0 TO MIN(loRs.FIELDS.COUNT, 4) && primeros 5 campos como máximo
Thisform.olecontrol1.TextMatrix(0, li) = loRS.Fields(li).Name
NEXT
FOR ji=1 TO loRS.RecordCount && primeros 5 campos como máximo
FOR i=0 TO MIN(loRs.FIELDS.COUNT, 4) && primeros 5 campos como máximo
Thisform.olecontrol1.TextMatrix(ji, i) = loRS.Fields(i).Value
NEXT
loRs.MoveNext
NEXT
loRS.CLOSE()
loConn.CLOSE()
Saludos,
Integral
--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/3ce6afb7-dadd-4aa0-8524-45db0c3c10abn%40googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/2f9f9875-1ab8-45b5-91f5-a53985099207n%40googlegroups.com.



Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/1c0dfe67-7cd0-4da4-919c-47645a69de16n%40googlegroups.com.

Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CADC20DSXjOmFeG6-FFK_TbAjbhS0U0jG2VHMiU5OUBwXfFJcMw%40mail.gmail.com.

Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/f59959ae-a211-4950-95e1-d03b2a9b0006n%40googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/f59959ae-a211-4950-95e1-d03b2a9b0006n%40googlegroups.com.

Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/55b55ae6-0358-41d4-bf70-9a0dcb0c914cn%40googlegroups.com.