问题1:自动编号
      在添加职工时,职工号自动按顺序添加,代码如下:
           
      var i:integer;
        
      adotable1.open;
      adotable1.last;
      i:=strtoint(adotable1.fields[0].asstring)+1;
 
   运行就会出现"'1005'is not a valiot value"(职工号字符类型尾char,最后一个职工记录为1005),请问为何???问题2:日期保存
adotable1.fieldsbyname('出生日期').asstring:=datetimepicker1.date;
运行就出问题,'出生日期'连时间都保存进数据库里了,'出生日期'的类型为datetime,为何?换成
adotable1.fieldsbyname('出生日期').asstring:=datetimepicker1.datetime;
也不行,请教如何解决,谢谢!

解决方案 »

  1.   

    1、试试这样:
     i:= AdoTable1.FieldByName('id').AsInteger + 1;2、adoTable1.FieldByName('出生日期').AsString := FormatDateTime('yyyy-MM-dd',datetimepicker1.date);
      

  2.   

    或者试试这样:
    1. i:= StrToInt64(AdoTable1.fields[0].asstring) + 1;
    2. adotable1.fieldsbyname('出生日期').asstring:=DateToStr(datetimepicker1.date);
    or DateTimeToStr(datetimepicker1.datetime);
      

  3.   

    或者试试这个;
    adotable1.fieldsbyname('出生日期').asdate:=datetimepicker1.datetime;
      

  4.   

    1.出错原因可能是数据库记录中可能包含空格,改成这样试试:
             i:=strtoint(trim(adotable1.fields[0].asstring))+1;
    2.同上
      

  5.   

    i:=strtoint(Trim(adotable1.fields[0].asstring))+1;
    adotable1.fieldsbyname('出生日期').asdate:=datetimepicker1.datetime;