Daniel.. error en ::refresh()

Daniel.. error en ::refresh()

Postby Willi Quintana » Tue Sep 16, 2014 4:28 am

Hola Daniel...
En estas líneas hay un error en :Refresh()

...
cQuery := "SELECT * FROM productos ORDER BY detalle"
oDatos := oMySQL:Query(cQuery)
// aquí se hacen alguna modificaciones a la tabla productos, también podrían modificar en otra estación
..
..
oDatos:Refresh() // recargamos la data, péro aquí tira el error

Salu2
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Daniel.. error en ::refresh()

Postby jmartial » Tue Sep 16, 2014 6:40 am

Hola,

¿Sabes que tipo de variable y qué contiene odatos?

Te da error diciendo que no existe el método refresh??

Deberías poner el error que te sale y los tipos de datos para poder
Ayudarte.
Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Daniel.. error en ::refresh()

Postby Willi Quintana » Tue Sep 16, 2014 2:51 pm

Hola amigos:

Mensaje de TDolphin

Error from Custom Error Message
================================
Unknown table 'herrera.productos'
ERROR No: 1051
Internal: No


Mensaje de FW

pplication
===========
Path and name: D:\PRGS\AMB\DOLPHIN\BIN\AMBTD.Exe (32 bits)
Size: 726,528 bytes
Compiler version: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9445)
FiveWin Version: FWHX 12.08
Windows version: 6.1, Build 7601 Service Pack 1

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 09/06/14, 22:33:15
Error description: Warning BASE/1004 Message not found: TDOLPHINSRV:REFRESH

Stack Calls
===========
Called from: source\rtl\tobject.prg => TDOLPHINSRV:ERROR( 0 )
Called from: source\rtl\tobject.prg => TDOLPHINSRV:MSGNOTFOUND( 0 )
Called from: source\rtl\tobject.prg => TDOLPHINSRV:REFRESH( 0 )
Called from: D:\PRGS\AMB\DOLPHIN\PRG\ambtd.prg => AMB( 71 )
Called from: D:\PRGS\AMB\DOLPHIN\PRG\ambtd.prg => (b)MAIN( 49 )
Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 983 )
Called from: D:\PRGS\AMB\DOLPHIN\PRG\ambtd.prg => MAIN( 49 )

System
======
CPU type: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz 3100 Mhz
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Daniel.. error en ::refresh()

Postby joseluisysturiz » Tue Sep 16, 2014 3:05 pm

Willi, a grandes razgos veo que no esta consiguiendo la tabla y por eso te dice que no puede aplicar el REFRESH(), verificate si en el camino no estas matando el query oDatos, oDatos:END(), es lo unico que se me viene a la mente por los momentos, talves con un poco mas de codigo se te pueda ayudar mas, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Daniel.. error en ::refresh()

Postby jmartial » Tue Sep 16, 2014 3:46 pm

Willy,

Creo que no deberías darle más vueltas. Es exactamente lo que te comenté y creo que algún compañero del foro también.

Error description: Warning BASE/1004 Message not found: TDOLPHINSRV:REFRESH

Antes del refresh() pon un msginfo( oDatos:ClassName() ) y di que nombre sale, verás que no es un objeto tabla, será un objeto de la clase TDOLPHINSRV.
Un Saludo,
Joaquín Martínez
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Re: Daniel.. error en ::refresh()

Postby acuellar » Tue Sep 16, 2014 4:57 pm

Willi

Quizas tengas una versión antigua de TDolphin, la última es del 07/04/2014

https://bitbucket.org/danielgarciagil/tdolphin/commits/all

No da error en Refresh().

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1643
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Daniel.. error en ::refresh()

Postby Daniel Garcia-Gil » Wed Sep 17, 2014 3:42 pm

jmartial wrote:Willy,

Creo que no deberías darle más vueltas. Es exactamente lo que te comenté y creo que algún compañero del foro también.

Error description: Warning BASE/1004 Message not found: TDOLPHINSRV:REFRESH

Antes del refresh() pon un msginfo( oDatos:ClassName() ) y di que nombre sale, verás que no es un objeto tabla, será un objeto de la clase TDOLPHINSRV.


Estoy de acuerdo

En alguna parte estas perdiendo el objeto TDolphinQry que es el propietario del metodo Refresf()
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Daniel.. error en ::refresh()

Postby Willi Quintana » Wed Sep 17, 2014 4:41 pm

Hola Daniel, gracias por contestar.. creo que halle el error

cQuery := "SELECT productos.* FROM productos ORDER BY producto "
oDatos := oMySQL:Query(cQuery)

oDatos:Refresh() <---- funciona correctamente


cQuery := "SELECT productos.*, productos.precio_neto, IFNULL((SELECT imagenes.registro FROM imagenes WHERE imagenes.cod_producto = productos.cod_producto),0) AS imagen FROM herrera.productos WHERE productos.cod_producto <> '' ORDER BY productos.producto" // armamos la cadena de seleccion de datos
oDatos := oMySQL:Query(cQuery)

oDatos:Refresh() <------ el error es cuando la sentencia es compleja con varias tablas (JOIN incluido), se pierde el objeto....
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Daniel.. error en ::refresh()

Postby Biel EA6DD » Thu Sep 18, 2014 6:24 am

Mi experiencia con consultas complejas que incluyen sub selects, es que la clase no procesa bien la sentencia en su método BuildDatas, que es donde procesa la sentencia y la secciona según su naturaleza. Adecuar el método para que pueda tener en cuenta este tipo de sentencias, puede ser algo complicado, y mi recomendación es que cuando tengas consultas que incluyen sub selects, crees una vista.
En tu caso algo asi como
Code: Select all  Expand view
CREATE VIEW AS viewProd AS SELECT productos.*, productos.precio_neto, IFNULL((SELECT imagenes.registro FROM imagenes WHERE imagenes.cod_producto = productos.cod_producto),0) AS imagen FROM herrera.productos

y usar en tDolphin
Code: Select all  Expand view

cQuery := "SELECT viewProd WHERE cod_producto <> '' ORDER BY producto"
oDatos := oMySQL:Query(cQuery)

oDatos:Refresh()
 
Last edited by Biel EA6DD on Wed Feb 11, 2015 8:57 am, edited 1 time in total.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: Daniel.. error en ::refresh()

Postby MarioG » Thu Sep 18, 2014 1:54 pm

Adhemar;

acuellar wrote:Willi
Quizas tengas una versión antigua de TDolphin, la última es del 07/04/2014

https://bitbucket.org/danielgarciagil/tdolphin/commits/all

No da error en Refresh().

Saludos,
Adhemar

Cuando instalé bitbucket no le pesqué la mano.
Asi es q al seguir tu enlace como va, supongo, al repositorio de fuentes y no entiendo que bajar, lo hago desde Dawnload.
Lo que baja de allí, tiene fecha de los fuentes de: 18/12/13.
De donde se baja el de fecha 07/04/14?

gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Daniel.. error en ::refresh()

Postby cnavarro » Thu Sep 18, 2014 3:22 pm

Mario
En el enlace que te ha puesto el compañero aparece solo una modificacion desde esa fecha
Bájate de downloads el .zip
Vete al enlace https://bitbucket.org/danielgarciagil/t ... ommits/all
Pincha en el numero que aparece en la linea de fecha 08/04/2014 en la columna "confirmar"
Te aparece el codigo modificado
Abre el fichero y modificalo con lo que aparezca alli
Espero te sirva de ayuda
Te recomiendo que te pelees con bitbucket y lo instales
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Daniel.. error en ::refresh()

Postby Willi Quintana » Thu Sep 18, 2014 4:35 pm

Hola Biel, gracias por tu aporte...
Efectivamente, la clase no esta evaluando correctamente las sentencias complejas... asi que probe con lo siguiente y funciona bien:

Code: Select all  Expand view

cQuery := "SELECT productos.*, productos.precio_neto, IFNULL((SELECT imagenes.registro FROM imagenes WHERE imagenes.cod_producto = productos.cod_producto),0) AS imagen FROM herrera.productos WHERE productos.cod_producto <> '' ORDER BY productos.producto" // armamos la cadena de seleccion de datos

oDatos := oMySQL:Query(cQuery)

oDatos:LoadQuery()       //  <------ funciona bien, actualiza el objeto con los datos de la tabla que otro usuario haya modificado o actualizado ...
 
Last edited by Willi Quintana on Thu Sep 18, 2014 8:14 pm, edited 1 time in total.
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Daniel.. error en ::refresh()

Postby acuellar » Thu Sep 18, 2014 4:56 pm

Mario es como indica Cristóbal

Tenes que descargar el danielgarciagil-tdolphin-d9d98a01d609.zip descomprimirlo

Cambiar el contenido de source\c\function.c por la parte que muestra.

Luego utilizas uno de los .bat para compilar y crear la librería dolphin.lib la libmysql.lib viene creada


Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1643
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Daniel.. error en ::refresh()

Postby Willi Quintana » Thu Sep 18, 2014 8:20 pm

Daniel... mira este detalle
Utilizando la conexión de esta manera no hay error con ::LoadQuery()
Code: Select all  Expand view

  oMySQL := TDolphinSrv():New( cHost, ;
                             cUser, ;
                             cPass, ;
                             nPort, nFlags, cDBName ,;
                             {| oServer, nError, lInternal | GetError( oServer, nError, lInternal  ) } )
 


Pero si omito el GetError(....) FW arroja este error al realizar un segundo :LoadQuery()
Code: Select all  Expand view

  oMySQL := TDolphinSrv():New( cHost, ;
                             cUser, ;
                             cPass, ;
                             nPort, nFlags, cDBName )

 

Application
===========
Path and name: D:\PRGS\SVITE_D\BIN\SVITE.Exe (32 bits)
Ver : 20140918 ---> diesel
Size: 2,022,400 bytes
Compiler version: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9445)
FiveWin Version: FWHX 12.08
Windows version: 6.1, Build 7601 Service Pack 1

Time from start: 0 hours 0 mins 32 secs
Error occurred at: 18-09-2014, 11:47:02
Error description: Error TDOLPHIN/9014 Internal Error

Stack Calls
===========
Called from: .\source\prg\tdolpsrv.prg => DOLPHIN_DEFERROR( 2291 )
Called from: .\source\prg\tdolpsrv.prg => TDOLPHINSRV:CHECKERROR( 671 )
Called from: .\source\prg\tdolpqry.prg => (b)TDOLPHINQRY:TDOLPHINQRY( 130 )
Called from: => TDOLPHINQRY:CHECKERROR( 0 )
Called from: .\source\prg\tdolpqry.prg => TDOLPHINQRY:GETROW( 954 )
Called from: .\source\prg\tdolpqry.prg => TDOLPHINQRY:SKIP( 1455 )
Called from: D:\PRGS\SVITE_D\PRG\ekafunc.prg => (b)MYSETBROWSE( 4079 )
Called from: D:\SOFT\FWXH1208\TWBROWSE\WBROWSE.PRG => TWBROWSE:SKIP( 2359 )
Called from: D:\SOFT\FWXH1208\TWBROWSE\WBROWSE.PRG => TWBROWSE:PAINT( 1068 )
Called from: D:\SOFT\FWXH1208\TWBROWSE\WBROWSE.PRG => TWBROWSE:DISPLAY( 2886 )
Called from: .\source\classes\CONTROL.PRG => TWBROWSE:HANDLEEVENT( 1690 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3177 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 270 )
Called from: D:\PRGS\SVITE_D\PRG\errsysw.prg => ERRORDIALOG( 437 )
Called from: D:\PRGS\SVITE_D\PRG\errsysw.prg => (b)ERRORSYS( 33 )
Called from: .\source\prg\tdolpsrv.prg => DOLPHIN_DEFERROR( 2291 )
Called from: .\source\prg\tdolpsrv.prg => TDOLPHINSRV:CHECKERROR( 671 )
Called from: .\source\prg\tdolpqry.prg => (b)TDOLPHINQRY:TDOLPHINQRY( 130 )
Called from: => TDOLPHINQRY:CHECKERROR( 0 )
Called from: .\source\prg\tdolpqry.prg => TDOLPHINQRY:GETROW( 954 )
Called from: .\source\prg\tdolpqry.prg => TDOLPHINQRY:SKIP( 1455 )
Called from: D:\PRGS\SVITE_D\PRG\ekafunc.prg => (b)MYSETBROWSE( 4079 )
Called from: D:\SOFT\FWXH1208\TWBROWSE\WBROWSE.PRG => TWBROWSE:SKIP( 2359 )
Called from: D:\SOFT\FWXH1208\TWBROWSE\WBROWSE.PRG => TWBROWSE:GODOWN( 1211 )
Called from: D:\PRGS\SVITE_D\PRG\svite01.prg => (b)ALMACEN( 53 )
Called from: D:\PRGS\SVITE_D\PRG\svite01.prg => (b)ALMACEN( 1059 )
Called from: .\source\classes\WINDOW.PRG => TWINDOW:LDBLCLICK( 1949 )
Called from: .\source\classes\CONTROL.PRG => TCONTROL:LDBLCLICK( 1737 )
Called from: D:\SOFT\FWXH1208\TWBROWSE\WBROWSE.PRG => TWBROWSE:LDBLCLICK( 1572 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: .\source\classes\CONTROL.PRG => TWBROWSE:HANDLEEVENT( 1724 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3177 )
Called from: => WINRUN( 0 )
Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 990 )
Called from: D:\PRGS\SVITE_D\PRG\svite.prg => MAIN( 418 )
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Daniel.. error en ::refresh()

Postby MarioG » Fri Sep 19, 2014 3:14 am

Gracias| por las rcomendaciones!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 50 guests