SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Estimado;
No he tenido necesidad de cambiar el Orden.
Esperemos que Daniel lea y nos comente
Saludos
No he tenido necesidad de cambiar el Orden.
Esperemos que Daniel lea y nos comente
Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Chaco - Argentina
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Retomando un poco el tema, estoy probando tdolphin y me encuentro con una serie de problemitas que aparentemente estan resuletos, perooo no me funcionan
esoty probando usar el SEEK, FIND y LOCATE para ver diferencias de uso,
voy explicar mi ejemplo muy sencillo:
bien ahora que utilizo:
descargue de bitbucket la ultima actualizacion de tdolphin, y genere la dolphin.lib y utilice la libmysql.lib que viene en esa version con fecha 19/09/2014 02:20pm asi como la libmysql.dll que viene tambien incluida con fecha 19/09/2014 02:20pm y que parece ser la ultima version de tdolphin ya que todos los archivos tienen esa misma fecha y hora.
Genero el .exe de mi ejemplo y coloque de antemano la libmysql.dll que viene incluida, asi tambien inclui la libmysql.lib y la dolphin.lib que genere y las inclui en la compilacion de mi ejemplo, hasta ahi todo bien.
los problemas son:
mi campo "id" es de tipo numerico
LOCATE: me saca del programa al dar click sin enviar algun error
SEEK: no me encuentra el registro
FIND: me sasa del programa al dar click sin enviar algun error
nota: en todos _ los codigos 27830, 27833, 27835 existen en mi consulta.
todo lo estoy haciendo con harbour 3.2 de diciembre 2014 que recomendo antonio, ya que mi intencion es pasar a harbour + dolphin y dejar xharbour + tmysql
para confirmar lo que comento agrego la imagen de mi xbrowse con mi consulta.
http://www.subirimagenes.net/i/150218061411658497.jpg
a alguien le sigue sucediendo? Daniel me puedes apoyar ?
Gracias
Saludos
esoty probando usar el SEEK, FIND y LOCATE para ver diferencias de uso,
voy explicar mi ejemplo muy sencillo:
Code: Select all
Tengo esta consulta:
dFec := "20141217"
oQry := oServer:Query("SELECT c.id,c.fechareserva,c.fecha,d.nombre" + ;
" FROM s_citas c" + ;
" INNER JOIN s_clientes d ON d.id = c.idcliente" + ;
" WHERE c.fechareserva = '" + dFec + "'" + ;
" ORDER BY c.inicio")
DEFINE DIALOG oDlg TITLE "xbrowse / tdolphin" FROM 5, 5 TO 30, 90
@ 9.5,3 BUTTON oBtn PROMPT "SetWhere" OF oDlg ACTION( dFec2 := ( VAL(dFec) + 1 ),;
dFec := Alltrim(Str(dFec2)),;
oQry:SetWhere("c.fechareserva = '" + dFec + "'"),;
oBrw:Refresh(),;
oBrw:SetFocus() )
@ 9.5,12 BUTTON oBtn PROMPT "Varios" OF oDlg ACTION( msginfo(oQry:nRecNo(),oQry:nRecCount()),;
oBrw:SetFocus() )
@ 9.5,21 BUTTON oBtn PROMPT "Locate" OF oDlg ACTION( cTime := Time(),;
nPos := oQry:Locate( { "27830" }, { "id" } ),;
msginfo( "Time " + ElapTime( cTime, Time() ), nPos ),;
oBrw:SetFocus() )
@ 9.5,30 BUTTON oBtn PROMPT "Seek" OF oDlg ACTION( cTime := Time(),;
nPos := oQry:Seek( "27833", "id" ),;
msginfo( "Time " + ElapTime( cTime, Time() ), nPos ),;
oBrw:SetFocus() )
@ 9.5,39 BUTTON oBtn PROMPT "Find" OF oDlg ACTION( cTime := Time(),;
nPos := oQry:Find( { "27835" }, { "id" } ),;
msginfo( "Time " + ElapTime( cTime, Time() ), nPos ),;
oBrw:SetFocus() )
@ 0,0 XBROWSE oBrw OF oDlg SIZE 330,160
WITH OBJECT oBrw
:SetDolphin( oQry )
:nMarqueeStyle := MARQSTYLE_HIGHLROW
:CreateFromCode()
:aCols[3]:bLClickHeader := { || oQry:LoadQuery(), oBrw:Refresh() }
END
ACTIVATE DIALOG oDlg CENTERED ON INIT oBrw:SetFocus()
oQry:End()
oServer:End()
descargue de bitbucket la ultima actualizacion de tdolphin, y genere la dolphin.lib y utilice la libmysql.lib que viene en esa version con fecha 19/09/2014 02:20pm asi como la libmysql.dll que viene tambien incluida con fecha 19/09/2014 02:20pm y que parece ser la ultima version de tdolphin ya que todos los archivos tienen esa misma fecha y hora.
Genero el .exe de mi ejemplo y coloque de antemano la libmysql.dll que viene incluida, asi tambien inclui la libmysql.lib y la dolphin.lib que genere y las inclui en la compilacion de mi ejemplo, hasta ahi todo bien.
los problemas son:
mi campo "id" es de tipo numerico
LOCATE: me saca del programa al dar click sin enviar algun error
SEEK: no me encuentra el registro
FIND: me sasa del programa al dar click sin enviar algun error
nota: en todos _ los codigos 27830, 27833, 27835 existen en mi consulta.
todo lo estoy haciendo con harbour 3.2 de diciembre 2014 que recomendo antonio, ya que mi intencion es pasar a harbour + dolphin y dejar xharbour + tmysql
para confirmar lo que comento agrego la imagen de mi xbrowse con mi consulta.
http://www.subirimagenes.net/i/150218061411658497.jpg
a alguien le sigue sucediendo? Daniel me puedes apoyar ?
Gracias
Saludos
____________________
Paco
Paco
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Hola
el ORDER BY de la consulta debe ser el mismo de la busqueda con SEEK
el ORDER BY de la consulta debe ser el mismo de la busqueda con SEEK
Code: Select all
ORDER BY c.id
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Daniel,
de esa forma el SEEK si funciona, pero en ocasiones se realizan querys mas complejos con un orden de _ o diferente al dato a veces a buscar, ahi que aplica?
el LOCATE y el FIND me sacan del sistema sin error
Gracias
Saludos
de esa forma el SEEK si funciona, pero en ocasiones se realizan querys mas complejos con un orden de _ o diferente al dato a veces a buscar, ahi que aplica?
el LOCATE y el FIND me sacan del sistema sin error
Gracias
Saludos
____________________
Paco
Paco
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Creo lo mejor en _ es hacer un setwhere() y si el oQry es mayor a cero, entonces hubo la coincidencia, sino, no existe...ya podra decirnos Daniel si hay otra forma mas facil o algun methodo para ello...saludos...Francisco Horta wrote:Daniel,
de esa forma el SEEK si funciona, pero en ocasiones se realizan querys mas complejos con un orden de _ o diferente al dato a veces a buscar, ahi que aplica?
el LOCATE y el FIND me sacan del sistema sin error
Gracias
Saludos
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Saludos,
Adhemar C.
Adhemar C.
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
El detalle de usar el setorder() es que te deja el qry ordenado por ese campo, asi que deberia de volver al order by anterior si estas haciendo algun ordenamiento, lista por browse o reporte, etc...por lo menos pasa en mi caso, no se si sera que hago algo mal, por eso tengo el where original en una VAR, realizo mi where como si fuese busqueda, pero solo cuando la busqueda es coincidencia por mas de un campo y luego llamo de nuevo mi where original, no he intentando hacerlo con el order by...saludos...
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Adhemar,
si puede ser una solucion,
cOldOrder := oQry:cOrder
oQry:SetOrder(minuevoorden)
oQry:Seek(loquebusco)
oQry:SetOrder(cOldOrder)
mas o menos algo asi.
Jose Luis,
el setwhere es bueno y funciona bien cuando en tu query tiene solo un where, pero si tienes mas de un where en un query complejo, ya no funciona, esto es para consultas simples, imagino que asi funcionan los demas SETs
y locate y find? veo que usas arreglos para varios datos, pero sigue sin funcionar y no he podido probar
Gracias
Saludos
si puede ser una solucion,
cOldOrder := oQry:cOrder
oQry:SetOrder(minuevoorden)
oQry:Seek(loquebusco)
oQry:SetOrder(cOldOrder)
mas o menos algo asi.
Jose Luis,
el setwhere es bueno y funciona bien cuando en tu query tiene solo un where, pero si tienes mas de un where en un query complejo, ya no funciona, esto es para consultas simples, imagino que asi funcionan los demas SETs
y locate y find? veo que usas arreglos para varios datos, pero sigue sin funcionar y no he podido probar
Gracias
Saludos
____________________
Paco
Paco
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
A lo que me refiero es que el seek, locate y find te sirve solo si buscas por un campo, pero si quieres busqueda por lo menos por fechas o que coincidan mas de un campo, entonces lo que te recomendaria es un where, puedes guardar el WHERE viejo y luego reestrablecerlo, bueno, es solo una idea y solucion funcional, cada quien dicen tiene su manera de matar piojos...saludos...
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Eso es exactamente, como he dicho el blog anteriormente, Dolphin es una herramienta que te ayuda a iniciarte en el mundo SQL y logres ir entendiendo como funciona, te brinda metodos de clase simples para consultas simples mientras vas avanzando encontraras metodos que te ayudaran en el avance, pero al final hay que entender que SQL no es DBF, es una premisa que para mi punto de vista (y otros) es importante, Dolphin te permitira sacar provecho de la mayoria de las cualidades de MySql, hasta los momentos la limitante son las sentencias preparadasFrancisco Horta wrote:Adhemar,
si puede ser una solucion,
cOldOrder := oQry:cOrder
oQry:SetOrder(minuevoorden)
oQry:Seek(loquebusco)
oQry:SetOrder(cOldOrder)
mas o menos algo asi.
Jose Luis,
el setwhere es bueno y funciona bien cuando en tu query tiene solo un where, pero si tienes mas de un where en un query complejo, ya no funciona, esto es para consultas simples, imagino que asi funcionan los demas SETs
y locate y find? veo que usas arreglos para varios datos, pero sigue sin funcionar y no he podido probar
Gracias
Saludos
La idea del seek es como en los indices de las DBFs, ordenar la consulta por el campo de busqueda, los indices son una diferencia notable entre SQL y DBFs, aparte cuando cambias el orden de una consulta (query) re-envias la consulta al servidor y te devolvera al nuevo puntero (handle) del ese resultado, nada funciona localmente, a menos que uses un servidor incrustado (embebbed server) a consecuencia el proceso se hace mas lento por que todo pasa de forma remota.
Hay que estar pendiente a la hora de usar los SET..., FIND, LOCATE, SEEK
Hace tiempo atras hable sobre el tema de los subselect y aporte una solucion para el manejo de ellos donde el usuario practicamente llevaba el control de las partes del query,
http://forums.fivetechsupport.com/viewt ... 02#p108702
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Daniel,
De hecho al ir entendiendo mejor el SQL las sentencias se van puliendo y ala vez quieres mas en un solo query, tdolphin trae metodos muy completos y que ire probando para tratar de explotarlo al maximo, siempre son excelentes tus aportes. Por lo demas ire viendo soluciones desde SQL, a toda marcha.
Gracias
Saludos
De hecho al ir entendiendo mejor el SQL las sentencias se van puliendo y ala vez quieres mas en un solo query, tdolphin trae metodos muy completos y que ire probando para tratar de explotarlo al maximo, siempre son excelentes tus aportes. Por lo demas ire viendo soluciones desde SQL, a toda marcha.
Gracias
Saludos
____________________
Paco
Paco