DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jsuguo
今日帖子: 27
在线用户: 22
导航: 论坛 -> 网络通讯 斑竹:liumazi,sephil  
作者:
男 luckywangxw2 (delphifans) ★☆☆☆☆ -
普通会员
2019/1/20 16:35:27
标题:
FDMemTable.post 出错 浏览:2720
加入我的收藏
楼主: 提示“[FireDAC][DApt]-402.Operation cannot be performed without assigned SelectCommand”
代码如下:
var lStream:TMemoryStream;
   i:integer;
begin
  i:=1;
  try
      mtTheCs.Edit;
      mtTheCs.FieldByName('cs_name').Value := edit2.Text;
      mtTheCs.FieldByName('ordid').Value :=strtoint(edit3.Text);
      mtTheCs.FieldByName('inuse').Value := Checkbox1.IsChecked;
      mtTheCs.Post;
      i:=2;
      lstream:=TMEmorystream.Create;

      FDSchemaAdapter1.ResourceOptions.StoreItems :=[siDelta,siMeta] ;
      FDSchemaAdapter1.SaveToStream(lStream,TFDStorageFormat.sfBinary );
      i:=3;

      lstream.Position :=0;
      spPostTheCs.Params[0].AsStream :=lStream;
      spPostTheCs.ExecProc ;
==========
请高手指教问题出在哪里了?
此帖子包含附件:
PNG 图像
大小:31.8K
----------------------------------------------
Delphi爱好者
作者:
男 wg961423 (麦子仲肥) ★☆☆☆☆ -
盒子活跃会员
2019/1/21 9:21:20
1楼: 没看到spPostTheCs是啥东东!
----------------------------------------------
-
作者:
男 luckywangxw2 (delphifans) ★☆☆☆☆ -
普通会员
2019/1/21 10:11:09
2楼: spPostTheCs 是TfdStoredProc ,属性storedprocName=TServerMethods1.PostCsInfo
----------------------------------------------
Delphi爱好者
作者:
男 luckywangxw2 (delphifans) ★☆☆☆☆ -
普通会员
2019/1/21 10:11:53
3楼: 执行到 mtTheCs.Post;这句出错的
----------------------------------------------
Delphi爱好者
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2019/1/21 10:13:03
4楼: 啥错误也不截图,保密局的?
----------------------------------------------
(C)(P)Flying Wang
作者:
男 grjs_2004 (grjsITname) ★☆☆☆☆ -
盒子活跃会员
2019/1/21 12:12:30
5楼: 使用spPostTheCs.Params[0].AsStream :=lStream;
第一次spPostTheCs.ExecProc;没有问题,如果多次使用,且storedprocName如果有变化,则会出现寻址出错的问题。目前看FDStoredProc是不能用作公用的载体,只能对应一个数据集创建一个。

我也在寻找解决方法!如果有谁有处理方法的,请不吝赐教!谢谢!
----------------------------------------------
Everyone will to do best!
作者:
男 luckywangxw2 (delphifans) ★☆☆☆☆ -
普通会员
2019/1/21 15:34:42
6楼: 不好意思 @wang_80919
此帖子包含附件:
PNG 图像
大小:35.5K
----------------------------------------------
Delphi爱好者
作者:
男 luckywangxw2 (delphifans) ★☆☆☆☆ -
普通会员
2019/1/21 15:37:48
7楼: var lStream:TMemoryStream;
   i:integer;
begin
  i:=1;
  try
      mtTheCs.Edit;
      i:=111;
      mtTheCs.FieldByName('cs_name').Value := edit2.Text;
      i:=112;
      //mtTheCs.FieldByName('ordid').Value :=strtoint(edit3.Text);
      //mtTheCs.FieldByName('inuse').Value := Checkbox1.IsChecked;
      mtTheCs.Post;
      i:=2;
      lstream:=TMEmorystream.Create;

      FDSchemaAdapter1.ResourceOptions.StoreItems :=[siDelta,siMeta] ;
      FDSchemaAdapter1.SaveToStream(lStream,TFDStorageFormat.sfBinary );
      i:=3;

      lstream.Position :=0;
      spPostTheCs.Params[0].AsStream :=lStream;
      spPostTheCs.ExecProc ;
      i:=4;
  except
     on e:exception do
       raise Exception.Create('Error Message:'+e.Message+' (MyErrCode:'+inttostr(i)+')'  );
      //edit1.Text := e.Message+' (MyErrCode:)'+inttostr(i)+']' ;
  end;
----------------------------------------------
Delphi爱好者
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2019/1/21 15:51:23
8楼: 接下来,就是雇一个英语翻译的问题了。

不想花钱,就找 谷歌 或 百度 的 翻译。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 luckywangxw2 (delphifans) ★☆☆☆☆ -
普通会员
2019/1/21 17:48:50
9楼: 问题已找到: 将客户端的TFDTableAdapter控件 taTheCs 的DataSTableName设置为服务器对应的table或query控件名,然后最关键的是,将客户端TFDMemTable的cachedUpdates设置为true, 好了,全部代码 全部顺利执行,客户端 更新成功
----------------------------------------------
Delphi爱好者
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行101.5625毫秒 RSS