【问题标题】:Data type mismatch in criteria expression when changing adoquery.active更改 adoquery.active 时条件表达式中的数据类型不匹配
【发布时间】:2012-04-10 20:15:48
【问题描述】:

我有以下问题

SELECT *
FROM Project
WHERE Status = "In Progress"

当我运行程序时,它成功地在 DBlookuplistbox 中列出了所有状态为“进行中”的项目标题,我有一个带有代码的按钮:

adoqCurrentProjects.Active := false;
adoqCurrentProjects.Active := true;

adoqCurrentProjects 是 adoquery 的名称,但是当我单击按钮时,会出现错误消息“条件表达式中的数据类型不匹配”。我原以为如果我更改项目表中状态为“进行中”的记录数量并单击按钮,它只会在 DBlookuplistbox 中列出新结果,就像我重新启动程序时一样,有什么建议吗?

【问题讨论】:

  • 错误信息表明Status和搜索值是不同的类型。由于您的消息表明两者都是字符串,因此查询可能正在运行时某处被修改..您是否有任何与 adoqCurrentProjects 组件相关的事件?似乎引号可能在某处被删除..只是一个猜测..

标签: delphi delphi-7 tadoquery


【解决方案1】:

更新 ADOQuery 的替代过程可以是

with adoqCurrentProjects do begin
 close;
 sql.Clear;
 sql.Add('SELECT * FROM Project WHERE Status = '+condition);
 open;
end;

// Update DBlookuplistbox

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多