mysql - 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;
eqid
master 的表 ID 列在哪里。例如,它与 MS Access 完美配合,但这里有一个错误。
据我了解,问题是主数据源没有设置:eqid
参数值。当然,我可以通过以下方式手动设置:
procedure TdmMain.dsEquipmentDataChange(Sender: TObject; Field: TField);
begin
dsetJobsByEquipment.Parameters.ParamByName('eqid').Value :=
dsetEquipment.FieldByName('eqid').AsInteger;
end;
它有效。但它应该自动执行。也尝试设置MasterFields
,但它没有帮助 - 同样的错误。
解决方案
推荐阅读
- ruby-on-rails - Rails ActiveJob 显示过时的数据库数据
- angular - Angular HttpClient - 处理空和非空响应
- azure - Azure CI/CD 期间的 local.settings.json 转换
- excel - 假设日期是连续的,如何修复 Excel
- mysql - 聚合查询以进行分析
- regex - 通过 Powershell 从文本文件中提取字符串
- javascript - 邮递员:使用 application/x-www-form-urlencoded 作为内容类型发送 XML 作为正文
- python - 如何在 pytest 中进行自定义比较?
- reactjs - React - 不要在危险的SetInnerHTML 中解析某些 HTML 标签
- laravel - laravel 计划 Monthly() 何时准确运行?