************************************* * * * DB/C Newsletter * * March 1995 * * * ************************************* Editor's Notes We have recently learned that the American National Standards Institute approved the ANSI Standard for the Programming Language PL/B last December. The official standard, known as X3.238-1994, will be available soon from ANSI. The telephone number for ordering the standard from ANSI is (212) 642-4900. The topic for this month's newsletter is DB/C 9. This next release of DB/C is the result of 18 months of development at Subject, Wills & Company. The article describes many of the improvements and new features contained in DB/C 9. Beta testing for the Windows 95 and Windows NT version of DB/C 9 will begin in April 1995. If you are interested in participating in the beta test program, please contact DB/C support at Subject, Wills & Company (dbc@swc.com). Final release of DB/C 9 is scheduled for September 1, 1995. don.wills@swc.com DB/C 9 DB/C 9 contains several new features such that DB/C can now be called an object-oriented programming language (or an OOPL). To be considered an OOPL, a programming lanugage must typically have these defining characteristics: classes, inheritance, polymorphism and dynamic binding. DB/C 9 has all of these features. An object is defined as an OBJECT type variable. Classes are defined by using the CLASS DEFINITION and CLASSEND statements. Objects are created (instantiated) and destroyed in either of two ways: (1) with the MAKE and DESTROY verbs, or (2) with user defined verbs. Similarly, class methods are called in either of two ways: (1) with a CALL statement using an OBJECT variable, or (2) with user defined verbs. The object-oriented features of DB/C 9 are similar to the existing concepts of LOADMODs and instances of LOADMODs. In actual programs, using the object-oriented features of DB/C 9 is easier and more elegant than using LOADMODs. In some respects, the object-oriented features of DB/C 9 can be thought of as an automatic LOAD/UNLOAD feature. Using the object-oriented approach relieves the programmer from worrying about instance naming and module management. Over time, many programs will be migrated to the object- oriented approach and away from using LOADMODs. The Fast Development Environment (FDE) is an important new feature of DB/C 9. FDE is several software tools integrated into a seamless program development tool. FDE runs only in a GUI environment, but can be used to develop either GUI or character mode DB/C programs. These functions are integrated in FDE: text editor, dialog editor, menu editor, icon painter, compiler, and run-time with debugger. FDE is oriented around an application. An application consists of one or more programs. This list of programs is the central feature of the FDE. Source file dependencies are known by FDE. The "Bring up-to-date" function on the menu causes all .DBC files that are old to be recompiled. For example, if the application is currently up-to-date and one include file that is used in three of the programs is changed, then the "Bring up-to-date" function will cause only those three programs to be recompiled. All dependency tracking and updating is done automatically. There is no need for MAKE files or other manual dependency specification. The FDE has many features that make the programmer's job easier. Double clicking on a program in the list of programs causes the text editor to display that program. A menu function or speed key will compile that program. Errors are noted in a separate box. Double clicking on a line in the error box causes the text editor to display the offending source program with the cursor at the line that caused the error. The FDE dialog editor, menu editor and icon painter are used in developing GUI programs. Each of these tools is a simple mouse-based, point-and-click type program. When a dialog, menu or icon is saved, the resulting file can be included directly in a source program. This included file contains the definition of a variable (using an INIT statement) that contains the full string specification of the dialog, menu or icon. This variable is used in the PREP statement that creates the dialog, menu or icon. The run-time debugger is similar to the debugger of previous releases of DB/C, except that it is GUI based. One useful new feature is the ability to manipulate, load and save global variables. DB/C 9 provides support for several new and enhanced GUI controls that are available in Windows 95. Here is a list of some of these new features: multicolumn list box controls with user configurable headings multiline text edit boxes the edit box control allows formatting and an input mask a docking and/or free-floating tool bar icon controls icon buttons locking buttons a status bar progress bars common dialogs (File Open, File Save, Choose Color) The DB/C 9 Report Writer has been significantly enhanced since the last release. There are actually two Report Writers: the GUI Report Writer and the character mode Report Writer. The user interface in both Report Writers is based on a pull-down menu concept with many dialogs and pushbuttons used for specification and control. Here are some of the new features: "Contains" and "Starts With" selection criteria full algebraic-like expressions for selection criteria user prompting for run-time selection values ascending/descending ordering by field support for multiple files logically merged into one file better report formatting subtotal and total only reports test mode to limit report size DB/C 9 contains a complete interface for sending and receiving messages using TCP/IP and UDP/IP. These two protocols are the base protocols used on the Internet and on many corporate LANs and WANs. The existing COMFILE data variable and the SEND/RECV/COMTST verbs are used to implement the TCP/IP and UDP/IP interface. In addition, an easy to use Domain Name Service (DNS) interface is also included in DB/C 9. DNS is used to translate an Internet address (such as dbc@swc.com) to an actual IP address (such as 199.3.63.34). The TCP/IP and UDP/IP interface is portable between all versions of DB/C except for the VMS version of DB/C. The SQL interface in DB/C 9 has been enhanced to provide more portable programming. Although SQL has been touted as a standard for many years, there are still many aspects of SQL that are incompatible between different vendor's SQL products. For example, the method a connecting to a database is very different in almost all SQL products. In DB/C 9, we have attempted to hide many of these differences from the programmer. Another important new feature for SQL programs is direct support for the NULL value. The new verb SETNULL is used to change a character or numeric variable to have the NULL value. The new unary operator ISNULL can be used in expressions to ascertain whether or not the value of a variable is NULL. Any modification of a variable changes its value to NOT NULL. Another new feature of DB/C 9 that is useful with SQL is the WITH NAMES operand of the RECORD statement. When used in conjunction with the new GETNAME statement, a programmer can build SELECT and other SQL statements directly from the data definition in the DB/C program, without having to embed SQL database column names directly into literals. Here is a list of some of the other enhancements included in DB/C 9: 65,520 character maximum record size 65,520 character maximum character variable size direct output of PostScript and PCL print files print enhancements to provide line draw support in character mode support for very large data files (up to 128 terabytes) compressed INDEX files support for portable LF terminated text files PUSHRETURN and POPRETURN statements for stack manipulation MOVE of a list variable to another list variable UNLOCK of a single record timer support via QUEUE and DEVICE variables multiple directories in each DBCVOL_ run-time option program labels in a CALL parameter list DB/C 9 will be available for these environments: Windows 95 and Windows NT 3.5 Mac OS 7.5 OS/2 Warp AIX, HP/UX, and all the rest of the UNIXes VMS DB/C 9 will not be available for previous releases of MS-DOS (like 6.x), Mac OS, OS/2 (like 2.x) or older UNIXes. Microsoft has stated its intention to release a character mode only version of MS-DOS based on the character mode part of Windows 95. DB/C 9 will support that operating system when (and if) it is released. One other aspect of DB/C 9 that is noteworthy is that all of the manuals of DB/C 9 will be available online and in .PDF file format. Printed copies of the manuals will still be included with each end-user distribution of DB/C. DB/C Class Schedule The next DB/C class is scheduled for April 10-13, 1995. The class is held in the Oak Brook, Illinois office of Subject, Wills and Company. For more information, contact Judi Tamkevic via email at dbc@swc.com or via telephone at (708) 572-0240.