delphi+sql 
表中有两个字段 id(char)   time(datetime)
窗体中有两个edit 一个button
我的代码如下
Adoquery1.insert;
Adoquery1.Fields[0].asstring:=Edit2.text;
adoquery1.Fields[1].Asdatetime:=strtodatetime(Edit1.Text);
adoquery1.post;
运行后也通过,可为什么当edit内容为空时就出错?怎么改才行?

解决方案 »

  1.   

    加个if不就行了
    if trim(edit2.text)='' then
      edit2.text:=' ';
      

  2.   

    edit2为空时,转换时间当然会出错, 你用一个try..except..控制,
      

  3.   

    你的id字段是不是设成不可以为空值了
    if trim(edit2.text)='' then
     Adoquery1.Fields[0].asstring:='-'
    else
     Adoquery1.Fields[0].asstring:=Edit2.text;
    ........
      

  4.   

    两个都不能为空呀,一个是表中的关键字,另一个要实现字符到日期的转换。
    你可以加一行代码,当输入者没输入数字时,谈出一个提示框,重新输入!
    if edit1.text:=''or edit2:=''then showmessage();
      

  5.   

    我一般是这样处理的,输入为空即为查询全部:在查询代码前写入
    if edit2.text = '' then
      edit2.text:='%';注意,查询时用like匹配。