Welcome to Aperion Informix

Aperion Information Technology, Inc. offers development & support for your Informix applicatons and databases. Acquired by IBM 2001, Informix software (formerly by Relational Data Systems, Inc. and Informix, Inc.) is still being used by numerous organizations using its reliable database technology. Whether it is troubleshooting, maintenance, changes to applications or conversion to another system, Aperion can help!

Aperion's proven service offerings for Informix include:

  • Informix - 4GL Compiled
  • Informix - 4 GL RDS
  • Informix - C-ISAM
  • Informix - ESQL/C
  • Informix - SQL
  • Informix - Standard Engine (SE)
  • Informix - Online

See how Aperion can keep your investment running faster that ever! Our services include:

  • Hourly Support Available.
  • Free Quotes!
  • All versions of FoxPro Supported
  • We can integrate with other applications
  • Migrate to new programs
  • On Time, On Budget, Exactly how you want it
  • Call us Today! 248-969-9791

About our Company

Aperion Information Technologies, Inc. was founded in 1998 as an Information Systems Solutions Provider and currently has offices in Oxford, MI, Saginaw, MI, Reading, PA, and Ithaca, NY. Our core focus is providing our customers with the strategic technologies required to achieve their business goals. Aperion utilizes diverse technologies and proven practices to tailor a solution that maximizes our customer's competitive advantage. Aperion Information Technologies, Inc. began developing custom business applications when software packages for business were limited. With a long, proven history of assisting our clients, Aperion Information Technologies, Inc. has cultivated a solid business practice in developing and supporting custom business software and expanded into sales and support of a variety of hardware and software products. Our business model includes using standard off the shelf software and adding value by writing modules to make the system meet the client's specific needs. Using off the shelf software where possible helps reduce the costs of our client's business systems while the custom enhancements allow them to reach their goals. Our software is designed to provide our clients with a competitive edge through more efficient and specialized processing.

Informix Products

  1. Engines
    These are raw database products capable of understanding SQL (Structured Query Language) commands. You need these to add change and delete records in a database, but they won't let you do any terminal I/O.
  2. C-ISAM
    C routines for creating and using indexed sequential files. Informix's first product.
  3. Standard Engine (or just "SE")
    Low administration requirements. Suitable for small to medium databases. Runs on "cooked" file-systems (meaning it runs on normal file systems and does not require special storage). Up to 8 columns (120 bytes per index).
  4. Online Engine
    Relatively high administration requirements. Copes well with large databases. Enhanced data types to cope with binary data, like pictures and sounds ie: BLOBs (BYTE) also to cope with variable size char and text fields ie: varchar (max size 255) and BLOBS (TEXT). Runs on "raw" file-systems (so faster than SE). Gives the ability to backup while the DB is still running. Gives the ability to handle distributed databases. Up to 16 columns (255 bytes per index.) Available in multiple versions
  5. Online 4.x/5.x
    The original which is an enhanced SE. sqlturbo processes replaces sqlexecs and there are server process (tbinit).
  6. Online DSA 7.x
    Almost complete rewrite of the engine. Instead of one process per user you have a pool of central Virtual Processor (VPs) which are multi-threaded. Includes network connectivity so Informix-Star is no longer needed. Compatiable with 4.x Tools if a relay module (sqlrm) is used although this does result in a large performance hit. Online DSA 7.x is designed for SMP (multi-processor) systems.
  7. Online Workgroup Server (OWS)
    A cut-down version of Online DSA. The differences between the OWS and DSA is that WGS does not support table fragmentation, PDQ and Continous Data Replication. These features would not normally be required in workgroup environments. If it is an Enterprise environment then DSA is recommended. OWS does not support more than one CPU VP hence parallel processing is very limited. Also only one instance is officially supported per machine. Administration has certainly been made easier in WGS. Also Netscape FastTrack Server, Netscape Navigator Gold and Informix client connectivity are bundled in.
  8. Online Extended Parallel Server (XPS or Online 8.x)
    A version of Online which support Massively Parallel Processing (MPP) machines. These are machines where memory is not shared between all the nodes e.g. NUMA architectures and clusters of SMP machines. The most expensive and potentially fastest version of the engine as it runs on the biggest hardware. Mere mortals are not likely to see it.
  9. Universal Server (Online 9.x)
    A merge between Online DSA 7.x and Illustra. Supports Datablades and is the latest edition to the range.
  10. Informix-4GL
    Informix's main programming language. Only a 3.5GL really, but still far more productive (and portable) than your average 3GL. Character based, but GUI(-ish) versions are available.
  11. Informix-4GL/GX
    An X-Windows GUI runner for Informix-4GL.
  12. Informix-4GL for Windows
    An early version of Fourgen's CASE tool (called "Fourgen" BTW) with a proper form painter, data dictionary, and report generator. It generates 4GL source code. You don't hear much about it...
  13. Informix-Menus
    A drop-down menu system, also from Fourgen.
  14. Informix-ESQL for C, COBOL, FORTRAN and Ada
    A set of routines which give you the ability to call the Informix Database from within your favorite third-generation language.
  15. NewEra
    Informix's new language. Largely compatible with existing 4GL source but has OOP (Object Oriented Programming) features added. Also greatly enhanced GUI support. Available under Microsoft Windows and Unix Motif.
  16. Informix-Data Director for Java
    The Informix-Data Director for Java product has development and runtime components that allow for the creation of a Java-based, database-aware applet that runs within an HTML page, and with INFORMIX-Universal Servers. It is derived from NewEra 3.0 components. The Form Painter is derived from the NewEra 3.0 Window Painter. The SuperView Editor is the NewEra 3.0 SuperView Editor. A Java Visual Class Package (JVCP) is a subset of the NewEra 3.0 VCL rewritten in Java. The JVCP supports the Java SuperTable code generated by the Form Painter for database-aware controls. CodeWright for Windows 95 is the language editor. Also note the "companion" product, Data Director for Visual Basic.
  17. Hyperscript Tools
    Originally this product was the "Wingz" spreadsheet, which featured a powerful scripting language. Today it's a powerful scripting language which includes a spreadsheet function. Windows (and Macintosh "RSN") based. Great for GUI MIS/presentation applications. Available in both development and runtime versions. This tool has now been sold to "Investment Intelligence Systems Corporation" in the UK.
  18. Informix-DBA
    A graphical database administrator's tool for creating and modifying the structure of Informix databases. An obsolete product replaced with ViewPoint.
  19. Informix-SQL
    A complete (albeit simplistic) suite of development tools: schema editor, menu builder, SQL editor, forms builder, and report writer. The forms builder (PERFORM) and report writer (ACE) can be good for prototyping programs before implementing them nicely in 4GL.
  20. ViewPoint
    A GUI, Point n Click, end-user tool. Microsoft Windows based. The end-user complement to I-DBA.
  21. Smartware
    Purchased by Informix years ago - Smartware provided a 'MS Works' style set of tools to be used against Informix databases. It is pretty obsolete at this point, although there is some information in article news.3046 in the archives.
  22. WingZ
    WingZ (pronounced "wings"), is a graphical spreadsheet and presentation tool. In its current form, Version 2.0, WingZ is a component of the Hyperscript Tools (HST) environment (see above).
  23. I-Star
    The networking software you need on your server machine. Provides distributed database capabilities including multisite joins and multisite updates with transparent two-phase commit recovery.
  24. I-Net
    The software you need on your client machine in order to talk to a database server on a server machine.
  25. Connect
    Connect consists of the run-time libraries of the embedded sql tools. Specifically, I- Connect 7.2X consist of ESQL/C run-time libraries, and message/configuration files; while I-Connect 2.X consist of the Client SDK run-time libraries, and message/configuration files.
  26. Legacy Connection Products
    With Informix products prior to 6.0 we had products called NET and STAR, which were used to allow SE or ESQL/C (NET) clients, and Online (STAR) engines to make network connections. These products were sold seperately. In 7.2X, and 7.3X engines on UNIX, the ESQL/C 7.2X run-time libraries come with the products. In 9.1X engines on UNIX, again only the ESQL/C 9.1X run-time libraries are included. So mainly you'd need Connect 7.2X if you wanted to run your ESQL/C program on a machine which didn't have any other Informix products. Likewise you'd need Connect 2.0X if you wanted to run a 9.1X esql/c program, or a OIJ, OIC++, or ODBC application on a machine with no other Informix products, or if you needed to run an OIJ, OIC++, or ODBC application on a machine that had an Informix 7.2+ engine but no version of the Client SDK installed.

Database Engine Differences

  1. Online vs Standard Engine
    See Engines (above)
  2. Online vs Turbo
    Turbo" was the original name of the Online product, so people who talk about it are either running old software in their machines, or old software in their minds.
  3. 4GL vs 4GL-RDS
    The original version of the 4GL compiler took the 4GL source code and generated C programs, which were in turn compiled by a C compiler. Because this could take a while Informix introduced 4GL-RDS (RDS=Rapid Development System) which featured a compiler which generated P-code rather than a "real" executable. Both require a runtime license.
  4. 4GL-RDS
    Fast compiling. Source level debugging! Hardware independent "executable"s. Smaller executables
  5. c-4GL
    Arguably lower memory usage. Faster execution. The advantage of RDS is that the programs tend to be smaller, so if you are running several DIFFERENT programs simultaneously, you get the benefit of the smaller core size. However, if you have several people running the SAME program simultaneously, then RDS quickly becomes a limitation and a can in turn be a real pig. Where the trade off occurs is how much of the image that the UNIX system can share across users. Running RDS, only 'fglgo' can be shared, whereas running a .4ge, most of the application can be shared.
  6. C-4GL vs 4GL-RDS examples
    Let's take a large maintenance program for an example. Let's say that the .4gi of this program is 1MB, fglgo takes .5mb and the .4ge take 2.5MB. (The .4ge can vary widely, especially on the RISC boxes). We'll assume that the 4gi and 4ge are the same program, and whatever local dataspace is required by the program (global variables) is washed from our equation, since they'll be the same. If three people run the 4gi, then you've got in memory: 1 copy of 'fglgo' being shared among the users and 3 copies of x.4gi, one for each user, for a cost of roughly 3.5MB or memory. Now, if three people are running x.4ge, you really only have one copy in memory, with the .text of the entire app being shared, for a cost of 2.5MB (the size of the .4ge). However, if you have 3 people running 3 DIFFERENT programs (all being the size above), then with RDS you have a total memory being consumed of 3.5 (like before), but the .4ges suck up 7.5, because they are all unique routines (yes, shared libraries will affect this, but you get the idea).
  7. C-4GL vs 4GL-RDS examples (continued)
    So, what happens in a lot of systems, is that there are several people doing data entry with one or two programs that they live in most of the day, whereas the back office folks are running random reports and maintenance routines with little regularity. What seems to work out best is to use C4GL on the large data entry programs that are used by several people, and leave the rest with RDS, since they won't benefit from the sharing.
  8. Performance Example
    We had an R/S 6000 that went from serious swapping performance problems to significantly improved performance by compiling one program, in a system of over a hundred programs.
  9. 4GL vs 4GL for Windows vs 4GL/GX
    4GL for Windows and 4GL/GX are products which take standard 4GL programs (which are character based) and attempt to give them a GUI look 'n feel. 4GL for (Microsoft) Windows adds a nice GUI development environment but the end product doesn't really compare well with native Windows products (like Hyperscript or, presumably, NewEra). 4GL/GX does the same job for X-Terminals, although I'm not sure if it comes with a GUI development environment. All are RDS derivatives and therefore can be used with the Integrated Debugger (4GL/ID).
  10. ESQL/C vs 4GL
    These are different products.
  11. Hyperscript Tools vs Wingz
    WingZ 1.x contained a scripting language called "Hyperscript", but when Informix came to release WingZ 2.0 they decided to rename the product HyperScript Tools. You will still find old hacks interposing the terms WingZ/HyperScript/HST. HST includes all the goodies in WingZ 1.x, with some general enhancements, plus support for in-line SQL, support for array processing/variables, script generation tools such as dialog box, help and menu generators, enhanced window controls including customizable windows and portfolios. The big differences are the SQL and array facilities - providing developers with the ability to prepare/execute cursors and manage SQL access in a more efficient manner.
  12. What is Datalink?
    Datalink is a tool for processing SQL queries from HST or WingZ against an Informix database. Incorporated into Datalink is a point-and-click series of tools which enable operators to formulate a query and to add/modify/delete data, tables and databases without knowing (too much) about the underlying SQL - sort of SQL with trainer wheels. With Wingz 1.x, Datalink represented the only mechanism for SQL access to an Informix database. With HST, in-line SQL is also supported.

DateHandling

  1. Date-Handling
    Date fields in legacy Informix applications consist of two digit month-day-year format each. Entering dates of years greater than 1999 cause problems, because of converting them to 20th century, e.g. "01/01/00" becomes "01/01/1900" at last.
  2. DBCENTURY Variable
    Specifies date-handling options that permit changes to how Informix processes date fields.
  3. DBCENTURY Usage
    C = Closest. (Means the closest one, e.g. entering "96" is set to "1996" until real year 2046, after that to "2096"). P = Past. (Calculated backwards to current date. "96" is set to "1996" until 2095, after that to "2096"). F = Future. (The other way round. "96" is set to "2096", after that to "2196").

Partitions

  1. How do I find out if I have got a damaged Unix/Informix raw partition?
    A very simple solution to find out a damaged raw partition is Unix command "dd" at all: dd if=rawdevice of=/dev/null ("rawdevice" = Unix character device, e.g. "/dev/rdsk/1s7".) A defective partition would actually cause an error message by "dd" command.
  2. I don't need my Informix raw partitions any more, and I want to remount them to my Unix system. What can I do?
    Do you really want to destroy your partitions, so that *all* data will have been lost after all? Furthermore, the erroneous removal of a partition would bring an entire I-Online system to a standstill. Here are two alternatives if you are sure this is what you want to do: 1) Use Unix command "mkfs" (see also system documentation). This one will generate a new Unix partition on your raw device. However, there are a few systems that cause troubles in doing so. 2) You can get by a simple trick. Use "dd" command and knowledge about another Unix raw partition as described below: dd if=otherUnixRawPartition of=InformixRawPartition ("otherUnixRawPartition"=an existing Unix raw partition being mounted, "InformixRawPartition"=Informix raw partition to be destroyed). Unix "dd" command will write necessary information to our target partition at least, e.g. superblock and so on). However, "dd" will certainly be aborted by error messages, because source and target partition are not identical, indeed. Finally, "mkfs" and "mount" will create a new file system.

Variables

  1. Which Informix environment variables are particularly important?
    The main variables in a user environment are INFORMIXDIR, SQLEXEC, INFORMIXSERVER, DBPATH
  2. INFORMIXDIR
    Informix home directory (installation directory), e.g.: INFORMIXDIR=/usr/informix; export INFORMIXDIR Depending on your shell "setenv ..." (csh, tcsh ...) as well path to Informix applications. For example: PATH=$PATH:$INFORMIXDIR/bin; export PATH
  3. SQLEXEC
    Specifies where the backend applications are: SQLEXEC=$INFORMIXDIR/lib/sqlexec (=> SE), SQLEXEC=$INFORMIXDIR/lib/sqlturbo (=> ONLINE til V5.x), SQLEXEC=$INFORMIXDIR/lib/sqlrm (=> ONLINE since V6.x) export SQLEXEC
  4. INFORMIXSERVER
    Specifies where the On-Line Server is located: INFORMIXSERVER=yourServerName¹; export INFORMIXSERVER (¹ see $INFORMIXDIR/etc/sqlhosts)
  5. DBPATH
    Path to database and form files: DBPATH=databaseDirectory¹:formDirectory²; export DBPATH

Misc

  1. How do I obtain variable SQL commands with I-4GL?
    In fact, use "PREPARE" and "EXECUTE" commands to achieve more flexibility. Look at the simple sample code below, anyway. 'DATABASE yourDatabase MAIN DEFINE sqlStatement CHAR(255) LET sqlStatement = "CREATE TABLE table1 ( col1 INTEGER NOT NULL);" PREPARE statementOne FROM sqlStatement EXECUTE statementOne END MAIN' You can use are nearly all SQL commands in 4GL modules. You may create a similar program to "dbaccess" or "isql" at last. It is a great pity you cannot use commands like "FOREACH" or "FETCH" at least.
  2. I am using ibcs2 emulation on Linux to run my I-4GL applications compiled on SCO Unix. Actually, the initial program is being called by "exec" command in login profile script. Unfortunately, pressing interrupt key (e.g. Control-C) causes an immediate termination of my login session. What am I supposed to do know?
    Remove the "exec" command of your program call.

Contact Us

Oxford

  • 144 S. Washington
  • Oxford, MI 48371
  • Phone: (248) 969-9791
  • FAX: (248) 969-9319

Saginaw

  • 3126 Davenport
  • Saginaw, MI 48602
  • Phone: (989) 792-3877
  • FAX: (989) 792-0517

Pennsylvania

  • 2917 Windmill Rd, Suite 3
  • Sinking Spring, PA 19608
  • Phone: (610) 929-2033
  • FAX: (610) 929-6836