起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 900|回复: 13

【搞定】平台报"Cannot get at least one key field"是怎么回事?*

[复制链接]
发表于 2007-2-2 14:13:31 | 显示全部楼层 |阅读模式
请问版主,平台中报下面的错误是怎么回事?(版本2401)

error.gif

6.41 KB, 下载次数: 204

回复

使用道具 举报

发表于 2007-2-2 15:47:44 | 显示全部楼层
当点击【修改】按钮并且不做任何修改就点击【确定】按钮时报的错

Demo.rar

23.68 KB, 下载次数: 124

回复 支持 反对

使用道具 举报

发表于 2007-2-3 12:16:26 | 显示全部楼层
lForm := TFRM_CT1.Create(Context);
  lGUID := DataSetBroker1.DataSet.FieldByName('ZD1').AsString;
  lForm.DataSetBroker1.DataSet.Open;
  lForm.DataSetBroker1.DataSet.Locate('ZD1',[lGUID],[TLocateOption.loCaseInsensitive]);
  lForm.DataSetBroker1.DataSet.Edit;
  try
    lForm.Caption := '修改';
    if lForm.ShowModal = Business.Forms.Controls.mrOk then
    begin
      lForm.DataSetBroker1.DataSet.ApplyUpdates; //此处应该提交数据集到数据库
      DataSetBroker1.DataSet.Refresh;  //刷新DataGrid对应的数据集
    end;
  finally
    lForm.Free;
  end;

楼主,你这种用法其实效率并不高,同一张表在内存中打开了两个数据集。还不如只使用一个“模板”数据集更高效、更方便
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-5 09:22:16 | 显示全部楼层
我们的数据表中有一个字段的数据类型为二进制流的字段,如果放在一个数据集中就会使数据每次在提交数据的时候都会以二进制流的形式写进到数据库中,这样会造成对速度的影响,所以我才把一个数据表分成两个数据集来表现,才出现了一楼的问题,到底是哪儿的原因呢,版主?
回复 支持 反对

使用道具 举报

发表于 2007-2-5 09:52:24 | 显示全部楼层
错误主要是
      DataSetBroker1.DataSet.RefreshRecord; 引起的。
这个方法现在有bug,不能正常使用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-5 10:04:24 | 显示全部楼层
那么那个Bug现在解决了吗?版主(是否有升级版本解决了这个问题呢)
回复 支持 反对

使用道具 举报

发表于 2007-2-5 10:05:50 | 显示全部楼层
抱歉,楼主,我搞错了。
这个方法可以用,但是需要作一些设置,默认状态下使用可能有问题:
http://bbs.justep.com/forum.php? ... light=RefreshRecord
回复 支持 反对

使用道具 举报

发表于 2007-2-5 10:09:20 | 显示全部楼层
在默认状态下,信息的资源文件中没有下述语句:
UpdateOptions.Fields = <
      item
        Name = 'ZD1'
        ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
      end>
所以在调用RefreshRecord方法时,系统会提示没有找到主键,无法更新数据。

按照7楼链接操作后,在信息的资源文件中就会有了主键字段的定义,可以正常使用该方法了。

查看信息的资源文件可以使用版本管理工具,找到相关信息,查看 信息ID.Info文件内容即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-5 10:12:24 | 显示全部楼层
那么版主,一楼的问题到底是由于什么原因才会产生的呢,通过什么方法可以解决呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-5 10:32:39 | 显示全部楼层
那么版主,我们只能按照版主7楼提供的方法来解决这个问题了么?这似乎并不是最佳的解决方案
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-24 07:34 , Processed in 0.043482 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表