2014-10-11 6 views
1

두 세트가 있습니다 AB, BA 세트에 따라 다릅니다. 복합 키 b_ida_id (외래 키)와 A_Table 기본 키 a_id 및 테이블 B_Table와 - 내 데이터베이스에서데이터베이스 테이블에서 세트 읽기

set A; 
set B{A}; 

나는 두 개의 테이블이있다. 나는이 스크립트를 사용하여 B 설정 B_Table 테이블에서 데이터를 읽으려고 :

table B_Table IN "ODBC" (ConnectionStr) "B_Table": 
    [b ~ b_id, a ~ a_id], B[a] ~ b; 

그러나이 스크립트가 작동하지 않습니다. 그것은 씁니다.

syntax error 
context: [b ~ b_id, a ~ a_id], >>> B[ <<< a] ~ b; 

2 키가 1 차원 집합의 테이블에서 데이터를 읽으려면 어떻게해야합니까?

답변

1
난 당신이 하나의 테이블 선언을 사용하여 인덱스 세트에 직접 데이터를 읽을 수 있지만 도우미 두 차원 집합을 사용할 수 있다고 생각하지 않습니다

:

set AB dimen 2; 
table B_Table IN "ODBC" (ConnectionStr) "B_Table": 
    AB <- [a_id, b_id]; 
read table B_Table; 
let{a in A} B[a] := setof{(a, b) in AB} b; 

또 다른 옵션은 테이블을하는 것입니다 선언은 A 이상 색인 및 a in A에 대한 데이터를 선택하는 SQL 문을 사용하여 : 그런

table B_Table{a in A} IN "ODBC" (ConnectionStr) 
    ("SQL=SELECT b_id FROM B_Table WHERE a_id = " & a & ";"): 
    B[a] <- [b_id]; 

또는 무언가를.

+1

감사합니다. 두 가지 옵션을 모두 시도했지만 잘 작동합니다. – ekarus303