procedure TFrmNewRole.btnCreateClick(Sender: TObject);
var
  mm:String;
begin
    with adodsNewRole do
    begin
      Connection:= adocNewRole;
      CommandType:=cmdText;
      mm:= edtRoleName.Text;
      CommandText:='insert into RoleTable (RoleName,SysMng,TopoMng,HighMng,TelMng,EquipMng,AlarmMng) values("'+mm+'",ckbSysMng.Checked,ckbTopo.Checked,ckbHighMng.Checked,ckbTelMng.Checked,ckbEquipMng.Checked,ckbAlarmQuery.Checked)';
      Open;
      MessageDlg('创建角色成功',mtWarning,[mbOk],0);
    end;
end;

解决方案 »

  1.   

    ckbSysMng.Checked,ckbTopo.Checked,ckbHighMng.Checked,ckbTelMng.Checked,ckbEquipMng.Checked,ckbAlarmQuery.Checked
    估计上面这些都是Form上的控件的状态吧, 要把它们转换为字串放到SQL语句里去.如:'...字串' + BoolToStr(ckbSysMng.Checked) + ',' + BoolToStr(ckbTopo.Checked) + '.....'
      

  2.   

    并不一定要用BoolToStr(),要看你字段的类型了.
      

  3.   

    呵呵 整个写法就是一个错误,checked不可能是字符型吧,你直接写在引号之间算什么呢?不明白! 在SQL语句中使用我个人喜欢参数来update和insert 好处是,安全,避免数据库保留字有冲突的字符。2、可以类型明确!