Hello Tony.
Clarion is able to connect with postgreSQL server.
Here are some advices:
1. Install Postgre's psqlodbc (I've installed psqlodbc_08_03_0400 for example)
2. Create appropriate connection string (in DCT or in init() procedure using variables created in DCT - glo:sql_owner for example) with name of driver and database, with localhost or IP address of server, username and password, port ... If you use variable, in DCT you should fill - Owner name: !glo:sql_owner
3. Let the server create tables (uncheck create table in DCT)
4. Let the server create unique id for every table in db (uncheck autoincrement for unique key in DCT for every table)
- set EMULATEAUTONUMKEY (true) in table properties in DCT, in options (Boolean)
- set Driver options: /AUTOINC='SELECT currval(''try_me_id_seq'')'
(well, server will create nextval, but from Clarion side, program use currval! Do not get confused)
- set IsIdentity (true) for id field in options (Boolean)
5. Some people create tables on server and import them in DCT.
On the contrary, if you create tables in DCT, use templates which create scripts you have to use on server side (I use Artigas templates for this)
If you set "options" in point 4. this will create unique key (see constraints) and also ''try_me_id_seq'' sequence for autoincrementing on server side :)
6. Change relational constraints from "Cascade" to "Cascade (on Server)" in DCT (same for Restrict)
7. Change Owner and priviledges on server side (assuming you have created user on server)
8. Blob in Clarion is Bytea on PostgreSQL server :)
9. Use string (8) for date & time. In addition but only in Clarion DCT (not on server!) use Group of fields: MyDate (DATE), MyTime (TIME) for example, and set Over attribute for this group = over string (8) variable, so these variables will use same memory space. Use these two variables for displaying date and time in your APP.
Hope it helps.
Which version of postgreSQL do you use?
Regards from Zoran.