You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi使用TFDQuery执行SQL查询取值抛出EDatabaseError异常如何处理

异常产生原因
  • 语法逻辑错误:你当前编写的代码是写入操作而非取值操作。FdTmp2.FieldByName('PATH_FILE').AsString := TEST; 的作用是将变量TEST的值写入PATH_FILE字段,若数据集未处于编辑状态,该操作会直接触发EDatabaseError异常。
  • 查询未执行:仅给SQL.Text赋值不会触发查询执行,你没有调用Open方法加载结果集时,数据集为空,FieldByName无法找到对应字段,会抛出该异常。
  • 其他可能原因:查询的STORAGE_DATA表不存在PATH_FILE字段(拼写错误、大小写和数据库定义不匹配)、查询返回结果集为空、数据库连接异常无权限执行查询。
正确获取字段文本值的方法
  1. 先执行SELECT查询加载结果集:
// 给查询组件赋值SQL语句
FdTmp2.SQL.Text := 'SELECT PATH_FILE FROM STORAGE_DATA';
// SELECT查询需要调用Open方法执行,返回结果集
FdTmp2.Open;
  1. 正确编写取值逻辑,将字段值赋值给接收变量:
var
  TEST: string;
begin
  // 先判断结果集是否有数据,避免空结果报错
  if not FdTmp2.IsEmpty then
  begin
    // 取值语法为 接收变量 := 字段值,和你之前写的赋值方向相反
    TEST := FdTmp2.FieldByName('PATH_FILE').AsString;
  end;
  // 结果集用完后关闭
  FdTmp2.Close;
end;

内容的提问来源于stack exchange,提问作者Marcol1no

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 15:36:08