FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour txbrowse ado dbf
Posts: 133
Joined: Mon May 12, 2008 04:13 PM
txbrowse ado dbf
Posted: Thu May 22, 2008 03:48 AM

este codigo trabaja bien con dbf pero con ado solo se ve el primer registro

coloque una variable lAdo=.T. Para probar con mysql y lAdo=.f. con DBF
el me muestra bien la de Mysql si la hago sin definir las columnas

cual puede ser el error. Gracias de antemano

include "Report.ch"

include "FiveWin.ch"

include "xBrowse.ch"

STATIC oWnd

//-------------------------------------------------------------------------------------
Function Main()

SET EPOCH TO 1920
SET DATE FORMAT "dd/mm/yyyy"
SET WRAP ON

REQUEST DBFCDX

If !Conectar()
Return Nil
Endif

maestro()

Return Nil

//-----------------------------------------------------------------------------
Function conectar()
Local Retorno:=.F.
LOCAL oErr,oCs
Public oCn

TRY
oCn:= CreateObject( "ADODB.Connection" )
oCs:= "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=ecst06; UID=root; PWD=10157763"
oCn:Open(oCs)
Retorno:=.T.
CATCH oErr
MSGAlert( "Error: " + oErr:Operation + " -> " + oErr:Description )
Retorno:=.F.
END

Return Retorno

Function maestro()
local oBrw
Local cSelect:= "select maestro.FECASI, maestro.ASIENTO, maestro.DESCASI, maestro.TOTDEB, maestro.TOTHAB from maestro"

lAdo := .t.

If lAdo
oDbDet:=TAdoBase():New( oCn, "maestro", cSelect )
Else
use maestro new
select maestro
EndIf

DEFINE WINDOW oWnd FROM 1, 1 TO 700,950 PIXEL TITLE "prueba adobase"

  oBrw := TXBrowse():New( oWnd )

    oBrw:nTop    := 20
    oBrw:nLeft   := 10
    oBrw:nBottom := 650
    oBrw:nRight  := 900

    oBrw:nColDividerStyle    := LINESTYLE_BLACK
    oBrw:nRowDividerStyle    := LINESTYLE_BLACK
    oBrw:nHeaderLines        := 2
    oBrw:nFooterLines        := 2
    oBrw:nDataLines          := 1
    oBrw:lColDividerComplete := .T.
      oBrw:lFooter             := .t.

    If lAdo       
      oBrw:AddCol():bEditValue   := { || oDbDet:fecasi }
      oBrw:AddCol():bEditValue   := { || oDbDet:fecasi }
       oBrw:AddCol():bEditValue   := { || oDbDet:asiento }
       oBrw:AddCol():bEditValue   := { || oDbDet:descasi }
       oBrw:AddCol():bEditValue   := { || oDbDet:totdeb }
       oBrw:AddCol():bEditValue   := { || oDbDet:tothab }
    Else
      oBrw:AddCol():bEditValue   := { || fecasi }
       oBrw:AddCol():bEditValue   := { || asiento }
       oBrw:AddCol():bEditValue   := { || descasi }
       oBrw:AddCol():bEditValue   := { || totdeb }
       oBrw:AddCol():bEditValue   := { || tothab }
    EndIf



    oBrw:cToolTip = "Este es el poder del xBrowser de fwh"

    If lAdo
       oBrw:SetAdo(oDbDet:oRcs)
    Else      
       oBrw:SetRDD() 
    EndIf

    //oBrw:Refresh( .t. )

   oBrw:CreateFromCode()

ACTIVATE WINDOW oWnd

If lAdo
oDbDet:Close()
EndIf

RETURN NIL

Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
txbrowse ado dbf
Posted: Thu May 22, 2008 02:22 PM

Te falta el SETADO(), revisa esa funcion en el codigo fuente de tu version de xBrowse, y pon en .t. la opcion lAddCols

SetAdO( oRs, lAddCols, lAutoOrder, aFldNames )

y puedes pasarle el arreglo de tus campos con aFLdNames
es mejor segun mi parecer

Eso

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 133
Joined: Mon May 12, 2008 04:13 PM
Hola Adolfo
Posted: Fri May 23, 2008 03:11 AM

Si estoy utilizando SetAdo() lo que no entiendo es porque sirve con dbf y no con MySql, si lo pruebo sin
oBrw:AddCol():bEditValue := { || oDbDet:fecasi }
oBrw:AddCol():bEditValue := { || oDbDet:asiento }
oBrw:AddCol():bEditValue := { || oDbDet:descasi }
oBrw:AddCol():bEditValue := { || oDbDet:totdeb }
oBrw:AddCol():bEditValue := { || oDbDet:tothab }
me sirve en forma correcta y me salen todos los registros bien
y si le agrego a SetAdo() mas columnas pero no soluciono nada

en tal caso como puedo hacer si quiero mostrar de una base de datos solo dos campos

Gracias

Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql

Ing. MSc. Luis Duque
http://www.accasoft.net

Continue the discussion