Procedura-GetSourceGroupIdenticals

Parametry:

NázevPopisDatový typ
ASourceGroup_IDChar(10)

Návratové hodnoty:

NázevPopisDatový typ
IDChar(10)

Tělo:

BEGIN
  delete from SourceGroupIdenticalsSearch where SourceGroup_ID = :ASourceGroup_ID;
  mForSearch = ASourceGroup_ID;
  while (mForSearch <> '') do begin
    mToken = ib_get_token(mForSearch, ';');
    mForSearch = ib_delete_token(mForSearch, ';');
    select count(*) from SourceGroupIdenticalsSearch
    where SourceGroup_ID = :ASourceGroup_ID and ID = :mToken into mCount;
    if (mCount = 0) then begin
      insert into SourceGroupIdenticalsSearch (SourceGroup_ID, ID)
      values (:ASourceGroup_ID, :mToken);
      for SELECT
        Source_ID, Target_ID FROM SourceGroupIdenticals
      where
        Source_ID = :mToken or Target_ID = :mToken
      INTO
        mSource, mTarget
      DO begin
        if (mSource = :mToken) then
          mToken2= mTarget;
        else
          mToken2 = mSource;
        /* Ted mam v mToken tu druhou stranu */
        select count(*) from SourceGroupIdenticalsSearch
        where SourceGroup_ID = :ASourceGroup_ID and ID = :mToken2 into mCount;
        if ((mCount = 0) and (ib_find_token(mForSearch, mToken2) = 0)) then begin
          /* Pokud jsem ho jeste neznal tak ho pridam */
          if (mForSearch <> '') then
            mForSearch = mForSearch || ';';
          mForSearch = mForSearch || mToken2;
        end
      end
    end
  end
  /* to co se naslo vratim */
  for select ID
      from SourceGroupIdenticalsSearch
      where SourceGroup_ID = :ASourceGroup_ID
  into ID
  do
    suspend;
END

Generated by ABRA Software a.s. 27.10.2021 16:34:15