database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
ㆍCUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
CUBRID Q&A 586 게시물 읽기
No. 586
Q.인스턴스 메소드 호출하기
작성자
InoS
작성일
2007-10-01 15:58
조회수
3,252

안녕하세요.

 

질문이 있습니다.

 

큐브리드 7.0 사용자 메뉴얼 > 2권 -> 4장 메소드 -> 인스턴스 메소드 예제

 

를 보고 있습니다.

 

메뉴얼에 나온 compute_area() 함수를 컴파일 하여 so 파일로 만든 뒤에,

메뉴얼 대로 다음과 같이 클래스와 메소드를 등록하였습니다.

 

CREATE CLASS rectangle(height int, width int)

  METHOD area() int

    FUNCTION compute_area

FILE \'/usr/bin/rectangle.o\', \'$CUBRID/lib/l

sqlx.a\'

 

메소드 컴파일도 정상적으로 완료 했고, 등록도 잘 되었거든요.

 

그런데, 호출하는 방법을 잘 모르겠습니다.

 

rectangle 테이블과 area 메소드가 있을 때, area 메소드를 호출하는 방법을 알고 싶습니다.

 

메뉴얼을 보면

 

##################################

메소드는 CALL 또는 EVALUATE 문의 사용에 의해서 SQL/X 프로세서 세션 동안 수행된다.

메소드의 결과는 질의의 결과가 반환되는 것과 같은 방법으로 반환된다. 이러한 구문은 질의로부터 메소드를 호출할 때도 사용된다.(CALL 또는 EVALUATE 키워드는 생략된다.)

##################################

 

이 말로 보면 CALL 혹은 EVALUATE로 메소드를 호출할 수도 있고, \'질의로 부터 메소드를 호출\'할 수도 있는 듯 한데요. \'질의로 부터 메소드를 호출\'한다는게 SELECT 절에서 메소드를 호출할 수 있다는 것인지요.

 

인스턴스 메소드를 CALL/EVALUATE/\'질의로 부터 메소드 호출\' 하는 방법을 각각 알고 싶습니다.

 

메뉴얼을 제대로 이해 못 해 죄송합니다.

이 글에 대한 댓글이 총 1건 있습니다.

안녕하세요.

메소드는 일반 함수처럼 사용하시면 됩니다. 다만 첫번째 아규먼트로 해당 클래스 이름을 넣어주시면 됩니다.

1. select area(rectangle) from rectangle where ...

2. call 문 사용시에는 아규먼트로 사용되는 class 에 대한 oid 를 얻어야 하므로

    select rectangle into :oid from rectangle where ...

    call area() on :oid

3. evaluate() on :oid

와 같이 사용할 수 있읍니다. 보통 1번의 방법으로 많이 사용하고 있읍니다.

 

>안녕하세요.

>

>질문이 있습니다.

>

>큐브리드 7.0 사용자 메뉴얼 > 2권 -> 4장 메소드 -> 인스턴스 메소드 예제

>

>를 보고 있습니다.

>

>메뉴얼에 나온 compute_area() 함수를 컴파일 하여 so 파일로 만든 뒤에,

>메뉴얼 대로 다음과 같이 클래스와 메소드를 등록하였습니다.

>

>CREATE CLASS rectangle(height int, width int)

>  METHOD area() int

>    FUNCTION compute_area

> FILE \'/usr/bin/rectangle.o\', \'$CUBRID/lib/l

>sqlx.a\'

>

>메소드 컴파일도 정상적으로 완료 했고, 등록도 잘 되었거든요.

>

>그런데, 호출하는 방법을 잘 모르겠습니다.

>

>rectangle 테이블과 area 메소드가 있을 때, area 메소드를 호출하는 방법을 알고 싶습니다.

>

>메뉴얼을 보면

>

>#################################################################################

>메소드는 CALL 또는 EVALUATE 문의 사용에 의해서 SQL/X 프로세서 세션 동안 수행된다.

>메소드의 결과는 질의의 결과가 반환되는 것과 같은 방법으로 반환된다. 이러한 구문은 질의로부터 메소드를 호출할 때도 사용된다.(CALL 또는 EVALUATE 키워드는 생략된다.)

>#################################################################################

>

>이 말로 보면 CALL 혹은 EVALUATE로 메소드를 호출할 수도 있고, \'질의로 부터 메소드를 호출\'할 수도 있는 듯 한데요. \'질의로 부터 메소드를 호출\'한다는게 SELECT 절에서 메소드를 호출할 수 있다는 것인지요.

>

>인스턴스 메소드를 CALL/EVALUATE/\'질의로 부터 메소드 호출\' 하는 방법을 각각 알고 싶습니다.

>

>메뉴얼을 제대로 이해 못 해 죄송합니다.

 

남재우님이 2007-10-01 17:43에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
589Q.commdb.exe 에러가 지속적으로 발생합니다. [2]
오동환
2007-10-04
2883
588Q.윈도우버젼에서의 메소드 지원 여부 [1]
나그네
2007-10-03
3223
587Q.INSERT 문장에서 MySQL에서의 SET은 지원안하나요? [1]
곽성현
2007-10-02
3174
586Q.인스턴스 메소드 호출하기 [1]
InoS
2007-10-01
3252
585Q.DB 파일 사이즈 [2]
김주희
2007-10-01
3274
584Q.트랜잭션 설정 [1]
김주희
2007-10-01
3231
583Q.OID 사용 [1]
김선우
2007-10-01
3288
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다