Page 1 of 1

MySQL Nativa - At. Sr. Rao

Posted: Tue Aug 27, 2024 2:26 pm
by Marcelo Roggeri
Hola buenos dias foro, tengo este query y necesito en modo ejecucion cambiar el where,

Code: Select all | Expand

TEXT INTO cSql
               SELECT
                   vi.cpte_fecha,
                   vi.cpte_nombre,
                   vi.cpte_letra,
                   vi.cpte_ptovta,
                   vi.cpte_numero,
                   pro.descripcion,
                   vi.cantidad,
                   cli.nombre_fiscal,
                   ven.nombre AS nombreVendedor,
                   CASE
                       WHEN vi.cpte_nombre = 'FACTURA' OR vi.cpte_nombre = 'Movimiento' THEN importe_item_neto
                       WHEN vi.cpte_nombre = 'NOTA DE CREDITO' OR vi.cpte_nombre = 'Crédito' THEN -importe_item_neto
                       ELSE 0
                   END AS neto,
               ven.id_vendedor,
               ven.nombre
               FROM
                   ventas_item vi
               LEFT JOIN productos  pro ON pro.id_producto=vi.id_articulo
               LEFT JOIN clientes   cli ON cli.id_cliente = vi.id_cliente
               LEFT JOIN vendedores ven ON ven.id_vendedor = vi.id_vendedor
               WHERE vi.cpte_fecha BETWEEN ? AND ?
               ORDER BY
                   vi.cpte_fecha;
          ENDTEXT

          ::oQryDia:Requery({ ::dFecDes, ::dFecHas })
En Dolphin existe un metodo setWhere pero en la nativa haciendolo asi, no se como modificar el where dentro del TEXT INTO

Re: MySQL Nativa - At. Sr. Rao

Posted: Tue Aug 27, 2024 2:48 pm
by CARLOS ATUNCAR
Saludos a mi me funciona asi

Code: Select all | Expand


cState := "NY"
nMinAge := 41
nMaxAge := 50
oRs := oCn:RowSet( "select * from `customer` where `state` = ? and 'age' between ? and ?", { cState, nMinAge, nMaxAge } )
 
cState  := "WA"
nMinAge := 51
nMaxAge := 60
oRs:Requery( { cState, nMinAge, nMaxAge } )

Re: MySQL Nativa - At. Sr. Rao

Posted: Tue Aug 27, 2024 8:19 pm
by Marcelo Roggeri
Hola Carlos si yo tambien lo uso asi, pero al habilitar varios filtros que pueden variar de acuerdo a lo que necesite el usuario filtrar lo que esta a la derecha del WHERE varia y es eso lo que debo cambiar es por eso que directamente mostre el REQUERY().
Bueno espero haberme explicado
Gracias

Re: MySQL Nativa - At. Sr. Rao

Posted: Tue Aug 27, 2024 10:38 pm
by leandro
Creo que es lo que necesitas, pero solo funciona con variables private

Code: Select all | Expand

Function creamosTigger(oCn) 
Local cQry

PRIVATE cTblFct :=  "facturas"
PRIVATE cTblBsc :=  "pesos"

TEXT INTO cQry
    CREATE TRIGGER borracaptura AFTER DELETE ON &cTblFct
        FOR EACH ROW
        BEGIN
          UPDATE &cTblBsc SET estado_pedido=1 WHERE documento=OLD.docume AND consecutivo=OLD.consec;
    END;
ENDTEXT
TRY
  oCn:Execute(cQry)
CATCH oError
  FW_ShowAdoError(oCn)
END
Return nil
 
Con esto puedes cambiar el contenido de las variables dentro del TEXT INTO

Re: MySQL Nativa - At. Sr. Rao

Posted: Tue Aug 27, 2024 11:12 pm
by Marcelo Roggeri
Perfecto eso seria, no sabia que era con variables privadas, gracias Leandro después pruebo y aviso.
Saludos

Re: MySQL Nativa - At. Sr. Rao

Posted: Wed Sep 04, 2024 9:18 pm
by nageswaragunupudi
Instead of SetWhere we can do like this:

Code: Select all | Expand

function ChangeWhere()

   local oCn, cSql, oRs

   oCn   := MsgRun( "Connecting", "MYSQL", ;
            { || maria_Connect( "209.250.245.152,fwh,fwhuser,FiveTech@2022", .t. ) } )

   oCn:lShowErrors := .t.

   cSql  := "SELECT FIRST,STATE,AGE FROM customer ?"
   oRs   := oCn:RowSet( cSql, { "WHERE STATE = 'NY'" } )
   XBROWSER oRs
   oRs:Requery( { "WHERE AGE > 60" } )
   XBROWSER oRs
   oRs:Close()

  oCn:Close()

return nil

 

Re: MySQL Nativa - At. Sr. Rao

Posted: Thu Sep 05, 2024 3:28 am
by CARLOS ATUNCAR
nageswaragunupudi wrote:Instead of SetWhere we can do like this:

Code: Select all | Expand

function ChangeWhere()

   local oCn, cSql, oRs

   oCn   := MsgRun( "Connecting", "MYSQL", ;
            { || maria_Connect( "209.250.245.152,fwh,fwhuser,FiveTech@2022", .t. ) } )

   oCn:lShowErrors := .t.

   cSql  := "SELECT FIRST,STATE,AGE FROM customer ?"
   oRs   := oCn:RowSet( cSql, { "WHERE STATE = 'NY'" } )
   XBROWSER oRs
   oRs:Requery( { "WHERE AGE > 60" } )
   XBROWSER oRs
   oRs:Close()

  oCn:Close()

return nil

 

esta solución de que version esta disponible ?

Re: MySQL Nativa - At. Sr. Rao

Posted: Thu Sep 05, 2024 5:27 pm
by nageswaragunupudi
It was there for very long time.
What is your version?
Did you try on your version?