sqlite3与Delphi XE Zeosdb Tztable级联删除

sqlite3与Delphi XE Zeosdb Tztable级联删除,delphi,sqlite,delphi-xe,cascading-deletes,zeos,Delphi,Sqlite,Delphi Xe,Cascading Deletes,Zeos,我有两张桌子客户,Commande sqlite3中的DDL如下所示: 我使用TzTable1作为客户端,TzTable2作为命令 因此,当我通过调用Tztable1.delete从客户机表中删除客户机时 ,它不会从命令表中删除关联的命令 我不知道问题出在哪里 我想在调用Tztable1.delete后,您必须重新打开TzTable2,以反映数据库级别上发生的更改。我重新打开并刷新了TzTable2,但没有解决问题。您是否关闭并(重新)打开TzTable2?如果在表已经打开时调用open,那么表

我有两张桌子客户,Commande

sqlite3中的DDL如下所示:

我使用TzTable1作为客户端,TzTable2作为命令 因此,当我通过调用
Tztable1.delete从客户机表中删除客户机时
,它不会从命令表中删除关联的命令


我不知道问题出在哪里

我想在调用Tztable1.delete后,您必须重新打开TzTable2,以反映数据库级别上发生的更改。

我重新打开并刷新了TzTable2,但没有解决问题。您是否关闭并(重新)打开TzTable2?如果在表已经打开时调用open,那么表组件很可能不会重新提取数据。你能用另一种方式访问数据吗?您是否验证了数据是否真的按预期删除了?1-是的,我这样做了,Tztable2.close;Tztable2.open;但是什么也没发生,2-是的,通过使用Sqlitestudio v2.1.2,工作正常,当我在客户端删除一条记录时,Commande中所有相关的记录也被删除,所以我猜问题出在Zeosdb引擎和组件中!!
CREATE TABLE Client ( 
    id_client  INT              NOT NULL,
    nom        varchar(10),
    PRIMARY KEY ( id_client ) 
);



CREATE TABLE Commande ( 
    id_commande   INT     NOT NULL,
    id_client     INTEGER REFERENCES Client ( id_client ) ON DELETE CASCADE
                                                          ON UPDATE CASCADE,
    PRIMARY KEY ( id_commande ) 


);