खोज…


परिचय

प्रगति ABL सांख्यिकीय रूप से टाइप की गई है। चरों को घोषित करने की आवश्यकता है और रन समय के दौरान डेटाटाइप को बदला नहीं जा सकता है।

वाक्य - विन्यास

  • DEFINE VARIABLE i INT INTIAL -200 NO-UNDO के रूप में। // एक-बिट पूर्णांक -200 को इनिशियलाइज़ किया गया

  • DEFINE VARIABLE l के रूप में तार्किक NO-UNDO। // लॉजिकल वेरिएबल जिसका नाम l है

  • DEFINE VARIABLE c AS AS CHARACTER NO-UNDO CASE-SENSITIVE। // एक मामला संवेदनशील ('ए' <> 'ए') चर।

  • DEFINE VARIABLE dt के रूप में डेट टु-नो-यूएनडीओ। // आज की तारीख के लिए एक तिथि चर सेट।

  • 5 साल के अनौपचारिक संस्करण के रूप में नियमित रूप से विविधता प्राप्त करें। // लंबाई के साथ एक चरित्र सरणी = 5

  • DEFINE VARIABLE j को INTEGER EXTENT NO-UNDO के रूप में जाना जाता है। // एक निर्धारित लंबाई के बिना एक सीमा

  • दैनिक संस्करण के रूप में दैनिक संस्करण "प्रस्थान समय"। // एक लेबल के साथ एक चर

मूल चर घोषणाएं

/*                                                                                                                                                                                                                                                
These variables are declared with `NO-UNDO`.
That states that no undo handling is wanted for this specific variable 
in case of a transactional roll-back. 

This should always be the default unless transactional control over 
this variable is a requirement. 
*/

/* Strings. A character longer than 32K should be a longchar */
DEFINE VARIABLE c   AS CHARACTER   NO-UNDO.
DEFINE VARIABLE cl  AS LONGCHAR    NO-UNDO.

/* Integers and decimals. INTEGER = 32 bit. INT64 = 64 bits */
DEFINE VARIABLE i   AS INTEGER     NO-UNDO.
DEFINE VARIABLE j   AS INT64       NO-UNDO.
DEFINE VARIABLE k   AS DECIMAL     NO-UNDO.

/* Date and datetimez. Unset variables have the unknown value ? */
DEFINE VARIABLE d   AS DATE        NO-UNDO.
DEFINE VARIABLE dt  AS DATETIME    NO-UNDO.
DEFINE VARIABLE dtz AS DATETIME-TZ NO-UNDO.

/* LOGICAL = Boolean data. True or false (or ?) */
DEFINE VARIABLE l   AS LOGICAL     NO-UNDO.

/* Rowids and recids are internal identifiers to database records */
DEFINE VARIABLE rid AS ROWID       NO-UNDO.
DEFINE VARIABLE rec AS RECID       NO-UNDO.

/* A handle is a handle to anything: a session, an on screen widget etc */
/* A Com-handle is used for ActiveX Com-automation */
DEFINE VARIABLE h   AS HANDLE      NO-UNDO.
DEFINE VARIABLE hc  AS COM-HANDLE  NO-UNDO.

/* A raw variable can contain any data. Binary, strings etc */
DEFINE VARIABLE rw  AS RAW         NO-UNDO.

/* A mempointer contains a sequence of bytes in memory. */
DEFINE VARIABLE m   AS MEMPTR      NO-UNDO.

Arrays - परिभाषित करना और एक्सेस करना

प्रगति एक आयामी सरणियों का समर्थन करता है, लेकिन वे कहा जाता है EXTENTS

/* Define a character array with the length 5, and display it's length */
DEFINE VARIABLE a AS CHARACTER EXTENT 5 NO-UNDO.
DISPLAY EXTENT(a).

व्यक्तिगत स्थिति मैं सरणी को "मानक" सी-शैली कोष्ठक का उपयोग करके एक्सेस किया जाता है। लेकिन सूचकांक 1 पर शुरू होता है। अधिकतम आकार 28000 है।

a[1] = "A".
a[2] = "B".
a[3] = "C".
a[4] = "D".  
a[5] = "E".

DISPLAY a[5].

परिणाम:

यहाँ छवि विवरण दर्ज करें

सूचकांक 0 एक त्रुटि उत्पन्न करेगा:

DISPLAY a[0].

परिणाम:

यहाँ छवि विवरण दर्ज करें

आप एक निर्धारित लंबाई के बिना एक अनिश्चित सरणी को भी परिभाषित कर सकते हैं। रन-टाइम में लंबाई (सीमा) निर्धारित की जा सकती है। लेकिन केवल एक बार!

DEFINE VARIABLE a AS CHARACTER EXTENT NO-UNDO.
EXTENT(a) = 10.
EXTENT(a) = 1.

तीसरी पंक्ति में निम्नलिखित त्रुटि होगी: यहाँ छवि विवरण दर्ज करें

आप प्रारंभिक मान सेट करने के लिए DEFINE VARIABLE स्टेटमेंट पर INITIAL विकल्प का उपयोग कर सकते हैं।

DEFINE VARIABLE a AS CHARACTER EXTENT 3 INITIAL ["one","two","three"] NO-UNDO.
/* Some statements (like DISPLAY) can handle a whole array: */
DISPLAY a.

परिणाम:

यहाँ छवि विवरण दर्ज करें

यदि आप सभी अतिरिक्त सेट नहीं करते हैं तो शेष को अंतिम सेट मान मिलेगा:

DEFINE VARIABLE a AS CHARACTER EXTENT 10 INITIAL ["one","two","three"] NO-UNDO.
DISPLAY a.

परिणाम:

यहाँ छवि विवरण दर्ज करें

LIKE कीवर्ड का उपयोग करना

LIKE का उपयोग करके आप किसी अन्य चर या डेटाबेस या टेम्‍प-टेबल के क्षेत्र में चर की परिभाषा को आधार बना सकते हैं।

एक चर को परिभाषित करना एक डेटाबेस क्षेत्र को LIKE करता है जो डेटाबेस को हमेशा जुड़े रहने के लिए आवश्यक करता है। यह हमेशा वह नहीं हो सकता जो आप चाहते हैं।

DEFINE VARIABLE i AS INTEGER NO-UNDO LABEL "Nr" FORMAT "99999".
/* Define a variable with the same properties as "i" */
DEFINE VARIABLE j LIKE i.

/* Define a variable based on Customer.Custnum from the sports2000 database but 
override the label-definition */    
DEFINE VARIABLE k LIKE Customer.Custnum LABEL "Client".


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow