Windows: Difference between revisions

From NEOSYS Dev Wiki
Jump to navigationJump to search
 
(47 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== 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 do not need calculated dictionary entries and are prepared to install the exodus plugin yourself then you can use a remote postgres server otherwise the postgres server needs to run on the same host as exodus.
If you have any version 8+ of postgres installed then you have nothing to install, otherwise do a standard install of postgres (8.3 currently) 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 ==
== Downloading and Installing Exodus ==


http://www.neosys.com/software/exodus.msi
[[Step by step instructions]]
 
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://devwiki.neosys.com has pointer to subversion repo with full source code and solution to rebuild exodus from scratch. Also a script make.sh for a basic build and install on linux (redhat but probably works with minor tweaks anywhere).
== Using Exodus ==


this devwiki site was written more in mind with BUILDING exodus from scratch. It will now be updated to reflect USING exodus as well.
Start, All Programs, Exodus, Exodus Console


I would be grateful if you can put any jottings down in the wiki ... Open a new page from the main page and just dump or just jot in an email and send it to me
{{exodus console first steps}}

Latest revision as of 04:15, 15 May 2011

Downloading and Installing Exodus

Step by step instructions

Using Exodus

Start, All Programs, Exodus, Exodus Console

Try the following commands.

Command Comment
EDITING AND COMPILING
edic hello edic=edit+compile+catalog. Creates a skeleton hello.cpp file using nano editor. edic will only compile on exit if saved, so make some change before you exit.
hello Run it
compile hello compile without editing
edic testsort Browse a sample exodus program showing all fundamental database operations including dictionaries and list.
compile testsort compile the preinstalled test program
testsort Run it to generate some data and inspect the output
DATABASE OPERATIONS
listfiles quick tool avoiding need to use any database client
list myclients text output - no page/column headers just yet sorry
list myclients {H} html output (port of a fully blown LIST replacement in heavy production use since 2000)
list dict_myclients NB the underscore after "dict" is *required*. "dict(SPACE)myclients" wont work
list dict_voc if you understand this then you understand your pick
edir myclients SB001 you can edit data or dictionaries directly. edir="edit record"
delete myclients SB001 useful command line tool
createfile tempfile ditto
deletefile tempfile ditto
createindex myclients CLIENT_TYPE speeds up select commands on the indexed fields in the traditional way
deleteindex myclients CLIENT_TYPE filenames are case insensitive, keys and fieldnames are CASE SENSITIVE

If you get the following error then you have not completed the installation of the Exodus plugin for Postgres.

PGRES_FATAL_ERROR: ERROR: function exodus_extract_text(bytea, integer, integer, integer) does not exist