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

daniv096
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Post 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
User avatar
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

Post by Antonio Linares »

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

Antonio Linares
www.fivetechsoft.com
User avatar
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

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
daniv096
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Post 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
User avatar
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

Post by Antonio Linares »

Puedes comprarla directamente desde www.fivetechsoft.com

gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
daniv096
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Post 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
User avatar
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

Post 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.
regards, saludos

Antonio Linares
www.fivetechsoft.com
daniv096
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Post 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?
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

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

Post 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)

 
______________________________________________________________________________
Sevilla - Andalucía
daniv096
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Post 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 )
User avatar
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

Post by Antonio Linares »

El fichero HRB lo has creado con esa misma versión de xHarbour ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
daniv096
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Post 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
daniv096
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Post 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
User avatar
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

Post by Antonio Linares »

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
daniv096
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Post 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
Post Reply