Sql := 'update ZW.BZ set workdate = ''' + DateToStr(Self.DateTimePicker1.Date) + ''', BANZU = ''' + Trim(ComboBox1.Text) + ''', car = ''' + Trim(Edit1.Text) +  ''' where  banzu = ' + (Query1.FieldByName('banzu').AsString);这句语句通不过 我不知道哪里是不是错了 手头又没有书 谢谢大家 帮个忙

解决方案 »

  1.   

    Sql := 'update ZW.BZ set workdate = ''' + DateToStr(Self.DateTimePicker1.Date) + '''+', BANZU = ''' + Trim(ComboBox1.Text) + '''+', car = ''' + Trim(Edit1.Text) +  ''' where  banzu = ' + (Query1.FieldByName('banzu').AsString);
    ----------------------------------------------------------------------这样写有点乱;
    sql := format('update zw.bz set workdate = ''%s'', Banzu = ''%s'', car = ''%s'' where banzu = ''%s''  ',[DateToStr(Self.DateTimePicker1.Date),Trim(ComboBox1.Text),Trim(Edit1.Text),Query1.FieldByName('banzu').AsString]);
      

  2.   

    如果非要按照你的写法:或者应该是这样写:
    Sql := 'update ZW.BZ set workdate = ''' + DateToStr(Self.DateTimePicker1.Date) + ''', BANZU = ''' + Trim(ComboBox1.Text) + ''', car = ''' + Trim(Edit1.Text) +  ''' where  banzu = ''' + (Query1.FieldByName('banzu').AsString)+''';
      

  3.   

    不能通过的原因,你可以在执行SQL语句的时候查看一下这个语句. 看看是否正确,我想问题主要出现在类型的匹配上, 可能类型不对
    建议使用参数
    例如:
    Sql := 'update ZW.BZ set workdate =:workdate , BANZU = :BANZU, car = :Car where  banzu = :banzu2'
    //cmd表示数据集执行组件
    //如果字段workdate是日期型字段的话 
    cmd.Parameters.ParamByName('workdate ').Value:=DateTimePicker1.Date;
    其它的类似
      

  4.   

    现在可以通过了 但是总是跳出banzu的那个数据项出现SQL0602N  在使用它的上下文中无效 这个会是什么问题啊??