FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour tDolphin, método delete
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
tDolphin, método delete
Posted: Thu Sep 11, 2014 08:59 AM
Cuando la sentencia SQL contiene un JOIN, aTables guarda el nombre de la tabla más todo la cadena JOIN.
pe
?::aTables[1] --> ctFraCab LEFT JOIN ctCuenta ON ctFraCab.EmpCod=ctCuenta.EmpCod AND ctFraCab.MayCod=ctCuenta.MayCod AND ...

Esto genera un problema al usar el método delete, ya que el comando creado es erroneo.
DELETE FROM tabla LEFT JOIN .... WHERE ...

Una solución es cambiar en el método delete
Code (fw): Select all Collapse
cTable := ::aTables[ 1 ] //Original

por
Code (fw): Select all Collapse
cTable := IIf(At(' ',::aTables[1])>0,SubStr(::aTables[1],1,At(' ',::aTables[1])),::aTables[1]) //Biel 1409

De esta forma queda funcional, aunque el fondo del problema quizás sea cuando se procesa el comando SQL en el método BuildDatas.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: tDolphin, método delete
Posted: Thu Sep 11, 2014 07:15 PM

Gracias Biel

puedes contribuir con TDolphin haciendo un FORK del repositorio y despues de generar tus cambios solicitas un "PULL REQUEST"

Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Re: tDolphin, método delete
Posted: Mon Sep 15, 2014 09:00 AM

Hola Daniel, no estoy muy puesto con Git, me documento y lo intento actualizar.

Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: tDolphin, método delete
Posted: Mon Sep 15, 2014 04:39 PM
Nose si sera lo mismo sobre el tema, tratando borrar un registro de 2 tablas relacionadas con oQry:Delete(), ejemplo borrar un cliente relacionado con la tabla clasificacion de clientes, me arrojo error que no se pueden borrar registros en tablas relacionadas, revisando manual de MySql lo resolvi asi:

Code (fw): Select all Collapse
      cSqlDel := "DELETE LOW_PRIORITY " +;
         "FROM " + cTabla + " " +;
         "WHERE " + cCampoWhere + " = " + ClipValue2SQL( cVar ) + " " +;
         "ORDER BY " + cCampoWhere + " "

      TRY
         oDatos:oConex:Execute( cSqlDel )

         MsgInfo( "Registro " + ALLTRIM( cValToChar( cVar ) ) +;
            " Eliminado Correctamente.", oDatos:cTitMsg )

      CATCH oError
         ShowError( oError, "delete_tablas_relacionadas", "general.prg" )

      END


saludos... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!

Continue the discussion