Câch sử dụng schema_names

Một phần của tài liệu LVTN - Xay dung giao dien lap trinh OCI.doc (Trang 78 - 79)

VIII. Tham chiếu OTT

7.Câch sử dụng schema_names

Tham số năy không ảnh hưởng đến tín của kiểu từ giản đồ mặc định mă OTT được nối kết với một tín giản đồ trong file OUTTYPE .

Có 3 giâ trị của tham số năy :

 schema_names=ALWAYS (default)

Tất cả tín kiểu trong file OUTTYPE được gọi lă schema name .  schema_names=IF_NEEDED

Câc tín kiểu trong file OUTTYPE thuộc schema mặc định không được cho lă một schema name . Câc tín kiểu thuộc câc giản đồ khâc được cho lă schema name .

 schema_names=FROM_INTYPE

Một kiểu được đề cập trong file INTYPE được cho lă một scheme name trong file OUTTYPE nếu vă chỉ nếu nó được cho lă một schema name trong file INTYPE . Một kiểu trong schema name mặc định mă không được đề cập trong file INTYPE nhưng nó được tạo ra do sự phụ thuộc kiểu sẽ được ghi với một schema name nếu kiểu đầu tiín (phụ thuộc nó) được bắt gặp bởi OTT được ghi với một schema name .

Tuy nhiín , một kiểu không có trong schema name mặc định mă OTT được nối kết sẽ luôn luôn được ghi với một schema name cụ thể .

File OUTTYPE lă đầu văo cho Pro*C/C++ . File năy so trùng tín kiểu database với tín cấu trúc của C . Thông tin năy được sử dụng văo thời gian chạy để chắc rằng kiểu database được chọn đúng văo cấu trúc . Nếu một kiểu xuất hiện với một schema name trong file OUTYPE thì kiểu đó sẽ được tìm trong giản đồ tín trong suốt quâ trình thực thi của chương trình . Nếu kiểu xuất hiện khôngcó trong schema name thì nó sẽ được tìm trong schema name mặc định mă OTT nối kết đến.

Xĩt ví dụ :

Nếu schema_names=FROM_INTYPE vă file INTYPE : TYPE Person

TYPE David.Dept TYPE eric.company

thì Pro*C/C++ sử dụng câc cấu trúc do OTT tạo sử dụng câc kiểu sam.company , david.Dept , Person . Sử dụng Person không có schema name chỉ đến kiểu Person trong schema mă ứng dụng được nối kết .

Nếu OTT vă ứng dụng cùng nối kết đến schema david thì ứng dụng sẽ sử dụng kiểu giống kiểu OTT sử dụng (david.Person) . Nếu OTT nối kết đến schema david nhưng ứng dụng nối kết với schema jana thì ứng dụng sử dụng kiểu jana.Person . Câch sử dụng năy chỉ thích hợp nếu phât biểu "CREATE TYPE Person" đê được thực thi trong giản đồ david vă jana .

Mặt khâc , ứng dụng sẽ sử dụng kiểu david.Dept bất chấp ứng dụng nối kết đến schema năo . Nếu bạn muốn xử lý theo câch năy thì phải chắc rằng schema name có câc tín kiểu trong file INTYPE .

Trong một số trường hợp , OTT chuyển đổi một kiểu mă user không định rõ . Ví dụ , xem câc khai bâo SQL sau: *****

Bđy giờ OTT nối kết đến schema david , schema_names=FROM_INTYPE vă file INTYPE bao gồm : TYPE Person hoặc TYPE david.Person nhưng không đề cập kiểu david.Address được sử dụng như lă nested object type trong kiểu david.Person .

Nếu "TYPE david.Person" xuất hiện trong INTYPE thì "TYPE david.Person" vă "TYPE david.Address" xuất hiện trong file OUTTYPE . Nếu "TYPE Person" xuất hiện trong file INTYPE thì "TYPE Person" vă "TYPE Address" xuất hiện trong file OUTTYPE .

Nếu kiểu david.address được thím văo trong một số kiểu được chuyển đổi bởi OTT , nhưng không được đề cập cụ thể trong file INTYPE , việc giải quyết sử dụng hay không một schema name trong lần đầu tiín OTT gặp david.Address . Nếu user muốn có kiểu david.Address nhưng không muốn Person thì phải định rõ trong file INTYPE TYPE david.Address

Một phần của tài liệu LVTN - Xay dung giao dien lap trinh OCI.doc (Trang 78 - 79)