SQ Software created SQR in the mid 1980s. It had a marketing agreement with D & N Systems, which changed its name to SQL Solutions and was later acquired by Sybase Inc. Sybase purchased SQ Software in the early 1990s. To avoid competing directly with Oracle Corporation, Sybase had a marketing and development agreement with MITI for the Oracle database versions of SQR. MITI acquired the full rights to SQR in the mid 1990s. MITI changed its name to SQRiBE Technologies in 1997. Brio Technology acquired SQRiBE in August, 1999. Brio Technology later changed its name to Brio Software. Brio licensed the compiler source code to PeopleSoft Inc. sometime around 2000. Hyperion Solutions Corporation acquired Brio Software in October, 2003. Oracle Corporation acquired PeopleSoft in December, 2004. And as of March 2007 Oracle Corporation has acquired Hyperion Solutions.
SQR is notable for its powerful database and printing functions. It can embed any SQL statement almost anywhere in a program. There is a version of SQR that can use multidimensional databases like Essbase. It can combine database reads with print instructions. It flexibly formats data breaks and page breaks. It prints variable fonts, sizes, and colors. It has a graph generation command that offers dozens of parameters for adjusting content and appearance.
SQR has four scalar data types. The first three are numeric (variables begin with “#”), character string (variables begin with “$”), and date (variables begin with “$”, same as with character string variables.). Date variables must be declared, to be distinguished from character string variables. There is the option to declare numeric variables to specify them more precisely (integer, floating point, etc.). The last data type is a database column (variables begin with “&”). The values of database columns are set only by a SQL “select” statement; no other command can change their values.
SQR has arrays of like those of the C programming language or COBOL. An array has one or more fields, each field is either a numeric, string, or date variable. Each field may have multiple occurrences, giving SQR the equivalent of two-dimensional arrays. SQR has special commands that manipulate multiple items within a single array. There are also many commands that cannot use an array element in place of a scalar variable.
SQR has four control structures. The first three are if-else-end, while-end, and evaluate (like case or switch). The fourth is the embedded SQL “select” statement, which allows SQR statements to be executed for each row of data in a loop.