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

Form无法识别DataModule中TSqlQuery组件的问题如何解决

解决方案

操作步骤如下:

前置检查

  • 已经在Form1对应的单元顶部uses区段引入了DataModule的对应单元
  • 工程设置里DataModule的创建顺序早于Form1(自动创建模式下)

具体修改方法

1. 调用组件时增加DataModule实例前缀

你把SQLQuery1移动到DataModule之后,该组件不再属于Form1的成员,直接调用会触发未定义错误,需要在组件前加上DataModule的全局实例名。

假设你的DataModule类名为TDataModule1,默认全局实例名为DataModule1,代码修改示例如下:

procedure TForm1.Button1Click(Sender: TObject);
begin
  DataModule1.SQLQuery1.Close;
  DataModule1.SQLQuery1.SQL.Clear;
  DataModule1.SQLQuery1.sql.add('select * from help');
  // 注意:查询类SQL要返回数据集请使用Open方法,ExecSQL仅适用于增删改无返回的SQL
  DataModule1.SQLQuery1.Open; 
end;

如果你的DataModule实例名有自定义修改,直接替换代码中的DataModule1为你的实际实例名即可

2. (可选)重新绑定可视化数据控件

如果Form上有DBGrid、DataSource这类数据感知控件,需要把控件的DataSet属性重新绑定到DataModule内的对应SQLQuery组件,避免绑定到已经被删除的旧Form组件。

3. 确认初始化顺序

打开工程设置的Forms分类,确认自动创建列表中DataModule的排序在Form1之前,保证程序启动时先完成DataModule的初始化,避免调用时出现空指针错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:45:07