CONTENTS Title Page Copyright Page Preface 1 Introduction 1.1 Understanding the Translation Process 1.2 Understanding the Advantages of SQL Module Language 1.2.1 Translation Terminology 1.2.2 Limits of Translation 2 How to Translate Programs 2.1 Translating RDBPRE Programs 2.1.1 Invoking the RDBPRE Translator 2.1.2 RDBPRE_TRANS Command Syntax 2.1.3 Translating an RDBPRE Source Program 2.1.4 Compiling Translated Files 2.1.5 Linking Translated Object Files 2.1.6 Sample RDBPRE Program Translation 2.2 Translating RDML Programs 2.2.1 Invoking the RDML Translator 2.2.2 RDML_TRANS Command Syntax 2.2.3 Translating an RDML Source Program 2.2.4 Compiling Translated Files 2.2.5 Linking Translated Object Files 2.2.6 Sample RDML Program Translation 2.3 Using LSE Diagnostic Files 3 Transaction Handle Translation 3.1 Specifying the Translation of Explicit Transaction Handles 3.2 Turning Off Transaction Support 3.3 Restrictions on Translating Transaction Handles 3.4 Translator Mapping of Transaction Handles 3.4.1 Translator Mapping of Transaction Handles from RDBPRE 3.4.2 Translator Mapping of Transaction Handles from RDML 4 Understanding RDBPRE-to-SQL Translation 4.1 RDBPRE Clauses and Statements Directly Translated to SQL 4.2 RDBPRE Structures Not Directly Translated to SQL 4.2.1 ERASE or MODIFY Statements 4.2.2 FINISH Statement 4.2.3 FIRST FROM Clause 4.2.4 FIRST n Clause 4.2.5 GET Statement 4.2.6 MATCHING Clause 4.2.7 PREPARE Statement 4.2.8 READY Statement 4.2.9 RDB$ . . . Calls 4.2.10 RDBPRE Error Handling 4.2.11 REDUCED TO Clause 4.2.12 Request Handles 4.2.13 Segmented Strings 4.2.14 SORTED BY Clause in Aggregate Expressions 4.2.15 Transaction Handles 5 Understanding RDML-to-SQL Translation 5.1 RDML Clauses and Statements Directly Translated to SQL 5.2 RDML Clauses and Statements Not Directly Translated to SQL 5.2.1 ANY Predicate 5.2.2 Conditional Expressions 5.2.3 ERASE or MODIFY Statements 5.2.4 FINISH Statement 5.2.5 FIRST n Clause 5.2.6 MATCHING Clause 5.2.7 PREPARE Statement 5.2.8 READY Statement 5.2.9 REDUCED TO Clause 5.2.10 Request Handles 5.2.11 Segmented Strings 5.2.12 SORTED BY Clause 5.2.13 Transaction Handles 5.2.14 UNIQUE Clause A RDBPRE Data Type Conversions B RDML Data Type Conversions EXAMPLES 1-1 Sample of SQL Module Language Portable Code FIGURES 1-1 Translation Process from Source to Executable Image 2-1 RDBPRE Sample Translation 2-2 RDML Sample Translation 2-3 LSE Review of Translated Programs TABLES 1-1 Database Terminology 1-2 Summary of Statements and Clauses That Translate Partially or Not at All 4-1 RDBPRE Clauses That Translate Directly to SQL Module Language 4-2 RDBPRE Statements That Translate Directly to SQL Module Language 4-3 Incomplete Translation of RDBPRE MATCHING Clause 5-1 RDML Statements That Translate Directly 5-2 Translation of RDML MATCHING Clause 5-3 Translation of RDML REDUCED TO Clause A-1 Data Types Used by the RDBPRE Preprocessor A-2 Data Types Used by the Translator A-3 Host Language Declarations for BASIC A-4 Host Language Declarations for COBOL A-5 Host Language Declarations for FORTRAN B-1 RDML Pascal Data Type Translation B-2 RDML C Data Type Translation