Page 1 of 2
Ejecutar con un bloque de código una instrucción
Posted: Thu Feb 25, 2016 1:42 am
by daniv096
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
Re: Ejecutar con un bloque de código una instrucción
Posted: Thu Feb 25, 2016 7:42 am
by Antonio Linares
la variable tiene que ser public o private para que puedas usarla asi
Re: Ejecutar con un bloque de código una instrucción
Posted: Thu Feb 25, 2016 7:43 am
by Antonio Linares
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
Re: Ejecutar con un bloque de código una instrucción
Posted: Thu Feb 25, 2016 7:49 am
by daniv096
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
Re: Ejecutar con un bloque de código una instrucción
Posted: Thu Feb 25, 2016 10:21 am
by Antonio Linares
Puedes comprarla directamente desde
www.fivetechsoft.com
gracias!
Re: Ejecutar con un bloque de código una instrucción
Posted: Fri Feb 26, 2016 5:28 pm
by daniv096
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
Re: Ejecutar con un bloque de código una instrucción
Posted: Fri Feb 26, 2016 7:46 pm
by Antonio Linares
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.
Re: Ejecutar con un bloque de código una instrucción
Posted: Fri Feb 26, 2016 8:32 pm
by daniv096
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?
Re: Ejecutar con un bloque de código una instrucción
Posted: Sat Feb 27, 2016 1:25 am
by xmanuel
No sé porque tienes que "macrocompilar" en esta situación.
Yo lo haría así:
Code: Select all
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)
Re: Ejecutar con un bloque de código una instrucción
Posted: Sat Feb 27, 2016 3:43 pm
by daniv096
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 )
Re: Ejecutar con un bloque de código una instrucción
Posted: Sat Feb 27, 2016 8:37 pm
by Antonio Linares
El fichero HRB lo has creado con esa misma versión de xHarbour ?
Re: Ejecutar con un bloque de código una instrucción
Posted: Sat Feb 27, 2016 8:49 pm
by daniv096
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
Re: Ejecutar con un bloque de código una instrucción
Posted: Sun Feb 28, 2016 2:04 am
by daniv096
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
Re: Ejecutar con un bloque de código una instrucción
Posted: Sun Feb 28, 2016 7:44 am
by Antonio Linares
Prueba a cambiar hb_gcAlloc() por hb_xgrab() y hb_retclenAdopt() por hb_retclen() en los fuentes de Dolphin
Re: Ejecutar con un bloque de código una instrucción
Posted: Sun Feb 28, 2016 7:50 am
by daniv096
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