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
Paco V
Posts: 380
Joined: Thu Oct 27, 2005 9:08 am

Sustituir Seek

Postby Paco V » Thu Jul 05, 2007 8:28 am

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
User avatar
jasm
Posts: 447
Joined: Tue Jul 08, 2008 8:12 pm

Sustituir Seek

Postby jasm » Thu Jul 05, 2007 9:15 am

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
Posts: 1831
Joined: Tue Oct 11, 2005 9:53 am

Sustituir Seek

Postby zeasoftware » Thu Jul 05, 2007 9:29 am

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/
--

Return to “SQL”