<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://scarlet.deltasoft.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Diccon</id>
	<title>ScarletDME - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://scarlet.deltasoft.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Diccon"/>
	<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php/Special:Contributions/Diccon"/>
	<updated>2026-08-20T12:54:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=1192</id>
		<title>PHP Native API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=1192"/>
		<updated>2016-09-05T12:00:53Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PHP native API uses a socket connection to directly connect to an open and functioning QM API socket.&lt;br /&gt;
&lt;br /&gt;
This single PHP script file can be dropped in on any PHP compatible web server and allow developer to use a series of function calls to access a QM Database with all the functionality that the QMClient API allows.&lt;br /&gt;
&lt;br /&gt;
It is currently in the developing Alpha stages:&lt;br /&gt;
&lt;br /&gt;
Make sure you have followed the [[QM-API_Server|QM Client Server setup guide]]&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
  &lt;br /&gt;
*[[User:Diccon|Diccon]]  09:15, 25 June 2013‎ Gene kindly moved the code storage over to GIT. PHP API lib is now stored for download there. Again it still works well with ScarletDME and probably will work with modern Commercial QM if the protocol hasn&#039;t changed.&lt;br /&gt;
&lt;br /&gt;
*[[User:Diccon|Diccon]] 11:05, 6 April 2009 (UTC) Development has been paused until JD3 is fully assessed and it is determined if QMCLient is to continue getting my attention. This lib still works, others are welcome to develop on the SVN repo. Ask for commit access.&lt;br /&gt;
* [[User:Diccon|Diccon]] 15:27, 9 March 2009 (UTC) Conditional Handling code is in, needs proper testing. Now have 34/46 command done, QMCall and a few others will be last because they take a bit of time/effort.&lt;br /&gt;
*[[User:Diccon|Diccon]] 18:41, 16 February 2009 (UTC) &#039;&#039;&#039;Solved&#039;&#039;&#039; Fixed this, not 100% sure what was really happening, but i rewrote the way the login packet is constructed, to make it clearer. This fixed it. Go, Play!&lt;br /&gt;
*[[User:Diccon|Diccon]] 19:36, 27 January 2009 (UTC) &amp;lt;strike&amp;gt;&#039;&#039;&#039;Warning&#039;&#039;&#039; Active bug found, i believe username padding is not working, some odd length usernames may cause a QMERROR 3000 for line 902, when trying to write to $LOGINS. I&#039;m working on it.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use==&lt;br /&gt;
[[#Download|Download]] from the GIT repo from below.&lt;br /&gt;
&lt;br /&gt;
Place this file in the same directory as the file that intends to use it, or place it in the library path for your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
In your php code Enter the following line at the top &lt;br /&gt;
  include &amp;quot;PHPQMLib.php&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The first you need to call the connect function, something like this;&lt;br /&gt;
  qmconnect(&amp;quot;my.qm.server.com&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACCOUNT&amp;quot;);&lt;br /&gt;
or &lt;br /&gt;
  qmconnect(&amp;quot;192.168.1.1&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACC&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
You can now use the variety of PHPQM functions like qmread(), &lt;br /&gt;
qmdelete(), etc as you wish.&lt;br /&gt;
When you are done, for tidiness issue a;&lt;br /&gt;
  qmdisconnect();&lt;br /&gt;
command, tidlying closing the socket.&lt;br /&gt;
&lt;br /&gt;
Each page/script will need to (re)connect. Connection persistence and pooling is &lt;br /&gt;
a bit bigger than this simple lib for now.&lt;br /&gt;
&lt;br /&gt;
Check out qmLastClause() QMPHPClient function to cater for commands&lt;br /&gt;
hitting ELSE, LOCKED, etc conditions&lt;br /&gt;
&lt;br /&gt;
Generally you can follow the QMClient docs in terms of server functionality.&lt;br /&gt;
Using the below defines() as what is and is not implemented.&lt;br /&gt;
Better PHP specific docs will be written later, when we go Beta&lt;br /&gt;
&lt;br /&gt;
==Supported Features==&lt;br /&gt;
QMPHPClient supports (24/46);&lt;br /&gt;
* Qm Quit&lt;br /&gt;
* GetError&lt;br /&gt;
* Set account&lt;br /&gt;
* Open&lt;br /&gt;
* Close&lt;br /&gt;
* Read&lt;br /&gt;
* ReadL (Untested)&lt;br /&gt;
* ReadLW (Untested/partial)&lt;br /&gt;
* ReadU (Untested)&lt;br /&gt;
* ReadUL(Untested/partial)&lt;br /&gt;
* Select&lt;br /&gt;
* ReadNext&lt;br /&gt;
* ClearSelect&lt;br /&gt;
* ReadList&lt;br /&gt;
* Release&lt;br /&gt;
* Write&lt;br /&gt;
* WriteU&lt;br /&gt;
* Delete&lt;br /&gt;
* DeleteU&lt;br /&gt;
* Execute&lt;br /&gt;
* Respond&lt;br /&gt;
* Logon&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
If you want a copy, it is released under the LGPL (i.e. can be used within commercial products, but is GPL itself). It is available on github here:&lt;br /&gt;
&lt;br /&gt;
 https://github.com/geneb/PHPQMClient&lt;br /&gt;
&lt;br /&gt;
==Todo Shortlist==&lt;br /&gt;
# Design and handle Conditional Execution, e.g. ELSE, LOCKED, ERROR, etc&lt;br /&gt;
# Finish implementing all simple commands/function (24/46 Done)&lt;br /&gt;
# Clean up error reporting&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=1191</id>
		<title>PHP Native API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=1191"/>
		<updated>2016-09-05T12:00:32Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* News */ Updated download news&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PHP native API uses a socket connection to directly connect to an open and functioning QM API socket.&lt;br /&gt;
&lt;br /&gt;
This single PHP script file can be dropped in on any PHP compatible web server and allow developer to use a series of function calls to access a QM Database with all the functionality that the QMClient API allows.&lt;br /&gt;
&lt;br /&gt;
It is currently in the developing Alpha stages:&lt;br /&gt;
&lt;br /&gt;
Make sure you have followed the [[QM-API_Server|QM Client Server setup guide]]&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
  &lt;br /&gt;
*[[User:Diccon|Diccon]]  09:15, 25 June 2013‎ Glen kindly moved the code storage over to GIT. PHP API lib is now stored for download there. Again it still works well with ScarletDME and probably will work with modern Commercial QM if the protocol hasn&#039;t changed.&lt;br /&gt;
&lt;br /&gt;
*[[User:Diccon|Diccon]] 11:05, 6 April 2009 (UTC) Development has been paused until JD3 is fully assessed and it is determined if QMCLient is to continue getting my attention. This lib still works, others are welcome to develop on the SVN repo. Ask for commit access.&lt;br /&gt;
* [[User:Diccon|Diccon]] 15:27, 9 March 2009 (UTC) Conditional Handling code is in, needs proper testing. Now have 34/46 command done, QMCall and a few others will be last because they take a bit of time/effort.&lt;br /&gt;
*[[User:Diccon|Diccon]] 18:41, 16 February 2009 (UTC) &#039;&#039;&#039;Solved&#039;&#039;&#039; Fixed this, not 100% sure what was really happening, but i rewrote the way the login packet is constructed, to make it clearer. This fixed it. Go, Play!&lt;br /&gt;
*[[User:Diccon|Diccon]] 19:36, 27 January 2009 (UTC) &amp;lt;strike&amp;gt;&#039;&#039;&#039;Warning&#039;&#039;&#039; Active bug found, i believe username padding is not working, some odd length usernames may cause a QMERROR 3000 for line 902, when trying to write to $LOGINS. I&#039;m working on it.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use==&lt;br /&gt;
[[#Download|Download]] from the GIT repo from below.&lt;br /&gt;
&lt;br /&gt;
Place this file in the same directory as the file that intends to use it, or place it in the library path for your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
In your php code Enter the following line at the top &lt;br /&gt;
  include &amp;quot;PHPQMLib.php&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The first you need to call the connect function, something like this;&lt;br /&gt;
  qmconnect(&amp;quot;my.qm.server.com&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACCOUNT&amp;quot;);&lt;br /&gt;
or &lt;br /&gt;
  qmconnect(&amp;quot;192.168.1.1&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACC&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
You can now use the variety of PHPQM functions like qmread(), &lt;br /&gt;
qmdelete(), etc as you wish.&lt;br /&gt;
When you are done, for tidiness issue a;&lt;br /&gt;
  qmdisconnect();&lt;br /&gt;
command, tidlying closing the socket.&lt;br /&gt;
&lt;br /&gt;
Each page/script will need to (re)connect. Connection persistence and pooling is &lt;br /&gt;
a bit bigger than this simple lib for now.&lt;br /&gt;
&lt;br /&gt;
Check out qmLastClause() QMPHPClient function to cater for commands&lt;br /&gt;
hitting ELSE, LOCKED, etc conditions&lt;br /&gt;
&lt;br /&gt;
Generally you can follow the QMClient docs in terms of server functionality.&lt;br /&gt;
Using the below defines() as what is and is not implemented.&lt;br /&gt;
Better PHP specific docs will be written later, when we go Beta&lt;br /&gt;
&lt;br /&gt;
==Supported Features==&lt;br /&gt;
QMPHPClient supports (24/46);&lt;br /&gt;
* Qm Quit&lt;br /&gt;
* GetError&lt;br /&gt;
* Set account&lt;br /&gt;
* Open&lt;br /&gt;
* Close&lt;br /&gt;
* Read&lt;br /&gt;
* ReadL (Untested)&lt;br /&gt;
* ReadLW (Untested/partial)&lt;br /&gt;
* ReadU (Untested)&lt;br /&gt;
* ReadUL(Untested/partial)&lt;br /&gt;
* Select&lt;br /&gt;
* ReadNext&lt;br /&gt;
* ClearSelect&lt;br /&gt;
* ReadList&lt;br /&gt;
* Release&lt;br /&gt;
* Write&lt;br /&gt;
* WriteU&lt;br /&gt;
* Delete&lt;br /&gt;
* DeleteU&lt;br /&gt;
* Execute&lt;br /&gt;
* Respond&lt;br /&gt;
* Logon&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
If you want a copy, it is released under the LGPL (i.e. can be used within commercial products, but is GPL itself). It is available on github here:&lt;br /&gt;
&lt;br /&gt;
 https://github.com/geneb/PHPQMClient&lt;br /&gt;
&lt;br /&gt;
==Todo Shortlist==&lt;br /&gt;
# Design and handle Conditional Execution, e.g. ELSE, LOCKED, ERROR, etc&lt;br /&gt;
# Finish implementing all simple commands/function (24/46 Done)&lt;br /&gt;
# Clean up error reporting&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=1190</id>
		<title>PHP Native API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=1190"/>
		<updated>2016-09-05T11:57:16Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PHP native API uses a socket connection to directly connect to an open and functioning QM API socket.&lt;br /&gt;
&lt;br /&gt;
This single PHP script file can be dropped in on any PHP compatible web server and allow developer to use a series of function calls to access a QM Database with all the functionality that the QMClient API allows.&lt;br /&gt;
&lt;br /&gt;
It is currently in the developing Alpha stages:&lt;br /&gt;
&lt;br /&gt;
Make sure you have followed the [[QM-API_Server|QM Client Server setup guide]]&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
*[[User:Diccon|Diccon]] 11:05, 6 April 2009 (UTC) Development has been paused until JD3 is fully assessed and it is determined if QMCLient is to continue getting my attention. This lib still works, others are welcome to develop on the SVN repo. Ask for commit access.&lt;br /&gt;
* [[User:Diccon|Diccon]] 15:27, 9 March 2009 (UTC) Conditional Handling code is in, needs proper testing. Now have 34/46 command done, QMCall and a few others will be last because they take a bit of time/effort.&lt;br /&gt;
*[[User:Diccon|Diccon]] 18:41, 16 February 2009 (UTC) &#039;&#039;&#039;Solved&#039;&#039;&#039; Fixed this, not 100% sure what was really happening, but i rewrote the way the login packet is constructed, to make it clearer. This fixed it. Go, Play!&lt;br /&gt;
*[[User:Diccon|Diccon]] 19:36, 27 January 2009 (UTC) &amp;lt;strike&amp;gt;&#039;&#039;&#039;Warning&#039;&#039;&#039; Active bug found, i believe username padding is not working, some odd length usernames may cause a QMERROR 3000 for line 902, when trying to write to $LOGINS. I&#039;m working on it.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use==&lt;br /&gt;
[[#Download|Download]] from the GIT repo from below.&lt;br /&gt;
&lt;br /&gt;
Place this file in the same directory as the file that intends to use it, or place it in the library path for your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
In your php code Enter the following line at the top &lt;br /&gt;
  include &amp;quot;PHPQMLib.php&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The first you need to call the connect function, something like this;&lt;br /&gt;
  qmconnect(&amp;quot;my.qm.server.com&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACCOUNT&amp;quot;);&lt;br /&gt;
or &lt;br /&gt;
  qmconnect(&amp;quot;192.168.1.1&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACC&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
You can now use the variety of PHPQM functions like qmread(), &lt;br /&gt;
qmdelete(), etc as you wish.&lt;br /&gt;
When you are done, for tidiness issue a;&lt;br /&gt;
  qmdisconnect();&lt;br /&gt;
command, tidlying closing the socket.&lt;br /&gt;
&lt;br /&gt;
Each page/script will need to (re)connect. Connection persistence and pooling is &lt;br /&gt;
a bit bigger than this simple lib for now.&lt;br /&gt;
&lt;br /&gt;
Check out qmLastClause() QMPHPClient function to cater for commands&lt;br /&gt;
hitting ELSE, LOCKED, etc conditions&lt;br /&gt;
&lt;br /&gt;
Generally you can follow the QMClient docs in terms of server functionality.&lt;br /&gt;
Using the below defines() as what is and is not implemented.&lt;br /&gt;
Better PHP specific docs will be written later, when we go Beta&lt;br /&gt;
&lt;br /&gt;
==Supported Features==&lt;br /&gt;
QMPHPClient supports (24/46);&lt;br /&gt;
* Qm Quit&lt;br /&gt;
* GetError&lt;br /&gt;
* Set account&lt;br /&gt;
* Open&lt;br /&gt;
* Close&lt;br /&gt;
* Read&lt;br /&gt;
* ReadL (Untested)&lt;br /&gt;
* ReadLW (Untested/partial)&lt;br /&gt;
* ReadU (Untested)&lt;br /&gt;
* ReadUL(Untested/partial)&lt;br /&gt;
* Select&lt;br /&gt;
* ReadNext&lt;br /&gt;
* ClearSelect&lt;br /&gt;
* ReadList&lt;br /&gt;
* Release&lt;br /&gt;
* Write&lt;br /&gt;
* WriteU&lt;br /&gt;
* Delete&lt;br /&gt;
* DeleteU&lt;br /&gt;
* Execute&lt;br /&gt;
* Respond&lt;br /&gt;
* Logon&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
If you want a copy, it is released under the LGPL (i.e. can be used within commercial products, but is GPL itself). It is available on github here:&lt;br /&gt;
&lt;br /&gt;
 https://github.com/geneb/PHPQMClient&lt;br /&gt;
&lt;br /&gt;
==Todo Shortlist==&lt;br /&gt;
# Design and handle Conditional Execution, e.g. ELSE, LOCKED, ERROR, etc&lt;br /&gt;
# Finish implementing all simple commands/function (24/46 Done)&lt;br /&gt;
# Clean up error reporting&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API_SuportedFeatures&amp;diff=1161</id>
		<title>JavaQM-API SuportedFeatures</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API_SuportedFeatures&amp;diff=1161"/>
		<updated>2011-06-06T22:28:37Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two lists of features. Things that the QMClient system is capable of, marked with which of them the Java API supports. Then second is a list of additional tools and features the Java API provides for helping you work with MultiValu data, etc.&lt;br /&gt;
&lt;br /&gt;
== Protocol Features Supported ==&lt;br /&gt;
The Java API library supports the following features that the qmclient protocol provides;&lt;br /&gt;
*   1   Quit&lt;br /&gt;
*   2   Get extended error text&lt;br /&gt;
*   3   Set account&lt;br /&gt;
*   4   Open file&lt;br /&gt;
*   5   Close file&lt;br /&gt;
*   6   Read record (READ)&lt;br /&gt;
*   7   Read record (READL)&lt;br /&gt;
*   8   Read record (READL, waiting)&lt;br /&gt;
*   9   Read record (READU)&lt;br /&gt;
*  10   Read record (READU, waiting)&lt;br /&gt;
*  11   Select file&lt;br /&gt;
*  12   Read next id from select list&lt;br /&gt;
*  13   Clear select list&lt;br /&gt;
*  14   Read select list&lt;br /&gt;
*  15   Release lock&lt;br /&gt;
*  16   Write record&lt;br /&gt;
*  17   Write record, retaining lock&lt;br /&gt;
*  18   Delete record&lt;br /&gt;
*  19   Delete record, retaining lock&lt;br /&gt;
*  20   Call catalogued subroutine&lt;br /&gt;
*  21   Execute command&lt;br /&gt;
*  22   Response to input&lt;br /&gt;
*  23   End command &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  24   Network login&lt;br /&gt;
*  25   QMLocal login &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  26   Select index&lt;br /&gt;
*  27   Enter licensed package &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  28   Exit licensed package &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  29   Open QMNet file &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  30   Lock a record&lt;br /&gt;
*  31   Clearfile &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  32   Get file lock &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  33   Release file lock &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  34   Test lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  35   Fetch information about indices &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  36   Fetch information about an index &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  37   Select file and return list&lt;br /&gt;
*  38   Select index, returning indexed values&lt;br /&gt;
*  39   Select index, returning keys for value&lt;br /&gt;
*  40   Perform FILEINFO() action &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  41   READV and variants &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
*  42   Set index at extreme left&lt;br /&gt;
*  43   Set index at extreme right&lt;br /&gt;
*  44   Scan index to left&lt;br /&gt;
*  45   Scan index to right&lt;br /&gt;
*  46   Enable/disable mark mapping &#039;&#039;&#039;Not Implemented&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Java Multivalue Utilities ==&lt;br /&gt;
Non implemented&lt;br /&gt;
 * QMExtract()&lt;br /&gt;
 * QMReplace()&lt;br /&gt;
 * QMIns()&lt;br /&gt;
 * QMDel()&lt;br /&gt;
 * QMLocate()&lt;br /&gt;
 * QMChange()&lt;br /&gt;
 * QMDcount()&lt;br /&gt;
 * QMField()&lt;br /&gt;
 * QMMatch()&lt;br /&gt;
 * QMMatchfield()&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Branding_tasks&amp;diff=525</id>
		<title>Branding tasks</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Branding_tasks&amp;diff=525"/>
		<updated>2011-01-24T11:42:38Z</updated>

		<summary type="html">&lt;p&gt;Diccon: Undo Bot inserted revision 524 by LoraTrump (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things that need to be done to change the branding from &#039;QM&#039; or &#039;OpenQM&#039; to the new name (yet to be decided as of time of writing).&lt;br /&gt;
&lt;br /&gt;
Note: I have characterized tasks as &#039;important&#039; and &#039;less important&#039;, but of course this is subjective.  The items in the first category are things I think we should change before a release, whereas the second lot can be left until later if necessary.&lt;br /&gt;
&lt;br /&gt;
==System Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* Change the @QMSYS at-var (note: change in F-type VOC entries, too).  Change to &#039;@SYS&#039;?  &#039;@SYSPATH&#039;/&#039;@SYS.PATH&#039;?&lt;br /&gt;
* Change &#039;/usr/qmsys&#039; to something more appropriate.&lt;br /&gt;
* Change &#039;QM.VOCLIB&#039; to &#039;VOCLIB&#039;.&lt;br /&gt;
* Change &#039;/etc/qmconfig&#039; to something more appropriate. ([[User:Diccon|Diccon]] gotit)&lt;br /&gt;
* Change the various program names from &#039;qm*&#039; (except QMClient?).&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change all the source &#039;qm*.c&#039;s (except QMClient?).&lt;br /&gt;
* Change the VOC entry &#039;QM.ACCOUNTS&#039; to something else (what?)&lt;br /&gt;
* Remove the &#039;gpl&#039; bit from &#039;GPL.BP&#039;, &#039;gplsrc&#039;, &#039;gplobj&#039; etc.&lt;br /&gt;
* Rename QMPKG (is this much used?)&lt;br /&gt;
* Rename QMClient?&lt;br /&gt;
* Create an &#039;OpenQM Compatibility Mode&#039;?  (e.g. equate @QMSYS to @SYSPATH)&lt;br /&gt;
&lt;br /&gt;
==Code Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* Change the welcome message to something more appropriate.&lt;br /&gt;
* Change the QM Started message&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change the info in the headers in GPL.BP and gplsrc.&lt;br /&gt;
* Rename internal references to &#039;qm&#039; (e.g. function names).&lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
We need some!&lt;br /&gt;
&lt;br /&gt;
==Website Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* New domain name.&lt;br /&gt;
* New logo (get a temporary one quickly; permanent one can come later).&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change references to QM in Wiki.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=521</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=521"/>
		<updated>2010-08-07T13:42:32Z</updated>

		<summary type="html">&lt;p&gt;Diccon: Remove &amp;quot;Name change&amp;quot; ref. Old news now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to ScarletDME.org. [[ScarletDME]] is a OpenSource [[multivalue|MultiValue]] database, a community fork of [[OpenQM]] originally developed by [[Ladybridge]]. This project was founded on the 28th November 2008 to independently develop future versions of [[ScarletDME]] and contribute to [[OpenQM]]. While there are no longer regular official releases from [[Ladybridge]] we aim to support and develop for Scarlet to help our commercial sister, While providing a Free and open platform for Multi value development. &lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL if you wish to encourage and allow incorporation into proprietary products.  Contributors to [[ScarletDME]] are welcome to submit changes back to Ladybridge as well, for inclusion in Commercial QM. See [[Commercial submissions]] for details. We encourage submission to Ladybridge, the founder of this MultiValue database. We do recognise their processes are not as easy as traditional GPL projects. So we simply offer an easier forum for development with less stringent controls on contribution and participation.&lt;br /&gt;
&lt;br /&gt;
The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[[QMBASIC Enhancements]] - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
*[http://www.scarletdme.org/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[[Documentation]] - Documented differences from the Commercial Documentation (Check here first, then below)&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/scarletdme Register] then mailto:scarletdme@googlegroups.com &lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm or java client http://www.scarletdme.org/chat/&lt;br /&gt;
&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://scarletdme.org/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://www.scarletdme.org/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@dev.scarletdme.org&lt;br /&gt;
*[[Development snapshots]] - How to obtain, build, and upgrade using the snapshots.&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
*[[Commercial submissions]] - Sending stuff to Ladybridge&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of Scarlet, then send it to the [http://groups.google.co.uk/group/scarletdme general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of Scarlet (eg. php5 module) then send it to the [http://www.scarletdme.org/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
* [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
* [http://sourceforge.net/projects/jd3 JD3] is a socket based server for D3 ported to QM &lt;br /&gt;
* [http://www.billabong-services.co.uk/jd3/jd3php.html David Patterson&#039;s guide to using PHP with JD3] David&#039;s original page has disappeared (unable to contact), so here&#039;s the google cache&lt;br /&gt;
* [http://www.billabong-services.co.uk/jd3/jd3java.html David Patterson&#039;s guide to using Java with JD3] google cache again&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=503</id>
		<title>JavaQM-API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=503"/>
		<updated>2009-10-16T15:31:31Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Commercial Support */  updated Tesson weblink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Java API library is a native Java library, which allows you to access QM via the QMClient network interface.&lt;br /&gt;
&lt;br /&gt;
All you need is QMClient running on the server, the IP address, a valid username and password and the Account you want to access.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
Binary (Jar) download is available here: [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.jar JavaQMConnect-0.8.jar]&lt;br /&gt;
&lt;br /&gt;
To use simply download the Jar file and place it in the ClassPath or same directory as your own Java Program. See the example below for more details.&lt;br /&gt;
&lt;br /&gt;
===Source code===&lt;br /&gt;
LGPL licenced source code for this library are available in the following locations:&lt;br /&gt;
&lt;br /&gt;
The latest Source is available from the subversion repo [https://scarletdme.org/svn/qmvdb/JavaQMClient https://ScarletDME.org/svn/qmvdb/JavaQMClient]&lt;br /&gt;
  svn checkout https://scarletdme.org/svn/qmvdb/JavaQMClient/trunk&lt;br /&gt;
&lt;br /&gt;
Or as a source tar ball if you don&#039;t want to use Subversion [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.tar.gz JavaQMConnect-0.8.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Both of the above are structured by Netbeans IDE. It is not necessary to use Netbeans if you don&#039;t want to, thought I do recommend it. A simple text editor and the Ant build utility would be enough. Or other IDE&#039;s like Eclipse will import this structure fine.&lt;br /&gt;
&lt;br /&gt;
==Commercial Support==&lt;br /&gt;
For commercial support or new features Contact Adrian Tesson Associates ([http://www.tesson.co.uk/products/java-to-openqm-a-scarletdme http://www.Tesson.co.uk])&lt;br /&gt;
&lt;br /&gt;
==Supported Protocol Features==&lt;br /&gt;
For a full list of supported features Click [[JavaQM-API_SuportedFeatures | here]]&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Here is an example of how to use the JavaQM API Lib. Simply place the Jar in the library path or same directory as your classes or Jar file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import com.openqm.qmconnect.*;&lt;br /&gt;
&lt;br /&gt;
/** Example program that accesses QM with the Java API */&lt;br /&gt;
public class Example {&lt;br /&gt;
    Example() {&lt;br /&gt;
        try {&lt;br /&gt;
           &lt;br /&gt;
            /* Initialise the connection */&lt;br /&gt;
           QmConnection connection = QmConnection.create(&amp;quot;localhost&amp;quot;,4243);        &lt;br /&gt;
           &lt;br /&gt;
           /* Tell it to log in */&lt;br /&gt;
           connection.connect(&amp;quot;testuser&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;QMSYS&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Open Up the VOC file as an example */&lt;br /&gt;
           QmFile vocFile = connection.open(&amp;quot;VOC&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Read from the Opened VOC file */&lt;br /&gt;
           String record = connection.read(vocFile, &amp;quot;MESSAGES&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
           System.out.println(&amp;quot;This is the MESSAGES Record from the VOC file: &amp;quot; + record);&lt;br /&gt;
                   &lt;br /&gt;
           &lt;br /&gt;
        } catch (QMException e) {&lt;br /&gt;
            System.err.println(&amp;quot;Error occurred connecting to QM&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API_SuportedFeatures&amp;diff=491</id>
		<title>JavaQM-API SuportedFeatures</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API_SuportedFeatures&amp;diff=491"/>
		<updated>2009-09-14T12:24:50Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: There are two lists of features. Things that the QMClient system is capable of, marked with which of them the Java API supports. Then second is a list of additional tools and features the ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two lists of features. Things that the QMClient system is capable of, marked with which of them the Java API supports. Then second is a list of additional tools and features the Java API provides for helping you work with MultiValu data, etc.&lt;br /&gt;
&lt;br /&gt;
== Java Multivalue Utilities ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Protocol Features Supported ==&lt;br /&gt;
The Java API library supports the following features that the qmclient protocol provides;&lt;br /&gt;
*   1   Quit&lt;br /&gt;
*   2   Get extended error text&lt;br /&gt;
*   3   Set account&lt;br /&gt;
*   4   Open file&lt;br /&gt;
*   5   Close file&lt;br /&gt;
*   6   Read record (READ)&lt;br /&gt;
*   7   Read record (READL)&lt;br /&gt;
*   8   Read record (READL, waiting)&lt;br /&gt;
*   9   Read record (READU)&lt;br /&gt;
*  10   Read record (READU, waiting)&lt;br /&gt;
*  11   Select file&lt;br /&gt;
*  12   Read next id from select list&lt;br /&gt;
*  13   Clear select list&lt;br /&gt;
*  14   Read select list&lt;br /&gt;
*  15   Release lock&lt;br /&gt;
*  16   Write record&lt;br /&gt;
*  17   Write record, retaining lock&lt;br /&gt;
*  18   Delete record&lt;br /&gt;
*  19   Delete record, retaining lock&lt;br /&gt;
*  20   Call catalogued subroutine&lt;br /&gt;
*  21   Execute command&lt;br /&gt;
*  22   Response to input&lt;br /&gt;
*  23   End command &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  24   Network login&lt;br /&gt;
*  25   QMLocal login &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  26   Select index&lt;br /&gt;
*  27   Enter licensed package &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  28   Exit licensed package &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  29   Open QMNet file &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  30   Lock a record&lt;br /&gt;
*  31   Clearfile &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  32   Get file lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  33   Release file lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  34   Test lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  35   Fetch information about indices &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  36   Fetch information about an index &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  37   Select file and return list&lt;br /&gt;
*  38   Select index, returning indexed values&lt;br /&gt;
*  39   Select index, returning keys for value&lt;br /&gt;
*  40   Perform FILEINFO() action &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  41   READV and variants &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  42   Set index at extreme left&lt;br /&gt;
*  43   Set index at extreme right&lt;br /&gt;
*  44   Scan index to left&lt;br /&gt;
*  45   Scan index to right&lt;br /&gt;
*  46   Enable/disable mark mapping &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=490</id>
		<title>JavaQM-API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=490"/>
		<updated>2009-09-14T12:21:50Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Supported Protocol Features */  removed list, and put link to seperate page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Java API library is a native Java library, which allows you to access QM via the QMClient network interface.&lt;br /&gt;
&lt;br /&gt;
All you need is QMClient running on the server, the IP address, a valid username and password and the Account you want to access.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
Binary (Jar) download is available here: [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.jar JavaQMConnect-0.8.jar]&lt;br /&gt;
&lt;br /&gt;
To use simply download the Jar file and place it in the ClassPath or same directory as your own Java Program. See the example below for more details.&lt;br /&gt;
&lt;br /&gt;
===Source code===&lt;br /&gt;
LGPL licenced source code for this library are available in the following locations:&lt;br /&gt;
&lt;br /&gt;
The latest Source is available from the subversion repo [https://scarletdme.org/svn/qmvdb/JavaQMClient https://ScarletDME.org/svn/qmvdb/JavaQMClient]&lt;br /&gt;
  svn checkout https://scarletdme.org/svn/qmvdb/JavaQMClient/trunk&lt;br /&gt;
&lt;br /&gt;
Or as a source tar ball if you don&#039;t want to use Subversion [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.tar.gz JavaQMConnect-0.8.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Both of the above are structured by Netbeans IDE. It is not necessary to use Netbeans if you don&#039;t want to, thought I do recommend it. A simple text editor and the Ant build utility would be enough. Or other IDE&#039;s like Eclipse will import this structure fine.&lt;br /&gt;
&lt;br /&gt;
==Commercial Support==&lt;br /&gt;
For commercial support or new features Contact Adrian Tesson Associates (http://Tesson.co.uk)&lt;br /&gt;
&lt;br /&gt;
==Supported Protocol Features==&lt;br /&gt;
For a full list of supported features Click [[JavaQM-API_SuportedFeatures | here]]&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Here is an example of how to use the JavaQM API Lib. Simply place the Jar in the library path or same directory as your classes or Jar file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import com.openqm.qmconnect.*;&lt;br /&gt;
&lt;br /&gt;
/** Example program that accesses QM with the Java API */&lt;br /&gt;
public class Example {&lt;br /&gt;
    Example() {&lt;br /&gt;
        try {&lt;br /&gt;
           &lt;br /&gt;
            /* Initialise the connection */&lt;br /&gt;
           QmConnection connection = QmConnection.create(&amp;quot;localhost&amp;quot;,4243);        &lt;br /&gt;
           &lt;br /&gt;
           /* Tell it to log in */&lt;br /&gt;
           connection.connect(&amp;quot;testuser&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;QMSYS&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Open Up the VOC file as an example */&lt;br /&gt;
           QmFile vocFile = connection.open(&amp;quot;VOC&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Read from the Opened VOC file */&lt;br /&gt;
           String record = connection.read(vocFile, &amp;quot;MESSAGES&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
           System.out.println(&amp;quot;This is the MESSAGES Record from the VOC file: &amp;quot; + record);&lt;br /&gt;
                   &lt;br /&gt;
           &lt;br /&gt;
        } catch (QMException e) {&lt;br /&gt;
            System.err.println(&amp;quot;Error occurred connecting to QM&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=489</id>
		<title>JavaQM-API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=489"/>
		<updated>2009-09-14T12:18:57Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Java API library is a native Java library, which allows you to access QM via the QMClient network interface.&lt;br /&gt;
&lt;br /&gt;
All you need is QMClient running on the server, the IP address, a valid username and password and the Account you want to access.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
Binary (Jar) download is available here: [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.jar JavaQMConnect-0.8.jar]&lt;br /&gt;
&lt;br /&gt;
To use simply download the Jar file and place it in the ClassPath or same directory as your own Java Program. See the example below for more details.&lt;br /&gt;
&lt;br /&gt;
===Source code===&lt;br /&gt;
LGPL licenced source code for this library are available in the following locations:&lt;br /&gt;
&lt;br /&gt;
The latest Source is available from the subversion repo [https://scarletdme.org/svn/qmvdb/JavaQMClient https://ScarletDME.org/svn/qmvdb/JavaQMClient]&lt;br /&gt;
  svn checkout https://scarletdme.org/svn/qmvdb/JavaQMClient/trunk&lt;br /&gt;
&lt;br /&gt;
Or as a source tar ball if you don&#039;t want to use Subversion [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.tar.gz JavaQMConnect-0.8.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Both of the above are structured by Netbeans IDE. It is not necessary to use Netbeans if you don&#039;t want to, thought I do recommend it. A simple text editor and the Ant build utility would be enough. Or other IDE&#039;s like Eclipse will import this structure fine.&lt;br /&gt;
&lt;br /&gt;
==Commercial Support==&lt;br /&gt;
For commercial support or new features Contact Adrian Tesson Associates (http://Tesson.co.uk)&lt;br /&gt;
&lt;br /&gt;
==Supported Protocol Features==&lt;br /&gt;
The Java API library supports the following features that the qmclient protocol provides;&lt;br /&gt;
*   1   Quit&lt;br /&gt;
*   2   Get extended error text&lt;br /&gt;
*   3   Set account&lt;br /&gt;
*   4   Open file&lt;br /&gt;
*   5   Close file&lt;br /&gt;
*   6   Read record (READ)&lt;br /&gt;
*   7   Read record (READL)&lt;br /&gt;
*   8   Read record (READL, waiting)&lt;br /&gt;
*   9   Read record (READU)&lt;br /&gt;
*  10   Read record (READU, waiting)&lt;br /&gt;
*  11   Select file&lt;br /&gt;
*  12   Read next id from select list&lt;br /&gt;
*  13   Clear select list&lt;br /&gt;
*  14   Read select list&lt;br /&gt;
*  15   Release lock&lt;br /&gt;
*  16   Write record&lt;br /&gt;
*  17   Write record, retaining lock&lt;br /&gt;
*  18   Delete record&lt;br /&gt;
*  19   Delete record, retaining lock&lt;br /&gt;
*  20   Call catalogued subroutine&lt;br /&gt;
*  21   Execute command&lt;br /&gt;
*  22   Response to input&lt;br /&gt;
*  23   End command &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  24   Network login&lt;br /&gt;
*  25   QMLocal login &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  26   Select index&lt;br /&gt;
*  27   Enter licensed package &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  28   Exit licensed package &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  29   Open QMNet file &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  30   Lock a record&lt;br /&gt;
*  31   Clearfile &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  32   Get file lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  33   Release file lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  34   Test lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  35   Fetch information about indices &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  36   Fetch information about an index &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  37   Select file and return list&lt;br /&gt;
*  38   Select index, returning indexed values&lt;br /&gt;
*  39   Select index, returning keys for value&lt;br /&gt;
*  40   Perform FILEINFO() action &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  41   READV and variants &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  42   Set index at extreme left&lt;br /&gt;
*  43   Set index at extreme right&lt;br /&gt;
*  44   Scan index to left&lt;br /&gt;
*  45   Scan index to right&lt;br /&gt;
*  46   Enable/disable mark mapping &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Here is an example of how to use the JavaQM API Lib. Simply place the Jar in the library path or same directory as your classes or Jar file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import com.openqm.qmconnect.*;&lt;br /&gt;
&lt;br /&gt;
/** Example program that accesses QM with the Java API */&lt;br /&gt;
public class Example {&lt;br /&gt;
    Example() {&lt;br /&gt;
        try {&lt;br /&gt;
           &lt;br /&gt;
            /* Initialise the connection */&lt;br /&gt;
           QmConnection connection = QmConnection.create(&amp;quot;localhost&amp;quot;,4243);        &lt;br /&gt;
           &lt;br /&gt;
           /* Tell it to log in */&lt;br /&gt;
           connection.connect(&amp;quot;testuser&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;QMSYS&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Open Up the VOC file as an example */&lt;br /&gt;
           QmFile vocFile = connection.open(&amp;quot;VOC&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Read from the Opened VOC file */&lt;br /&gt;
           String record = connection.read(vocFile, &amp;quot;MESSAGES&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
           System.out.println(&amp;quot;This is the MESSAGES Record from the VOC file: &amp;quot; + record);&lt;br /&gt;
                   &lt;br /&gt;
           &lt;br /&gt;
        } catch (QMException e) {&lt;br /&gt;
            System.err.println(&amp;quot;Error occurred connecting to QM&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=488</id>
		<title>JavaQM-API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=488"/>
		<updated>2009-09-14T12:15:59Z</updated>

		<summary type="html">&lt;p&gt;Diccon: Added supported features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Java API library is a native Java library, which allows you to access QM via the QMClient network interface.&lt;br /&gt;
&lt;br /&gt;
All you need is QMClient running on the server, the IP address, a valid username and password and the Account you want to access.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
Binary (Jar) download is available here: [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.jar JavaQMConnect-0.8.jar]&lt;br /&gt;
&lt;br /&gt;
===Source code===&lt;br /&gt;
LGPL licenced source code for this library are available in the following locations:&lt;br /&gt;
&lt;br /&gt;
The latest Source is available from the subversion repo [https://scarletdme.org/svn/qmvdb/JavaQMClient https://ScarletDME.org/svn/qmvdb/JavaQMClient]&lt;br /&gt;
  svn checkout https://scarletdme.org/svn/qmvdb/JavaQMClient/trunk&lt;br /&gt;
&lt;br /&gt;
Or as a source tar ball if you don&#039;t want to use Subversion [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.tar.gz JavaQMConnect-0.8.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Both of the above are structured by Netbeans IDE. It is not necessary to use Netbeans if you don&#039;t want to, thought I do recommend it. A simple text editor and the Ant build utility would be enough. Or other IDE&#039;s like Eclipse will import this structure fine.&lt;br /&gt;
&lt;br /&gt;
==Commercial Support==&lt;br /&gt;
For commercial support or new features Contact Adrian Tesson Associates (http://Tesson.co.uk)&lt;br /&gt;
&lt;br /&gt;
==Supported Protocol Features==&lt;br /&gt;
The Java API library supports the following features that the qmclient protocol provides;&lt;br /&gt;
*   1   Quit&lt;br /&gt;
*   2   Get extended error text&lt;br /&gt;
*   3   Set account&lt;br /&gt;
*   4   Open file&lt;br /&gt;
*   5   Close file&lt;br /&gt;
*   6   Read record (READ)&lt;br /&gt;
*   7   Read record (READL)&lt;br /&gt;
*   8   Read record (READL, waiting)&lt;br /&gt;
*   9   Read record (READU)&lt;br /&gt;
*  10   Read record (READU, waiting)&lt;br /&gt;
*  11   Select file&lt;br /&gt;
*  12   Read next id from select list&lt;br /&gt;
*  13   Clear select list&lt;br /&gt;
*  14   Read select list&lt;br /&gt;
*  15   Release lock&lt;br /&gt;
*  16   Write record&lt;br /&gt;
*  17   Write record, retaining lock&lt;br /&gt;
*  18   Delete record&lt;br /&gt;
*  19   Delete record, retaining lock&lt;br /&gt;
*  20   Call catalogued subroutine&lt;br /&gt;
*  21   Execute command&lt;br /&gt;
*  22   Response to input&lt;br /&gt;
*  23   End command &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  24   Network login&lt;br /&gt;
*  25   QMLocal login &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  26   Select index&lt;br /&gt;
*  27   Enter licensed package &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  28   Exit licensed package &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  29   Open QMNet file &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  30   Lock a record&lt;br /&gt;
*  31   Clearfile &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  32   Get file lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  33   Release file lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  34   Test lock &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  35   Fetch information about indices &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  36   Fetch information about an index &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  37   Select file and return list&lt;br /&gt;
*  38   Select index, returning indexed values&lt;br /&gt;
*  39   Select index, returning keys for value&lt;br /&gt;
*  40   Perform FILEINFO() action &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  41   READV and variants &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
*  42   Set index at extreme left&lt;br /&gt;
*  43   Set index at extreme right&lt;br /&gt;
*  44   Scan index to left&lt;br /&gt;
*  45   Scan index to right&lt;br /&gt;
*  46   Enable/disable mark mapping &#039;&#039;&#039;Not Supported&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Here is an example of how to use the JavaQM API Lib. Simply place the Jar in the library path or same directory as your classes or Jar file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import com.openqm.qmconnect.*;&lt;br /&gt;
&lt;br /&gt;
/** Example program that accesses QM with the Java API */&lt;br /&gt;
public class Example {&lt;br /&gt;
    Example() {&lt;br /&gt;
        try {&lt;br /&gt;
           &lt;br /&gt;
            /* Initialise the connection */&lt;br /&gt;
           QmConnection connection = QmConnection.create(&amp;quot;localhost&amp;quot;,4243);        &lt;br /&gt;
           &lt;br /&gt;
           /* Tell it to log in */&lt;br /&gt;
           connection.connect(&amp;quot;testuser&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;QMSYS&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Open Up the VOC file as an example */&lt;br /&gt;
           QmFile vocFile = connection.open(&amp;quot;VOC&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Read from the Opened VOC file */&lt;br /&gt;
           String record = connection.read(vocFile, &amp;quot;MESSAGES&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
           System.out.println(&amp;quot;This is the MESSAGES Record from the VOC file: &amp;quot; + record);&lt;br /&gt;
                   &lt;br /&gt;
           &lt;br /&gt;
        } catch (QMException e) {&lt;br /&gt;
            System.err.println(&amp;quot;Error occurred connecting to QM&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=QM_Client_API&amp;diff=487</id>
		<title>QM Client API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=QM_Client_API&amp;diff=487"/>
		<updated>2009-09-11T15:58:16Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* API library&amp;#039;s */  updated Java lib status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
QM provides a remote API access to any client system that can get to the server via socket 4243, and obeys the protocol.&lt;br /&gt;
&lt;br /&gt;
==Server Setup==&lt;br /&gt;
QM is technically able to handle API connections about of the box. However your server will need some configuring. (RPM will do this for you in near future).&lt;br /&gt;
&lt;br /&gt;
[[QM-API Server | QM API Server setup guide]]&lt;br /&gt;
&lt;br /&gt;
==Protocol==&lt;br /&gt;
The following is a guide to the protocol that the server responds to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Currently a working document, far from perfect, but you get the idea:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.scarletdme.org/downloads/QMClient-Protocol.v0.3.alpha.pdf QMClient-Protocol.v0.3.alpha.pdf]&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
*[[User:Diccon|Diccon]] 15 Jan 2009 &#039;&#039;&#039;Update&#039;&#039;&#039; - The packet header docs have been updated, and the whole login process is pretty clean. The docs are missing a large number of the simpler commands, but they are pretty easy to figure out from the VBSRVR basic code in GPL.BP. I will write them out progressivly.&lt;br /&gt;
*[[User:Diccon|Diccon]] 12 Jan 2009 &#039;&#039;&#039;Resolved&#039;&#039;&#039; - Turns out it was the new server environment. However the Documentation is slightly wrong for the login protocol. Login is actually a server command not a special case. Will try and update the docs and debug the further issues on the test server environment.&lt;br /&gt;
*[[User:Diccon|Diccon]] 8 Dec 2008 &#039;&#039;&#039;Confirmed&#039;&#039;&#039; - Functioning Java-QM client for 2.4.17 does not work on 2.6.6. Exact reason why has yet to be determined. Should have some answers soon, new year 2009 has a need for the Java API on 266.&lt;br /&gt;
*[[User:Diccon|Diccon]] 7 December 2008 &#039;&#039;&#039;Warning:&#039;&#039;&#039; I have suspicions that the protocol changed for login quite dramatically for 2-6-6, as opposed to 2-4-17 which this Spec doc was originally based on.&lt;br /&gt;
&lt;br /&gt;
==API library&#039;s==&lt;br /&gt;
* C - native - Released&lt;br /&gt;
* Visual Basic - native - released (library only released with commercial?)&lt;br /&gt;
* [[JavaQM-API|Java API]] - native - Beta, stable working. LGPL release&lt;br /&gt;
* Delphi - Wrapper - (native expected Q1 2009)&lt;br /&gt;
* PHP - wrapper - Beta (TomDel)&lt;br /&gt;
* [[PHP Native API]] - Alpha stages but alive and kicking&lt;br /&gt;
* [[C++ Wrapper]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Qmlnxd&amp;diff=486</id>
		<title>Qmlnxd</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Qmlnxd&amp;diff=486"/>
		<updated>2009-08-29T14:42:34Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: The daemon that manages Inter process communication and locking for all client sessions/processes.   Launched by the -start option at command line.  == Startup == When it launches it close...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The daemon that manages Inter process communication and locking for all client sessions/processes. &lt;br /&gt;
&lt;br /&gt;
Launched by the -start option at command line.&lt;br /&gt;
&lt;br /&gt;
== Startup ==&lt;br /&gt;
When it launches it closes all potentially open files.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=485</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=485"/>
		<updated>2009-08-29T14:31:57Z</updated>

		<summary type="html">&lt;p&gt;Diccon: update format, added qmlnxd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any features, fixes or changes from the Last Ladybridge GPL release&lt;br /&gt;
&lt;br /&gt;
==Differences with OpenQM GPL== &lt;br /&gt;
Documentation on any changes since OpenQM 2.6-6 and LadyBridges documentation.&lt;br /&gt;
&lt;br /&gt;
*QMBASIC Enhancements - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
&lt;br /&gt;
==Developers documentation==&lt;br /&gt;
Documentation of the inner workings of Scarlet. Covers both existing OpenQM design and new features.&lt;br /&gt;
&lt;br /&gt;
[[Error messages]]&lt;br /&gt;
&lt;br /&gt;
[[B-Trees]] (no changes, just dev docs)&lt;br /&gt;
&lt;br /&gt;
[[qmlnxd]] The Server/Daemon that all Client processes communicate/co-ordinate with.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=483</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=483"/>
		<updated>2009-08-28T18:39:13Z</updated>

		<summary type="html">&lt;p&gt;Diccon: updated intro wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to ScarletDME.org. [[ScarletDME]] is a OpenSource [[multivalue|MultiValue]] database, a community fork of [[OpenQM]] originally developed by [[Ladybridge]]. This project was founded on the 28th November 2008 to independently develop future versions of [[ScarletDME]] and contribute to [[OpenQM]]. &lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL if you wish to encourage and allow incorporation into proprietary products.  Contributors to [[ScarletDME]] are welcome to submit changes back to Ladybridge as well, for inclusion in Commercial QM. See [[Commercial submissions]] for details. We encourage submission to Ladybridge, the founder of this MultiValue database. We do recognise their processes are not as easy as traditional GPL projects. So we simply offer an easier forum for development with less stringent controls on contribution and participation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name change&#039;&#039;&#039; &#039;&#039;Some of you may have noticed The new Logo (to your left) With the new Brand name, ScarletDME (Data Management Environment). This is to be the new name for the GPL project based on Ladybridges GPL OpenQM; something to distinguish GPL from commercial. Changing every name reference will take a little time to complete, until then the names GPL OpenQM and Scarlet/ScarletDME will be synonymous. You can reach this site via [http://www.scarletdme.org www.scarletdme.org].&lt;br /&gt;
The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[[QMBASIC Enhancements]] - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
*[http://www.scarletdme.org/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[[Documentation]] - Documented differences from the Commercial Documentation (Check here first, then below)&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/openqm-opensource Register] then mailto:openqm-opensource@googlegroups.com&lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm or java client http://www.scarletdme.org/chat/&lt;br /&gt;
&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://scarletdme.org/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://www.scarletdme.org/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@dev.scarletdme.org&lt;br /&gt;
*[[Development snapshots]] - How to obtain, build, and upgrade using the snapshots.&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
*[[Commercial submissions]] - Sending stuff to Ladybridge&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of OpenQM, then send it to the [http://groups.google.co.uk/group/openqm-opensource general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of OpenQM (eg. php5 module) then send it to the [http://www.scarletdme.org/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
* [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
* [http://sourceforge.net/projects/jd3 JD3] is a socket based server for D3 ported to QM &lt;br /&gt;
* [http://www.djpatterson.com/jd3php.html] David Patterson&#039;s guide to using PHP with JD3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=482</id>
		<title>JavaQM-API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=482"/>
		<updated>2009-08-27T16:48:16Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Download */  added source links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Java API library is a native Java library, which allows you to access QM via the QMClient network interface.&lt;br /&gt;
&lt;br /&gt;
All you need is QMClient running on the server, the IP address, a valid username and password and the Account you want to access.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Currently the API supports almost all of the Documented QMClient commands. Access to them is controlled by the main class QMConnection.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
Binary (Jar) download is available here: [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.jar JavaQMConnect-0.8.jar]&lt;br /&gt;
&lt;br /&gt;
===Source code===&lt;br /&gt;
LGPL licenced source code for this library are available in the following locations:&lt;br /&gt;
&lt;br /&gt;
The latest Source is available from the subversion repo [https://scarletdme.org/svn/qmvdb/JavaQMClient https://ScarletDME.org/svn/qmvdb/JavaQMClient]&lt;br /&gt;
  svn checkout https://scarletdme.org/svn/qmvdb/JavaQMClient/trunk&lt;br /&gt;
&lt;br /&gt;
Or as a source tar ball if you don&#039;t want to use Subversion [http://www.scarletdme.org/downloads/JavaQMConnect-0.8.tar.gz JavaQMConnect-0.8.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Both of the above are structured by Netbeans IDE. It is not necessary to use Netbeans if you don&#039;t want to, thought I do recommend it. A simple text editor and the Ant build utility would be enough. Or other IDE&#039;s like Eclipse will import this structure fine.&lt;br /&gt;
&lt;br /&gt;
==Commercial Support==&lt;br /&gt;
For commercial support or new features Contact Adrian Tesson Associates (http://Tesson.co.uk)&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Here is an example of how to use the JavaQM API Lib. Simply place the Jar in the library path or same directory as your classes or Jar file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import com.openqm.qmconnect.*;&lt;br /&gt;
&lt;br /&gt;
/** Example program that accesses QM with the Java API */&lt;br /&gt;
public class Example {&lt;br /&gt;
    Example() {&lt;br /&gt;
        try {&lt;br /&gt;
           &lt;br /&gt;
            /* Initialise the connection */&lt;br /&gt;
           QmConnection connection = QmConnection.create(&amp;quot;localhost&amp;quot;,4243);        &lt;br /&gt;
           &lt;br /&gt;
           /* Tell it to log in */&lt;br /&gt;
           connection.connect(&amp;quot;testuser&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;QMSYS&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Open Up the VOC file as an example */&lt;br /&gt;
           QmFile vocFile = connection.open(&amp;quot;VOC&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Read from the Opened VOC file */&lt;br /&gt;
           String record = connection.read(vocFile, &amp;quot;MESSAGES&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
           System.out.println(&amp;quot;This is the MESSAGES Record from the VOC file: &amp;quot; + record);&lt;br /&gt;
                   &lt;br /&gt;
           &lt;br /&gt;
        } catch (QMException e) {&lt;br /&gt;
            System.err.println(&amp;quot;Error occurred connecting to QM&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=463</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=463"/>
		<updated>2009-08-19T23:51:11Z</updated>

		<summary type="html">&lt;p&gt;Diccon: fixed gpl.openqm links to  scarletdme ones :( sad day Martin broke them&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to ScarletDME.org. [[ScarletDME]] is a OpenSource [[multivalue|MultiValue]] database, a community fork of [[OpenQM]] originally developed by [[Ladybridge]]. We aim to provide an environment where anyone can acquire, study and contribute to the [[ScarletDME]] project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name change&#039;&#039;&#039; &#039;&#039;Some of you may have noticed The new Logo (to your left) With the new Brand name, ScarletDME (Data Management Environment). This is to be the new name for the GPL project based on Ladybridges GPL OpenQM; something to distinguish GPL from commercial. Changing every name reference will take a little time to complete, until then the names GPL OpenQM and Scarlet/ScarletDME will be synonymous. You can reach this site via [http://www.scarletdme.org www.scarletdme.org].&lt;br /&gt;
&lt;br /&gt;
This project was founded on the 28th November 2008 to independently develop future versions of [[OpenQM]]. &lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL.  Naturally, contributors to [[ScarletDME]] are welcome to submit any changes that they may make back to Ladybridge as well for inclusion in Commercial QM. See [[Commercial submissions]] for details.&lt;br /&gt;
&lt;br /&gt;
The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[[QMBASIC Enhancements]] - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
*[http://www.scarletdme.org/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[[Documentation]] - Documented differences from the Commercial Documentation (Check here first, then below)&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/ Register] then mailto:openqm-opensource@googlegroups.com&lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm or java client http://www.scarletdme.org/chat/&lt;br /&gt;
&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://scarletdme.org/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://gpl.openqm.com/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@gpl.openqm.com&lt;br /&gt;
*[[Development snapshots]] - How to obtain, build, and upgrade using the snapshots.&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
*[[Commercial submissions]] - Sending stuff to Ladybridge&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of OpenQM, then send it to the [http://groups.google.co.uk/group/openqm-opensource general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of OpenQM (eg. php5 module) then send it to the [http://gpl.openqm.com/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
* [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
* [http://sourceforge.net/projects/jd3 JD3] is a socket based server for D3 ported to QM &lt;br /&gt;
* [http://www.djpatterson.com/jd3php.html] David Patterson&#039;s guide to using PHP with JD3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=462</id>
		<title>JavaQM-API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=462"/>
		<updated>2009-08-19T16:14:39Z</updated>

		<summary type="html">&lt;p&gt;Diccon: Added support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Java API library is a native Java library, which allows you to access QM via the QMClient network interface.&lt;br /&gt;
&lt;br /&gt;
All you need is QMClient running on the server, the IP address, a valid username and password and the Account you want to access.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Currently the API supports almost all of the Documented QMClient commands. Access to them is controlled by the main class QMConnection.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
For now, until we comb the code and put the LGPL into effect for the source a prevew Binary download is avaliable here: [http://www.scarletdme.org/downloads/JavaQMConnect-Preview.jar JavaQMConnect-Preview.jar]&lt;br /&gt;
&lt;br /&gt;
==Commercial Support==&lt;br /&gt;
For commercial support or new features Contact Adrian Tesson Associates (http://Tesson.co.uk)&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Here is an example of how to use the JavaQM API Lib. Simply place the Jar in the library path or same directory as your classes or Jar file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import com.openqm.qmconnect.*;&lt;br /&gt;
&lt;br /&gt;
/** Example program that accesses QM with the Java API */&lt;br /&gt;
public class Example {&lt;br /&gt;
    Example() {&lt;br /&gt;
        try {&lt;br /&gt;
           &lt;br /&gt;
            /* Initialise the connection */&lt;br /&gt;
           QmConnection connection = QmConnection.create(&amp;quot;localhost&amp;quot;,4243);        &lt;br /&gt;
           &lt;br /&gt;
           /* Tell it to log in */&lt;br /&gt;
           connection.connect(&amp;quot;testuser&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;QMSYS&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Open Up the VOC file as an example */&lt;br /&gt;
           QmFile vocFile = connection.open(&amp;quot;VOC&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Read from the Opened VOC file */&lt;br /&gt;
           String record = connection.read(vocFile, &amp;quot;MESSAGES&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
           System.out.println(&amp;quot;This is the MESSAGES Record from the VOC file: &amp;quot; + record);&lt;br /&gt;
                   &lt;br /&gt;
           &lt;br /&gt;
        } catch (QMException e) {&lt;br /&gt;
            System.err.println(&amp;quot;Error occurred connecting to QM&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=461</id>
		<title>JavaQM-API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=461"/>
		<updated>2009-08-19T16:01:58Z</updated>

		<summary type="html">&lt;p&gt;Diccon: added download preview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Java API library is a native Java library, which allows you to access QM via the QMClient network interface.&lt;br /&gt;
&lt;br /&gt;
All you need is QMClient running on the server, the IP address, a valid username and password and the Account you want to access.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Currently the API supports almost all of the Documented QMClient commands. Access to them is controlled by the main class QMConnection.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
For now, until we comb the code and put the LGPL into effect for the source a prevew Binary download is avaliable here: [http://www.scarletdme.org/downloads/JavaQMConnect-Preview.jar JavaQMConnect-Preview.jar]&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Here is an example of how to use the JavaQM API Lib. Simply place the Jar in the library path or same directory as your classes or Jar file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import com.openqm.qmconnect.*;&lt;br /&gt;
&lt;br /&gt;
/** Example program that accesses QM with the Java API */&lt;br /&gt;
public class Example {&lt;br /&gt;
    Example() {&lt;br /&gt;
        try {&lt;br /&gt;
           &lt;br /&gt;
            /* Initialise the connection */&lt;br /&gt;
           QmConnection connection = QmConnection.create(&amp;quot;localhost&amp;quot;,4243);        &lt;br /&gt;
           &lt;br /&gt;
           /* Tell it to log in */&lt;br /&gt;
           connection.connect(&amp;quot;testuser&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;QMSYS&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Open Up the VOC file as an example */&lt;br /&gt;
           QmFile vocFile = connection.open(&amp;quot;VOC&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Read from the Opened VOC file */&lt;br /&gt;
           String record = connection.read(vocFile, &amp;quot;MESSAGES&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
           System.out.println(&amp;quot;This is the MESSAGES Record from the VOC file: &amp;quot; + record);&lt;br /&gt;
                   &lt;br /&gt;
           &lt;br /&gt;
        } catch (QMException e) {&lt;br /&gt;
            System.err.println(&amp;quot;Error occurred connecting to QM&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=460</id>
		<title>JavaQM-API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=JavaQM-API&amp;diff=460"/>
		<updated>2009-08-18T16:49:41Z</updated>

		<summary type="html">&lt;p&gt;Diccon: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Java API library is a native Java library, which allows you to access QM via the QMClient network interface.&lt;br /&gt;
&lt;br /&gt;
All you need is QMClient running on the server, the IP address, a valid username and password and the Account you want to access.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
Currently the API supports almost all of the Documented QMClient commands. Access to them is controlled by the main class QMConnection.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Here is an example of how to use the JavaQM API Lib&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import com.openqm.qmconnect.*;&lt;br /&gt;
&lt;br /&gt;
/** Example program that accesses QM with the Java API */&lt;br /&gt;
public class Example {&lt;br /&gt;
    Example() {&lt;br /&gt;
        try {&lt;br /&gt;
           &lt;br /&gt;
            /* Initialise the connection */&lt;br /&gt;
           QmConnection connection = QmConnection.create(&amp;quot;localhost&amp;quot;,4243);        &lt;br /&gt;
           &lt;br /&gt;
           /* Tell it to log in */&lt;br /&gt;
           connection.connect(&amp;quot;testuser&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;QMSYS&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Open Up the VOC file as an example */&lt;br /&gt;
           QmFile vocFile = connection.open(&amp;quot;VOC&amp;quot;);&lt;br /&gt;
           &lt;br /&gt;
           /* Read from the Opened VOC file */&lt;br /&gt;
           String record = connection.read(vocFile, &amp;quot;MESSAGES&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
           System.out.println(&amp;quot;This is the MESSAGES Record from the VOC file: &amp;quot; + record);&lt;br /&gt;
                   &lt;br /&gt;
           &lt;br /&gt;
        } catch (QMException e) {&lt;br /&gt;
            System.err.println(&amp;quot;Error occurred connecting to QM&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=QM_Client_API&amp;diff=459</id>
		<title>QM Client API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=QM_Client_API&amp;diff=459"/>
		<updated>2009-08-18T16:10:22Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* API library&amp;#039;s */ Added link to JavaQMAPI page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
QM provides a remote API access to any client system that can get to the server via socket 4243, and obeys the protocol.&lt;br /&gt;
&lt;br /&gt;
==Server Setup==&lt;br /&gt;
QM is technically able to handle API connections about of the box. However your server will need some configuring. (RPM will do this for you in near future).&lt;br /&gt;
&lt;br /&gt;
[[QM-API Server | QM API Server setup guide]]&lt;br /&gt;
&lt;br /&gt;
==Protocol==&lt;br /&gt;
The following is a guide to the protocol that the server responds to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Currently a working document, far from perfect, but you get the idea:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://gpl.openqm.com/downloads/QMClient-Protocol.v0.3.alpha.pdf QMClient-Protocol.v0.3.alpha.pdf]&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
*[[User:Diccon|Diccon]] 15 Jan 2009 &#039;&#039;&#039;Update&#039;&#039;&#039; - The packet header docs have been updated, and the whole login process is pretty clean. The docs are missing a large number of the simpler commands, but they are pretty easy to figure out from the VBSRVR basic code in GPL.BP. I will write them out progressivly.&lt;br /&gt;
*[[User:Diccon|Diccon]] 12 Jan 2009 &#039;&#039;&#039;Resolved&#039;&#039;&#039; - Turns out it was the new server environment. However the Documentation is slightly wrong for the login protocol. Login is actually a server command not a special case. Will try and update the docs and debug the further issues on the test server environment.&lt;br /&gt;
*[[User:Diccon|Diccon]] 8 Dec 2008 &#039;&#039;&#039;Confirmed&#039;&#039;&#039; - Functioning Java-QM client for 2.4.17 does not work on 2.6.6. Exact reason why has yet to be determined. Should have some answers soon, new year 2009 has a need for the Java API on 266.&lt;br /&gt;
*[[User:Diccon|Diccon]] 7 December 2008 &#039;&#039;&#039;Warning:&#039;&#039;&#039; I have suspicions that the protocol changed for login quite dramatically for 2-6-6, as opposed to 2-4-17 which this Spec doc was originally based on.&lt;br /&gt;
&lt;br /&gt;
==API library&#039;s==&lt;br /&gt;
* C - native - Released&lt;br /&gt;
* Visual Basic - native - released (library only released with commercial?)&lt;br /&gt;
* [[JavaQM-API|Java API]] - native - Alpha stage&lt;br /&gt;
* Delphi - Wrapper - (native expected Q1 2009)&lt;br /&gt;
* PHP - wrapper - Beta (TomDel)&lt;br /&gt;
* [[PHP Native API]] - Alpha stages but alive and kicking&lt;br /&gt;
* [[C++ Wrapper]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=B-Trees&amp;diff=458</id>
		<title>B-Trees</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=B-Trees&amp;diff=458"/>
		<updated>2009-08-18T11:32:35Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: The system uses B-Trees or Binary Tree indexing structure for multiple uses. Primarily for indexing nominated fields in any given file (See CREATE.INDEX) They are also used internally for ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The system uses B-Trees or Binary Tree indexing structure for multiple uses. Primarily for indexing nominated fields in any given file (See CREATE.INDEX) They are also used internally for many areas that require sorting. Constructing a B-Tree from a list of items and then reading them off in order. Using the B-Tree as a sorting algorithm.&lt;br /&gt;
&lt;br /&gt;
An example of the use of the systems sorting technique is SSELECT (Programs/code called in order):&lt;br /&gt;
*op_dio4.c/op_sselect()&lt;br /&gt;
*GPL.BP/_SSELECT&lt;br /&gt;
*op_sort.c/op_sortinit()&lt;br /&gt;
*op_sort.c/op_sortadd()&lt;br /&gt;
*op_sort.c/op_sortdata()&lt;br /&gt;
*op_sort.c/op_sortclear()&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=457</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=457"/>
		<updated>2009-08-18T10:49:52Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Developers documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any features, fixes or changes from the Last Ladybridge GPL release&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
*QMBASIC Enhancements - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
&lt;br /&gt;
==Developers documentation==&lt;br /&gt;
[[Error messages]]&lt;br /&gt;
&lt;br /&gt;
[[B-Trees]] (no changes, just dev docs)&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=456</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=456"/>
		<updated>2009-08-18T10:49:34Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Developers documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any features, fixes or changes from the Last Ladybridge GPL release&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
*QMBASIC Enhancements - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
&lt;br /&gt;
==Developers documentation==&lt;br /&gt;
[[Error messages]]&lt;br /&gt;
[[B-Trees]] (no changes, just dev docs)&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=ScarletDME&amp;diff=455</id>
		<title>ScarletDME</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=ScarletDME&amp;diff=455"/>
		<updated>2009-08-10T16:13:54Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: ScarletDME a MultiValue Data Management Environment.   ==Data Management Environment== Scarlet is a Database management environment. A name to describe the close link of the powerful progr...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ScarletDME a MultiValue Data Management Environment. &lt;br /&gt;
&lt;br /&gt;
==Data Management Environment==&lt;br /&gt;
Scarlet is a Database management environment. A name to describe the close link of the powerful programming language built into the Database system itself. As well as many other fundamental principles such as distinct Meta data Dictionaries and it&#039;s MultiValue capabilities. Placing it as more than just a database. It owes many of its features to its grandfather system PICK, for which OpenQM was designed to be a direct modern replacement. Combining and enhancing it&#039;s legacy Scarlet seek to evolve some excellent principles such as MultiValue into a modern environment, invoking a powerful and yet easy to use development platform.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Forked from OpenQM on the 28th November 2008 to independently develop future versions of the Database system, Scarlet is a community based GPL product. The Name Scarlet was chosen 6th months after the original fork to aid in the distinction between the Open Source community product and Ladybridges GPL code.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Downloads&amp;diff=453</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Downloads&amp;diff=453"/>
		<updated>2009-08-09T11:28:25Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Source */  Updated svn hint to point to trunk, not root&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Files, sources, packages and apps for OpenQM&lt;br /&gt;
&lt;br /&gt;
==Packages==&lt;br /&gt;
*RPM package - [http://gpl.openqm.com/downloads/openqm-2.6-6.i386.rpm openqm-2.6-6.i386.rpm]&lt;br /&gt;
*Debian Package - [http://gpl.openqm.com/downloads/openqm-gpl_2.6.6_all.deb openqm-gpl_2.6.6_all.deb] (Note: this needs testing for upgrades)&lt;br /&gt;
*Debian Package - [http://gpl.openqm.com/downloads/openqm_2.4.17_all.deb openqm_2.4.17_all.deb]&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
Original Ladybridge Source Tarballs&lt;br /&gt;
&lt;br /&gt;
*[http://gpl.openqm.com/downloads/qmsrc_2-6-6.tgz qmsrc_2-6-6.tgz]&lt;br /&gt;
*[http://gpl.openqm.com/downloads/qmsrc_2-4-4.tgz qmsrc_2-4-4.tgz]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For latest build, issue this command in Linux for OpenQMVDB build (&#039;&#039;&#039;&#039;&#039;Recommended&#039;&#039;&#039;&#039;&#039;)&lt;br /&gt;
  svn checkout https://gpl.openqm.com/svn/qmvdb/openqm/trunk/&lt;br /&gt;
&#039;&#039;(Requires subversion client)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
*Coyote PICK webserver - [http://gpl.openqm.com/downloads/qmweb-gpl-2006-03-11.tar.gz qmweb-gpl-2006-03-11.tar.gz] - N.B. The source code for the daemon is missing.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Downloads&amp;diff=452</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Downloads&amp;diff=452"/>
		<updated>2009-08-09T11:27:08Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Packages */  Changed order of .deb&amp;#039;s so latest is above oldest&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Files, sources, packages and apps for OpenQM&lt;br /&gt;
&lt;br /&gt;
==Packages==&lt;br /&gt;
*RPM package - [http://gpl.openqm.com/downloads/openqm-2.6-6.i386.rpm openqm-2.6-6.i386.rpm]&lt;br /&gt;
*Debian Package - [http://gpl.openqm.com/downloads/openqm-gpl_2.6.6_all.deb openqm-gpl_2.6.6_all.deb] (Note: this needs testing for upgrades)&lt;br /&gt;
*Debian Package - [http://gpl.openqm.com/downloads/openqm_2.4.17_all.deb openqm_2.4.17_all.deb]&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
Original Ladybridge Source Tarballs&lt;br /&gt;
&lt;br /&gt;
*[http://gpl.openqm.com/downloads/qmsrc_2-6-6.tgz qmsrc_2-6-6.tgz]&lt;br /&gt;
*[http://gpl.openqm.com/downloads/qmsrc_2-4-4.tgz qmsrc_2-4-4.tgz]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For latest build, issue this command in Linux for OpenQMVDB build (&#039;&#039;&#039;&#039;&#039;Recommended&#039;&#039;&#039;&#039;&#039;)&lt;br /&gt;
  svn checkout https://gpl.openqm.com/svn/qmvdb&lt;br /&gt;
&#039;&#039;(Requires subversion client)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
*Coyote PICK webserver - [http://gpl.openqm.com/downloads/qmweb-gpl-2006-03-11.tar.gz qmweb-gpl-2006-03-11.tar.gz] - N.B. The source code for the daemon is missing.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=451</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=451"/>
		<updated>2009-08-09T11:24:05Z</updated>

		<summary type="html">&lt;p&gt;Diccon: updating into to Scarletish intro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to ScarletDME.org. [[ScarletDME]] is a OpenSource [[multivalue|MultiValue]] database, a community fork of [[OpenQM]] originally developed by [[Ladybridge]]. We aim to provide an environment where anyone can acquire, study and contribute to the [[ScarletDME]] project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name change&#039;&#039;&#039; &#039;&#039;Some of you may have noticed The new Logo (to your left) With the new Brand name, ScarletDME (Data Management Environment). This is to be the new name for the GPL project based on Ladybridges GPL OpenQM. Something to distinguish GPL from commercial. Changing every name reference will take a little time to complete, until then the name OpenQM and Scarlet(DME) will be synonymous. You can reach this site via [http://www.scarletdme.org www.scarletdme.org] or continue to use [http://gpl.openqm.com gpl.openqm.com].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This project was founded on the 28th November 2008 to independently develop future versions of [[OpenQM]]. &lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL.  Naturally, contributors to [[ScarletDME]] are welcome to submit any changes that they may make back to Ladybridge as well for inclusion in Commercial QM. See [[Commercial submissions]] for details.&lt;br /&gt;
&lt;br /&gt;
The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[[QMBASIC Enhancements]] - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
*[http://gpl.openqm.com/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[[Documentation]] - Documented differences from the Commercial Documentation (Check here first, then below)&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/openqm-opensource Register] then mailto:openqm-opensource@googlegroups.com&lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm or java client http://gpl.openqm.com/chat/&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://gpl.openqm.com/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://gpl.openqm.com/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@gpl.openqm.com&lt;br /&gt;
*[[Development snapshots]] - How to obtain, build, and upgrade using the snapshots.&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
*[[Commercial submissions]] - Sending stuff to Ladybridge&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of OpenQM, then send it to the [http://groups.google.co.uk/group/openqm-opensource general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of OpenQM (eg. php5 module) then send it to the [http://gpl.openqm.com/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
* [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
* [http://sourceforge.net/projects/jd3 JD3] is a socket based server for D3 ported to QM &lt;br /&gt;
* [http://www.djpatterson.com/jd3php.html] David Patterson&#039;s guide to using PHP with JD3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=450</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=450"/>
		<updated>2009-08-08T16:27:36Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Name change&#039;&#039;&#039; Some of you may have noticed The new Logo (to your left) With the new Brand name, ScarletDME (Data Management Environment). This is to be the new name for the GPL project based on Ladybridges GPL OpenQM. Something to distinguish GPL from commercial. Changing every name reference will take a little time to complete, until then the name OpenQM and Scarlet(DME) will be synonymous. You can reach this site via [http://www.scarletdme.org www.scarletdme.org] or continue to use [http://gpl.openqm.com gpl.openqm.com]&lt;br /&gt;
&lt;br /&gt;
gpl.openqm.com is dedicated to the development of a community distribution of [[OpenQM]], by providing an environment where anyone can acquire, study and contribute to the [[OpenQM]] [[multivalue]] database.&lt;br /&gt;
&lt;br /&gt;
This project is focussed purely upon the GPL implementation of [[OpenQM]], originally developed by [[Ladybridge]]. This project was founded on the 28th November 2008 to independently develop future versions of [[OpenQM]]. Naturally, contributors to [[OpenQM]] are welcome to submit any changes that they may make back to Ladybridge for inclusion in Commercial QM.&lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL.  There may be links on this site to non-conforming software, but that does not include them in this project.&lt;br /&gt;
&lt;br /&gt;
The subdomain that points to this website is granted by [[Ladybridge]], however the server hosting this project, and it&#039;s content is neither their responsibility, or under their control. The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[[QMBASIC Enhancements]] - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
*[http://gpl.openqm.com/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[[Documentation]] - Documented differences from the Commercial Documentation (Check here first, then below)&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/openqm-opensource Register] then mailto:openqm-opensource@googlegroups.com&lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm or java client http://gpl.openqm.com/chat/&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://gpl.openqm.com/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://gpl.openqm.com/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@gpl.openqm.com&lt;br /&gt;
*[[Development snapshots]] - How to obtain, build, and upgrade using the snapshots.&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
*[[Commercial submissions]] - Sending stuff to Ladybridge&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of OpenQM, then send it to the [http://groups.google.co.uk/group/openqm-opensource general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of OpenQM (eg. php5 module) then send it to the [http://gpl.openqm.com/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
* [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
* [http://sourceforge.net/projects/jd3 JD3] is a socket based server for D3 ported to QM &lt;br /&gt;
* [http://www.djpatterson.com/jd3php.html] David Patterson&#039;s guide to using PHP with JD3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=449</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=449"/>
		<updated>2009-08-08T16:20:03Z</updated>

		<summary type="html">&lt;p&gt;Diccon: added ScarletDME announcement/explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Name change&#039;&#039;&#039; Some of you may have noticed The new Logo (to your left) With the new Brand name, ScarletDME (Data Management Environment). This is to be the new name for the GPL project based on Ladybridges GPL OpenQM. Something to distinguish GPL from commercial. Changing every name reference will take a little time to complete, until then the name OpenQM and Scarlet(DME) will be synonymous. &lt;br /&gt;
&lt;br /&gt;
gpl.openqm.com is dedicated to the development of a community distribution of [[OpenQM]], by providing an environment where anyone can acquire, study and contribute to the [[OpenQM]] [[multivalue]] database.&lt;br /&gt;
&lt;br /&gt;
This project is focussed purely upon the GPL implementation of [[OpenQM]], originally developed by [[Ladybridge]]. This project was founded on the 28th November 2008 to independently develop future versions of [[OpenQM]]. Naturally, contributors to [[OpenQM]] are welcome to submit any changes that they may make back to Ladybridge for inclusion in Commercial QM.&lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL.  There may be links on this site to non-conforming software, but that does not include them in this project.&lt;br /&gt;
&lt;br /&gt;
The subdomain that points to this website is granted by [[Ladybridge]], however the server hosting this project, and it&#039;s content is neither their responsibility, or under their control. The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[[QMBASIC Enhancements]] - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
*[http://gpl.openqm.com/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[[Documentation]] - Documented differences from the Commercial Documentation (Check here first, then below)&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/openqm-opensource Register] then mailto:openqm-opensource@googlegroups.com&lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm or java client http://gpl.openqm.com/chat/&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://gpl.openqm.com/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://gpl.openqm.com/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@gpl.openqm.com&lt;br /&gt;
*[[Development snapshots]] - How to obtain, build, and upgrade using the snapshots.&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
*[[Commercial submissions]] - Sending stuff to Ladybridge&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of OpenQM, then send it to the [http://groups.google.co.uk/group/openqm-opensource general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of OpenQM (eg. php5 module) then send it to the [http://gpl.openqm.com/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
* [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
* [http://sourceforge.net/projects/jd3 JD3] is a socket based server for D3 ported to QM &lt;br /&gt;
* [http://www.djpatterson.com/jd3php.html] David Patterson&#039;s guide to using PHP with JD3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Error_messages&amp;diff=448</id>
		<title>Error messages</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Error_messages&amp;diff=448"/>
		<updated>2009-08-04T15:09:37Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: Programs covered by this note: *k_error *sysmsg  When something goes wrong the C code generally calls k_error (in src/k_error.c) with a text message pulled from the Pick file MESSAGES by s...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Programs covered by this note:&lt;br /&gt;
*k_error&lt;br /&gt;
*sysmsg&lt;br /&gt;
&lt;br /&gt;
When something goes wrong the C code generally calls k_error (in src/k_error.c) with a text message pulled from the Pick file MESSAGES by sysmsg() (src/messages.c).&lt;br /&gt;
&lt;br /&gt;
Each entry in MESSAGES is keyed by the QM internal error code. These messages contain C style printf codes (eg %d for an integer %s for a char string) which can be passed into k_error as additional params and will be inserted into these messages. This method allows a generic message to be displayed with circumstantial information inserted. &lt;br /&gt;
&lt;br /&gt;
Ironically it does mean the Messages in the data file are fairly well tied to the hard coded number and type of params that are passed to k_error.&lt;br /&gt;
&lt;br /&gt;
When changing messages beware not to alter the %&#039;s such that places you aren&#039;t working on can still call k_error meaningfully.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=447</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=447"/>
		<updated>2009-08-04T14:57:26Z</updated>

		<summary type="html">&lt;p&gt;Diccon: added dev docs, and error message&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any features, fixes or changes from the Last Ladybridge GPL release&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
*QMBASIC Enhancements - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
&lt;br /&gt;
==Developers documentation==&lt;br /&gt;
[[Error messages]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=446</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Documentation&amp;diff=446"/>
		<updated>2009-06-09T22:00:37Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: Any features, fixes or changes from the Last Ladybridge GPL release    *QMBASIC Enhancements - QMBASIC features that are custom or were not part of the original GPL release.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any features, fixes or changes from the Last Ladybridge GPL release&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
*QMBASIC Enhancements - QMBASIC features that are custom or were not part of the original GPL release.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=445</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=445"/>
		<updated>2009-06-09T21:58:53Z</updated>

		<summary type="html">&lt;p&gt;Diccon: Added Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;gpl.openqm.com is dedicated to the development of a community distribution of [[OpenQM]], by providing an environment where anyone can acquire, study and contribute to the [[OpenQM]] [[multivalue]] database.&lt;br /&gt;
&lt;br /&gt;
This project is focussed purely upon the GPL implementation of [[OpenQM]], originally developed by [[Ladybridge]]. This project was founded on the 28th November 2008 to independently develop future versions of [[OpenQM]]. Naturally, contributors to [[OpenQM]] are welcome to submit any changes that they may make back to Ladybridge for inclusion in Commercial QM.&lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL.  There may be links on this site to non-conforming software, but that does not include them in this project.&lt;br /&gt;
&lt;br /&gt;
The subdomain that points to this website is granted by [[Ladybridge]], however the server hosting this project, and it&#039;s content is neither their responsibility, or under their control. The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[[QMBASIC Enhancements]] - QMBASIC features that are custom or were not part of the original GPL release.&lt;br /&gt;
*[http://gpl.openqm.com/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[[Documentation]] - Documented differences from the Commercial Documentation (Check here first, then below)&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/openqm-opensource Register] then mailto:openqm-opensource@googlegroups.com&lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm or java client http://gpl.openqm.com/chat/&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://gpl.openqm.com/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://gpl.openqm.com/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@gpl.openqm.com&lt;br /&gt;
*[[Development snapshots]] - How to obtain, build, and upgrade using the snapshots.&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
*[[Commercial submissions]] - Sending stuff to Ladybridge&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of OpenQM, then send it to the [http://groups.google.co.uk/group/openqm-opensource general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of OpenQM (eg. php5 module) then send it to the [http://gpl.openqm.com/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
* [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
* [http://sourceforge.net/projects/jd3 JD3] is a socket based server for D3 ported to QM &lt;br /&gt;
* [http://www.djpatterson.com/jd3php.html] David Patterson&#039;s guide to using PHP with JD3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Branding_tasks&amp;diff=429</id>
		<title>Branding tasks</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Branding_tasks&amp;diff=429"/>
		<updated>2009-05-16T17:22:43Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Important */  added one&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things that need to be done to change the branding from &#039;QM&#039; or &#039;OpenQM&#039; to the new name (yet to be decided as of time of writing).&lt;br /&gt;
&lt;br /&gt;
Note: I have characterized tasks as &#039;important&#039; and &#039;less important&#039;, but of course this is subjective.  The items in the first category are things I think we should change before a release, whereas the second lot can be left until later if necessary.&lt;br /&gt;
&lt;br /&gt;
==System Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* Change the @QMSYS at-var (note: change in F-type VOC entries, too).  Change to &#039;@SYS&#039;?  &#039;@SYSPATH&#039;/&#039;@SYS.PATH&#039;?&lt;br /&gt;
* Change &#039;/usr/qmsys&#039; to something more appropriate.&lt;br /&gt;
* Change &#039;QM.VOCLIB&#039; to &#039;VOCLIB&#039;.&lt;br /&gt;
* Change &#039;/etc/qmconfig&#039; to something more appropriate. ([[User:Diccon|Diccon]] gotit)&lt;br /&gt;
* Change the various program names from &#039;qm*&#039; (except QMClient?).&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change all the source &#039;qm*.c&#039;s (except QMClient?).&lt;br /&gt;
* Change the VOC entry &#039;QM.ACCOUNTS&#039; to something else (what?)&lt;br /&gt;
* Remove the &#039;gpl&#039; bit from &#039;GPL.BP&#039;, &#039;gplsrc&#039;, &#039;gplobj&#039; etc.&lt;br /&gt;
* Rename QMPKG (is this much used?)&lt;br /&gt;
* Rename QMClient?&lt;br /&gt;
* Create an &#039;OpenQM Compatibility Mode&#039;?  (e.g. equate @QMSYS to @SYSPATH)&lt;br /&gt;
&lt;br /&gt;
==Code Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* Change the welcome message to something more appropriate.&lt;br /&gt;
* Change the QM Started message&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change the info in the headers in GPL.BP and gplsrc.&lt;br /&gt;
* Rename internal references to &#039;qm&#039; (e.g. function names).&lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
We need some!&lt;br /&gt;
&lt;br /&gt;
==Website Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* New domain name.&lt;br /&gt;
* New logo (get a temporary one quickly; permanent one can come later).&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change references to QM in Wiki.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Talk:Branding_tasks&amp;diff=424</id>
		<title>Talk:Branding tasks</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Talk:Branding_tasks&amp;diff=424"/>
		<updated>2009-05-15T01:35:57Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change the @QMSYS at-var (note: change in F-type VOC entries, too). Change to &#039;@SYS&#039;? &lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] @SYS sounds fine to me, either that or @SYSDIR&lt;br /&gt;
::[[User:Diccon|Diccon]] 01:35, 15 May 2009 (UTC) This one is going to be a bastard, 56 matches by grep, in both text source files, and impressivly it found references in Binary files like the VOC too (Yeay Grep). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change &#039;/usr/qmsys&#039; to something more appropriate.&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] Suggestions? /usr/scarlet /usr/scarletsys, easy and very subjective, as it depends on the config file. Only applicable to installers and packages.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Change &#039;/etc/qmconfig&#039; to something more appropriate. [[User:Diccon|Diccon]] I got this one&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] Suggests /etc/scarlet.conf, more in line with traditional Linux conf names&lt;br /&gt;
&lt;br /&gt;
::[[User:Diccon|Diccon]] 01:18, 15 May 2009 (UTC) Also needs QMCONF environment variable renaming, going for SCARLET_CONF for now.&lt;br /&gt;
&lt;br /&gt;
Change the various program names from &#039;qm*&#039; (except QMClient?).&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]]Trickey one this, to what? i suggest short names. &amp;quot;scarlet&amp;quot;, &amp;quot;scrlt&amp;quot;, &amp;quot;sdme&amp;quot;??&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Branding_tasks&amp;diff=423</id>
		<title>Branding tasks</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Branding_tasks&amp;diff=423"/>
		<updated>2009-05-15T01:26:44Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* Important */  marked qmconfig as mine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things that need to be done to change the branding from &#039;QM&#039; or &#039;OpenQM&#039; to the new name (yet to be decided as of time of writing).&lt;br /&gt;
&lt;br /&gt;
Note: I have characterized tasks as &#039;important&#039; and &#039;less important&#039;, but of course this is subjective.  The items in the first category are things I think we should change before a release, whereas the second lot can be left until later if necessary.&lt;br /&gt;
&lt;br /&gt;
==System Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* Change the @QMSYS at-var (note: change in F-type VOC entries, too).  Change to &#039;@SYS&#039;?  &#039;@SYSPATH&#039;/&#039;@SYS.PATH&#039;?&lt;br /&gt;
* Change &#039;/usr/qmsys&#039; to something more appropriate.&lt;br /&gt;
* Change &#039;QM.VOCLIB&#039; to &#039;VOCLIB&#039;.&lt;br /&gt;
* Change &#039;/etc/qmconfig&#039; to something more appropriate. ([[User:Diccon|Diccon]] gotit)&lt;br /&gt;
* Change the various program names from &#039;qm*&#039; (except QMClient?).&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change all the source &#039;qm*.c&#039;s (except QMClient?).&lt;br /&gt;
* Change the VOC entry &#039;QM.ACCOUNTS&#039; to something else (what?)&lt;br /&gt;
* Remove the &#039;gpl&#039; bit from &#039;GPL.BP&#039;, &#039;gplsrc&#039;, &#039;gplobj&#039; etc.&lt;br /&gt;
* Rename QMPKG (is this much used?)&lt;br /&gt;
* Rename QMClient?&lt;br /&gt;
* Create an &#039;OpenQM Compatibility Mode&#039;?  (e.g. equate @QMSYS to @SYSPATH)&lt;br /&gt;
&lt;br /&gt;
==Code Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* Change the welcome message to something more appropriate.&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change the info in the headers in GPL.BP and gplsrc.&lt;br /&gt;
* Rename internal references to &#039;qm&#039; (e.g. function names).&lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
We need some!&lt;br /&gt;
&lt;br /&gt;
==Website Changes==&lt;br /&gt;
===Important===&lt;br /&gt;
* New domain name.&lt;br /&gt;
* New logo (get a temporary one quickly; permanent one can come later).&lt;br /&gt;
&lt;br /&gt;
===Less Important===&lt;br /&gt;
* Change references to QM in Wiki.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Talk:Branding_tasks&amp;diff=422</id>
		<title>Talk:Branding tasks</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Talk:Branding_tasks&amp;diff=422"/>
		<updated>2009-05-15T01:26:12Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change the @QMSYS at-var (note: change in F-type VOC entries, too). Change to &#039;@SYS&#039;? &lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] @SYS sounds fine to me, either that or @SYSDIR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change &#039;/usr/qmsys&#039; to something more appropriate.&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] Suggestions? /usr/scarlet /usr/scarletsys, easy and very subjective, as it depends on the config file. Only applicable to installers and packages.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Change &#039;/etc/qmconfig&#039; to something more appropriate. [[User:Diccon|Diccon]] I got this one&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] Suggests /etc/scarlet.conf, more in line with traditional Linux conf names&lt;br /&gt;
&lt;br /&gt;
::[[User:Diccon|Diccon]] 01:18, 15 May 2009 (UTC) Also needs QMCONF environment variable renaming, going for SCARLET_CONF for now.&lt;br /&gt;
&lt;br /&gt;
Change the various program names from &#039;qm*&#039; (except QMClient?).&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]]Trickey one this, to what? i suggest short names. &amp;quot;scarlet&amp;quot;, &amp;quot;scrlt&amp;quot;, &amp;quot;sdme&amp;quot;??&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Talk:Branding_tasks&amp;diff=421</id>
		<title>Talk:Branding tasks</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Talk:Branding_tasks&amp;diff=421"/>
		<updated>2009-05-15T01:18:36Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change the @QMSYS at-var (note: change in F-type VOC entries, too). Change to &#039;@SYS&#039;? &lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] @SYS sounds fine to me, either that or @SYSDIR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change &#039;/usr/qmsys&#039; to something more appropriate.&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] Suggestions? /usr/scarlet /usr/scarletsys, easy and very subjective, as it depends on the config file. Only applicable to installers and packages.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Change &#039;/etc/qmconfig&#039; to something more appropriate. &lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] Suggests /etc/scarlet.conf, more in line with traditional Linux conf names&lt;br /&gt;
&lt;br /&gt;
::[[User:Diccon|Diccon]] 01:18, 15 May 2009 (UTC) Also needs QMCONF environment variable renaming, going for SCARLET_CONF for now.&lt;br /&gt;
&lt;br /&gt;
Change the various program names from &#039;qm*&#039; (except QMClient?).&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]]Trickey one this, to what? i suggest short names. &amp;quot;scarlet&amp;quot;, &amp;quot;scrlt&amp;quot;, &amp;quot;sdme&amp;quot;??&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Talk:Branding_tasks&amp;diff=420</id>
		<title>Talk:Branding tasks</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Talk:Branding_tasks&amp;diff=420"/>
		<updated>2009-05-15T01:12:10Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: Change the @QMSYS at-var (note: change in F-type VOC entries, too). Change to &amp;#039;@SYS&amp;#039;?   :~~~ @SYS sounds fine to me, either that or @SYSDIR   Change &amp;#039;/usr/qmsys&amp;#039; to something more appropri...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Change the @QMSYS at-var (note: change in F-type VOC entries, too). Change to &#039;@SYS&#039;? &lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] @SYS sounds fine to me, either that or @SYSDIR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change &#039;/usr/qmsys&#039; to something more appropriate.&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] Suggestions? /usr/scarlet /usr/scarletsys, easy and very subjective, as it depends on the config file. Only applicable to installers and packages.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Change &#039;/etc/qmconfig&#039; to something more appropriate. &lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]] Suggests /etc/scarlet.conf, more in line with traditional Linux conf names&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change the various program names from &#039;qm*&#039; (except QMClient?).&lt;br /&gt;
&lt;br /&gt;
:[[User:Diccon|Diccon]]Trickey one this, to what? i suggest short names. &amp;quot;scarlet&amp;quot;, &amp;quot;scrlt&amp;quot;, &amp;quot;sdme&amp;quot;??&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Talk:Using_your_own_editor&amp;diff=410</id>
		<title>Talk:Using your own editor</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Talk:Using_your_own_editor&amp;diff=410"/>
		<updated>2009-05-01T12:05:28Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Diccon|Diccon]] 12:16, 27 April 2009 (UTC) - Few suggestions Tom. &lt;br /&gt;
&lt;br /&gt;
#Since this is not specific to VIM, can you generalise the var names and the command itself. I know it ultimately calls vim as it is, but simply exchanging the command var means it can be anything as I understand your code (Nano, vi, hell Kate if you have X windows). Called it EDITOR in mine, which is too long a name IMO, and of course EDIT and ED exist :) Any other good names would be good (suggestions?). &lt;br /&gt;
#It currently screams if you do not have the syntax highlighting qmbasic.vim file there. Either note that the file is not optional or reduce the screaming warning volume. This could break the above mentioned generic nature too, perhaps parametrise it? I&#039;ve not looked at that bit of code.&lt;br /&gt;
#Can we have a fail-over question asked if you don&#039;t provide details, in a QM Style. Ie no file name, then ask Filename?.. etc. Partly to be consistent, but also because it smooths the CLI flow if you miss a step. ? query function at this point is too much to ask IMO at this time.&lt;br /&gt;
&lt;br /&gt;
Given the above i think it&#039;s idea to go into workdevbranch1.&lt;br /&gt;
&lt;br /&gt;
:[[User:Karaken12|karaken12]] 13:18, 27 April 2009 (UTC) - The reason for the name is mostly historical -- I wrote this thing so I could use Vim, without thinking about anything else.  Personally I&#039;d rather keep it as Vim for now, and you can rename it if you want to use something else.  For #2, I agree this is wrong.  What it should do is check if the file exists, and then only add the extra bit to the line if it&#039;s there.  Easily done, but I haven&#039;t done it because I never needed to -- see point 1.  :o)  For point three, that might be a good idea, if that&#039;s what people want to do.  I rather thought it already did that, but I guess not.&lt;br /&gt;
&lt;br /&gt;
[[User:Diccon|Diccon]] 12:43, 27 April 2009 (UTC) Also i have some ideas about Dynamic files. Simply Write a BASIC precursor that copies the indervidual record being requested to a TEMP Directory file. When the editor finishes copy back the temp file over the record. If nothing has been altered and the external prog just exited, then you will be copying back an identicle record. If it was altered then the edits are copied in. No clever detection of alterations are needed. This can even implement record locking if you lock before the shell execute and the BASIC prog returns and releases after you exit.&lt;br /&gt;
&lt;br /&gt;
:[[User:Karaken12|karaken12]] 13:18, 27 April 2009 (UTC) - This is, in fact, exactly what it already does.  :o)  But I&#039;m working on some sneaky things that might render this question moot.  *taps side of nose*&lt;br /&gt;
:: [[User:Diccon|Diccon]] 12:05, 1 May 2009 (UTC) - I Quote: &#039;&#039;&amp;quot;DISCLAIMER: If you use this program to edit a non-directory file, it will overwrite it when you have finished editing. It is very unsafe,...etc&amp;quot;&#039;&#039;. From this i thought you were suggesting it overwrites the whole dynamic file, instead of overwriting the indervidual record. Which is what I&#039;m suggesting. Addmittedly I stared at the mass of code and havent read it through.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Talk:Using_your_own_editor&amp;diff=409</id>
		<title>Talk:Using your own editor</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Talk:Using_your_own_editor&amp;diff=409"/>
		<updated>2009-05-01T12:05:03Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Diccon|Diccon]] 12:16, 27 April 2009 (UTC) - Few suggestions Tom. &lt;br /&gt;
&lt;br /&gt;
#Since this is not specific to VIM, can you generalise the var names and the command itself. I know it ultimately calls vim as it is, but simply exchanging the command var means it can be anything as I understand your code (Nano, vi, hell Kate if you have X windows). Called it EDITOR in mine, which is too long a name IMO, and of course EDIT and ED exist :) Any other good names would be good (suggestions?). &lt;br /&gt;
#It currently screams if you do not have the syntax highlighting qmbasic.vim file there. Either note that the file is not optional or reduce the screaming warning volume. This could break the above mentioned generic nature too, perhaps parametrise it? I&#039;ve not looked at that bit of code.&lt;br /&gt;
#Can we have a fail-over question asked if you don&#039;t provide details, in a QM Style. Ie no file name, then ask Filename?.. etc. Partly to be consistent, but also because it smooths the CLI flow if you miss a step. ? query function at this point is too much to ask IMO at this time.&lt;br /&gt;
&lt;br /&gt;
Given the above i think it&#039;s idea to go into workdevbranch1.&lt;br /&gt;
&lt;br /&gt;
:[[User:Karaken12|karaken12]] 13:18, 27 April 2009 (UTC) - The reason for the name is mostly historical -- I wrote this thing so I could use Vim, without thinking about anything else.  Personally I&#039;d rather keep it as Vim for now, and you can rename it if you want to use something else.  For #2, I agree this is wrong.  What it should do is check if the file exists, and then only add the extra bit to the line if it&#039;s there.  Easily done, but I haven&#039;t done it because I never needed to -- see point 1.  :o)  For point three, that might be a good idea, if that&#039;s what people want to do.  I rather thought it already did that, but I guess not.&lt;br /&gt;
&lt;br /&gt;
[[User:Diccon|Diccon]] 12:43, 27 April 2009 (UTC) Also i have some ideas about Dynamic files. Simply Write a BASIC precursor that copies the indervidual record being requested to a TEMP Directory file. When the editor finishes copy back the temp file over the record. If nothing has been altered and the external prog just exited, then you will be copying back an identicle record. If it was altered then the edits are copied in. No clever detection of alterations are needed. This can even implement record locking if you lock before the shell execute and the BASIC prog returns and releases after you exit.&lt;br /&gt;
&lt;br /&gt;
:[[User:Karaken12|karaken12]] 13:18, 27 April 2009 (UTC) - This is, in fact, exactly what it already does.  :o)  But I&#039;m working on some sneaky things that might render this question moot.  *taps side of nose*&lt;br /&gt;
:: [[User:Diccon|Diccon]] 12:05, 1 May 2009 (UTC) - I Quote: &#039;&#039;&amp;quot;DISCLAIMER: If you use this program to edit a non-directory file, it will overwrite it when you have finished editing. It is very unsafe,...etc&amp;quot;&#039;&#039;. From this i thought you were suggesting it overwrites the whole directory file, instead of overwriting the indervidual record. Which is what I&#039;m suggesting. Addmittedly I stared at the mass of code and havent read it through.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Talk:Using_your_own_editor&amp;diff=405</id>
		<title>Talk:Using your own editor</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Talk:Using_your_own_editor&amp;diff=405"/>
		<updated>2009-04-27T12:43:04Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Diccon|Diccon]] 12:16, 27 April 2009 (UTC) - Few suggestions Tom. &lt;br /&gt;
&lt;br /&gt;
#Since this is not specific to VIM, can you generalise the var names and the command itself. I know it ultimately calls vim as it is, but simply exchanging the command var means it can be anything as I understand your code (Nano, vi, hell Kate if you have X windows). Called it EDITOR in mine, which is too long a name IMO, and of course EDIT and ED exist :) Any other good names would be good (suggestions?). &lt;br /&gt;
#It currently screams if you do not have the syntax highlighting qmbasic.vim file there. Either note that the file is not optional or reduce the screaming warning volume. This could break the above mentioned generic nature too, perhaps parametrise it? I&#039;ve not looked at that bit of code.&lt;br /&gt;
#Can we have a fail-over question asked if you don&#039;t provide details, in a QM Style. Ie no file name, then ask Filename?.. etc. Partly to be consistent, but also because it smooths the CLI flow if you miss a step. ? query function at this point is too much to ask IMO at this time.&lt;br /&gt;
&lt;br /&gt;
Given the above i think it&#039;s idea to go into workdevbranch1.&lt;br /&gt;
&lt;br /&gt;
[[User:Diccon|Diccon]] 12:43, 27 April 2009 (UTC) Also i have some ideas about Dynamic files. Simply Write a BASIC precursor that copies the indervidual record being requested to a TEMP Directory file. When the editor finishes copy back the temp file over the record. If nothing has been altered and the external prog just exited, then you will be copying back an identicle record. If it was altered then the edits are copied in. No clever detection of alterations are needed. This can even implement record locking if you lock before the shell execute and the BASIC prog returns and releases after you exit.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Talk:Using_your_own_editor&amp;diff=404</id>
		<title>Talk:Using your own editor</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Talk:Using_your_own_editor&amp;diff=404"/>
		<updated>2009-04-27T12:16:53Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: ~~~~ - Few suggestions Tom.   #Since this is not specific to VIM, can you generalise the var names and the command itself. I know it ultimately calls vim as it is, but simply exchanging th...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Diccon|Diccon]] 12:16, 27 April 2009 (UTC) - Few suggestions Tom. &lt;br /&gt;
&lt;br /&gt;
#Since this is not specific to VIM, can you generalise the var names and the command itself. I know it ultimately calls vim as it is, but simply exchanging the command var means it can be anything as I understand your code (Nano, vi, hell Kate if you have X windows). Called it EDITOR in mine, which is too long a name IMO, and of course EDIT and ED exist :) Any other good names would be good (suggestions?). &lt;br /&gt;
#It currently screams if you do not have the syntax highlighting qmbasic.vim file there. Either note that the file is not optional or reduce the screaming warning volume. This could break the above mentioned generic nature too, perhaps parametrise it? I&#039;ve not looked at that bit of code.&lt;br /&gt;
#Can we have a fail-over question asked if you don&#039;t provide details, in a QM Style. Ie no file name, then ask Filename?.. etc. Partly to be consistent, but also because it smooths the CLI flow if you miss a step. ? query function at this point is too much to ask IMO at this time.&lt;br /&gt;
&lt;br /&gt;
Given the above i think it&#039;s idea to go into workdevbranch1.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=331</id>
		<title>PHP Native API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=331"/>
		<updated>2009-04-06T11:05:47Z</updated>

		<summary type="html">&lt;p&gt;Diccon: News&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PHP native API uses a socket connection to directly connect to an open and functioning QM API socket.&lt;br /&gt;
&lt;br /&gt;
This single PHP script file can be dropped in on any PHP compatible web server and allow developer to use a series of function calls to access a QM Database with all the functionality that the QMClient API allows.&lt;br /&gt;
&lt;br /&gt;
It is currently in the developing Alpha stages:&lt;br /&gt;
&lt;br /&gt;
Make sure you have followed the [[QM-API_Server|QM Client Server setup guide]]&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
*[[User:Diccon|Diccon]] 11:05, 6 April 2009 (UTC) Development has been paused until JD3 is fully assessed and it is determined if QMCLient is to continue getting my attention. This lib still works, others are welcome to develop on the SVN repo. Ask for commit access.&lt;br /&gt;
* [[User:Diccon|Diccon]] 15:27, 9 March 2009 (UTC) Conditional Handling code is in, needs proper testing. Now have 34/46 command done, QMCall and a few others will be last because they take a bit of time/effort.&lt;br /&gt;
*[[User:Diccon|Diccon]] 18:41, 16 February 2009 (UTC) &#039;&#039;&#039;Solved&#039;&#039;&#039; Fixed this, not 100% sure what was really happening, but i rewrote the way the login packet is constructed, to make it clearer. This fixed it. Go, Play!&lt;br /&gt;
*[[User:Diccon|Diccon]] 19:36, 27 January 2009 (UTC) &amp;lt;strike&amp;gt;&#039;&#039;&#039;Warning&#039;&#039;&#039; Active bug found, i believe username padding is not working, some odd length usernames may cause a QMERROR 3000 for line 902, when trying to write to $LOGINS. I&#039;m working on it.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use==&lt;br /&gt;
[[#Download|Download]] from the SVN from below.&lt;br /&gt;
&lt;br /&gt;
Place this file in the same directory as the file that intends to use it, or place it in the library path for your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
In your php code Enter the following line at the top &lt;br /&gt;
  include &amp;quot;PHPQMLib.php&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The first you need to call the connect function, something like this;&lt;br /&gt;
  qmconnect(&amp;quot;my.qm.server.com&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACCOUNT&amp;quot;);&lt;br /&gt;
or &lt;br /&gt;
  qmconnect(&amp;quot;192.168.1.1&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACC&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
You can now use the variety of PHPQM functions like qmread(), &lt;br /&gt;
qmdelete(), etc as you wish.&lt;br /&gt;
When you are done, for tidyness issue a;&lt;br /&gt;
  qmdisconnect();&lt;br /&gt;
command, tidlying closing the socket.&lt;br /&gt;
&lt;br /&gt;
Each page/script will need to (re)connect. Connection persistance and pooling is &lt;br /&gt;
a bit bigger than this simple lib for now.&lt;br /&gt;
&lt;br /&gt;
Check out qmLastClause() QMPHPClient function to cater for commands&lt;br /&gt;
hitting ELSE, LOCKED, etc conditions&lt;br /&gt;
&lt;br /&gt;
Generally you can follow the QMClient docs in terms of server functionality.&lt;br /&gt;
Using the below defines() as what is and is not implimented.&lt;br /&gt;
Better PHP specific docs will be written later, when we go Beta&lt;br /&gt;
&lt;br /&gt;
==Supported Features==&lt;br /&gt;
QMPHPClient supports (24/46);&lt;br /&gt;
* Qm Quit&lt;br /&gt;
* GetError&lt;br /&gt;
* Set account&lt;br /&gt;
* Open&lt;br /&gt;
* Close&lt;br /&gt;
* Read&lt;br /&gt;
* ReadL (Untested)&lt;br /&gt;
* ReadLW (Untested/partial)&lt;br /&gt;
* ReadU (Untested)&lt;br /&gt;
* ReadUL(Untested/partial)&lt;br /&gt;
* Select&lt;br /&gt;
* ReadNext&lt;br /&gt;
* ClearSelect&lt;br /&gt;
* ReadList&lt;br /&gt;
* Release&lt;br /&gt;
* Write&lt;br /&gt;
* WriteU&lt;br /&gt;
* Delete&lt;br /&gt;
* DeleteU&lt;br /&gt;
* Execute&lt;br /&gt;
* Respond&lt;br /&gt;
* Logon&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
If you want a copy, it is released under the LGPL (i.e. can be used within commercial products, but is GPL itself). It is available on the gpl.openqm Subversion repository; &#039;&#039;(Just click the link people, its not scairy, you just download the file[s])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://gpl.openqm.com/svn/qmvdb/PHPQMLib/trunk/ http://gpl.openqm.com/svn/qmvdb/PHPQMLib/trunk/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Todo Shortlist==&lt;br /&gt;
# Design and handle Conditional Execution, eg ELSE, LOCKED, ERROR, etc&lt;br /&gt;
# Finish implimenting all simple commands/function (24/46 Done)&lt;br /&gt;
# Clean up error reporting&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Creating_your_own_command&amp;diff=297</id>
		<title>Creating your own command</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Creating_your_own_command&amp;diff=297"/>
		<updated>2009-03-18T23:42:52Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: rough notes for now, keeping tabs for myself ~~~  But should become guide for others soon.  *Create file in GPL.BP/MYCOMMAND *Put $internal in first line * put $catalog $MYCOMMAND *qm -int...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;rough notes for now, keeping tabs for myself [[User:Diccon|Diccon]]&lt;br /&gt;
&lt;br /&gt;
But should become guide for others soon.&lt;br /&gt;
&lt;br /&gt;
*Create file in GPL.BP/MYCOMMAND&lt;br /&gt;
*Put $internal in first line&lt;br /&gt;
* put $catalog $MYCOMMAND&lt;br /&gt;
*qm -internal BASIC GPL.BP MYCOMMAND&lt;br /&gt;
*Make entry in voc called MY.COMMAND&lt;br /&gt;
  V&lt;br /&gt;
  CA&lt;br /&gt;
  $MYCOMMAND&lt;br /&gt;
&lt;br /&gt;
Prefix:&lt;br /&gt;
$ for command line command _for internal subroutine&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Guides_%26_HOWTOs&amp;diff=296</id>
		<title>Guides &amp; HOWTOs</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Guides_%26_HOWTOs&amp;diff=296"/>
		<updated>2009-03-18T23:20:53Z</updated>

		<summary type="html">&lt;p&gt;Diccon: added &amp;quot;guide to adding command to QM&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation==&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
*[http://www.geneb.org/qm/fedora_notes.txt http://www.geneb.org/qm/fedora_notes.txt] - Guide to installing and configuring QM from source on Fedora (useful scripts and configs)&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
*[http://www.rushflat.co.nz/files/UbuntuInstall.pdf http://www.rushflat.co.nz/files/UbuntuInstall.pdf] Installing the GPL Version of OpenQM on Ubuntu (aimed at Linux newbies)&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
&lt;br /&gt;
*[[Recompiling QM]] - How to recompile QM&#039;s system C code and BASIC code&lt;br /&gt;
*[[HOWTO|SVN Howto]] - How to use Subversion to check out code and commit it back (Windows and Linux)&lt;br /&gt;
*[[Creating your own command]] - Guide to how to add features and commands to QM&lt;br /&gt;
&lt;br /&gt;
==Using OpenQM==&lt;br /&gt;
&lt;br /&gt;
*[[Using your own editor]] - How to use your favorite editor from within OpenQM&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Installers&amp;diff=289</id>
		<title>Installers</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Installers&amp;diff=289"/>
		<updated>2009-03-14T20:02:59Z</updated>

		<summary type="html">&lt;p&gt;Diccon: New page: Development of installation assiters or binary distribution packages.  ===RPM=== It exists, it need documenting and making into a auto build process on the gpl.openqm server. Contact ~~~ f...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Development of installation assiters or binary distribution packages.&lt;br /&gt;
&lt;br /&gt;
===RPM===&lt;br /&gt;
It exists, it need documenting and making into a auto build process on the gpl.openqm server. Contact [[User:Diccon|Diccon]] for info.&lt;br /&gt;
&lt;br /&gt;
===Deb===&lt;br /&gt;
For Ubuntu, Debian, and other debian based distros.&lt;br /&gt;
&lt;br /&gt;
Debian package, a classic one exists. It can be done again. GlenB is the contact for this.&lt;br /&gt;
&lt;br /&gt;
===Distro neutral script===&lt;br /&gt;
This is an idea at the moment, mainley aimed at developers. If you have an install of QM already you might want to quickly setup multiple QM directorys/version on one server, to allow you to play around. &lt;br /&gt;
&lt;br /&gt;
To achieve this a distro neutral script could be written to se the current dir of QM to be the current running one.&lt;br /&gt;
*Move out QM.config in /etc, place an apropriate one for current dir&lt;br /&gt;
*check for groups, qm, and qmdev, create if missing. &lt;br /&gt;
*move or link to /usr/bin/qm (and other binarys)&lt;br /&gt;
&lt;br /&gt;
This should be non destructive and able allow reinstantiation of previous installs.&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=288</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=Main_Page&amp;diff=288"/>
		<updated>2009-03-14T19:54:45Z</updated>

		<summary type="html">&lt;p&gt;Diccon: /* For Developers */  added installers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;gpl.openqm.com is dedicated to the development of a community distribution of [[OpenQM]], by providing an environment where anyone can acquire, study and contribute to the [[OpenQM]] [[multivalue]] database.&lt;br /&gt;
&lt;br /&gt;
This project is focussed purely upon the GPL implementation of [[OpenQM]], originally developed by [[Ladybridge]]. This project was founded on the 28th November 2008 to independently develop future versions of [[OpenQM]]. Naturally, contributors to [[OpenQM]] are welcome to submit any changes that they may make back to Ladybridge for inclusion in Commercial QM.&lt;br /&gt;
&lt;br /&gt;
Submissions to this project must be under the GPL version 2, with the option to use a later version if the licensee wishes.  Or they can be licensed under the LGPL.  There may be links on this site to non-conforming software, but that does not include them in this project.&lt;br /&gt;
&lt;br /&gt;
The subdomain that points to this website is granted by [[Ladybridge]], however the server hosting this project, and it&#039;s content is neither their responsibility, or under their control. The server is a VMWare Server 2 Virtual Machine located in a high-bandwidth datacentre in Amsterdam, Netherlands. It is hosted by [[User:SteveB|SteveB]] who maintains a daily backup to a secondary datacentre in Amsterdam. If you can provide a stable high bandwidth backup mirror, please contact him.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This server is DOWN/SLOW around 04:00GMT nightly for 15mins while backing up.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==For Users==&lt;br /&gt;
*[[Downloads]]: Source tarball and package builds for key platforms&lt;br /&gt;
*[[Guides &amp;amp; HOWTOs]] - Index of useful guides and HOWTO&#039;s on this Wiki&lt;br /&gt;
*[http://gpl.openqm.com/bugzilla Bugzilla] reporting and tracking bugs:&lt;br /&gt;
*[http://www.openqm.org/docs/ Documentation] (Commercial Version)&lt;br /&gt;
*General support email group: [http://groups.google.co.uk/group/openqm-opensource Register] then mailto:openqm-opensource@googlegroups.com&lt;br /&gt;
*IRC Chat: irc://irc.efnet.org/openqm&lt;br /&gt;
====Supporting Projects====&lt;br /&gt;
Various external projects that provide tools for or API&#039;s into OpenQM&lt;br /&gt;
* [http://billabong-services.co.uk/anji Billabong Services&#039; Anji] - an open web based file browser and reporter.  Eventually to become a RAD system.  Pre-alpha grade of code. &lt;br /&gt;
*[[PHP_Native_API|PHP Native API module]]&lt;br /&gt;
*[[C++ Wrapper]]&lt;br /&gt;
*Steve Bush&#039;s [[Cygwin Port]] - Is it worth considering a MinGW port? - Would have to replace some posix bits which MinGW doesnt have.&lt;br /&gt;
* [http://www.tridentinfosys.com/ Kevin Powick&#039;s Trident Delphi wrapper]&lt;br /&gt;
&lt;br /&gt;
==For Developers==&lt;br /&gt;
For those that want to contribute to OpenQM GPL project.&lt;br /&gt;
*Subversion repository: https://gpl.openqm.com/svn/qmvdb/ - [[HOWTO]] &lt;br /&gt;
*Development email group: [http://gpl.openqm.com/mailman/listinfo/openqm-dev Register] then mailto:openqm-dev@gpl.openqm.com&lt;br /&gt;
*[[QM Client API]] - Documentation and Available API&#039;s for the QM remote protocol.&lt;br /&gt;
*[[Wish list]] - Things that you want &amp;amp; that we need contributors/devs for (lots of small things)&lt;br /&gt;
*[[Dynamic linking]] - Calling objects written in other languages.&lt;br /&gt;
*[[Installers]] - Installing scripts/programs or package systems&lt;br /&gt;
&lt;br /&gt;
== How do I use this site? ==&lt;br /&gt;
&lt;br /&gt;
If you have a question on USAGE of the community version of OpenQM, then send it to the [http://groups.google.co.uk/group/openqm-opensource general email support group].&lt;br /&gt;
&lt;br /&gt;
If you want to discuss DEVELOPMENT of the community version of OpenQM (eg. php5 module) then send it to the [http://gpl.openqm.com/mailman/listinfo/openqm-dev development email group].&lt;br /&gt;
&lt;br /&gt;
While the email lists are best for getting attention, permanent changes in this wiki will have a longer term impact so feel free to add or change ANYTHING in this wiki.&lt;br /&gt;
&lt;br /&gt;
=== External Resources ===&lt;br /&gt;
* [[Installations]] - Places where GPL OpenQM is in use (I&#039;m attempting to create a new section for this) - http://capersqm.dnsalias.net/&lt;br /&gt;
* [http://www.rushflat.co.nz/downloads.shtml Brian Speir&#039;s Installation instructions and other downloads ]&lt;br /&gt;
*  [http://openqm.blackflute.com/ Tom Delombard&#039;s old QM page.] Includes details of the tape utilities and the PHP4 module (C Wrapper) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Administration]]&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
	<entry>
		<id>https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=286</id>
		<title>PHP Native API</title>
		<link rel="alternate" type="text/html" href="https://scarlet.deltasoft.com/index.php?title=PHP_Native_API&amp;diff=286"/>
		<updated>2009-03-09T16:05:37Z</updated>

		<summary type="html">&lt;p&gt;Diccon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PHP native API uses a socket connection to directly connect to an open and functioning QM API socket.&lt;br /&gt;
&lt;br /&gt;
This single PHP script file can be dropped in on any PHP compatible web server and allow developer to use a series of function calls to access a QM Database with all the functionality that the QMClient API allows.&lt;br /&gt;
&lt;br /&gt;
It is currently in the developing Alpha stages:&lt;br /&gt;
&lt;br /&gt;
Make sure you have followed the [[QM-API_Server|QM Client Server setup guide]]&lt;br /&gt;
&lt;br /&gt;
==News==&lt;br /&gt;
&lt;br /&gt;
* [[User:Diccon|Diccon]] 15:27, 9 March 2009 (UTC) Conditional Handling code is in, needs proper testing. Now have 34/46 command done, QMCall and a few others will be last because they take a bit of time/effort.&lt;br /&gt;
*[[User:Diccon|Diccon]] 18:41, 16 February 2009 (UTC) &#039;&#039;&#039;Solved&#039;&#039;&#039; Fixed this, not 100% sure what was really happening, but i rewrote the way the login packet is constructed, to make it clearer. This fixed it. Go, Play!&lt;br /&gt;
*[[User:Diccon|Diccon]] 19:36, 27 January 2009 (UTC) &amp;lt;strike&amp;gt;&#039;&#039;&#039;Warning&#039;&#039;&#039; Active bug found, i believe username padding is not working, some odd length usernames may cause a QMERROR 3000 for line 902, when trying to write to $LOGINS. I&#039;m working on it.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use==&lt;br /&gt;
[[#Download|Download]] from the SVN from below.&lt;br /&gt;
&lt;br /&gt;
Place this file in the same directory as the file that intends to use it, or place it in the library path for your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
In your php code Enter the following line at the top &lt;br /&gt;
  include &amp;quot;PHPQMLib.php&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The first you need to call the connect function, something like this;&lt;br /&gt;
  qmconnect(&amp;quot;my.qm.server.com&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACCOUNT&amp;quot;);&lt;br /&gt;
or &lt;br /&gt;
  qmconnect(&amp;quot;192.168.1.1&amp;quot;, &amp;quot;4243&amp;quot;, &amp;quot;testuser&amp;quot;, &amp;quot;testpass&amp;quot;, &amp;quot;QMTESTACC&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
You can now use the variety of PHPQM functions like qmread(), &lt;br /&gt;
qmdelete(), etc as you wish.&lt;br /&gt;
When you are done, for tidyness issue a;&lt;br /&gt;
  qmdisconnect();&lt;br /&gt;
command, tidlying closing the socket.&lt;br /&gt;
&lt;br /&gt;
Each page/script will need to (re)connect. Connection persistance and pooling is &lt;br /&gt;
a bit bigger than this simple lib for now.&lt;br /&gt;
&lt;br /&gt;
Check out qmLastClause() QMPHPClient function to cater for commands&lt;br /&gt;
hitting ELSE, LOCKED, etc conditions&lt;br /&gt;
&lt;br /&gt;
Generally you can follow the QMClient docs in terms of server functionality.&lt;br /&gt;
Using the below defines() as what is and is not implimented.&lt;br /&gt;
Better PHP specific docs will be written later, when we go Beta&lt;br /&gt;
&lt;br /&gt;
==Supported Features==&lt;br /&gt;
QMPHPClient supports (24/46);&lt;br /&gt;
* Qm Quit&lt;br /&gt;
* GetError&lt;br /&gt;
* Set account&lt;br /&gt;
* Open&lt;br /&gt;
* Close&lt;br /&gt;
* Read&lt;br /&gt;
* ReadL (Untested)&lt;br /&gt;
* ReadLW (Untested/partial)&lt;br /&gt;
* ReadU (Untested)&lt;br /&gt;
* ReadUL(Untested/partial)&lt;br /&gt;
* Select&lt;br /&gt;
* ReadNext&lt;br /&gt;
* ClearSelect&lt;br /&gt;
* ReadList&lt;br /&gt;
* Release&lt;br /&gt;
* Write&lt;br /&gt;
* WriteU&lt;br /&gt;
* Delete&lt;br /&gt;
* DeleteU&lt;br /&gt;
* Execute&lt;br /&gt;
* Respond&lt;br /&gt;
* Logon&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
If you want a copy, it is released under the LGPL (i.e. can be used within commercial products, but is GPL itself). It is available on the gpl.openqm Subversion repository; &#039;&#039;(Just click the link people, its not scairy, you just download the file[s])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://gpl.openqm.com/svn/qmvdb/PHPQMLib/trunk/ http://gpl.openqm.com/svn/qmvdb/PHPQMLib/trunk/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Todo Shortlist==&lt;br /&gt;
# Design and handle Conditional Execution, eg ELSE, LOCKED, ERROR, etc&lt;br /&gt;
# Finish implimenting all simple commands/function (24/46 Done)&lt;br /&gt;
# Clean up error reporting&lt;/div&gt;</summary>
		<author><name>Diccon</name></author>
	</entry>
</feed>