ayuda construccion de xharbour desde svn

ayuda construccion de xharbour desde svn

Postby carlos vargas » Wed Feb 04, 2015 2:51 am

estimado estoy intentando construir xharbour ultima versión con la particularidad que deseo que la opción
memory tracing and statistics este en off.

noten que he agregado HB_FM_STATISTICS_OFF a la definicio y aun asi esta en on.

Image
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1686
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: ayuda construccion de xharbour desde svn

Postby Antonio Linares » Wed Feb 04, 2015 6:39 am

Carlos,

Por defecto no lo construye con esa opción en OFF ?

Por lo general nunca se le ponen esas opciones por defecto para no enlentecerlo, por eso creo que no tienes que especificarle nada.

Enrico nos indicó recientemente en donde puedes descargar un build de xharbour casi a diario.

Y como yo siempre erre que erre: Y por que no migras a Harbour ? :-)

Lee esto y entenderás las razones de las más importantes:
viewtopic.php?f=6&t=30084
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: ayuda construccion de xharbour desde svn

Postby Verhoven » Wed Feb 04, 2015 8:50 am

Como dice Antonio cámbiate a Harbour. Aunque en principio de pereza y sensación de peligro por tocar código que funciona merece la pena porque son muy pocos los cambios que hay que hacer. Muy pocos. Y de paso puedes construir en 64 bits una vez que has hecho el cambio a Harbour. Creo que realmente merece la pena.
Verhoven
 
Posts: 505
Joined: Sun Oct 09, 2005 7:23 pm

Re: ayuda construccion de xharbour desde svn

Postby carlos vargas » Wed Feb 04, 2015 2:10 pm

Antonio

si lo construyo con esa opción en off, prueba de ello es que en la parte de arriba del screenshot "harbour compiler switch:" sale lo que defini en la var c_usr.

estoy claro de la superioridad técnica de harbour, ya que sigo al grupo de desarrollo, estudio codigo del repositorio, leeo changelog y txt tecnicos. :-)
-----------------------------------------

tengo dos poderosas razones para no abandonar xHarbour: una sentimental y una técnica.

la sentimental:
sigo a xharbour desde que inicio, nunca he dejado de hacer algo por limitaciones o problemas del compilador.

lo técnico:
uso sqlrdd, pero NO en la parte rdd ( USE tabla INDEX table), sino que uso las sentencias sql, puro y duro sql.
Code: Select all  Expand view
nError:=oSql:Execute( "select * from clientes",.t.,.t.,,"MYUSER" )

funciona en forma similar que ado pero en lugar de cursores en memoria que es la forma de ado de retornar las consulta, tengo los resultados de las consultas en una tablas dbf
las cuales manipulo sin problemas, luego utilizo igualmente sql para las inserciones y modificaciones de los datos
Code: Select all  Expand view
nError:=oSql:Exec( "UPDATE clientes SET NOMBRE='CARLOS' WHERE NUM_CLIE=10" )

y luego esto es lo mejor: uso nuevamente
Code: Select all  Expand view
nError:=oSql:Execute( "select * from clientes",.t.,.t.,,"MYUSER" ) )

y los datos son nuevamente cargados (ya actualizados) a la tabla dbf MYUSER la cual ya existe desde la primera vez que hice la consulta.
el sqlrdd e encarga de creala la primera vez y solo usarla las restantes veces

esto si bien es cierto es la misma funcionalidad de sqlmix pero bien hecho.
las funciones y clase que tengo implementadas con sqlrdd serian fácilmente portadas para usar sqlmix.
pero este rdd tiene ciertos fallos, por ejemplo en la tabla dbf resultante los campos lógicos no mapeado correctamente a como lo hace sqlrdd, por ejemplo
en ms sql server las columnas de tipo BIT son mapeadas a LOGICAL en la tabla dbf resultante en sqlmix no es así.

consultas como esta en sqlmix:
Code: Select all  Expand view

DBUSEAREA( .T.,, "SELECT SUM(ABONO) AS RESULTADO FROM COBROXDIA WHERE FECHA='2014-01-01'", "ABONO" )
? ABONO->RESULTADO // "                                3500.00"
 

el campo RESULTADO tiene una longitud enorme.

si se pudiera mejorar SQLMIX (vaya si lo he intentado, he revisado el código pero mi nivel de c no llega a tanto, he intentado contactar al creador Mindugas creo recordar y no me responde)
se caería la ultima barrera técnica.

aca un ejemplo de como uso sqlrdd en esta forma para que tengáis una idea lo fácil de usar sql:
Code: Select all  Expand view

/*-------------------------------------------------------------------------------------------------*/

#include "expats.ch"

/*-------------------------------------------------------------------------------------------------*/
/*Ok*/
PROCEDURE DocuE( cNumEmpl )
   LOCAL cNombreEmpl

   PRIVATE oDlgD, oBrwD
   PRIVATE cSql, aKInfoD

   IF EMPL->( Eof() )
      MsgInfo( "No hay empleados registrados.", "Información" )
      RETURN
   ENDIF

   cSql    := "SELECT * FROM VEMPLEADOD WHERE TIPO='D' AND NUM_EMPL=" + KValToSQL( nNumEmpl )
   aKInfoD := { cSql, "EMPL_DOC" }

   IF !KQuery( cSql, NIL, "EMPL_DOC" )
      MsgAlert( KErrorText(), "Alerta" )
      RETURN
   ENDIF

   cNombreEmpl := EMPL->NOMBRECOMP

   DEFINE DIALOG oDlgD NAME "DLG_DOCUEC" OF oDlgE ICON GetIcon() FONT oFontD

   REDEFINE GET nNumEmpl ;
      ID 101 OF oDlgD ;
      WHEN FALSE

   REDEFINE GET cExpatID ;
      ID 102 OF oDlgD ;
      WHEN FALSE

   REDEFINE GET cNombreEmpl ;
      ID 103 OF oDlgD ;
      WHEN FALSE

   REDEFINE XBROWSE oBrwD ALIAS "EMPL_DOC" ;
      ID 104 OF oDlgD ;
      FONT oFontD

   ADD TO oBrwD DATA EMPL_DOC->NOMBRE+CRLF+EMPL_DOC->DESCRIPCIO  TITLE "Nombre de archivo"+FINL+"Descripción" SIZE 350
   ADD TO oBrwD DATA EMPL_DOC->FECHA                             TITLE "Fecha"                                SIZE 070 LEFT

   WITH OBJECT oBrwD
      :MyConfig()
      :aCols[ 01 ]:bPaintText := { |oCol, hDC, cText, aCoord| XColDrawText( oCol, hDC, cText, aCoord ) }
      :lHScroll      := FALSE
      :nHeaderHeight := 36
      :nFreeze       := 2
      :nDataLines    := 2.5
      :nHeaderLines  := 2
      :nMarqueeStyle := 7
      :bLDblClick    := {|| IIf( !EMPL_DOC->( Eof() ), DocuE_Visualizar(), NIL ) }
      :bDropFiles    := {|nRow, nCol, aFiles| DocuE_DragDropFile( aFiles ) }
   END

   REDEFINE BUTTONBMP ;
      ID 105 OF oDlgD ;
      BITMAP "BMS_ADD" ;
      TOOLTIP "Agregar documento." ;
      ACTION DocuE_Agregar( TRUE )

   REDEFINE BUTTONBMP ;
      ID 106 OF oDlgD ;
      BITMAP "BMS_DEL" ;
      TOOLTIP "Quitar documento." ;
      WHEN !EMPL_DOC->( Eof() ) ;
      ACTION DocuE_Borrar()

   REDEFINE BUTTONBMP ;
      ID 107 OF oDlgD ;
      BITMAP "BMS_VIEW" ;
      TOOLTIP "Visualizar documento." ;
      WHEN !EMPL_DOC->( Eof() ) ;
      ACTION DocuE_Visualizar()

   REDEFINE BUTTON ;
      ID 201 OF oDlgD ;
      ACTION oDlgD:END()

   ACTIVATE DIALOG oDlgD ON INIT ( DragAcceptFiles( oBrwD:hWnd, TRUE ), 1 )

   KCloseTbl( "EMPL_DOC" )

RETURN

/*-------------------------------------------------------------------------------------------------*/
/*Ok*/
PROCEDURE DocuE_DragDropFile( aFiles )
   LOCAL cArchivo     := ""
   LOCAL cDescripcion := Space( 80 )
   LOCAL nNumDocu

   IF Len( aFiles ) > 1
      MsgAlert( "Arrastre un archivo a la vez.", "Alerta" )
      RETURN
   ENDIF

   cArchivo := aFiles[ 01 ]

   IF !Empty( cArchivo )
      IF MsgGet( "Agregar un archivo", "Descripción de archivo", @cDescripcion, "@!", "BM_DOCUMENT" )
         IF !Empty( cDescripcion )
            KSetErrorRT( TRUE )
            TRY
               KBegin()
               nNumDocu := KIncCont( "CONTROL", "CONT_DOCU" )
               IF nNumDocu > 0
                  KInsert( "EMPLEADOS_DOCU", { { "NUM_EMPL"   , nNumEmpl     }, ;
                                               { "NUM_DOCU"   , nNumDocu     }, ;
                                               { "TIPO"       , "D"          }, ;
                                               { "FECHA"      , Date()       }, ;
                                               { "DESCRIPCION", cDescripcion } } )

                  KInsert( "DOCUMENTOS"    , { { "NUM_DOCU"   , nNumDocu                           }, ;
                                               { "NOMBRE"     , cFileNoPath( cArchivo )            }, ;
                                               { "ARCHIVO"    , HB_StrToHex( FileStr( cArchivo ) ) } } )
               ENDIF
               KCommit()
               KReQuery( aKInfoD )
            CATCH oError
               KRollback()
               ShowError( oError )
            END
            KSetErrorRT( FALSE )
         ENDIF
      ENDIF
   ENDIF

   oBrwD:Refresh()

RETURN

/*-------------------------------------------------------------------------------------------------*/
/*Ok*/
PROCEDURE DocuE_Agregar()
   LOCAL cArchivo     := ""
   LOCAL cDescripcion := Space( 80 )
   LOCAL nNumDocu

   cArchivo := cGetFile( "Archivo | *.*", "Seleccione archivo a adjuntar ", 1, GetFolderMyDocuments(), XBL_OPENFILE, XBL_WITHLONGNAME )

   IF !Empty( cArchivo )
      IF MsgGet( "Agregar un archivo", "Descripción de archivo", @cDescripcion, "@!", "BM_DOCUMENT" )
         IF !Empty( cDescripcion )
            KSetErrorRT( TRUE )
            TRY
               KBegin()
               nNumDocu := KIncCont( "CONTROL", "CONT_DOCU" )
               IF nNumDocu > 0
                  KInsert( "EMPLEADOS_DOCU", { { "NUM_EMPL"   , nNumEmpl     }, ;
                                               { "NUM_DOCU"   , nNumDocu     }, ;
                                               { "TIPO"       , "D"          }, ;
                                               { "FECHA"      , Date()       }, ;
                                               { "DESCRIPCION", cDescripcion } } )

                  KInsert( "DOCUMENTOS"    , { { "NUM_DOCU"   , nNumDocu                           }, ;
                                               { "NOMBRE"     , cFileNoPath( cArchivo )            }, ;
                                               { "ARCHIVO"    , HB_StrToHex( FileStr( cArchivo ) ) } } )
               ENDIF
               KCommit()
               KReQuery( aKInfoD )
            CATCH oError
               KRollback()
               ShowError( oError )
            END
            KSetErrorRT( FALSE )
         ENDIF
      ENDIF
   ENDIF

   oBrwD:Refresh()

RETURN

/*-------------------------------------------------------------------------------------------------*/
/*Ok*/
PROCEDURE DocuE_Borrar()
   LOCAL lBorrar  := TRUE
   LOCAL nNumDocu := 0

   IF EMPL_DOC->( Eof() )
      MsgAlert( "No hay documentos que borrar.", "Alerta" )
      RETURN
   ELSE
      IF MsgNoYes( "Desea borrar documento seleccionado?", "Seleccionar" )
         nNumDocu := EMPL_DOC->NUM_DOCU
         KSetErrorRT( TRUE  )
         TRY
            KBegin()
            KExecute( "DELETE FROM EMPLEADOS_DOCU WHERE NUM_DOCU=%1", { nNumDocu } )
            KExecute( "DELETE FROM DOCUMENTOS     WHERE NUM_DOCU=%1", { nNumDocu } )
            KCommit()
            KReQuery( aKInfoD )
         CATCH oError
            KRollback()
            ShowError( oError )
         END
         KSetErrorRT( FALSE )
      ENDIF
   ENDIF

   oBrwD:Refresh()

RETURN

/*-------------------------------------------------------------------------------------------------*/
/*Ok*/
PROCEDURE DocuE_Visualizar()

   IF EMPL_DOC->( Eof() )
      MsgAlert( "No hay documentos para visualizar.", "Alerta" )
      RETURN
   ENDIF

   VisorDocumentos( EMPL_DOC->NUM_DOCU )

RETURN

/*-------------------------------------------------------------------------------------------------*/
/*EOF*/
/*-------------------------------------------------------------------------------------------------*/
 
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1686
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: ayuda construccion de xharbour desde svn

Postby Antonio Linares » Wed Feb 04, 2015 4:40 pm

Carlos,

si se pudiera mejorar SQLMIX (vaya si lo he intentado, he revisado el código pero mi nivel de c no llega a tanto


Que parte es la que necesitas mejorar ?

Si me muestras el código y me indicas los cambios que necesitas hacer, igual puedo ayudarte :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: ayuda construccion de xharbour desde svn

Postby carlos vargas » Wed Feb 04, 2015 5:25 pm

ok, revisare y te contacto cuando tenga reunida la info.

mil gracias antonio.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1686
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 87 guests