In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Sustituir Seek

SQL databases
Responder
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Sustituir Seek

Mensaje por Paco V »

Como podria sustituir esto para MySQL?
Se trata de comprobar si existe el valor ::oMatri
METHOD MiraExisMat( oSender, oNextCtl ) CLASS PERSODAT
if ::oParent:oDbfDataSet1:seek(::oMatri:value )
msginfo("ESTA")
endif
RETURN Nil
Gracias.
Paco V
Avatar de Usuario
jasm
Mensajes: 447
Registrado: Mar Jul 08, 2008 8:12 pm

Sustituir Seek

Mensaje por jasm »

Si no está en la consulta actual tendrás que hacer una consulta para
comprobarlo y para mantener el dataset actual tendrás que crear otro
dataset para hacer la comprobación.
Saludos
Jose A. Suarez
Paco V escribió:
> Como podria sustituir esto para MySQL?
> Se trata de comprobar si existe el valor ::oMatri
>
> METHOD MiraExisMat( oSender, oNextCtl ) CLASS PERSODAT
> if ::oParent:oDbfDataSet1:seek(::oMatri:value )
> msginfo("ESTA")
> endif
> RETURN Nil
>
> Gracias.
>
> Paco V
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Sustituir Seek

Mensaje por zeasoftware »

Yo lo hice sobrecargandolo en TSQLQuery y TSQLTable ya que no existe dicho metodo, no se si sera la forma optima, pero me funciona, de igual manera estoy haciendo varios metodos que daban facilidad de uso con las DBF.
//---------------------------------------------------------- ----------------
METHOD Seek( xValue, lSoftSeek, lLast, lError, lAll )
LOCAL lSuccess
LOCAL aTemp
LOCAL cTable
Local cSelect := "SELECT "
If ( xValue == Nil )
Return ( .f. )
End
cTable := zStrNoBorders(::cTable) //nombre de la [Tabla] la cual asigno al crear el TSQLQuery
xValue := AllTrim(xValue)
cSelect += ::cSQLTag //Este lo tomo de OrdSetFocus(), que le he reescrito
cSelect += " FROM " + cTable
cSelect += " WHERE " + ::cSQLTag + " = '" + xValue + "'"
aTemp := AppData:oDataSource:QueryRow(cSelect)
lSuccess := !Empty(aTemp)
Return ( lSuccess )
Espero te sirva y si alguien lo mejora, por favor, ilumenenos a todos.
Igual he reescrito el Filter, SaveToArray, SetScope.... todos para trabajar con SQL.
Saludos.
--
Ramon Zea
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoftware/
--
Responder