adoTable有问题

Ale*_*ith 4 delphi delphi-7

我希望能够确保如果一个表(在这种情况下adotHours)进入编辑或插入模式,并且用户单击保存按钮但意外地在Hours列下已经输入了相同的值,则会显示一条消息Please enter another value,否则如果用户输入不同的值,使用另一段代码.

我尝试了以下方法,但它不起作用, - 无论用户输入什么消息Please enter another value出现.

procedure TfrmLabour.Button6Click(Sender: TObject);
var 
  i,j, t: String;
begin
  Edit1.Text := adotHours['Hours'];
  j :=  Edit1.Text;
  adotHours.Post;
  Edit2.Text := adotHours['Hours'];
  t := Edit2.Text;
  if t = j then 
    showmessage ('Please enter another value')
  else begin.....
end;
Run Code Online (Sandbox Code Playgroud)

虽然我知道它可能不是最优雅的代码,但我的想法是,一旦adotHours Hours通过连接发布了值DBgrid,如果它与之前的值不同t将成为新值,因此adotHours['Hours']会有所不同并允许else begin.建议?

RRU*_*RUZ 7

尝试检查OldValue属性的输入值.

adotHours.FieldByName('Hours').OldValue
Run Code Online (Sandbox Code Playgroud)

  • 并检查beforepost事件中的OldValue,比OP更容易和更少的代码与所有额外的任务等... (2认同)