FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ejecutar con un bloque de c贸digo una instrucci贸n
Posts: 23
Joined: Tue Jul 01, 2014 02:52 AM

Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Thu Feb 25, 2016 01:42 AM

buenas tarde estoy haciendo una instruccion en bloque de codigo para que me lleve a una funcion o proceso y que en ella me retorne la funcion y dentro de ella lleve un campo logico y una instrucion de query y me da un error de que no existe la variable del query de ante manos gracias por la ayuda esta es la instrucion

ctext:=MOD_PROVEE(lNew:=.T.,oCursor)

ejecuto el bloque de codigo

bBlq:=&("{||+"+ALLTRIM(cText)+"}")
eval(bBlq)

y me da el siguiente error : "No existe la variable oCursor" oCursor contiene un query y esta declarada en el fuente

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Thu Feb 25, 2016 07:42 AM

la variable tiene que ser public o private para que puedas usarla asi

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Thu Feb 25, 2016 07:43 AM
Otra opci贸n es que la pases como par谩metro al hacer el eval()

bBlq:=&("{| o |+"+ALLTRIM(cText)+"}")
eval(bBlq, oQuery )

y que cText use el par谩metro o
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 23
Joined: Tue Jul 01, 2014 02:52 AM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Thu Feb 25, 2016 07:49 AM

Gracias Antonio

los que hice fue crear el query publico y listo el bloque de c贸digo lo ejecuto perfectamente otra pregunta como puedo adquir铆 la nueva versi贸n de fwh

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Thu Feb 25, 2016 10:21 AM

Puedes comprarla directamente desde www.fivetechsoft.com

gracias!

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 23
Joined: Tue Jul 01, 2014 02:52 AM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Fri Feb 26, 2016 05:28 PM

Antonio

disculpa el fastidio quisiera saber si se puede ejecutar un archivo HRB con xharbour cual seria la instrucci贸n o hay otra ejecuci贸n que se pueda llamar un script externo yo uso fivewin con xharbour y bbc 582 gracias de ante mano

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Fri Feb 26, 2016 07:46 PM

No tengo experiencia usando ficheros HRB con xHarbour pero Enrico ha localizado
estas funciones que puedes probar:

__HRBRUN( <cFile> [, xParam1 [, xParamN ] ] ) -> xReturn
Execute specified hrb file, passing optional paramaters.

__HRBLOAD( <cFile> ) -> nHandle
Load an hrb file and return a Handle.

__HRBDO( <nHandle> )
Execute previously loaded hrb module specified by it's Handle.

__HRBUNLOAD( <nHandle> )
Unload an hrb module.

__HRBGETFU( <nHandle>, <cFuncName> ) -> nHandle
Retrieve Handle to specified function in a given preloaded hrb module.

__HRBDOFU( <nHandle>, [xParam1 [, xParamN] ] ) -> xReturn
Execute specified function by its handle, passing optional paramaters.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 23
Joined: Tue Jul 01, 2014 02:52 AM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Fri Feb 26, 2016 08:32 PM

Antonio

Yo he probado esas funcionalidades pero no me han funcionado sera que habr谩 que colocarle alg煤n include o falta alguna librer铆a tendr谩s alg煤n ejemplo funcional?

Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Sat Feb 27, 2016 01:25 AM
No s茅 porque tienes que "macrocompilar" en esta situaci贸n.
Yo lo har铆a as铆:

Code (fw): Select all Collapse
local bBlq:={|c|ALLTRIM(c)} // As铆 lo compila el compilador una unica vez sin necesidad de macros
...
ctext:=MOD_PROVEE(lNew:=.T.,oCursor)
...
//ejecuto el bloque de codigo
eval(bBlq, cText)
______________________________________________________________________________

Sevilla - Andaluc铆a
Posts: 23
Joined: Tue Jul 01, 2014 02:52 AM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Sat Feb 27, 2016 03:43 PM

Antonio

esta es el error que me da al usar __HRBRUN()

Compiler version: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9325)
FiveWin Version: FWHX 12.04

Time from start: 0 hours 0 mins 8 secs
Error occurred at: 27/02/2016, 11:10:52
Error description: Error BASE/9999 Se detect垄 corrupci垄n: Incompatible HRB version

Stack Calls

Called from: => __HRBRUN( 0 )

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Sat Feb 27, 2016 08:37 PM

El fichero HRB lo has creado con esa misma versi贸n de xHarbour ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 23
Joined: Tue Jul 01, 2014 02:52 AM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Sat Feb 27, 2016 08:49 PM

ANTONIO

Si me di cuenta que no era la misma versi贸n ya lo correg铆 gracias otra cosa puedo correr en memoria un archivo "PPO" dentro de mi ejecutable

Posts: 23
Joined: Tue Jul 01, 2014 02:52 AM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Sun Feb 28, 2016 02:04 AM

Antonio

Ya logre convertir mi programa de xharbou a harbour lo compilo y me da este unico error:

Error: Unresolved external '_hb_gcAlloc' referenced from C:\Harbour\LIB\WIN\BCC\DOLPHIN.LIB|function
Error: Unresolved external '_hb_retclenAdopt' referenced from C:\Harbour\LIB\WIN\BCC\DOLPHIN.LIB|function

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Sun Feb 28, 2016 07:44 AM

Prueba a cambiar hb_gcAlloc() por hb_xgrab() y hb_retclenAdopt() por hb_retclen() en los fuentes de Dolphin

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 23
Joined: Tue Jul 01, 2014 02:52 AM

Re: Ejecutar con un bloque de c贸digo una instrucci贸n

Posted: Sun Feb 28, 2016 07:50 AM

Antonio

Soy ignorante en eso donde los busco porque yo uso "Tdolphin.ch" "dolerr.ch" y dolphin.lib no uso el fuente porque con xharbour me funcionaba perfecto