Preface
Purpose
Audience
Organization
Using ABL documentation
References to ABL compiler and run-time features
References to ABL data types
Typographical conventions
Examples of syntax descriptions
Long syntax descriptions split across lines
Complex syntax descriptions with both required and optional elements
OpenEdge messages
Obtaining more information about OpenEdge messages
ABL and R-code Deployment and Management
ABL Client Deployment Overview
Client deployment process
Client deployment and administration tasks
Additional deployment documentation
Managing Client Access to Databases
Connecting clients to databases
Logical database names
Connection modes
Connection parameters
Connection techniques
Connecting at startup
Connecting from a procedure with the CONNECT statement
Connecting with the Data Dictionary
Connecting with the Data Administration tool
Connecting with auto-connect
Connecting to a non-OpenEdge database
Connection denials when the user count is exceeded
Reducing connection times
Starting clients without connecting to a database
Selecting a working database for client use
Selecting a database with the Data Dictionary
Selecting a working database with the Data Dictionary when using a character interface
Selecting a database with the Data Administration tool
Disconnecting databases for clients
Using the Data Dictionary to disconnect
Disconnecting a database with the Data Dictionary when using a character interface
Using the Data Administration tool to disconnect
Maintaining Application Security
Database table- and field-level security
Specifying run-time permissions checking
Setting table and field permissions
Example of personnel security
Determining the privileges of the blank user ID
Compile-time security
Run-time security
Application support
OpenEdge support
Operating system security
Designating a security administrator
ABL security administration
Auditing administration
Transparent data encryption administration
Maintaining User Environments
Maintaining the Windows user environment
Using the INI2REG utility
Using the command line interface
Searching progress.ini and the Registry at startup
Maintaining the progress.ini file
Startup section
Colors section
Default Window section
Fonts section
WinChar Startup section
WinChar Colors section
WinChar Default Window section
WinChar Keys section
Debug-Init section
Debug-Macros section
Debug-Buttons section
Keys section
Keymap section
Specifying environment variables
Windows icons for running OpenEdge
Starting the OpenEdge client
Modifying client icons
Windows manifest file
Environments with OpenEdge GUI for .NET applications
.NET Framework
.NET assemblies
Code Access Security for network installs
Maintaining the UNIX user environment
Maintaining the buildenv script
Maintaining the PROTERMCAP file
PROTERMCAP syntax
General syntax
String syntax
Terminal name entries
Terminal capabilities entries
Functional listing of terminal capabilities
Vermont Views key function capabilities
Pointer to key functions
Specifying colors
Specifying the cursor motion capability
Specifying keyboard mappings
Using key function syntax
UNIX stty control functions
Extended character support entries
Creating a PROTERMCAP entry
Testing terminal entries
Setting up the terminal
Setting the terminal type
Setting the PROTERMCAP environment variable
Reverting to the default PROTERMCAP file
Copying an existing terminal entry
Managing Client Performance
Procedure loading and execution
Using procedure libraries to improve r-code performance
R-code execution environment
Loading and executing r-code from a file
Loading and executing r-code from a standard procedure library
Loading and executing r-code from a memory-mapped procedure library
Tuning r-code execution
Tuning standard procedure libraries
Monitoring r-code activity
Interpreting r-code usage statistics
Interpreting r-code segment statistics
Distributing OpenEdge files on a network
Distributing OpenEdge system files
Distributing application files
Distributing temporary files
Distributing log files
Temporary file I/O
Sorting I/O
Managing Procedure Libraries
Library overview
Loading r-code from a file
Loading r-code from a standard library
Loading r-code from a memory-mapped library
Setting up a library
Running members from a library
Using an absolute pathname
Using a relative pathname
Related functions
Libraries and PROPATH
Memory and network considerations
Using the PROLIB utility
Using wild cards
Creating a standard library
Generating a memory-mapped library
Adding files to a standard library
Replacing files in a standard library
Deleting files from a standard library
Listing the contents of a library
Extracting files from a standard library
Extracting files to your current directory
Compressing a standard library
PROLIB command examples
Code page compatibility
Managing Print Devices
Printing in OpenEdge
OUTPUT TO statement
OUTPUT THROUGH statement
Printing in Windows
Setting up output-routing
Using a startup procedure
Using an output-routing table
Using interactive output-routing
Printing on UNIX
Configuring a printer
Creating a printer-control table
Deployment Considerations
Choosing a Code Format
Unencrypted source
Development product requirements for unencrypted source
User product requirements for unencrypted source
Advantages of unencrypted source
Possible drawbacks of unencrypted source
Encrypted source
Development product requirements for encrypted source
User product requirements for encrypted source
Advantages of encrypted source
Possible drawbacks of encrypted source
R-code
Developer product requirements and r-code portability
User product requirements
Advantages of r-code
Possible drawbacks of r-code
Initial Deployment
Deploying database structures and application files
Unencrypted source
Encrypted source
CRC r-code
Time-stamp r-code
Deploying OpenEdge GUI for .NET applications
Installing .NET Framework
Creating an assemblies directory
Deploying application source code
Upgrades
Deploying upgrades
Modifying the application procedures
Unencrypted source
Encrypted source files
Time-stamp-based r-code
CRC-based r-code
Modifying the application database
Upgrading with updated .df and encrypted source
Using the upgrade template
Upgrading with updated .df and CRC-based r-code
Upgrading with time-stamp-based r-code files
Incorporating modifications you made to the database
OpenEdge product upgrades
Deployment Topics and Tasks
Encrypting source code procedures
XCODE utility
Preparing to use XCODE
Compilation
Using the BUNDLE utility
The bundle.c program
The unbundle.c program
Examples using BUNDLE
Dumping and loading
MKDUMP utility
Using your dump/reload facility
Restricting database access
Building OpenEdge Executables
Requirements
Building executables on UNIX
Preparing the UNIX software environment
Building a customized executable on UNIX
Using the customized UNIX executable
Building and running the HLC examples for UNIX
Building executables in Windows
Preparing the Windows software environment
Building a customized executable in Windows
Troubleshooting
R-code Features and Functions
R-code structure
Factors that affect r-code size
Action code segment
Initial value segment
R-code file segment layout
Procedure libraries
Procedure Libraries and PROPATH
R-code execution
Standard r-code execution environment
Standard execution sequence
Standard execution environment limits
Standard r-code segment management
Memory-mapped r-code execution environment
Memory-mapped execution sequence
Memory-mapped execution environment limits
Memory-mapped r-code segment management
R-code directory management
R-code execution environment statistics
R-code portability
Display architectures
Database types
R-code version
R-code portability and operating system-specific statements
Byte order of integers in R-code
Examples of portable and nonportable r-code
Code page compatibility
Database CRCs and time stamps
Time stamp validation
R-code execution with time stamps
CRC validation
Time stamps and CRCs
R-code execution with CRCs
CRC calculation
CRC calculation for tables
CRC versus time stamp validation
Database changes that affect time stamps
Database changes that affect CRCs
Database CRC changes that do not prevent r-code execution
Time stamp-based deployment
CRC-based deployment
Differences in r-code access authorization
CRC and time stamp availability
R-code CRCs and procedure integrity
Assigning CRCs to schema triggers
Validating CRCs for schema triggers
RCODE-INFO handle
Getting the r-code CRC
Example: Verifying application r-code integrity
Example: Deploying schema triggers
Example: Determining which files are affected by a database change
Example: Determining which files differ between application versions
OpenEdge Application Limits
Input/output limits
Sorting limits
Name limits
Compiler limits
Deployment Utilities and Scripts
Templates
Utilities summary
DBRSTRCT utility
MKDUMP utility
XCODE utility
_tlr Module
Preface
_tlr Module