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

Delphi中如何获取复选框状态并传入SQL插入查询的bit类型参数

正确实现方式

你当前代码的问题是误用了cxCheckbox1.Properties属性,该属性返回的是复选框的样式、行为等配置集合,不是勾选状态值,直接读取cxCheckbox1.Checked属性即可拿到布尔类型的勾选结果:

DataModule7.SP_INSERT.ParamByName('p6').AsBoolean := cxCheckbox1.Checked;

三态复选框适配方案

如果你开启了复选框的三态支持(存在灰色的不确定选中状态),可以额外加状态判断,把不确定态映射为业务需要的布尔值:

var
  ParamValue: Boolean;
begin
  case cxCheckbox1.State of
    cbChecked: ParamValue := True; // 勾选状态对应bit值1
    cbUnchecked: ParamValue := False; // 未勾选对应bit值0
    cbGrayed: ParamValue := False; // 不确定状态可根据业务需求自定义映射值
  end;
  DataModule7.SP_INSERT.ParamByName('p6').AsBoolean := ParamValue;
end;

Delphi的Boolean类型和SQL Server的bit类型是天然兼容的,赋值时不需要额外做类型转换,运行时会自动把True映射为1、False映射为0存入数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:18:00