Ejecutar con un bloque de código una instrucción
Ejecutar con un bloque de código una instrucción
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ejecutar con un bloque de código una instrucción
la variable tiene que ser public o private para que puedas usarla asi
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ejecutar con un bloque de código una instrucción
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
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
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ejecutar con un bloque de código una instrucción
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ejecutar con un bloque de código una instrucción
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.
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
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?
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
No sé porque tienes que "macrocompilar" en esta situación.
Yo lo haría así:
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)
______________________________________________________________________________
Sevilla - Andalucía
Sevilla - Andalucía
Re: Ejecutar con un bloque de código una instrucción
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 )
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 )
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ejecutar con un bloque de código una instrucción
El fichero HRB lo has creado con esa misma versión de xHarbour ?
Re: Ejecutar con un bloque de código una instrucción
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
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
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Ejecutar con un bloque de código una instrucción
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
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
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