Page 1 of 1
porque la mysqllib no es funciona la browser de fw.
Posted: Tue Apr 18, 2006 1:37 pm
by fsandoval
alguien que sea tan amable de explicarme porque la mysqllib no trabaja con los browses de fw, he echo pruebas todo funciona ok, pero en los browses no.
saludos.
fernando sandoval ruiz
Posted: Tue Apr 18, 2006 5:12 pm
by R.F.
Es por la forma en que esta consturido el browse de FW.
Si quieres hacer que funcione, tienes que cambiar varias cosas:
1) definicion de las columnas o datos a mostrar
2) bloques de codigo de longitud de datos (blogiclen y blogicpos)
3) Metodo "skipper" tienes que modficiarlo para que se mueva sobre el cursor.
Mi recomendacion:
Deja de intentar trabajar con tablas SQL como si fueran DBFs, eso no funciona, el modelo es diametralmente opuesto y utiliza mejor ADO.
Gracias Maestro Rene,
Posted: Tue Apr 18, 2006 5:58 pm
by fsandoval
La prueba que hice fue abrir una tabla con ado y mysqllib y por desgracia la myslqlib es mas rapida. por lo que me quede pensando si no era mucho problema adaptar el wbrowse para que tome los datos hacerlo.
De momento no tengo mucho tiempo para hacer _ pero si lo voy considerar para mas delante.
saludos y mil gracias.
Yo lo hago así:
Posted: Tue Apr 18, 2006 6:56 pm
by leandro
Amigo mira yo trabajo con clase nativa de sql y estamos con un amigo tranto de crear una pequeña clase que lea el cursor y lo tome directamente sin necesidad de crear un array previamente y mostrarlo directo.
por ahora yo lo hago de la siguiente manera:
Code: Select all
**********************************************
*actualiza el array cada vez que hay un cambio
**********************************************
PROC pArCiud()
oTable := oLamcla:oServer:Query( "SELECT * from " + oLamcla:tCiud + " ORDER BY "+vOrden )
oTable:GoTop()
nReg := oTable:Reccount()
nLen := 0
nMax := nReg
IF Empty(nReg)
aBrw := Array(1)
nLen++
aBrw[nLen] := ({ 0,"","","",0})
Asize( aBrw, nLen )
ELSE
aBrw := Array(nReg)
DO WHILE !oTable:Eof()
oTable:GetRow()
nLen++
IF nLen > nMax
aSize( aBrw, (nMax += K_Ajuste))
ENDIF
aBrw[nLen] := ({ oTable:FieldGet('d_Ciudad'),oTable:FieldGet('d_Nombre'),;
oTable:FieldGet('Usuari'),oTable:FieldGet('Ufecha'),oTable:FieldGet('Uhoras') })
oTable:Skip()
ENDDO
Asize( aBrw, nLen )
ENDIF
oTable:Destroy()
CursorArrow()
oBrw:aArrayData := ACLONE(aBrw)
oBrw:refresh()
espero te sirva.
PTA: Yo hice la misma prueba y opino lo mismo que tu.
Gracias Leandro me interesa el proyecto
Posted: Wed Apr 19, 2006 2:37 pm
by fsandoval
Me gustari colaborar con ustedes para desarrollar ese proyecto, si ustedes lo apruban desde luego.
saludos.
fernando sandoval ruiz