[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: jak wyciągnąć info z 2 tabel?



Można to zrobić nastepująco:
---------------------------------------------------------------------
DEF QUERY q FOR Item,SysText.
OPEN QUERY q FOR EACH Item NO-LOCK,
             FIRST SysText OUTER-JOIN
                   WHERE SysText.TableName  = 'Item'       AND
                         SysText.SysTextKey = Item.ItemKey NO-LOCK.
GET FIRST q.
REPEAT WHILE NOT QUERY-OFF-END('q'):
  /* Tutaj dostepny jest zapis Item */
  IF AVAIL(SysText) THEN /* Tutaj dostepny jest zapis SysText */.
  GET NEXT q.
END /* WHILE */.
CLOSE QUERY q.
--------------------------------------------------------------------
Oczywiści będzie to sprawnie działać, jeśli tablica SysText ma ineks, którego klucz składa się z pól:
  1) SysText.TableName
  2) SysText.SysTextKey
Bez takiego indeksu i dużej ilości zapisów tablicy 'Item' moze to działać długo.

Gdyby była relacja nie 1:0/1 ale 1:N, to nalży zastapić:
  FIRST SysText --> EACH SysText

                   
Henryk Jusza               mailto:henju@pg.gda.pl
-------------------------------------------------
Ośrodek Informatyczny Politechniki Gdańskiej
Pracownia Rozwoju Oprogramowania
tel (058) 347-28-01          fax (058) 347-24-63