No puedo borrar en cascada xojo+sqlite

Hola a todos

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

Desde ya muchas gracias

Hernan

tengo entendido q borrar en cascada solo funciona cuando crea la tabla en forma declarativa:

CREATE TABLE table_child

FOREIGN KEY (…)
REFERENCES table_parent (…)
ON DELETE CASCADE

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?

Hola Bernardo

Muchas gracias por tu respuesta

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

De todos modos te reitero mi agradecimiento

Saludos

Hernan

Deberias usar la etiqueta code para publicar cdigo, ademas de evitar los comentarios, que son aun peores cuando no se usan las etiquetas adecuadas.

Para el SQL, solo usa directamente el que genera el sqlite Studio para borrar

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.

Muchas Gracias por la ayuda a ambos

Saludos!!!