if Flag = 1 then
  begin
     if share.userId =  Trim(ComboBox1.Text)  then
     begin     Sql := 'Insert into ZHAOWEI.BZGZ(NN,workdate,banzu,workdata,people,manincharge) values(''' + (Form1.Query1.FieldByName('bh').AsString) + ''','''+  DateToStr(Self.DateTimePicker1.Date) +  ''',''' + Trim(ComboBox1.Text) + ''',''' + Trim(Memo1.Text) + ''',''' + Trim(Memo2.Text) + ''',''' + Trim(Edit1.Text) + ''')' ;
    // else
     //  Application.MessageBox('班组选择错误','提醒',mb_ok);
     end
     end;

解决方案 »

  1.   

    Sql是什么?是你自己声明的字串变量?如果不是,而是一个Query组件的SQL,那要SQL.text := ....或SQL.Lines.add(...);上面那六个字段,都是文本类型的?如果有Date或DateTime类型的,赋值要有一定格式的。以ACCESS数据库为例:'insert into 表 (日期时间字段) values (CDate(' + QuoTedStr('字串') + '))' 或
    'insert into 表 (日期字段) values (' + QuoTedStr('#'+'字串'+'#') + ')'
      

  2.   

    sql是我自己申明的变量  SQL 那句语句应该没有错 主要是我加了if share.userId =  Trim(ComboBox1.Text)  then
    后出现了问题  在运行时跳出来来个SQL ERROR
      

  3.   

    说是PREPARE或EXECTE IMMEDIATE语句的语句字符串为空白或空.
      

  4.   

    我建议你使用参数吧,paramter 这样是什么类型匹配什么类型,不会混淆。而且代码看起来也容易懂!