Buenas foro,
Alguien podria indicarme como abrir una tabla Mysql y llevarlo a un array para luego usarlo con la funcion o metdo setarray de xBrowse ?
Atento a sus comentarios
***********************
*Catalogo de Documentos
***********************
PROC pDocFactu()
LOCAL aCol:={0,0,0},oCuadro,nWidth:=0
oC1vg1:=space(100)
vOrden:="ee_codigo"
oTimpr:=1
oVar := "SELECT * from lyma_docontrol ORDER BY "+alltrim(vOrden)
TRY
oRsDocfac:=tOleAuto():New("ADODB.RecordSet")
CATCH oError
FW_ShowAdoError(oLamcla:oCon)
END
oRsDocfac:CursorLocation := adUseClient //adUseServer
oRsDocfac:LockType := adLockOptimistic
oRsDocfac:CursorType := adOpenKeyset
oRsDocfac:Source := oVar
//oRsDocfac:ActiveConnection( oLamcla:oCon )
TRY
oRsDocfac:Open(oRsDocfac:Source,oLamcla:oCon)
CATCH oError
FW_ShowAdoError(oLamcla:oCon)
END
DEFINE BRUSH oFondo FILE ".\res\res_403.BMP"
DEFINE DIALOG oCuadro RESOURCE "orMedida" ICON "#8001" TRANSPARENT BRUSH oFondo
REDEFINE BUTTONBMP Btn_Limp ID 4003 OF oCuadro BITMAP "Blimpi2" TOOLTIP oLamcla:mTfil ACTION pBusDfa(oC1vg1:=space(100))
REDEFINE GET oC1og1 VAR oC1vg1 ID 4002 OF oCuadro UPDATE VALID(pBusDfa(),.T.)
// Btn_Limp= { cTexto, cTitulo, nClrTexto, nClrFondo }
// Btn_Limp:aTooltip = { "prueba jejeje", "Titulo", oLamcla:cClr2, oLamcla:cClr1 }
oBrwDofa := TXBrowse():New( oCuadro )
oBrwDofa:nMarqueeStyle := MARQSTYLE_HIGHLWIN7
oBrwDofa:nColDividerStyle := LINESTYLE_LIGHTGRAY
oBrwDofa:nHeaderLines := 1
oBrwDofa:lColDividerComplete := .t.
oBrwDofa:lRecordSelector := .t.
oBrwDofa:bClrSel := {|| { CLR_BLACK,oLamcla:cClr7 } }
oBrwDofa:bClrStd := {|| IF( (oRsDocfac:AbsolutePosition()%2)==0,{CLR_BLACK,oLamcla:cClr2},{CLR_BLACK,oLamcla:cClr1} ) }
oBrwDofa:bClrSelFocus := {|| { CLR_WHITE,oLamcla:cClr8 } }
oBrwDofa:nStretchCol := STRETCHCOL_LAST
aCol[ 1] := oBrwDofa:AddCol()
aCol[ 1]:bStrData := { || If( oRsDocfac:Eof, Space( nWidth ), cValtoChar( oRsDocfac:Fields( "ee_codigo" ):Value ) ) }
aCol[ 1]:cHeader := "Codigo"
aCol[ 1]:nHeadStrAlign := AL_LEFT
aCol[ 1]:nDataStrAlign := AL_LEFT
aCol[ 1]:nWidth := 80
aCol[ 2] := oBrwDofa:AddCol()
aCol[ 2]:bStrData := { || If( oRsDocfac:Eof, Space( nWidth ), cValtoChar( oRsDocfac:Fields( "ee_nombre" ):Value ) ) }
aCol[ 2]:cHeader := "Nombre"
aCol[ 2]:nHeadStrAlign := AL_LEFT
aCol[ 2]:nDataStrAlign := AL_LEFT
aCol[ 2]:nWidth := 225
oBrwDofa:SetADO( oRsDocfac )
oBrwDofa:CreateFromResource( 102 )
oCuadro:cTitle := "Tabla Control Documentos"
oCuadro:bKeyDown := {|nKey|iif(nKey == 114,(vgraba:=.t.,oLamcla:autoriza(108)),(iif(nKey == 115,(vgraba:=.f.,oLamcla:autoriza(109)),(iif(nKey == 116,(oLamcla:autoriza(110)),(""))))))}
ACTIVATE DIALOG oCuadro NOWAIT On Init (Centra( oCuadro ),oCuadro:refresh(),BarraDofa( oCuadro )) VALID (oRsDocfac:Close(),.t.) CENTERED
oQryVende:FillArray( {| aRow | AAdd( oBrwASi:aArrayData, { aRow[2], aRow[4] } ) } ) // CON POSICION CAMPO
oBrwASi:aArrayData := oQryVende:FillArray( , { "vende_cedula", "vendeapellidos" } ) // CON NOMBRE DE CAMPOS DE LA TABLA
oQry:FillArray( {| aRow | ( AAdd( Array1, cValToChar( aRow[1] ) ) ,; // PARA LOS COMBOBOX CON QRY
AAdd( Array2, aRow[2]) ) }, )
joseluisysturiz wrote:Saludos, para mayor rapidez usa FILLARRAY, aca te coloco las formas en que lo uso, saludos...
- Code: Select all Expand view RUN
oQryVende:FillArray( {| aRow | AAdd( oBrwASi:aArrayData, { aRow[2], aRow[4] } ) } ) // CON POSICION CAMPO
oBrwASi:aArrayData := oQryVende:FillArray( , { "vende_cedula", "vendeapellidos" } ) // CON NOMBRE DE CAMPOS DE LA TABLA
oQry:FillArray( {| aRow | ( AAdd( Array1, cValToChar( aRow[1] ) ) ,; // PARA LOS COMBOBOX CON QRY
AAdd( Array2, aRow[2]) ) }, )
luego haces tu oBr:SetArray(nue_array); oBrw:Refresh()
Compuin wrote:No me queda muy claro como llenar el Array con una Tabla MySql
Alguien tendra un ejemplo de hacerlo ?
tu_array := oQry:FillArray( , { "campo1", "campo2", etc } ) // CON NOMBRE DE CAMPOS DE LA TABLA
aDados := oCn:QueryResult("SELECT * FROM customers")
...
...
oXbr:SetArray( aDados )
...
aDados := oCur:Cursor // oCur es un objeto de tipo TACursor
...
oXbr:SetArray( aDados )
oXbr:SetArray( oCur:Cursor)
xmanuel wrote:En Eagle v3.03 o sea de fecha 10/05/2005:
- Code: Select all Expand view RUN
...
aDados := oCur:Cursor // oCur es un objeto de tipo TACursor
...
oXbr:SetArray( aDados )
o directamente
- Code: Select all Expand view RUN
oXbr:SetArray( oCur:Cursor)
#include "xbrowse.ch"
#include "fivewin.ch"
PROCEDURE main()
local oWnd, oBrw, oCol
local oCon, oTb, oCur, oDataBase // Objetos de Eagle1
local cHost := "127.0.0.1"
local cUser := "root"
local cPassword := "root"
local cDbName := "PRUEBA"
local cTabla := "test"
local n, aCabecera := {}
// Creamos el objeto "connexion"
oCon := TMSConnect():New()
// Nos conectamos al servidor
if !oCon:Connect( cHost, cUser, cPassword )
MsgInfo( "No hay conexion con el servidor", "Operacin Cancelada" )
oCon:Free()
return
endif
// Creamos un objeto DataBase y lo ponemos en uso
oDataBase := TMSDataBase():New( oCon, cDbName, .t. )
// Interrogamos si se logr poner la DataBase por defecto en el sistema
if !oDataBase:Used()
MsgInfo( "No se puede conectar a la BD: " + cDbName, "Operacin Cancelada" )
oCon:Free()
return
endif
// Creamos un objeto Table con DataFields
oTb := TMsTable( cTabla ):New( oDataBase, cTabla )
// Abrimos la tabla, traemos el resultado a nuestro cliente
if !oTb:Open()
MsgInfo( "No se puede abrir la tabla: " + cTabla, "Operacin Cancelada" )
return
endif
oCur := TMSACursor():new( oTb ) // Creo el cursor basado en ARRAY
oCur:open() // Abro el cursor
DEFINE WINDOW oWnd TITLE "Testing Eagle1 - Fivewin"
oBrw := TXBrowse():New( oWnd ) // Creamos xbrowse
oBrw:nRowHeight := 35
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK
oBrw:nMarqueeStyle := 6
oBrw:nStretchCol := STRETCHCOL_LAST
oBrw:SetArray( oCur:cursor )
// Ponemos los nombre a las columnas
AEval( oBrw:aCols, {| oCol, i | oCol:cHeader := oCur:fieldName( i ), ;
oCol:nHeadStrAlign := AL_CENTER } )
oBrw:CreateFromCode()
oWnd:oClient = oBrw
ACTIVATE WINDOW oWnd MAXIMIZED
oCur:free()
oTb:Free()
oCon:Free()
return
//----------------------------------------------------------------------------//
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 23 guests