NEW:
Chapter 1 - Overview (this document)
Introduction
VAR-programming overview and issues re possible directions.
WebServer / VBA/ COM Programming
DataStore overview.
Chapter 2 - Installing, configuring and test-running
To Install
Support files you may need.
Optional but recommended: download and installation of MySQL
After Setup - guide to your resulting PixieEngine folder.
Terminal emulator setup.
Suggested testing activities and guide to the example programs.
Chapter 3 - VAR programming
A tale of 2 servers: Socket or COM.
What you need: VB6 or VB5.
VB/PixieEngine Project organisation and Language notes.
How to emulate some common MV and DATABASIC practices.
Appendix - PixieEngine Functions
System Variables and Wide-Ranging Argument Conventions
Classical Terminal/Printer I/O, "IInput", "PPrint", "Crt"
File I/O
"RRead", "WWrite" etc and the new "RReadTR"
ExecutePS
String and other utility
functions eg "DCount", "Field", "OConv", "Locate"
PixieEngine configures suitable database engines, eg MySQL, to present their operations in the "MV" or "PICK-like" way. PixieEngine also provides a host programming environment in Visual Basic with a DATABASIC-like flavour. Other languages are also possible.
The core of "PixieEngine (TM)"
is an "ActiveX" wrapper for the database engines: 'MySQL', 'MS SQL
SERVER' and 'MS JET/ACCESS' with more connections in preparation. While
its core is "Object Oriented", PixieEngine also has a "Socket
Server" component that enables it to support terminal emulation in the
"Classical" way.
We mostly use MS Access/Jet .mdb files. as a lightweight prototyping demo and test alternative, but they also give you the "linked table" or "mde project" capability to use a wider range of data stores eg FoxPro, Oracle. Access/Jet also makes for an easy to setup download package. The download has sample data for both Access/Jet and MySQL and we anticipate that most of you will be able to try Access/Jet immediately whereas you need 2 additional downloads and setups to get a MySQL engine going. However MS Access is less effective at emulating MV than the true server daemons. So please use MySQL or MS SQL for any serious performance assessment.
What "Microsoft Access" does make possible is the wrapping of some of the PixieEngine functions into file "testpxe1.mdb" as VBA code. This means that "testpxe1.mdb" acts as a self-contained "quickie" demo of some of PixieEngine. You need "Access 97" or newer to open it. If reading this with internet access, click here to download testpxe1.zip (only 100K) .
Note sample data is fictional, especially the randomly generated prices.
When you purchase PixieEngine, it is supplied with:
Available separately is our GUI thin-client PixieLink.
There are 3 licensing levels for PixieEngine:
Pricing of 2 and 3 is by negotiable quote for each
situation and is usually a single price for unlimited use within a site or
organisation with a support package built in. We price PixieEngine on a "fair
value for money" principle.
PixieEngine's equivalent to DATABASIC is to program with Microsoft VB5 or VB6 by creating your app as an ActiveX .dll, instances of which get hosted inside PixieEngine's "UserPort" objects. We provide a template app to copy and adapt. In theory any Windows development environment that can talk to ActiveX objects should work as a VAR-Programming method, but we have not yet tried Java, Delphi etc ourselves.
VB5/6 has a very attractive editing and debugging environment. The obvious question is "whoa, big change from DATABASIC" but VB is a very malleable system and we have done 2 things to bring it close to DATABASIC:
eg DATABASIC OPEN Cust TO File.Cust ELSE CRT 'Cannot open file "Cust".' STOP END ** dynamic variables A<3,4> = B C = D<1,2,3> |
translates to VB If Not OOpen(Cust, File_Cust) Then Crt "Cannot open file ""Cust""." Exit Sub End If '* PixieEngine supports '* "dynamic variables" A = RReplace(A, 3, 4, B) C = Extract(D, 1, 3, 3) |
We have written a utility
"PixieMassage" which does such conversions automatically with a useful success rate. Note that VB and the DataStores have their own reserved purposes for "dot" and "hyphen" operators. So in most cases, DATABASIC and TCL file, variable and routine names like "File.Cust" and "BP.WEB" need to change eg to "File_Cust" and "BP_WEB".
"PixieEngine" handles a subset of PICK emulation. Some current challenges are:
WebServer / VBA/ COM Programming
The PixieEngine components with their functions can be accessed directly from IIS Webserver ASP scripts and any other COM-programming eg the VBA programming facility built into Microsoft Word, Access etc.
The approach is very much the same as outlined above under VAR-programming, except that the object-oriented rule of "1-user-action = 1-complete-routine-run" applies. The other difference is that you do not need to buy VB6. MS Word etc include the VBA language and the IIS Webserver with VBSCRIPT is a free add-on to Windows.
Example ASP SCRIPT fragment equivalent to above VAR DATABASIC and VB examples:
Set P = Server.CreateObject("PixieEngine.Port")
Set F = Server.CreateObject("PxEngFns.Functions")
'** Login user "jeffrey" with a password of "biscuit"
Call P.Execute("jeffrey")
Call
P.Execute("biscuit")
'
If P.OOpen(Cust, File_Cust) = False Then
Response.Write "Cannot open file ""Cust""."
Response.End
End If
'** PixieEngine supports dynamic variables"
A = F.RReplace(A, 3, 4, B)
C = F.Extract(D, 1, 3, 3)
…
It is also possible to program Webserver Apps in the classical procedural style eg with i/o via CRT/PPRINT and IINPUT. But you need to include a "buffer zone" between PixieEngine's procedural BASIC world and the strictly event-driven world of IIS. This can be done via our other product PixieWeb or with a supplied component PxEngWeb.
"Accounts"
are emulated by "databases". In MySQL these are separate subfolders"Files"
( aka "Tables") feature:Top Next = Chapter 2: Installing... Appendix - keyword reference