Windows

From NEOSYS Dev Wiki
Revision as of 13:23, 14 May 2009 by 85.17.154.66 (talk)
Jump to navigationJump to search

You can use Exodus for:

Pick-style Programming (requires a C++ compiler)

OR

Pick-style Database Use/Management (requires a Postgres Database)

OR

Both together

You can do Exodus Pick-style Programming WITHOUT having or using a database and you can use Exodus command line utilities to do have a Pick-style Database without having a C++ compiler.

Visual C++ compiler

If you have VS C++ 2003/2005/2008 already installed then you have nothing to do, otherwise do a standard install of free VS Express C++ (2008 currently) preferably in the default location on C: or parallel default location but on the same drive as Exodus. No need for any SQL or options.

Postgres

If you need calculated dictionary entries or are not prepared to do the simple installation of the postgres exodus plugin yourself then the postgres server needs to run on the same host as exodus, otherwise you can use any remote postgres server version 8+ on any os.

If you need to install Postgres then do a standard install of the current version (8.3) preferably in the default location on C: or parallel default location but on the same drive as Exodus.

Exodus needs to be granted a postgres username, password and database to work in - and preferably rights to create databases and users. By default, Exodus uses the following to connect or you can put a file called .exodus containing some similar line in your home directory (%USERPROFILE% on windows).

host=127.0.0.1 port=5432 dbname=exodus user=exodus password=somesillysecret connect_timeout=10

Use the installed PGAdminIII or your preferred postgres client to create the chosen user and database. If you prefer SQL, use the following:

CREATE ROLE exodus LOGIN PASSWORD 'somesillysecret' CREATEDB CREATEROLE;
CREATE DATABASE exodus WITH ENCODING='UTF8' OWNER=exodus;

Downloading and Installing Exodus

http://www.neosys.com/software/exodus.msi

Note where you install Exodus and create shortcut to exodus.exe and start it. It gives you a normal command prompt but with the environment setup appropriately.

Try the following commands.

Command Comment
edit test Creates a skeleton test.cpp file using nano editor with exodus. edit will compile on exit if saved, so make some change before you exit.
test Run it
compile test compile without editing
edit testsort Browse a sample exodus program showing all fundamental database operations including dictionaries and list.
testsort Run it and inspect the output
listfiles quick tool avoiding need to use any database client
list test_clients text output - no page/column headers just yet sorry
list test_clients (H) html output (port of a LIST replacement in heave use since 2000)
list dict_test_clients nb the underscore after "dict" is required - dict(space)voc wont work
list dict_voc if you understand this then you understand your pick
edit test_clients SB001 you can edit data or dictionaries directly
delete test_clients SB001 useful command line tool
createfile tempfile ditto
deletefile tempfile ditto
createindex test_clients CLIENT_TYPE speeds up select commands on the indexed fields in the traditional way
deleteindex test_clients CLIENT_TYPE filenames are case insensitive, keys and fieldnames are not

Documentation how to program in Exodus

Sorry nothing yet but you might be able to work out what functions are available from the following:

include\exodusfuncs.h lists the functions that simulates pickish syntax as close as can be achieved. The functionality however should be identical.

include\exodusmacros.h lists a few keywords to simplify programming for application programmers not interested in the raw power of c++.

include\mv.h lists the massive var class definition that defines how to write pick in oo object.method() style syntax.

Unorganised notes about programming in Exodus

Source code and Exodus development environment

http://svn.neosys.com/svn/trunk has full source code and tools build exodus from scratch. Also a script make.sh for a basic build and install on linux (redhat but probably works with minor tweaks anywhere).

This devwiki site was initially written more in mind with BUILDING exodus. It will now be updated to reflect USING exodus.