SQL数据库数据修改部分,在调用ADOQuery组件查找数据时,不知是调用函数还是参数问题始终不成功。
思路是在查找符合条件的记录,有则进行修改,没有则追加一条新纪录。
程序段如下:
问题在有下划线部分。procedure TForm2.Button1Click(Sender: TObject);
begin
  Box2.Caption:='请输入或修改当日'+button1.caption+'数据';
  Button2.Enabled:=False;
  Button3.Enabled:=False;
  Button4.Enabled:=False;
  Button5.Enabled:=False;
  Button6.Enabled:=False;
  Button7.Enabled:=False;
  Button8.Enabled:=False;
  Button9.Enabled:=False;
  Button10.Enabled:=False;
  Button11.Enabled:=False;
  Button12.Enabled:=False;
  Button13.Enabled:=True;
  Button14.Enabled:=True;
  begin
    with ADOQuery1 do
    begin
      close;
      SQL.Clear;
      SQL.Add('select * from srk where 站名 LIKE '+Quotedstr('%'+button1.caption+'%'));
      open;
    end;
    if ADOQuery1.RecordCount>0 then
      begin
        //ADOQuery1.FieldByName('日期').Value:=FormatDatetime('yyyymmdd',now());
        ADOQuery1.FieldByName('日期').AsString:=FormatDatetime('yyyymmdd',now());
      end
    else
    begin
      ADOQuery1.Append;
      DBEdit1.Text:=FormatDatetime('yyyymmdd',now());
      DBEdit2.Text:=button1.caption;
    end;
  end;
end;

解决方案 »

  1.   

    ADOQuery1.Edit;
    ADOQuery1.FieldByName('日期').AsString:=FormatDatetime('yyyymmdd',now()); 
    ADOQuery1.Post;
      

  2.   

        if ADOQuery1.RecordCount>0 then
          begin
            ADOQuery1.edit;
            ADOQuery1.FieldByName('日期').AsString:=FormatDatetime('yyyymmdd',now());
            ADOQuery1.post;
          end
        else
        begin
          ADOQuery1.Append;
          ADOQuery1.FieldByName('日期').AsString:=FormatDatetime('yyyymmdd',now());
          ADOQuery1.FieldByName('...').AsString:=button1.caption;
          ADOQuery1.post;
        end; 
      

  3.   

        if ADOQuery1.RecordCount>0 then
          begin
            //ADOQuery1.FieldByName('日期').Value:=FormatDatetime('yyyymmdd',now());
            ADOQuery1.Edit;
            ADOQuery1.FieldByName('日期').AsDateTime:=now;
            ADOQuery1.Post;
          end
        else
        begin
          ADOQuery1.Append;
          ADOQuery1.FieldByName('日期').AsDateTime:=now;
          ADOQuery1.FieldByName('YourField').AsString:=button1.caption;
          ADOQuery1.Post;
        end;