dSERVE (tm) Business Basic File Access for the Rest of the World (c)2000-2003 by Allen Miglore. All rights reserved. Published under license by Synergetic Data Systems Inc. dSERVE is a trademark of Synergetic Data Systems Inc. Please see the dserve2.pdf manual for installation instructions. Version 2.0.01 released December 1, 2003 Version 2.0.02 released December 17, 2003 Version 2.0.03 released March 18, 2004 Upgrade Notes: If you are upgrading from Version 1, you may see logging error lines like this: Dec 22 2003 13:06:26: proc: failed to start, errcode=11 Dec 22 2003 13:06:26: Connect from 192.168.10.204 failed, errcode=11 If so, shutdown the server (both if you have both versions running), and erase /tmp/dservelck.bb (on Unix) or C:\dservelck.bb (on Windows). Then start the version 2 server first. This will re-create the file so that version 2 can work. Corrections: 2.0.02 12/16/03 - updated COM object to not report a run time error 9 if a dslistdict method is called with an invalid dictionary file. 12/16/03 - updated server to correctly report an error 12 (missing file) rather than an error 11 (missing key) if a dictionary is not found. 2.0.03 2/12/04 - corrected a problem when a dsExtractRec would not set a lock on the record if the key number changed from the current setting. 2/16/04 - corrected problems with dsReadRecNext and dsReadRecPrev, where the key argument in the COM object was not a ByRef argument. Note that this will require that applications using the older COM object will need to de-reference the old COM object and reference the new one. 2/24/04 - added a parameter for extract timeouts in the [defaults] section of dserve.ini: extracttim=5. The default value is now 5 rather than 10 seconds, to avoid a client socket timeout when the default 10 second timeout value is used. 3/18/04 - added a delimiter property to the dservevbs object, which defaults to chr$(0), but can be set to any string. This delimiter is used when creating the variant lists in dsListDict, dsListFlds, and dsReadFld* methods. These lists were formerly always created with Chr$(0) delimiters, but we found that not all development tools allowed variant strings with that character. 3/23/04 - modified the COM dservevbs object writefld method to support byref string in order to support WinDev development environments. 3/23/04 - modified the server writefld function to support field numbers rather than just field names, in order to support updates when a dictionary is not used. The total number of fields found in the record is derived from the record value passed to the function. 6/29/04 - modified pvx version to initialize connections faster. 2/18/05 - Discovered and corrected a problem where providex Windows dserve was distributed as dserve1 code. 4/25/05 - Corrected an issue where licenses would linger for some number of seconds after a connection was closed, which affected quick cycle types of applications, such as web applications. 6/28/05 - Corrected a problem when the dserve server is running as a service under Windows 2003, and the services manager would continually try to restart the service even though it was already running. 7/14/05 - Modified the listener program to make the dServe drive the current drive in Windows environments, allowing the server to be run on drive letters other than the default C:. 8/9/05 - Corrected handling of the dsExport function when the server is running under ProvideX. 8/12/05 - Corrected an endless loop when a dsExport function was used to export an empty file. 8/26/05 - Enhanced the dsExport function to improve performance when a simple export of just dictionary fields is exported. If any field in the export field list is a calculation or call structure, the optimization isn't performed. Also note that there is less concise error handling, so it is important for data files to have proper dictionaries and valid data throughout the file. If an error occurs, it is logged in dserve.log and the export exits with an error. A normal export can return error codes as !errnum at a field level. To force an un-optimized export, simply add a dummy calculation field, such as '=""'. In addition to the above internal server export optimization, the Perl and PHP clients have been updated to recognize if the server is 'localhost', and if so, the resulting export file is transferred to the local file via the file system rather than the dServe connection. 10/21/05 - Corrected a problem in the COM object dsExtractFld function, where it was returning incorrectly formatted data. 3/30/06 - Corrected a buffering problem that could cause large write transactions to lose data, resulting in unpredictable errors in parsing of the data. 5/19/06 - Corrected a problem when exporting data that doesn't contain calculations, related to the 3/30/06 fix. 2/26/07 - Increased the record size of gen60dlck.bb/pv to prevent potential connection error 11's in rare high-precision TIM situations. 7/9/07 - Corrected a problem with the dsExport function related to a change made earlier to assist in detail logging. 7/23/07 - Corrected a problem with the server's dictionary parser, where it did not recognize array fields in a Basis data dictionary. 5/25/10 - Added a procmem=n setting to [defaults] in dserve.ini. The purpose is to override the -mXXXX option when starting up the process handler under BBx. The default value is 2048. Change implemented under Unix only.