|
|
导航: |
论坛 -> 网络通讯
斑竹:liumazi,sephil |
|
作者: |
|
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 ; ========== 请高手指教问题出在哪里了?
此帖子包含附件:
大小:31.8K |
----------------------------------------------
Delphi爱好者 |
作者: |
|
2019/1/21 9:21:20 |
1楼: |
没看到spPostTheCs是啥东东!
----------------------------------------------
-
|
作者: |
|
2019/1/21 10:11:09 |
2楼: |
spPostTheCs 是TfdStoredProc ,属性storedprocName=TServerMethods1.PostCsInfo
----------------------------------------------
Delphi爱好者
|
作者: |
|
2019/1/21 10:11:53 |
3楼: |
执行到 mtTheCs.Post;这句出错的
----------------------------------------------
Delphi爱好者
|
作者: |
|
2019/1/21 10:13:03 |
4楼: |
啥错误也不截图,保密局的?
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2019/1/21 12:12:30 |
5楼: |
使用spPostTheCs.Params[0].AsStream :=lStream; 第一次spPostTheCs.ExecProc;没有问题,如果多次使用,且storedprocName如果有变化,则会出现寻址出错的问题。目前看FDStoredProc是不能用作公用的载体,只能对应一个数据集创建一个。
我也在寻找解决方法!如果有谁有处理方法的,请不吝赐教!谢谢!
----------------------------------------------
Everyone will to do best!
|
作者: |
|
2019/1/21 15:34:42 |
6楼: |
不好意思 @wang_80919
此帖子包含附件:
大小:35.5K |
----------------------------------------------
Delphi爱好者
|
作者: |
|
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爱好者
|
作者: |
|
2019/1/21 15:51:23 |
8楼: |
接下来,就是雇一个英语翻译的问题了。
不想花钱,就找 谷歌 或 百度 的 翻译。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2019/1/21 17:48:50 |
9楼: |
问题已找到: 将客户端的TFDTableAdapter控件 taTheCs 的DataSTableName设置为服务器对应的table或query控件名,然后最关键的是,将客户端TFDMemTable的cachedUpdates设置为true, 好了,全部代码 全部顺利执行,客户端 更新成功
----------------------------------------------
Delphi爱好者
|
|