birthday:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
DataModule27.ClientDataSet1.close;
DataModule27.ClientDataSet1.CommandText:='insert into BasicInfo (Name,Gender,Birthday) values     ('''+Edit1.text+''','''+ComboBox1.Text+''','''+birthday+''')';DataModule27.ClientDataSet1.Execute;就会出现下面的错误提示,是为什么呢?
type mismatch expression

解决方案 »

  1.   

    birthday:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
    换成
    birthday:=FormatDateTime('yyyy/MM/dd',DateTimePicker1.Date);
    试试
      

  2.   

    还是不行呀.我用的是DELPHI自带的那个数据库,大家帮个忙呀?
    我急呀
      

  3.   

    '''+datetimetostr(datetimepicker2.Date)+'''
      

  4.   

    还是不行呀,照样出现TYPE MISMATCH EXPRESSION
      

  5.   

    跟踪下看birthday取出来是什么.是不是标准的日期类型
      

  6.   

    ,'+birthday+')';   这样试试
      

  7.   

    可能不是日期的事,会不会是Edit1.text的原因,你可以这样
     a:=trim(edit1.text); 然后再:
    values     ('''+a+''','''+ComboBox1.Text+''','''+birthday+''')';
    试试.
      

  8.   

    1. 确定是 Birthday 字段出错
    2. 可以告诉大家你的 Birthday 是什么类型吗?DateTimeToStr() 使用系统默认的短日期长时间格式
      

  9.   

    跟踪一下,在Execute之前,CommandText的内容是什么
      

  10.   

    如果是D自带的数据库,那就是paradox,它的日期格式(插入时)缺省为:
    'mm/dd/yyyy'而不能用'yyyy-mm-dd',请特别注意日期分隔符一定要为'/'
      

  11.   

    不要加单引号,日期性的,转换成字符串之后,SQL语句中就不需要‘’号了
      

  12.   

    SQL中需要吧!~应该是DELPHI需要的格式!~
      

  13.   

    DataModule27.ClientDataSet1.CommandText:='insert into BasicInfo (Name,Gender,Birthday) values (:N, :G, :B)';
      

  14.   

    sql Server中: Sql := Sql + 'birthday = ' + #39 + DateTimeToStr(value) + #39;
    Access中 Sql := Sql + 'birthday = ' + # + DateTimeToStr(value) + #;