delphi kbmmw删除记录不起作用

时间:2016-02-09 09:53:09

标签: delphi

我尝试用kbmmw componet删除记录。

我在客户端使用TkbmMWClientQuery。

第一种方式。

功能

TkbmMWClientQuery.Append/Post;
TkbmMWClientQuery.Resolve;

是工作但是

TkbmMWClientQuery.Delete;
TkbmMWClientQuery.Resolve;

不起作用

第二种方式。

我在服务器端使用参数

进行了单独的qSEL_COMP_DEL查询

sql代码:

delete from Company_Users Where  Phone_main = :PPhone_main and ID_Comp_Users = :PID_Comp_Users

在客户端运行它。

    if qSEL_COMP_DEL.Active then
       qSEL_COMP_DEL.Close;

 qSEL_COMP_DEL.ParamByName['PPhone_Main'].AsString := qSEL_COMP.FieldByName('Phone_main').AsString;
 qSEL_COMP_DEL.ParamByName['PID_COMP_USERS'].AsInteger := qSEL_COMP.FieldByName('ID_Comp_Users').AsInteger;

 qSEL_COMP_DEL.Query.Text:='@SEL_COMP_DEL';
 qSEL_COMP_DEL.Execute; // .Open;
 qSEL_COMP_DEL.Resolve;

它也不起作用。

如何解决问题?

1 个答案:

答案 0 :(得分:0)

尝试启用服务器端调试,以查看它为delete语句生成的内容。

在服务器上,在您尝试解决之前的某个地方:

kbmMWDebugTypes:=[mwdtDBResolve];
kbmMWDebugWhere:=mwddOneRawTextFile;
kbmMWDebugLevel:=[mwdlAll];
kbmMWDebugFile:='c:\temp\debug.txt';

它将输出生成的SQL和您的解析结果。

还要记住,如果您在客户端查询中插入记录,然后将其删除,则在解析期间不会插入/删除它,因为从服务器视图中看,它从来就不存在。

但是,由于您的手动语句也不起作用,我认为它实际上是您的数据库,阻止您删除。可能已启用参照完整性,并且阻止您在首次删除详细记录之前删除主记录。

最好的问候 金/ C4D