폭스프로 소개/     폭스의 역사/     지만진 컬럼/     폭스와 함께 한 세월/    

   

데이터베이스를 관리하는 데이터베이스 관리 패키지이자 프로그램제작 툴이며 언어이다. 폭스프로는 폭스베이스, 폭스프로, 비주얼 폭스프로라는 이름으로 발전해왔다. 이를 통칭하여  폭스프로라고 한다. 그러나 폭스프로 시절과 현재의 비주얼 폭스프로 시대의 프로그램 기법이 많이 차이가 나므로 폭스프로 프로그래머와 비주얼 폭스프로 프로그래머를 각각 다른 제작 도구를 사용하는 프로그래머로 분류하기도 한다.

 

폭스프로는 데이터 관리 엔진의 분야에서는 개인 컴퓨터의 데이터베이스를 관리하는데서 출발하여 지금은 회사의 기반 데이터를 관리하는 수준까지 성장했다.  또한 프로그램의 분야에서는 단순한 Xbase 언어를 통하여 프로시져한 프로그램을 만드는 수준에서 출발해서 4GL의 언어로 거듭났고 VFP에서는 완전 객체 지향적 프로그램 제작 도구이자 언어로 성장했다.

 

VFP는 데이터베이스 응용 프로그램과 컴포넌트를 매우 빠르게 제작할 수 있는 놀랍고도 강력한 툴로서 데스크 탑의 클라이언트 서버 솔루션과 그리고 콤포넌트와 XML 웹서비스를 이용한 웹 기반의 프로그램을 만드는데 있어서 데이터 집중 및 객체지향적 언어의 안정적인 지원으로 개발자에게 신뢰를 받고 있다.

 

 

 

폭스프로의 가장 큰 장점으로 빠른 데이타 검색을 들 수 있다. 우리가 하고 있는 대부분의 컴퓨터 작업은 빠른 시간에 필요한 자료를 검색하는 일이 주를 이룬다. 결과적으로 컴퓨터의 세계에서 가장 중요한 것 중에 하나가 속도라고 볼 수 있다.

 

폭스프로는 그 전신인 폭스베이스 시절부터 빠른 데이터베이스라는 별칭을 가진 프로그램 제작 도구이자 언어로서 많은 프로그래머의 사랑을 받아 오고 있다. 물론, 빠르다는 것 외에 매우 많은 특징과 장점이 있다. 먼저 폭스프로는 개인용 컴퓨터의 단순한 업무부터 기업의 대규모 전산 업무에 이르기까지 사용할 수 있다. 또한 다중사용자 환경에 뛰어나며 클라이언트 서버의 환경에서는 오라클이나 시퀄 서버와 같은 대형 데이터베이스 엔진과 결합하여 프로그램 제작도구로서 활용할 수 있다. 그리고 더 나아가서 인트라넷의 환경에 접근할 수 있는 중요한 기능을 가지고 있다. 물론 비주얼 폭스프로 5.0부터 인트라넷 솔루션이 가능하다.

 

폭스프로는 다양한 플랫폼을 지원한다.  도스, 유닉스, 맥, 윈도, 윈도 엔티 등에서 폭스프로는 똑같은 데이터베이스를 공용으로 사용하게 하는 멀티 플랫폼을 지원하고 있다. 그러나 여기서 중요한 사항은 도스 버전은 폭스프로 2.6까지 지원하고 있고 지금의 비주얼 폭스프로는 윈도 전용으로 되어 있다. 그러나 다양한 오퍼레이팅 환경을 구성하고 하나의 데이터베이스를 구축하여 서로 다른 OS 하에서 동시에 운영할 수 있는 솔루션이 많이 있다. 또한, 스탠드어론(단일 사용자)에서부터 다중 사용자를 위한 시스템의 설계에 유연하게 대처한다.

 

즉, 처음에는 단일 사용자 형태로 만들어 사용하다가 다중 사용자의 형태로 만들어 적용시키는데 매우 편리한 지원을 하고 있다. 다중 사용자 지원은 파일 서버 형태와 클라이언트 서버 형태, 그리고 인트라넷의 환경까지도 잘 지원하는 다양한 제작 도구와 명령어를 내포하고 있다.

 

폭스프로의 또 다른 특징은 융통성과 확장성을 들 수 있다. 그 대표적인 예로 OLE, DDE, DLL 의 기능을 잘 활용할 수 있다는 점을 들 수 있다. 또한 ActiveX를 사용하는 기법이 쉽게 구현할 수 있다. 이는 폭스프로의 작업 영역을 확장시켜 주며, 다양한 프로그램을 제작하는데 많은 융통성을 발휘하게 한다. 그러나 가장 중요한 특징 중의 하나는 막강한 프로그램 제작 툴의 내장을 들 수 있다. 현재의 프로그램 세계에서는 빠른 어플리케이션의 제작이 매우 중요하게 대두되고 있다. 이를 뒷받침하기 위해서는 프로그램을 쉽고 빠르게 만들 수 있는 다양 한 프로그램의 제작도구의 내장은 폭스프로의 매우 큰 장점이라고 할 수 있다.

 

마지막으로 폭스프로는 긴 역사를 가지고 있고 많은 명령어를 가지고 있다. 결국 다양한 프로그램 제작 툴과 함께 2500여개의 명령어와 함수를 가지고 거의 전 분야에 걸쳐서 다양한 프로그램을 만들 수 있는 프로그램 도구이자 언어로서 폭스프로는 그 기능과 특징을 잘 파악하고 사용하는 모든 프로그래머들에게 가장 유용한 프로그램의 도구로서 많은 사랑을 받게 될 것이다.

 

VFP 9.0 특징

 

Microsoft Visual FoxPro 9.0 는 데이터베이스 응용프로그램과 구성 요소를 빠르게 제작하는 아주 강력한 툴이다.

VFP는 데이터 중심적이고 객체 지향적인 언어로써, 개발자들에게 데스크탑 프로그램, client/server 솔루션 또는

웹상에서 구성요소들이나 XML 웹 서비스를 사용하는 데 매우 강력한 툴로 제공되고 있다.

 

모든 타입의 데이터 솔루션을 제작할 수 있는 유연성

 

- 계층적인 XML 과 XML 웹 서비스 관련하여 .NET과 호환되는 솔루션 생성 가능.

- 향상된 SQL 언어 호환성과 최근 제공되는 데이터 타입을 이용한 SQL Server 데이터와의 교환

- 도킹가능한 유저 폼, 컨트롤의 자동-고정 기능, 개선된 이미지 지원으로 유저 인터페이스를 향상킬 수 있다.

- 프로퍼티 윈도에 대해 개별화가 가능하다. 주로 사용하는 프로퍼티들을 등록할 수 있고, 맞춤 편집기를 사용할 수 있고 폰트와 색을 설정할 수 있다.

- 소형 PC를 기본으로 하는 윈도에 맞는 스탠드-어론과 리모트 응용프로그램을 제작하고 전개할 수 있다.

- MS .NET 기술과 호환되는 COM 콤포넌트와 XML 웹 서비스를 생성하고 억세스가 가능하다.

- Visual FoxPro 9.0는 데이터 입력 폼에서 복잡한 리포트 결과물까지 end-to-end 솔루션을 제작할 수 있게 해준다.

 

리포팅 시스템 특징

 

- 확장성이 있는 새로운 결과 구조는 리포트 데이터 결과와 형식의 정밀한 컨트롤을 제공한다.

- 다양한 1-to-many 관계형 데이터에 대한 다양한 detail 밴드를 제공한다.

- 리포트의 결과로 XML, HTML, 이미지 형식을 제공하고 미리보기 창에서 맞춤이 가능한 multi-page 프린트를 제공한다.

- 개선된 디스플레이 특성과 다양한 페이지 제공으로 프린트 미리보기 창을 커스토마이징 가능하다.

- 새로운 ReportListener 클래스는 리포트 제너레이션과 실시간 이벤트 실행을 억세스할 수 있도록 제공한다.

- 융통성있는 리포트 chaining은 더욱 복잡한 프린트 업무를 가능하게 해준다.

- 커스토마이징가능한 빌더들로 인한 강력한 design-time 훅

- 기존의 VFP 리포트들에 대한 호환성

 

데이터-처리(Data-Handling)와 정보처리 상호 운용성

 

- 새로운 데이터 타입 : Varchar, Varbinary, and Blob 타입이 추가됨으로 SQL Server와의 정보처리 상호운용성에 대한 개선

- 확장된 SQL 증대 : SELECT, INSERT, UPDATE 와 DELETE 명령어들로 더욱 좋아진 성능

- CAST() : 새로운 함수로 서로 다른 데이터 형식을 컨버전할 때 사용된다.

- 새로운 Binary 인덱스 : 삭제 태그를 이용한 개선된 성능과 새로운 인덱스 타입

- XMLAdapter : 개선된 계층구조적인 XML 과 XSD 구조를 지원한다.

 

똑똑한 클라이언트 유저 인터페이스 특징

 

- Dockable Form : 전문적인 기능의 윈도 응용프로그램 제공

- Anchoring : 폼이 리사징될 때 폼에서 컨트롤들의 움직임을 제어할 수 있다.

- Buttons : 문자열 배치에 대한 버튼은 이미지의 위치를 잘 제어할 수 있다.

- Checkbox : caption에 대한 새로운 word wrap 기능 추가됨.

- Label : 레이블 caption 에 대한 움직이는 문자열을 제공한다.

- Shape and Line : 다각형과 Bezier 곡선 등을 제작할 수 있다.

- List and Combo : Row source에서 모음(collection)을 사용할 수 있다.

- image : 파일을 기초한 그림들을 묶을 수 있다.

 

개발자의 생산성을 높여줄 수 있는 기능들

 

- Property Sheet : 새로운 폰트와 색 표시 옵션, 확장된 문자들, 긴 표현들을 제공한다.

- Member Data Extensibility : 사용자 프로퍼티 편집기와 즐겨찾기를 명시할 수 있는 기능

- Background Compile : 명령어를 타이핑할 때 맞는지 안맞는지를 바로 알 수 있다.

- Task Pane : Data Explorer pane 같은 새롭고 향상된 task pane

- Extended System Capabilities : 배열과 프로시져 크기 그리고 네스팅 단계에 제한이 없다.

- String Functions : 문자열 작업에 대한 강력하고 새로운 기능.

- ICASE() : DO CASE 함수와 비슷한 새로운 함수

- International : 응용프로그램에서 FontCharSets의 사용을 매우 좋게 제공한다.

 


 

VFP 8.0 특징

Microsoft Visual FoxPro 8.0버전은 다음과 같은 특징들과 기능들을 포함하고 있다.
 

그리드와 브라우즈 컬럼의 오토 사이징와 락킹(잠금)

그리드와 브라우즈 윈도에서 컬럼을 자동으로 크기조절할 수 있으며, AllowAutoColumnFit 프로퍼티와 utoFit 메소드를 이용하여 보여주는 데이터에 맞게 조절할 수 있다. 또한 BROWSE 커맨드에 LOCK 옵션을 주는 것과 그리드에 Grid LockColumns 프로퍼티와 LockColumnsLeft 프로퍼티를 조절함으로써 컬럼을 잠글 수 있다.

 

그리드 행과 선택한 필드들에 대한 하이라이트     

그리드내의 텍스트박스에서 선택한 행이나 아이템에 대한 표시색을 제어할 수 있다. 그것을 가능하게 하는 프로퍼티로 HighlightForeColor, HighlightBackColor, SelectedItemBackColor, SelectedItemForecolor, 그리고 HighlightStyle 이 있다.

 

 

그리드 컬럼에서 체크박스 중앙에 위치시키기

체크박스에 대한 새로운 Centered 프로퍼티는 체크박스가 그리드 컬럼의 중앙에 정렬시키도록 지원한다.

 

그리드를 리스트박스처럼 사용하기

그리드 컨트롤의 새로운 AllowCellSelection 프로퍼티는 그리드를 리스트박스처럼 흉내를 낼 수 있는데, 사용자가 특정 셀을 선택하면 행 전체가 선택된 것처럼(리스트박스처럼) 조정할 수 있다.

 

캡션에 따라 그림의 위치 조절

CommandButton, OptionButton, 그리고 CheckBox 컨트롤에서 PicturePosition 프로퍼티를 이용하여 캡션에 따라 그림의 위치를 조정할 수 있다.

 

PageFrame 컨트롤의 탭의 방향 조정

TabOrientation 프로퍼티를 이용하면 페이지프레임 컨트롤에서 탭을 어디에 위치시킬 것인지를 정할 수 있다.

 

TextBox와 EditBox 컨트롤의 Hyperlink(하이퍼링크) 지원

텍스트박스와 에디트박스에 하이퍼링크를 표시하는 것과 활성화시키는 것을 제어할 수 있는 프로퍼티인 EnableHyperlinks를 제공한다.

 

모든 컨트롤에 윈도 XP 테마 지원

윈도 XP상에서 실행되는 응용프로그램에서 윈도 XP 테마가 지원되어 사용할 수 있게 되었다. 윈도 XP 테마는 사용자 인터페이스 구성요소들의 상당한 비주얼 속성들 - 예를 들어 컨트롤들의 모양, 선색깔, 스타일, 선택, hover 효과(마우스를 갖다대면 반응이 일어나는) - 을 제어할 수 있는 새로운 기술이다.

 

Docking 윈도와 툴바의 지원

DOCK WINDOW 명령어를 이용하여 프로그램적으로 IDE 툴 윈도와 툴바를 dock할 수 있다. ADOCKSTATE() 함수는 dock된 윈도와 툴바의 상태를 되돌린다.

 

콤보박스의 텍스트박스 부분에서 이미지 표현

이전 버전에서는, 콤보박스의 drop-down 리스트에서 항목에 같이 나오는 이미지가 선택하고 나면 텍스트박스에는 보여지지 않았다. 이제, PictureSelectionDisplay 프로퍼티를 이용하여 옵션적으로 텍스트박스 부분에 보여줄 수 있으며, 표시하는 방법도 정할 수 있다.

 

Mover Bar를 이용하여 리스트박스에서 항목을 이동할 때 이벤트 사용

리스트박스에서 mover bar를 이용하여 항목들을 위로 또는 아래로 이동시킬 때 그 이동을 취소시키는 행위를 지정할 수 있다. 새로운 OnMoveItem 이벤트에서 마우스나 키보드 또는 프로그램적으로 제어할 수 있다.

 

Visual FoxPro 원래 객체로부터의 이벤트 묶기  

VFP는 원래 객체에 대하여 BINDEVENT(), UNBINDEVENTS(), RAISEEVENT(), 그리고 AEVENTS()의 함수를 제공함으로써 이벤트 핸들링을 확장시켰다.

 

Classes

이제 일정한 멤버 클래스를 정의하고 서브클래스화할 수 있다. 이 멤버들과 부모(parent) 컨테이너는 다음과 같다:

  • Page and PageFrame
  • CommandButton and CommandGroup
  • OptionButton and OptionGroup
  • Column and Grid
  • Header and Column  

 

GDI+ 이미지 지원 (Animated .gif Files, RotateFlip Property)

Visual FoxPro는 GIF 와 JPG 파일을 표현하는 본래의 지원을 MS 윈도 XP와 향후 윈도 버전에서 사용될 차세대 그래픽 디바이스인 Graphics Device Interface+ (GDI+)로 대치된다.

GDI+를 이용하면, 이미지를 회전시키고, 거꾸로 뒤집는 등의 기능을 거나 키는 이미지의 RotateFlip 프로퍼티를 설정함으로써 가능하게 된다.

 

TRY...CATCH...FINALLY, THROW 그리고 Exception class를 이용한 구조화된 에러 핸들링

이제 TRY...CATCH...FINALLY 기능을 이용하여 구조화된 에러와 예외 핸들링을 처리할 수 있다. 그 기능에는 Exception 클래스와 THROW 명령어 그리고 에러 핸들 함수인 SYS(2410)이 포함되어 있다.

Exception 클래스를 정의하고 서브클래스화할 수 있으며, 에러와 예외 처리를 하는 데 사용된다. Visual FoxPro는 TRY...CATCH...FINALLY 에러 핸들링 구조의TRY 블럭내에서 발생되는 에러에 대한 정보를 자동으로 저장시키는 exception 객체를 생성한다.

 

Collection Class

관련된 아이템들의 세트를 생성하여 컬렉션을 사용할 수 있다.  컬렉션은 contained 객체를 이용하여 작업하는 방법을 제공하고, 아이템들을 억세스하고 반복시키는 일반적인 방법을 사용한다.

 

BindControls 프로퍼티를 사용하는 폼들을 묶는 시한 컨트롤

폼 객체에서 BindControls 프로퍼티를 세팅함으로써 데이터 바인딩이 일어날 때 데이터와 관련된 컨트롤들에 대해 지정할 수 있다.

 

CursorAdapter 클래스를 이용한 Remote Data Connectivity

Visual FoxPro는 DataEnvironment 클래스에 새로운 CursorAdapter 클래스를 포함하고  DataSource 와 DataSourceType 프로터피를 추가함으로써 더 향상된 리모트 데이터 컨넥션을 제공한다.

 

Empty Object

Empty 객체는 비지니스 객체를 가지고 일하는 데 사용된다. Empty 객체는 최적화의 성능에 대해 빠르게 예시되고 사라진다. Empty 객체는 보통 다음과 같은 시나리오로 사용된다:

ADDPROPERTY( ) and REMOVEPROPERTY( ) 함수를 이용하여 클래스의 실행되는 예제로부터 프로퍼티를 추가하고 제거할때.

현재 레코드로부터 컨텐츠를 가져오는 SCATTER...NAME ~ ADDITIVE 절을 사용할 때.

Empty 객체는 본래의 프로퍼티, 메소드, 이벤트를 포함하지 않는다. 또한 서브클래스화될 수 없다. 오로지 런타임시 ADDPROPERTY( ) 함수나 SCATTER...NAME ~ ADDITIVE 명령어를 이용하여 임의의 프로퍼티를 생성할 수 있다. Empty 객체는 오직 프로그램파일(.prg) 내에서만 가능하며, .vcx 파일에서는 정의할 수 없다.

 

런타임시 객체에 프로퍼티나 값을 추가하거나 제거하기

런타임시 새로운 ADDPROPERTY( )와 REMOVEPROPERTY( ) 함수를 이용하면 객체에 유동적으로 프로퍼티나 그 값들을 추가하거나 제거할 수 있다. 이는 COM 객체 또는 SCATTER...NAME 명령어에 의해 생성된 클래스들과 같은 비주얼 폭스프로 클래스에서 유도하는 것보다 더 유동적이다.

 

지원되지 않을 때 empty 값 지우기

새로운 EVL() 함수를 이용하면, empty 값, False (.F.) 또는 0과 같은 두 표현 중에서 적당한 대리값을 되돌릴 수 있다.

 

Visual FoxPro은 아래와 같이 데이터 특성에서 추가되고 향상되었다.:  

  • CursorAdapter 클래스를 사용하여 data connectivity 제거하기
  • DataEnvironment 클래스를 정의하고 서브클래스화하기
  • 필드 값 자동으로 증가시키기
  • collating sequences 에 대한 지원
  • SELECT...UNION SQL 명령어에 대한 암시적인 데이터 컨버전
  • SELECT SQL 명령어로부터 행 추가

 

DEBUGOUT 명령어에 여러줄의 표현

DEBUGOUT 명령어를 사용하여 Debug Output 윈도에서 다양한 데이터 타입의 여러줄의 표현값과 그 결과들을 표시할 수 있다.

 

폼 클래스에서 DataEnvironment 클래스에 대한 지원

Visual FoxPro는 폼에서 DEClass and DEClassLibrary 프로퍼티를 추가함으로서 data environment 객체를 지원한다.

 

Collating Sequences 와 필드 값의 자동 증가에 대한 지원

COLLATE 구문을 포함한 CREATE TABLE SQL, ALTER TABLE SQL, and INDEX 명령어를 사용하여 인덱스 태그에 collating sequence 를 지정할 수 있다.

CREATE TABLE 과 ALTER TABLE 명령어는 AUTOINC 구문을 포함하고 NextValue 와Step 파라미터에 대한 값을 지정하면 필드 값을 자동으로 증가시켜줄 수 있다. 그리고 LIST 와 DISPLAY STRUCTURE 커맨드는 자동 증가를 사용하는 필드에 대하여 Next와 Step 값을 표시할 수 있다.

 

HOME(8)은 Visual FoxPro 프로젝트의 서브디렉토리를 되돌린다.

HOME(8)사용자의 My Documents 폴더에 위치한 Visual FoxPro 프로젝트의 서브디렉토리를 되돌리는데, 서브디렉토리는 비주얼 폭스프로에 의해 생성된 새로운 프로젝트와 파일들에 대한 디폴트 디렉토리를 의미한다.

 

Off-Screen 비트맵의 토글

Visual FoxPro는 configuration 파일 설정대로 off-screen bitmap을 off과 on을 변화시키도록 지원한다. 이제 SYS(602) - Bitmap Configuration 함수와 런타임시 off-screen bitmaps의 값을 비활성화는0, 활성화는 1로 사용할 수 있다.

off-screen bitmap을 현재 데스크탑과 폼에 대한 이미지를 저장하는 데 사용할 수 있다. 그래서 만일 윈도와 같은 다른 구성요소가 그것들 위로 끌어당겨지면 off-screen bitmap들을 표시할 수 있다. off-screen bitmaps은 많은 메모리를 사용하기 때문에, 이 비트맵을 off로 변경함으로써 Terminal Server 어플리케이션에서는 성능을 향상시킬 수 있다. 그러나 off-screen bitmap을 토글링하는 것은 여러분의 어플리케이션에 영향을 줄 수 있다는 것을 명심해야 한다. 예를 들어 폼 컨트롤은 정상적으로 보이나, Paint와 같은 메소드를 이용하여 폼에 직접 쓰는 것은 off-screen bitmap이 On으로 변경되어야 한다.

 

 

 

 

  설치 사양 (VFP 9.0 중심)

VFP 9.0을 인스톨할 수 있는 최소 사양입니다.

 

 프로세서

 펜티엄 급 PC

 OS

 서비스 팩 3을 인스톨한 윈도 2000이나 그 이상

 윈도 XP 또는 그 이상

 윈도 2003 서버 또는 그 이상

 메모리

 최소 64MB, 권장 128MB이상

 하드 디스크

 기본 인스톨시 165MB 공간 필요.

 드라이브

 CD ROM 또는 DVD ROM 드라이브

 디스플레이

 Super VGA 800 * 600 이상, 256 칼라 이상

 

  제한 사양 (VFP 9.0 기준)

Table and Index Files

Maximum # of records per table file

1 billion

Maximum size of a table file

2 gigabytes

Maximum size of an FPT file

2 gigabytes

Maximum # of characters per record

65,500

Maximum # of fields per record1

255

Maximum # of tables open at one time2

65,535

Maximum # of characters per table field

254

Maximum # of bytes per index key in a non-compact index3

100

Maximum # of bytes per index key in a compact index3

240

Maximum # of open index files per table2

Limited by available memory

Maximum # of open indexes in all work areas2

Limited by available memory

Maximum # of relations

Limited by available memory

Maximum length of relational expressions

Limited by available memory

Field Characteristics

Maximum size of character fields

254

Maximum size of numeric and float fields

20

Maximum number of characters in field names in a free table

10

Maximum number of characters in field names for a table contained in a database

128

Minimum value of an integer

-2,147,483,647

Maximum value of an integer

2,147,483,647

Digits of precision in numeric computations. Visual FoxPro can handle numbers up to 9007199254740992 (2^53) in exact computations.

16

Miscellaenous:

64 bits = 8 bytes

Largest number = 10 ^ 308 = 2 ^ 1023
-> 10 bits per exponent + 1 for exponent sign plus 1 for number sign => 12 bits

Leaving 52 bits for the mantissa + 1 for implied normalized bit -> 53 bits

LOG10(2^53) = 15.95 decimal digits accuracy

 

Variables and Arrays

Default # of variables

16,384

Maximum # of variables

65,000

Maximum # of arrays

65,000

Maximum # of elements per array

Normal: 2 gigabytes
Member array: 2 gigabytes
Array of member objects: 65,000

Program and Procedure Files

Maximum # of lines in source program files

Limited by available memory

Maximum size of compiled program modules4

Limited by available memory

Maximum # of procedures per file

65,535

Maximum # of nested DO calls

128(Default)

Maximum # of READ nesting levels

5

Maximum # of nested structured programming commands

384

Maximum # of passed parameters

26

Maximum # of transactions

5

Maximum # of compiler levels for #INCLUDE

4

Report Designer Capacities

Maximum # of objects in a report definition

Limited by available memory

Maximum height of a single report band

20 inches | 50.8 cm | 1920 pixels

Maximum # of grouping levels

74

Maximum length of character report variables

255

Maximum # of Detail bands

20

Maximum # of pages in a report at run time

65534
In object-assisted preview, limited by available GDI+ resources

Other Capacities

Maximum # of open windows (all types)2

Limited by available memory

Maximum # of open Browse windows

255

Maximum # of characters per character string or memory variable

16,777,184

Maximum # of characters per command line

8,192

Maximum # of characters per label control on a report

252

Maximum # of characters per macro substituted line

8,192

Maximum # of open files

Operating system limit

Maximum keystrokes in keyboard macro

1,024

Maximum fields that can be selected by a SQL SELECT statement

255

Maximum length of a string literal

255

Maximum file size accessible via low level file functions

2 gigabytes

(주석)
1. 하나 이상의 필드에 null 값을 설정하면, 제한값이 1에서 254 필드로 줄어든다
2. 메모리와 사용가능한 파일 핸들에 의해 제한된다. .cdx 파일은 오로지 1 파일 핸들을 사용된다. .cdx 파일은 하나의 파일 핸들만 사용한다.
3. collating sequence가 MACHINE으로 설정되어 있을 경우, 각 문자는 1 바이트로 사용된다. MACHINE으로 설정되어 있지 않을 경우 각 문자는 2 바이트로 사용된다. 인덱스된 필드가 null 값을 제공한다면, 하나의 추가된 바이트는 인덱스 키로 사용된다. MACHINE이 아닌 인덱스가 늘 간단하고 적게 차지함을 알기 바란다.
4. 한 프로그램 모듈은 하나의 프로시져이다. 한 프로그램이나 어플리케이션은 프로그램 모듈을 제한없이 포함할 수 있다.