Recital

Login Register
Recital 10 introduced a FOREACH command, much like PHP and some other languages. This simply gives an easy way to iterate over arrays. foreach works on arrays and objects, and will issue an error when you try to use it on a variable with a different data type or an uninitialized variable. There are two syntaxes; the second is a minor but useful extension of the first:
FOREACH array_expression AS value
    statements...
ENDFOR
FOREACH array_expression AS key => value statements... ENDFOR
The first form loops over the array given by array_expression. On each loop, the value of the current element is assigned to value and the internal array pointer is advanced by one (so on the next loop, you'll be looking at the next element).
The second form does the same thing, except that the current element's key will be assigned to the variable key on each loop. This form works only on associative arrays and objects.
Published in Blogs
Read more...
For Recital to run correctly on 64bit Linux you require the ia32 shared libraries.

The 64bit port of Recital requires these libraries to allow access to 32bit Xbase and C-ISAM data files which are 32bit.

If you do not have these libraries installed you will either get a "can't find db.exe" or an "error loading shared libraries" when trying to run or license Recital.

Installing the ia32 shared libraries

Redhat EL 5 / Centos 5 / Fedora 10

  1. Insert the Red Hat Enterprise Linux 5 Supplementary CD, which contains the ia32el package.

  2. After the system has mounted the CD, change to the directory containing the Supplementary packages. For example:

    cd /media/cdrom/Supplementary/

  3. Install the ia32el package:

    rpm -Uvh ia32el-<version>.ia64.rpm

Alternatively: Note you must have the required repo's enabled.
 yum install ia32el

Ubuntu / Debian

sudo apt-get install ia32-libs

Published in Blogs
Read more...
Unison is a file-synchronization tool for Mac, Unix/Linux and Windows. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other. 

Binary distributions for Unison can be found here.

The user manual can be found here
Published in Blogs
Read more...
The ShellEd plugin is a good shell editor for Eclipse
Published in Blogs
Read more...
Recital 10 enhances the SQL optimizer. Now, production indexes with a FOR <conditions> will be used to optimize SQL SELECT statements. If a WHERE <condition> on a SELECT statement matches a FOR <condition> on an index tag, this index will be used to optimize the query. The WHERE <condition> must be an exact match with the  FOR <condition>.  For example;
USE accounts 
INDEX on account_no TAG outstanding FOR balance  > 0
EXPLAIN SELECT * FROM accounts WHERE balance  > 0
  Optimized using for condition on tag 'OUTSTANDING'
Published in Blogs
Read more...

Recital is a dynamic programming language with an integrated high performance database particularly well suited for the development and deployment of high transaction throughput applications.  Recital 10 further enhances Recital with extensive features and functionality to facilitate its use in fault tolerant high availability systems. Much of the development of Recital 10 was concentrated on performance optimizations and cluster aware functionality to provide an application platform that can be scaled as needed without any application changes. 

Key features of Recital 10 include:

  • Cluster aware database engine that works transparently with drbd, heartbeat, glusterfs and samba
  • High degree of fault tolerance with self healing indexes
  • Massive performance improvements 
  • Extensive internals overall and modernization with superior object-oriented capabilities
  • Chronological data versioning with database timelines
  • SmartQuery caching
  • Database Administration Tools
  • Code and Data Profiling
  • Better integration with unix/linux command shell
  • Incorporates a range of new built-in functions compatible with those in the PHP core libraries
  • Built-in support for outputting data in HTML, XML, and JSON format
  • Seamless SQL command integration into the Recital scripting language
  • Much improved Microsoft FoxPRO language compatibility
  • Numerous extensions and improvements (see below for details)
  • Very large file support (2^63)
Published in Blogs
Read more...
When using Recital Web you can maintain the exact state of each work area between pages like this.

On exit of an .rsp page.

SAVE DATASESSION TO m_state 
_SESSION["state"] = m_state

On entry to an .rsp page.

IF type( _session["state"] ) != "U" 
    m_state = _session["state"]
    RESTORE DATASESSION FROM m_state
ENDIF
Published in Blogs
Read more...
Recital 10.0 introduced the COPY DATABASE <name> TO <name> command.. The full syntax is;
COPY DATABASE <name> TO <name>  [ IF [ NOT ] EXISTS ] 
This command is used to copy an existing database to a new database. By default an error will be returned if the target database already exists. Specifying the optional IF NOT EXISTS keywords no error will be returned if the target database already exists. If the optional IF EXISTS keywords are specified and the target database already exists, then it will be removed before the copy. Both the databases must be closed before they can be copied.
Published in Blogs
Read more...
Recital 10 enhanced Recital by enabling it to be used in bash shell scripts and in shell commands which use pipes and/or redirect stdin and stdout. If stdin is not redirected then recital will startup and operate as normal in a terminal window. Additionally you can use heredoc to denote a block of recital commands that should be executed. Note that when used in this manner, no UI commands can be executed and no user interaction is allowed.  
# recital < mrprog.prg 
# recital < myprog.prg > myoutput.txt
# recital > myoutput.txt <<END
use customers
list structure
END
# echo "select * from sales!customers where overdue" | recital | wc -l
Individual commands can be executed in shell scripts.
# recital -c "create database sales"
# recital -c "create table sales!invoices (id int, name char(25), due date)"
Expressions can be evaluated and used in shell scripts.
# VER=`recital -e "version(1)"`
You can view what command line options are available by typing:
# recital --help
Published in Blogs
Read more...

Copyright © 2025 Recital Software Inc.

Login

Register

User Registration
or Cancel