반응형
top 이미지
date   지난 뉴스레터 보기
hot clip

바쁜 자바 프로그래머를 위한 스칼라 입문: 루프에 당황하지 말자!
hot clip 이미지 스칼라는 JVM에서 함수 언어 고유의 능력을 활용할 수 있게 해 줍니다. 바쁜 자바 프로그래머를 위한 스칼라 입문의 이번 글에서는 if, while, for 같은 제어문을 시작으로 자바와 스칼라 간의 미묘한 차이에 대해 소개합니다. 곧 알게 되겠지만 스칼라 제어문은 자바 제어문과 비교해서 더 유용하기도 하지만 복잡하기도 합니다.

로컬 컨텐츠
2008년 5월 TOP 10 기술자료가 업데이트 되었습니다.
효율적인 XML 교환을 위한 EXI dW Column
"개발, 자유, 창작의 즐거움" dW interview
XML on HTTP, Part3 Open dW
루비 메타프로그래밍, Part 3 Developer CoD
[기획기사] 예제로 배우는 XMLTABLE

SW 다운로드
IBM Lotus Quickr 8.0
Rational AppScan Standard Edition V7.7
Rational Software Analyzer Developer Edition V7.0
WebSphere Extended Deployment Compute Grid V6.1

기술자료 & 튜토리얼
리눅스에서 공유 객체 활용하기
동반자지 경찰이 아니다
Ajax에서 XML 처리하기, Part 2
포크 찌르기, Part 2
플러그인 개발 101, Part 1
소프트웨어 개발자의 권리와 책임
bash 매개변수와 매개변수 확장
Ajax 성능 분석
전사적 아키텍처 101, Part 1
SOA 기반으로 IT와 의료 정보 교환 통합하기
포크 찌르기, Part 1
CDP(Continuous Data Protection) 기술
WebSphere Process Server의 관계(relationships)를 이용해 데이터의 동기화 유지하기튜토리얼
Jazz 튜토리얼튜토리얼

공지사항
코드 트레이닝
프로그래밍은 문제를 주어진 상황과 제한된 자원 안에서 효율적이며 창조적으로 해결하는 행위라 볼 수 있습니다. 코드 트레이닝은 정답이라는 압박에서 벗어나 자신만의 기발한 해법으로 풀 수 있는 문제들을 매달 출제합니다. 이번에는 간단한 시나리오를 명세 작성 과정을 거쳐 프로그래밍하는 방법을 연습해봅니다. 자, 함께 풀어보시죠.
 
Academic Initiative 배너
 
dW 커뮤니티 배너
 
기획기사 배너
 
SOA Sandbox 배너
 
dW 컬럼 배너

뉴스레터 추천하기
반응형
파워빌더 함수 도움말 한글버전입니다..

6.0 버전이라 누락되거나 변경된것도 있을듯 하네요..

이후 버전에 추가된 것들은 없을수도 ^^;

@@페이지 표시가 잘 안되면 파일 선택하고 속성 들어가서 차단해제 하면 잘 보입니다.
반응형

Cursors
Cursors는 sql select문의 결과의 집합에 대한 포인터이다.
이것은 한번에 하나씩 여러 개의 행들을 검색하거나 작업할 수 있도록 한다. 커서는 가상변수로 생각할 수 있으며, 특수한 명령들을 이용하여 그 변수를 사용한다.
. DECLARE - 그 커서의 SELECT 문을 명시한다.
. OPEN - 그 커서의 SELECT 문을 수행한다.
. FETCH - 그 커서의 한 행을 읽는다.
. UPDATE WHERE CURRENT OF cursor - 그 읽어진 행을 수정한다.
. DELETE WHERE CURRENT OF cursor - 그 읽어진 행을 삭제한다.
. CLOSE - 커서 작업을 종료한다.


1.DECLARE
모든 변수를 선언하듯이 커서도 사용하기 전에 반드시 선언하여야 한다. 커서의 선언은 반드시 하나의 SQL SELECT 문을 포함하여야 한다. DELCLARE는 변수선언과 같이 수행문이 아니다. 그러므로 DECLARE는 그 트랜잭션객체의 SqlCode와 SqlErrText와 같은 오류 속성들의 값을 지정하지 않는다.
DECLATE cursor1 CURSOR FOR
SELECT  payment, deposit
FROM    checkbook
ORDER BY checkdate, checkno;

2. OPEN
커서을 선언하고 나면 그 커서를 사용하기전에 반드시 오픈하여야 한다. OPEN은 그 커서의 선언문에서 명시된 SQL SELECT 문을 수행한다. SELECT 문의 수행이 실패할 수도 있으므로 다른 수행가능한 삽입된 SQL 문과 같이 OPEN을 수행한 다음에 SqlCode을 검사하여야 한다.
OPEN cussor1;
IF sqlca.SqlCode <> 0 then.......

3. FETCH
성공적으로 커서을 오픈하면 FETCH는 하나의 행을 변수로 읽어온다. OPEN은 그 커서의 위치를 첫 번째 행의 바로전에 위치시킨다. FETCH는 묵시적으로 그 다음의 행을 읽어온다. 전형적으로 FETCH문을 루프 안에 넣고 "notfound" 오류가 발생할 때까지 반복적으로 수행한다.
DO
   FETCHcusror1 INTO :decpayment, :decdeposit;
   IF sqlca.SqlCode =100 THEN EXIT         //더이상 남은 행이 없다.
   .......
   .......
   .......
LOOP while True

4. UPDTE와 DELETE
한행을 읽어 온 후, 그 커서가 가리키는 그 행을 수정하거나 삭제하기 위해 WHERE CURRENT OF cursor 절과 함께 UPDATE 또는 DELETE를 사용할수 있다.
UPDATE checkbook
   SET balance = :decbalance
WHERE CURRENT OF cursor1;
IF sqlca.SqlCode <> 0 then.......
물론, 단지 행을 읽기만을 원한다면 꼭 UPDATE 또는 DELETE를 사용해야 되는 의무는 없다.

5. CLOSE
커서의 작업이 끝나면 그것을 닫는다, 항상 그커서를 닫을 필요는 없다. COMMIT와 DISCONNECT가 자동적으로 그 커서를 닫아준다.

6. (예제1) : 커서를 사용하여 구조체의 행들을 읽어오기
첫째. 메뉴에서 Declare/Instance Variables를 선택 변수를 선언한다.
메뉴에서 Declare/Instance Variables를 선택하면 인스턴스 변수를 정의할수 있는 다이얼로그가 디스플레이 된다.
이곳에 단지 아래와 같은 선언문을 기술해주면된다.
DECLARE icur_store CURSOR FOR
SELECT storeid, storeaddress, storecity,
       storestate,storezip, salestaxrate
FROM store;
둘째.메뉴에서 Declate/Window Structures를 선택 구조체를 정의한다.
메뉴에서 Declare/Window Structures를 선택하면 구조체를 정의할수 있는 다이얼로그가 디스플레이 된다. 이곳에 구조체의 요소들인 변수명, 변수의 타입, 그리고 타입에 따라 자리수만을 계속해서 정의해주면 된다.
일단, ws_storerow란 이름의 구조체를 정의한것으로 가정하자
셋째. (예제2)스크립트에 커서문을기술한다.
....................................................................
Integer       li_rows      //FETCH된열을 계산할 변수
Ws_storerow   lstr_storerow
OPEN icur_store;
li_row = 0
DO
   FETCH isur_store INTO
   :lstr_storerow.s_storeid, :lstr_storerow.s_address,
   :lstr_storerow.s_city,    :lstr_storerow.s_state,
   :lstr_stoterow.s_zip,     :lstr_storerow.dec_salestaxrate;
   IF sqlca.SqlCode = 100 THEN EXIT      //더 이상의 열은 없다
      li_rows ++                         //하나 이상의 열을읽어 들였다.
      MessageBox ("store row #" +String(li_rows),             &
                  "Store id: -t"+lstr_storerow.s_storeid     +&
                  "-nAddresss: -t"+lstr_storerow.s_address   +&
                  "-nCity: -t-t"+lstr_storerow.s_city        +&
                  "-nState: -t-t"+lstr_storerow.s_ state     +&
                  "-nZip: -t-t"+ lstr_storerow.s_zip         +&
                  "-nSales Tax: -t"+lstr_storerow.s_salesstaxrate +&
LOOP WHILE True
CLOSE icur_store; // 커서을 닫는다.

 - 재스민의 파워빌더 싸부 수연아부지 DevTip에서 -

+ Recent posts