Возникли проблемы с adoTable - PullRequest
4 голосов
/ 28 марта 2012

я хотел бы быть в состоянии убедиться, что если таблица (в данном случае 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;

хотя я знаю, что это может быть не самый элегантный код, я подумал, что после того, как значение было отправлено в adotHours Hours через подключенный DBgrid, если оно отличалось от значения до t станет новым значением и, следовательно, adotHours['Hours'] будет другим и позволит else begin. Предложения?

Ответы [ 3 ]

7 голосов
/ 28 марта 2012

Попробуйте проверить введенное значение по свойству OldValue.

adotHours.FieldByName('Hours').OldValue
2 голосов
/ 28 марта 2012

adotHours.FieldByName('Hours').NewValue будет Unassigned, если значение поля не изменено. В этом случае OldValue будет содержать (неизмененное) значение.

0 голосов
/ 04 апреля 2012

Вы можете использовать что-то вроде этого:

if adotHours.FieldByName('ItemName').OldValue = 
  adotHours.FieldByName('ItemName').Value then
  Showmessage(Please enter another value');

Но, как по мне, было бы лучше поместить этот код в событие adotHours.BeforePost и вызвать процедуру abort, если значения одинаковы - в другом случае, когда пользователь изменяет значение и нажимает на другую строку в сетке - это вызывает публикацию в наборе данных, и вы можете пропустить щелчок кнопкой мыши.

...