Si alquien pudiera ayudarme con este problema se lo agradeceria muchisimo
Tengo una base de datos con 2 tablas em una (tbPedidos) con primary key y la otra (tbItems) con foreign Key
Cuando borro con cualquiera de estas tres instrucciones
dim rs As RecordSet
‘Session.BBDD.SQLExecute("delete from tbPedidos inner join tbItemsPedidos on tbPedidos.PedidoID = tbItemsPedidos.PedidoID where PedidoID = ’ " + PedidoID.ToText + "’")
‘rs = Session.BBDD.SQLSelect("Select PedidoID from tbPedidos where PedidoID = ’ " + PedidoID.ToText + "’")
rs = Session.BBDD.SQLSelect("Select PedidoID from tbPedidos inner join tbPedidosItems on tbPedidos.PedidoID = tbItemsPedidos.PedidoID where PedidoID = ’ " +
PedidoID.ToText + “’”)
rs.DeleteRecord
Se me borra solo el registro en la tabla principal pero no borra en cascada
Aparentemente el diseo de la base de datos esta bien porque si borro desde la aplicacion sqlite si borra en cascada
y solo necesita borrar la fila en la tabla parent y c borran en la tabla child. la otra forma es con comandos SQL y toca hacer dos DELETE.
Si le funciona en comandos de SQLite, entonces “debe” funcionar en Xojo, slo le manda los comandos a SQLite para que los ejecute, aparecen errores en xojo despus de enviar cada comando?
Respecto a crearla en forma declarativa, las cree pero sigo sin poder borrar en cascada
Hice un control de errores en las distintas instrucciones que use para borrar y me da error “near inner syntax error” en la que uso la clausula inner join, por ahi se podria encontrar una solucion tal vez
En las otras no da error(“not an error”)
Haciendo 2 deletes me borra correctamente.
Pero lo mas extrao es que borrando desde sqlite Studio borra en cascada sin problemas
Ahhh, normalmente esos programas ejecutan los dos comandos DELETE, mire el trace o log de l app cuales comandos usa para delete, pruebe con SQLite command line y esos comandos usa en xojo.