1 (edited by mitrich45 2015-04-07 08:56:49)

Topic: Сравнение на совпадение вводимых данных в 2х таблицах

День добрый! Есть 2 таблицы: applications c полем clientname и bl_list_klient с полем name.
Не подскажете как реализовать - чтобы вводимые данные в поле clientname проверялись на совпадение в черном списке в поле name и в случае совпадения срабатывал скрипт Cancel := True; с сообщением "данный клиент в черном списке"

2 (edited by mitrich45 2015-04-07 10:28:38)

Re: Сравнение на совпадение вводимых данных в 2х таблицах

Нашел подобный пример,  но не то)

function CheckDublicate (Action, sTable, sField, sValue: string; id: integer;): boolean;
var
   s: string;
begin
     result := False;
     if Action = 'NewRecord' then
     begin
          s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE '+sField+' LIKE "' + sValue + '"');
          if StrToInt(s) > 0 then result := True;
     end;

     if Action = 'ShowRecord' then
     begin
          s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE ('+sField+' LIKE "' + sValue + '") AND (id <> '+ IntToStr(id) +')');
          if StrToInt(s) > 0 then result := True;
     end;
end;

procedure frmApplication_Button4_OnClick (Sender: string; var Cancel: boolean);
begin
    if frmApplication.Date.Checked = False then
    begin
       ShowMessage('Дата приема - обязательное поле!.'); 
       Cancel := True; 
    end;

begin
    if CheckDublicate(frmApplication.dbAction, 'application', 'clientname', frmApplication.edClient.Text, bl_list_device.Button1.dbGeneralTableId)
         then
     begin
          ShowMessage('Person already exists.');
          Cancel := True;

 end;
  end;
  end;

Re: Сравнение на совпадение вводимых данных в 2х таблицах

этот пример должен подойти, с небольшими изменениями

function CheckDublicate (sTable, sField, sValue: string): boolean;
var
   s: string;
begin
     result := False;

     s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE '+sField+' LIKE "' + sValue + '"');
     if StrToInt(s) > 0 then result := True;
end;

procedure frmApplication_Button4_OnClick (Sender: string; var Cancel: boolean);
begin
    if CheckDublicate('bl_list_klient', 'name', frmApplication.edClient.Text) then
     begin
          ShowMessage('Данный клиент в черном списке.');
          Cancel := True;
     end;
end;
Dmitry.

4 (edited by mitrich45 2015-04-07 13:26:54)

Re: Сравнение на совпадение вводимых данных в 2х таблицах

Спасибо Дмитрий сейчас попробую

Re: Сравнение на совпадение вводимых данных в 2х таблицах

Спааасибо Работаеееет!