我用数据感知控件作了一个页面。该页面调用方法只能插入数据,不能修改数据(没有任何错误代码返回),我感到非常疑惑,会是哪儿出了问题,希望给点提示。
代码如下:
var
ICustomdisp: ICommSrvDisp;
OutStrCode: WideString;
RecStrMark: PCodeRec;
OutNode: TTreeNode;
begin
with DataModule_Common.Client_jxxx do
begin
if AddTree then
begin
try
ICustomdisp:= ICommSrvDisp(Idispatch(DataModule_Common.SocketConnection1.appserver));
ICustomdisp.GetBaseCurNO('jx', AddStr, OutStrCode);
except
Application.MessageBox('调用远程服务器方法出错!', '提示', MB_ICONWARNING);
Self.Hide;
TFam_BaseData(MainMenu_Main.dlFrame).ChildFrame1:=nil;
Exit;
end;
if AddStr='' then
FieldByName('Parent_code').Clear else
FieldByName('Parent_code').AsString:= AddStr;
FieldByName('jx_code').AsString:= OutStrCode;
FieldByName('jx_name').AsString:= DBEdit1.Text;
New(RecStrMark);
RecStrMark^.bm_code:= OutStrCode;
ContrlFans(False);
dlDBTreeView1.ControlTree(AddNode, DBEdit1.Text, RecStrMark, 'insert', OutNode);
try
Post;
ApplyUpdates(0);
except
Application.MessageBox('更新数据失败!', '提示', MB_ICONWARNING);
Self.Hide;
TFam_BaseData(MainMenu_Main.dlFrame).ChildFrame1:=nil;
Exit;
end;
end else
begin
FieldByName('jx_name').AsString:= DBEdit1.Text;
ContrlFans(False);
dlDBTreeView1.ControlTree(AddNode, DBEdit1.Text, nil , 'edit', OutNode);
Try
Post;
ApplyUpdates(0);
except
Application.MessageBox('更新数据失败!', '提示', MB_ICONWARNING);
Self.Hide;
TFam_BaseData(MainMenu_Main.dlFrame).ChildFrame1:=nil;
Exit;
end;
end;
end;
keybd_event(VK_TAB,0,0,0);
end;
代码如下:
var
ICustomdisp: ICommSrvDisp;
OutStrCode: WideString;
RecStrMark: PCodeRec;
OutNode: TTreeNode;
begin
with DataModule_Common.Client_jxxx do
begin
if AddTree then
begin
try
ICustomdisp:= ICommSrvDisp(Idispatch(DataModule_Common.SocketConnection1.appserver));
ICustomdisp.GetBaseCurNO('jx', AddStr, OutStrCode);
except
Application.MessageBox('调用远程服务器方法出错!', '提示', MB_ICONWARNING);
Self.Hide;
TFam_BaseData(MainMenu_Main.dlFrame).ChildFrame1:=nil;
Exit;
end;
if AddStr='' then
FieldByName('Parent_code').Clear else
FieldByName('Parent_code').AsString:= AddStr;
FieldByName('jx_code').AsString:= OutStrCode;
FieldByName('jx_name').AsString:= DBEdit1.Text;
New(RecStrMark);
RecStrMark^.bm_code:= OutStrCode;
ContrlFans(False);
dlDBTreeView1.ControlTree(AddNode, DBEdit1.Text, RecStrMark, 'insert', OutNode);
try
Post;
ApplyUpdates(0);
except
Application.MessageBox('更新数据失败!', '提示', MB_ICONWARNING);
Self.Hide;
TFam_BaseData(MainMenu_Main.dlFrame).ChildFrame1:=nil;
Exit;
end;
end else
begin
FieldByName('jx_name').AsString:= DBEdit1.Text;
ContrlFans(False);
dlDBTreeView1.ControlTree(AddNode, DBEdit1.Text, nil , 'edit', OutNode);
Try
Post;
ApplyUpdates(0);
except
Application.MessageBox('更新数据失败!', '提示', MB_ICONWARNING);
Self.Hide;
TFam_BaseData(MainMenu_Main.dlFrame).ChildFrame1:=nil;
Exit;
end;
end;
end;
keybd_event(VK_TAB,0,0,0);
end;
ClientDataset有提交时出错的事件,你将他的错误信息显示出来。你用什么数据库?有一些什么类型的字段?