1 (edited by legolas-novo 2018-08-28 10:01:20)

Topic: Не получается сделать поиск дубликата

В моем многострадальном проекте не могу сделать поиск дубликата, вроде бы делаю все по прилагаемым примерам и все равно не получается. Не могли бы Вы Дмитрий одним глазком глянуть, где моя ошибка? Если у многоуважаемых форумчан есть возможность помочь советом, буду крайне рад!

Post's attachments

Attachment icon Склад_fixed.7z 299.57 kb, 302 downloads since 2018-08-28 

Re: Не получается сделать поиск дубликата

На форме sotrFrm для кнопки "Добавить", не создано событие OnClick, тоже самое на форме Form1


Скорей всего вы написали событие вручную, это неправильно, его необходимо создать через свойство компонента, вкладка "События", кликнув два раза напротив необходимого события, в вашем случае OnClick

Dmitry.

Re: Не получается сделать поиск дубликата

Спасибо большое, действительно невнимательность. Но с комбобоксами пока до сих пор не получается сделать проверку на главной форме.

Re: Не получается сделать поиск дубликата

Дмитрий ну гляньте пожалуйста верно ли я в скрипте указал эту строку
  if CheckDublicate(Form1.dbAction, 'Poisk', 'id_boolean', Inttostr(Form1.bool.dbItemID), Form1.Button1.dbGeneralTableId)
для проверки на дубликат комбобокса? Все остальное проверяет на ура а тут загвоздка.

Re: Не получается сделать поиск дубликата

Пожалуйста прикладывайте проект с данной строкой и с описанием, что конкретно проверяется на дубликат.

Dmitry.

6 (edited by legolas-novo 2018-08-30 12:32:32)

Re: Не получается сделать поиск дубликата

Проект приложил, на дубликат проверяется 2 значения одновременно, вводимые из комбобоксов на главной форме - техника (combobox2) и состояние (bool). Вроде бы скрипт составлен правильно на мой дилетантский взгляд но почему то не работает. Спасибо!

Post's attachments

Attachment icon Склад_fixed v.1_6.7z 299.77 kb, 301 downloads since 2018-08-30 

Re: Не получается сделать поиск дубликата

Так как у вас несовсем стандартный случай, то сделайте так

// Поиск дубликата на главной форме в комбобоксах
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     if CheckDublicate('NewRecord', 'Poisk', 'id_boolean', Inttostr(Form1.bool.dbItemID), Form1.Button1.dbGeneralTableId) AND
        CheckDublicate('NewRecord', 'Poisk', 'id_teach', Inttostr(Form1.ComboBox2.dbItemID), Form1.Button1.dbGeneralTableId)
     then
     begin
          ShowMessage('Дубликат найден!');
          Cancel := True;
     end;
end;

как правило новая запись создается на отдельной форме, в вашем случае новая запись всегда создается на той же форме, которая используется и для поиска записей, поэтому необходимо вручную указать для функции CheckDublicate, что проверка дубликата происходит при создании записи, для этого в первом параметре необходимо написать 'NewRecord'

Dmitry.

Re: Не получается сделать поиск дубликата

Дмитрий Вы как всегда на высоте! Спасибо огромное!