Oracle8をORDBMSとして使う場合、たとえば次のようにテーブルを定義することが可能です。
create type tadre as object ( name varchar2(40), adre varchar2(200), tel varchar2(12) ); create type ttadre as varray(3) of tadre; create table test ( item1 char(10), item2 char(10), adre ttadre ); insert into test values ('a001', 'b002', ttadre( tadre(1, '山田太郎', '東京都目黒区大岡山1-1-1', '03-3333-3333'), tadre(2, '佐藤花子', '東京都世田谷区深澤1-1-1', '03-4444-4444'), ) );
上記の例で、SELECT adre from test where item1 =
a001で取得したadreフィールドは、オブジェクト型になりますが、
DOAを使って以下のようにこのオブジェクトから各プロパティ(name, adre, tel)
にアクセスすることが可能です。(DOA Object Versionのみ。詳しくは
TOracleObject,
TOracleReferenceのヘルプを参照してください)
//OracleQuery.SQL = SELECT adre from test where item1 = :item1 with OracleQuery do begin SetVariable('item1', Item1); Open; Adr := OracleQuery.ObjField('adre'); if not Adr.IsNull then showmessage(Query.Field('item1').AsString + ' ' + Adr.GetAttr('name')); end;