首页 > 解决方案 > Master-Detail TADODataSet 中的“参数对象定义不正确”错误

问题描述

使用远程 MySQL 服务器创建 Master-Detail TADODataSet,但Parameter object is improperly defined. Inconsistent or incomplete information was provided在打开数据集时出错。

掌握

dsetEquipment: TADODataSet;
dsetEquipment.CommandText := 'SELECT * FROM equip;';
dsEquipment: TDataSource;
dsEquipment.DataSet := dsetEquipment;

细节

dsetJobsByEquipment: TADODataSet;
dsetJobsByEquipment.CommandText := 
' SELECT * FROM jobs ' +
' WHERE jobs.jbequip=:eqid; ';
dsetJobsByEquipment.DataSource := dsEquipment;

eqidmaster 的表 ID 列在哪里。例如,它与 MS Access 完美配合,但这里有一个错误。
据我了解,问题是主数据源没有设置:eqid参数值。当然,我可以通过以下方式手动设置:

procedure TdmMain.dsEquipmentDataChange(Sender: TObject; Field: TField);
begin
  dsetJobsByEquipment.Parameters.ParamByName('eqid').Value :=
    dsetEquipment.FieldByName('eqid').AsInteger;
end;

它有效。但它应该自动执行。也尝试设置MasterFields,但它没有帮助 - 同样的错误。

标签: mysqldelphidatasetadomaster-detail

解决方案


推荐阅读