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

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

Postby daniv096 » Thu Feb 25, 2016 1: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
daniv096
 
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Postby Antonio Linares » Thu Feb 25, 2016 7:42 am

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: 41366
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby Antonio Linares » Thu Feb 25, 2016 7: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41366
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby daniv096 » Thu Feb 25, 2016 7: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
daniv096
 
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Postby Antonio Linares » Thu Feb 25, 2016 10:21 am

Puedes comprarla directamente desde www.fivetechsoft.com

gracias!
regards, saludos

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

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

Postby daniv096 » Fri Feb 26, 2016 5: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
daniv096
 
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Postby Antonio Linares » Fri Feb 26, 2016 7: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41366
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby daniv096 » Fri Feb 26, 2016 8: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?
daniv096
 
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Postby xmanuel » Sat Feb 27, 2016 1:25 am

No sé porque tienes que "macrocompilar" en esta situación.
Yo lo haría así:

Code: Select all  Expand view

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

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

Postby daniv096 » Sat Feb 27, 2016 3: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 )
daniv096
 
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Postby Antonio Linares » Sat Feb 27, 2016 8:37 pm

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

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

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

Postby daniv096 » Sat Feb 27, 2016 8: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
daniv096
 
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Postby daniv096 » Sun Feb 28, 2016 2: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
daniv096
 
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

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

Postby Antonio Linares » Sun Feb 28, 2016 7: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41366
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby daniv096 » Sun Feb 28, 2016 7: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
daniv096
 
Posts: 23
Joined: Tue Jul 01, 2014 2:52 am

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 28 guests