TClientdataset出现无效参数错误

5
调用TClientDataSet组件中的CreateDataSet方法时出现“无效参数错误”的原因是什么?这个错误是由什么引起的。
4个回答

8

当你有一个ftString数据类型的字段并且其大小为零或未提供大小时,也可能会导致此类错误。我尝试为数据集创建字段定义,但没有为字符串字段指定大小。最终出现了同样的错误。


+1 我曾经遇到过这个问题,这是我发现的。我传递了0,以为它会自动处理 - 虽然我很希望如此。 - Jerry Dodge

4

Riaan,

你是否在使用ftGuid字段?如果是的话,你需要手动将该字段的大小设置为38。

祝好, Lieven


3
Lieven指出了一些特定的TFields在与其相关联的ClientDataSet创建(使用CreateDataSet)之前需要不同的属性。但是TGuid字段并不是唯一的。
如果您无法确定哪些字段导致问题,请注释掉除一个字段类型外的所有字段类型,例如TStringField,然后尝试创建ClientDataSet。如果第一组没有问题,请继续下一步。它可能只是一个BDC(二进制编码十进制)字段,或者更奇特的东西。
一旦找到一个存在会导致错误的字段类型,请使用帮助,并确保仅包括对该字段类型有意义的属性。
此外,这也可能是由于TIndexDef中的无效参数造成的。例如,TIndexDef实例不支持ixExpression索引,即使IndexDef集合编辑器允许您设置此选项。
祝好运...

1

我曾经也遇到过同样的问题,但一开始并没有明显的原因...后来我偶然发现了解决方法。 在表单设计器中切换到文本视图,然后再切换回表单视图(使用alt+f10快捷键)。 现在再试一次,这个方法对我有效了好几次。我认为这是一个bug,通过重新创建组件可以解决它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接