* Powerbuilder 10.5


17세기 후반, 라이프니츠가 창안한 이진법은 오늘날 반도체 소자에 적용되어 널리 사용되고 있습니다.
0 과 1로 모든 데이터를 표현할 수 있게 된 것이죠.
 
단순한 정수를 표현하는 것은 큰 문제가 되지 않습니다.
하나의 bit 는 두 가지 수를 표현할 수 있구요. 
1byte(8bit)는 2^8 = 256 개 만큼의 수를 표현할 수 있습니다.
n bit 는 2^n 만큼의 수를 표현할 수가 있죠.

2*2*2*2*2*2*2*2 = 2^8

그러나

실수형은 소수점을 표현해야 하기 때문에 일정한 규칙이 필요합니다.

또,

한 개의 문자는 일단 ASCII 인코딩 방식으로 표현합니다. 다국어는 유니코드 인코딩 방식으로 표현하구요.
파워빌더 8 부터 유니코드를 지원하죠. 문제는 문자들의 집합인 문자열입니다. 문자열을 표현할 수 있는 데이터 타입이 필요합니다.

이러한 이유로 프로그래밍 언어에서는 자료형(Datatype)을 정의해서 사용하고 있습니다. 자료형의 명칭과 크기는 언어마다 조금씩 차이가 있지만 대동소이 합니다. 여기서는 파워빌더의 자료형에 대해서 알아보겠습니다.


표준 자료형은 가장 많이 사용되므로 유심히 보는게 좋고 다른 자료형은 대략 이해하고 넘어가세요.
실습할 때나 실무에서 사용해야 할 경우 찾아서 보고 익히는 것이 더 효과적입니다.


1. 표준 자료형 (Standard datatypes)

1) 정수형

Byte
  8-bit(1byte) 부호 없는 정수, 숫자표현범위 : 0 ~ 255

Integer or Int
  16-bit(2byte) 부호 있는 정수, 숫자표현범위 : -32,768 ~ 32,767

UnsignedInteger or UnsignedInt or UInt
  16-bit(2byte) 부호 없는 정수, 숫자표현범위 : 0 ~ 65,535

Long
  32-bit(4byte) 부호 있는 정수, 숫자표현범위 : -2,147,483,648 ~ 2,147,483,647

LongLong
  64-bit(8byte) 부호 있는 정수, 숫자표현범위 : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

UnsignedLong or ULong 
  32-bit(4byte) 부호 없는 정수, 숫자표현범위 : 0 ~ 4,294,967,295


2) 실수형

Real
  정밀도 6자리(가수부의 소수점 이하 자리수가 최대 6자리) 부호 있는 부동소수점실수,
  숫자표현범위 : 3.402822E-38 ~ 3.402822E+38

Double
  정밀도 15자리(가수부의 소수점 이하 자리수가 최대 15자리) 부호 있는 부동소수점실수, 
  숫자표현범위 : 2.2250738585073E-308 ~ 1.79769313486231E+308

Decimal or Dec
  28자리(소수점이하 자리수 포함)까지 표현할 수 있는 부호있는 10진수의 고정소수점실수.


3) 문자형

Char or character
  ASCII 한 자리 문자

String
  ASCII 문자열, 길이 : 0 ~ 2147483647


4) 날짜,시간형

Date
  연도-월-일 표현
  연도 : 1000 ~ 3000
  월 : 01 ~ 12
  일 : 01 ~ 31
  예) 2011-09-08    -> 연도, 월, 일 사이에 -(hyphen)을 둠.

Time
  24시 포맷의 시간
  시각 : 00 ~ 23
  분 : 00 ~ 59
  초 : 00 ~ 59
  fraction of second : 6자리까지 가능
  예) 10:29:59.98      // 10시 29분 59초 + 98/100 초
       10:29:59.9824   // 10시 29분 59초 + 9824/10000 초

DateTime
 
Date 형과 Time 형을 합한 형
  

5) 기타 

Boolean
  true, false 두 가지 값을 가짐


Blob
  대량의 이진 오브젝트. 크기의 제한이 없는 데이터를 저장할 때 쓰임.
  예) 모든 이진 데이터, 이미지, 워드파일처럼 대량의 텍스트



<선언방법>
자료형 변수

예) Int li_a
String ls_b



2. Any 형 (The Any datatype)

Any 형은 표준자료형, 오브젝트, 구조체, 배열과 같은 모든 종류의 자료형을 담을 수 있습니다. 

선언 방법은 표준자료형과 동일합니다.



3. 시스템 오브젝트 자료형 (System object datatypes)

윈도우, 메뉴, 컨트롤 등과 같이 파워빌더에서 미리 정의해 놓은 오브젝트를 하나의 자료형으로 사용할 수 있습니다. 사용자가 New 창으로 통해서 윈도우와 컨트롤을 생성하면 파워빌더에서 자동으로 인스턴스를 생성합니다. 뿐만 아니라 사용자가 직접 인스턴스를 생성할 수 있습니다. 여기에 관해서는 앞으로 팝업 메뉴 생성 방법에 대한 강의에서 다룰 예정입니다.(오브젝트와 인스턴스에 대한 개념은 C++이나 Java 와 동일합니다.)

선언 방법은 표준자료형과 동일합니다.
예) window l_window
     menu l_menu


파워빌더 - 메뉴 - Tools - Browser... : System 탭의 모든 오브젝트들이 여기에 해당합니다.



4. 열거형 (Enumerated datatypes)

열거형은 그 값을 미리 정해놓고 사용하는 자료형입니다.

열거형은 두 가지 방법으로 사용됩니다.

1. 함수의 인수값
2. 오브젝트 또는 컨트롤의 속성값

파워빌더 - 메뉴 - Tools - Browser... : Enumerated 탭에서 왼쪽의 열거형과 오른편의 값이 여기에 해당합니다.

예) 열거형 : Alignment          
           값 : Center!  Justify!  Left!  Right!
        사용 : Alignment  l_align
                 l_align = Center!

우리는 이미 윈도우와 컨트롤의 alignment, border 속성의 열거형 값을 속성창을 통해서 지정해 봤었습니다. 그렇게 하게 되면 파워빌더에서 열거형 값을 내부적으로 관리합니다. 위의 예는 개발자가 직접 열거형을 선언해서 사용하는 방법으로 실무에서 가끔 사용되는 편입니다.



수고하셨습니다.


* 질문은 댓글로 남기세요.

Posted by A4M
,