Openqm           début
Qu' est ce qu' openqm ?

Qu'est ce que les sources ouverts ?

Achetez qm aujourd'hui

Téléchargements

Qu'est qu'il y a de neuf dans les maj récentes ?

Support

Questions fréquemment posées

L'information de développeurs

Applications et outils de développement

Politique de confidentialité

Liens

Contactez-nous

Qu'est qu'il y a de neuf dans les maj récentes ?

qm 3.0-7 (released 01 mar 13)
pick style a/s-type dicitonary items can now use the call processing code in the correlative expression (field 8).the output from the config command now marks those parameters that have been set in the qmconfig file or modified in the current qm session. unmarked parameters take their default values.the find.file command reports summary information about a file, including details of the cause if a file cannot be opened.qmbasic includes an experimental development to support the concept of try/catch exception handling as found in many other programming languages.

qm 3.0-6 (released 14 feb 13)
this release introduces support for ipv6 network addresses in all networking elements of qm, including direct entry to qm via telnet, the qmbasic socket operations and qmnet. ipv6 support must be enabled via the ipv6 configuration parameter to indicate that it is available in the underlying operating system.the mcp conversion code now has an optional element to modify the charater used to replace non-printing characters.the local.cat.relative setting of the option command changes the default behaviour of the catalogue command to store the relative pathname of the program in the voc item. this makes it easier to move accounts to a new location but prevents use of remote (r-type) voc items that reference locally catalogued programs in other accounts. the full.path option of the catalogue command overrides this setting.the option command has been modified to show an encoded version of the option settings that can be used in place of option names when setting options. used in, for example, the login paragraph, this can give a small performance improvement to applications that set many options in short life processes.the sp.view command now has an optional by or by.dsnd clause to modify the sort order of the displayed item list.qmbasic class modules can now declare public and private variables using the shared statement. variables declared in this way are common across all instances of the same class in a qm process.the new external call interface enables a qmbasic application to call functions written in other languages such as c.there is an internal change to the way in which public qmnet server definitions are stored. reverting to an older release will require that definitions for any servers that use a non-default port number will need to be re-entered.

qm 3.0-5 (released 10 dec 12)
this release adds support for qm on ibm z-series systems running suse linux.the command language if statement used in a paragraph now supports the in and not.in opertors to test whether an item is in or not in a list of alternative values. use of this operator can simplify handling of processing differences based on the @tty variable.the query processor now supports the median, mode and range field qualifiers for additional statistical data.the x breakpoint control option can be used to capture the previous value of a breakpoint field in @bpv. see the documentation of the break.sup keyword for an example of how to use this option.the qmbasic ospath() function allows a variety of operations within the underlying file system.as an aid to compiler error checking, qmbasic now supports $mode explicit to require all variables, including scalars, to be declared in a dimension statement.a new configuration parameter, netwait, can be used to set a timeout applied when opening a qmnet connection. the default value is 10 seconds.

qm 3.0-4 (released 16 oct 12)
this release adds support for qm on solaris 10 on intel processors and for the raspberry pi. note that the default weak password encryption mode of solaris is not accepted for network connections to qm. the installation section of the qm reference manual explains how to change the encryption.the virtual file system has been extended to add handler functions that correspond to qmbasic alternate key index operations (selectindex, setleft, setright, selectleft, selectright). also, vfs handlers can now be written as external c programs that can be used with api libraries provided by other database vendors. because many vfs handlers may not be able to support index scanning options, a new fileinfo() key, fl$index.scan, allows an application to determine whether this functionality is supported.use of the all keyword in a search command includes the record id in the search.the setptr command now supports font and font.size options for use in conjuction with the gdi option on windows systems allowing selection of a font name and size. there is a growing trend for printer vendors to supply only gdi mode drivers where the default font settings may not be appropriate.a new character type function, is.alnum(), has been added to test whether a character is alphanumeric.the qmbasic option() function can be used to retrieve the state of qm options.key value 1051 to the qmbasic system() function can be used to determine whether qm is running from a usb memory device installation.a new qmbasic function, is.widestr(), allows an application running in ecs mode to determine whether a string contains any double width characters.

qm 3.0-3 (released 10 aug 12)
the catalogue command now has an option to specify the prefix character for a globally catalogued subroutine separately from its call name, allowing use of a prefix when cataloguing from a select list.the @line token can be used in qmbasic programs as the source line number in the module being compiled. the @where token is similar but includes line numbers in nested include records in the form "21.4.31". these tokens may be useful in constructing program error messages.the qmbasic field() function and the equivalent [d,i,n] operator have been extended to allow use of an asterisk in place of the number of elements of the string to be extracted when all beyond the start position is required.key value 1029 (fl$last.part) to the qmbasic fileinfo() function returns the last value from evaluating the partitioning algorithm for a distributed file, including where an error is reported because the part does not exist.key value 1024 (pu$pathname) to the qmbasic getpu() function returns the pathname of the output file of an open print unit.qmbasic now has a redimension statement (short form redim) that allows a default style matrix passed as an argument into a subroutine to be redimensioned in that subroutine. used with a matrix that is not a subroutine argument or is a pick style matrix, this statement is identical to use of dimension.two new key values have been added to the system() function. key 1049 returns true (1) if terminal output has been suppressed with hush. key 1050 returns true if the current user has administrator rights.qmbasic subroutines can now be globally catalogued with a hyphen prefix for improved compatibility with other environments.the netdelay configuration parameter can be used to set a period in seconds for which the server connection for a qmnet file will remain open after closing the last file in use on that server. this can improve performance of applications that repeatedly open files on the same qmnet server.the basic pre-processor provided as source code in the bp file of the qmsys account has been extended to allow use of and and or in conditional compilation tests ($ifdef and $ifndef).

qm 3.0-2 (released 25 jun 12)
the value of the fsync configuration parameter is temporarily set to zero while building an alternate key index.qmbasic object oriented programming method references can include an empty pair of brackets for improved compatibility with other oo langauages.the qmbasic swapmarks() function now returns the original data when used on a non-ecs mode system.the equate token handling added to the qmbasic debugger in release 3.0-0 has been extended to allow equated tokens on the right of a set command and in the form /name to show the value of the token.an optional !errlog.filter subroutine can be catalogued to provide error log filtering.

qm 3.0-0 (released 29 apr 12)
this release includes the first stage of adding extended character set (unicode) support to qm. handling of double width glyph characters is known to be incomplete. the installation process can install either the 8-bit character version or the ecs version. both versions are included in the installation download files.the maximum length of a catalogued program call name has been increased to the lower of 128 and the value of the maxidlen configuration parameter.the ct command now supports the id.sup and num.sup keywords.the qmbasic sselect, sselectn and sselectv statements now all have an optional right.aligned clause to cause the list to be generated using a right aligned sort, typically for numeric data.key value 1047 to the qmbasic system() function returns a globally unique identifier (guid) string.key value 1048 to the qmbasic system() function returns a numeric value that is unique across all qm sessions. it resets to 1 when qm is restarted.the qmbasic !findprog() subroutine has been extended to return comment data inserted into a program with the $* or $copyright compiler directives.a new qmclient function, qmevalconv(), has been added. this is similar to qmevaluate() but applies any conversion code specified in the dictionary.

qm 2.12-8 (released 01 mar 12)
the qmbasic compiler can now produce a concordance file that shows the relationship between the modules that make up the application. for details see the basic command in the qm reference manual.for improved compatibility, the change(), count(), counts(), index(), indexs() and swap() functions are now influenced by $mode settings that determine whether overlapping substrings are allowed.the qmbasic execute and os.execute statements now have an optional silent clause as an alternative to use of capturing when the output is to be discarded.the qmbasic pause statement returns the user number of the process that executed the corresponding wake via the inmat() function.an extension to the fsync configuration parameter allows force writing of all replication log file updates. this gives best best reliability through system failures but is likely to have a severe impact on performance.

qm 2.12-7 (released 26 jan 12)
the di correlative code (convert external date to internal day number) can now be used in field 8 of an a or s-type dictionary record.the execute.list command executes one or more commands for each entry in a select list.the find.program command now has a detail option for an extended report.the map command now has a detail option to show the source pathname of each catalogued item, if available. programs compiled on earlier releases may not show this.the $ifdef and $ifndef qmbasic compiler directives can now evaluate multiple tokens in a simple and/or relationship.the qmbasic compiler now supports $error and $warning for compilation messages generated from within the source code.the qmbasic $mode directive trap.unused.main setting has been added as an alternative to trap.unused. the difference is that the new mode setting only traps variables that are set in the main body of the program and never referenced, ignoring any that are set in include records.the qmbasic nv() and ns() functions build a dynamic array of value and subvalue positions corresponding to a supplied data item.the qmbasic objinfo() function has been extended to return a dynamic array containing all the public names in the class and any inherited classes.the qmbasic parse() function parses a string against a pattern match template, returning a copy of the string with a delimter character inserted between the portion of the string matching each pattern element.four new qmclient functions have been added. qmiconv() and qmoconv() apply a conversion code to a supplied data item. qmevaluate() evaluates a dictionary item such as an i-type. qmclearfile() clears a file.the feature configuration parameter controls miscellaneous product features. at this release, the only supported key value is 1 to suppress the prompt re updating the voc on entry to qm after installation of a new release.

qm 2.12-6 (released 25 oct 11)

this is a bug fix release only. there is no new functionality.

qm 2.12-5 (released 24 oct 11)
this release corrects a potential security risk on linux systems that could allow a qm process to run with the incorrect access rights.the query processor can now produce xml format reports. see the xml query processor keyword for details.the fmt qualifier to the vertically query processor keyword has been extended to allow a default format code to be specified that will be applied to all display clause elements except those that are defined in the dictionary as right justified or those with their own explicit fmt qualifier. this enhancement allows unwanted line breaks in data items to be omitted without needing to create separate dictionary items for use in vertical reports.the qmbasic readcsv and matreadcsv statements have been extended to allow specification of an alternative delimiter.the qmbasic server,window() function, available only on windows systems, opens an asynchronous application window to run programs such as excel, word or a web browser. it is of particular use in qmconsole sessions where the client side asynchronous command execution feature of accuterm is not available.the qmclient c library on windows (qmclilib.dll) now supports use in multi-threaded programs.

qm 2.12-4 (released 28 sep 11)
multiple usb memory stick installations on windows can now run in parallel with a server based installation.the pstat command has been extended to allow display of qmnet server details.the selectindex command to build a select list from an alternate key index at the command prompt now supports a value option to select records where the indexed field has a specified value (as in the qmbasic equivalent).

qm 2.12-3 (released 23 sep 11)
dictionary link records can now be used to reference a/s type items.the default.mv mode of the option command can be used to specify that c, d or i type dictionary items in which the single/multivalue flag is blank to be treated as multivalued instead of defaulting to single valued.the qmbasic compiler now supports use of most statements that have a then/else clause as conditional elements in a while or until statement.for compatibility with other systems, the adds(), divs(), muls() and subs() functions as synonyms for the standard arithmetic operators. these are mostly relevant when migrating software that used these functions to perform arithmetic operations on dynamic arrays. they are strictly unnecessary in qm because the standard operators support this capability.the qmbasic call statement has been extended to allow the pick style call with a file name and program name.the qmbasic sselectn and sselectv statements have been added to mirror the capabilities of the unsorted selectn and selectv statements. as with the unsorted version, there is a compiler mode switch to make sselect equate to either of these.

qm 2.12-2 (released 18 aug 11)
this release introduces 64-bit versions of qm though some are available only on controlled release at this stage.a new mode flag, r, has been added to field 6 of the f-type voc entry to specify that the file is to be read-only.the mt conversion code now includes an m option to specify that the time value in an output conversion is in milliseconds. the fractional seconds will be included in the converted data if the s option is also present.the nls (national language support) command and the corresponding qmbasic operations have been extended to enable a different decimal separator to be used for implicit conversions than for oconv(). see the qm reference manual for the rationale behind this capability.the qmbasic csv.mode statement has been extended to allow an alternative delimiter character to be specified.the qmbasic precision statement now has an option to inherit the precision of the parent program.the !account.rules() subroutine allows an application to determine the accounts that a specified user may or may not enter according to rules set in the qm application level security system.a new keyword has been added to the $debug.options record, no.source.warning, to suppress the message displayed if a source file cannot be found when using the qmbasic debugger.

qm 2.12-1 (released 03 may 11)
this is a bug fix release. there is no new functionality.

qm 2.12-0 (released 27 apr 11)
this release introduces the concept of a "user mode" installation on linux, unix and mac based systems. an installation of this type does not require the user to have root access to the system but, as a result of this, potentially reduces system security. it is possible to install multiple user mode instances of qm on the same system, each operating in its own isolated environment and each separately licensed. there are some important rules to observe when using a user mode installation as detailed in the installation section of the qm reference manual.qm now has limited support for triggers on directory files. these will be called for all updates made to the file from within qm except for sequential file processing (writeseq, etc) and use of oswrite or osdelete.it is no longer necessary for trigger subroutines and subroutines called from either triggers or alternate key index expressions to be visible in the cataloguing system from the qmsys account when using qmnet. the qmnet server process will effectively execute in the account in which the file was opened.a similar modification to the replication subscriber process means that it is also no longer necessary for subroutines called from index expressions to be catalogued in the qmsys account when using replication.account replication now includes an option to prompt for confirmation before replicating a command on a remote system.the dir_dict file in the qmsys account (a template dictionary to use with directory files) has been extended to contain three new items: days for the number of days since the record was modified, dtm for the actual date/time of modification, and owner for the username of the owner of the record (not windows).the trans() function in a dictionary i-type item can now return the value of an a, s or c type item from the target file.the mcs conversion code converts the first alphabetic character of each sentence in the supplied data to uppercase.the create.account and create.file commands now support options to set ownership of the account or file to a specific user and group on linux, unix and mac systems. in the case of create.file, the behaviour when these options are not present defaults to using the user and group of the process that executes the command but can be set to inherit ownership from the account directory by use of the inherit.ownership mode of the option command.the create.index and make.index commands now check for a voc record named $index.path to specify the default location for indices. a command option is available to override this action.the listf, listfl and listfr commands can now include a with or without clause that references encryption, replication or trigger to show only files that meet the specified criteria.the list.replicated command can be used to report a summary of files for which replication is active.the list.triggers command has been extended to handle multi-files and to report triggers applied to dictionaries.the redo command can be used to repeat a command at specified intervals and/or a specified number of times.the sp.assign command now shows the form queue associated with the default printer if no command options are present.the query processor search command now includes a for keyword to allow search strings to be specified on the command line. there is also now no limit on the number of search strings that may be specified in a search command.the qmbasic compiler now supports use of the no.query keyword in either the $catalogue directive or the catalogue entry in the $basic.options record to suppress the prompt that normally appears if the program is already catalogued in a different mode.key value 1045 to the qmbasic system() function returns the time at which qm was started as an epoch value.a new command, window, in the full screen mode of the qmbasic debugger can be used to change the command window size.two new functions, qmcallx() and qmgetarg(), are available in the c version of the qmclient api. these remove the need for an application to pre-allocate space for the longest possible value of argument variables returned by a called subroutine.a new function, qmgetvar(), has been added to the qmclient api to retrieve the value of an @-variable from the server.the security configuration parameter can be used to set system wide security options. at this release the only option available is to require the user to have write access to the dictionary when using the eval clause in a query.this release introduces a new manual to the documentation set, tyqm.pdf, that is a "teach yourself qm" self-study training package. based on material used by ladybridge systems for trainer led courses, this package assumes no prior knowledge and works through a series of practical exercises that ultimately construct a simple sales order processing system.

qm 2.11-3 (released 09 feb 11)
the optional master.login paragraph is now executed for qmclient connections in the same way as for interactive and phantom sessions.inline prompt control elements are now largely case insensitive.the configure.file command now supports a reporting option to show progress.the qmbasic csv.mode statement can be used to set the conversion rules applied by the formcsv(), printcsv and writecsv operations. formcsv() is also new at this release. the current csv mode can be determined using system(1043) and defaults to one at each command processor level until changed.the qmbasic open.socket() function now has an optional timeout value that will terminate the attempt to connect to the remote system after a given number of seconds.to avoid problems with run time errors in qmclient applications that have no screen (e.g. the server side of a web application), the qmconnectiontype() function can be used to set a mode in which errors are returned only via the qmerror() function, never as displayed messages.

qm 2.11-2 (released 10 dec 10)
the data replication system can now replicate updates to directory files so long as these updates are from within qm. the replication system has also been extended to allow "account replication" where a user definable set of commands that affect the structure of an account (e.g. create.file) can be automatically replicated on a susbcriber system.the maximum number of simultaneous replication subscribers that can be active at one time on a publisher is now configurable via the replmax parameter. this defaults to its previous value of 8.the qmbasic input, input@ and inputfield statements now support a no.echo option to suppress echo of input data.

qm 2.11-1 (released 17 nov 10)
this release supports use of a qmcfg.dat file to control installation of qm, allowing developers to construct self-installing applications without the need for third party installer packages. see the "building a self-installing application" in the qmbasic section of the qm reference manual for details.the backslash.not.quote mode of the option command can be used to cause the command processor to treat backslashes as data characters instead of recognising them as string quotes. this option does not affect use qmbasic use of string quotes.

qm 2.11-0 (released 20 oct 10)
this release introduces data replication as a licence option. for details, see the qm reference manual.there is a change to the format of the qmconfig configuration parameter file. in previous releases, the qmsvc, qmsrvr or qmlnxd parameters were previously in a section with tag [qmsrvr]. these parameters have been merged with the [qm] section, renaming maxlog as srvrlog and qmclient as cliport. the [qmterm] section that relates to the largely obsolete qmterm terminal emulator has been moved to a text file named qmterm.ini in the qmsys account directory. the [qmnet] section that holds qmnet server definitions has been moved to a separate file in the qmsys account and extended to allow greater security of qmnet logins. the qmconfig file will be converted automatically on installation of this release or later. the original file is retained as qmconfig.old.when running a program by entering its catalogue name at the command prompt instead of the name of a voc verb entry, the command processor will examine the command arguments for the lptr and no.page keywords. if these are found, the relevant mode is applied, leaving the options in place for the program to process separately if it performs its own command line scan.the admin.server command can be used to impose security rules on qmnet server definitions.the admin.user command has been extended to allow a user to be assigned to a qm user group for use in other areas of qm's security system. the group name of a qm process can be retrieved using the @qm.group variable.a no.map option has been added to the configure.file command to set the t flag in the voc entry for a directory file to suppress translation of reserved characters in record ids.the disable.index command no longer requires exclusive access to the file.the edit.config command has been added for use by administrators in the qmsys account to modify the configuration parameters.the file.stat command now has an option to include dictionaries in the report.a no.page option has been added to the map command.the option command paginate.on.heading mode can be used to enable screen pagination when the application sets a page heading or footing. this option would normally be used in conjunction with the run.no.page option or the no.page keyword to the run command.the pterm command has been extended to add the mark option. this allows selection of a mode where entry of characters 28 to 30 at the keyboard will be translated to field, value and subvalue marks respectively.the set.server command has been extended to allow security settings to be copied from another server definition.the set.trigger command no longer requires exclusive access to the file.the sort.list command sorts a saved select list.use of the csv or delimiter keywords to the query processor to create a delimited report will treat value marks embedded in data that is defined as single valued as normal data characters, resulting in the entire multivalued item, including the delimiters, as being output as a single element of the report. this change improves compatibility with some other systems.the vertically keyword of the query processor now has an optional fmt qualifier to modify the format in which the field name is output.the qmbasic select.socket() function can be used to provide asynchronous operation of multiple socket connections.the qmbasic set.socket.mode() function has a new key, skt$info.trace, to enable socket tracing where data transmitted in either direction is written to a diagnostic log file.the qmclient api now includes new functions qmchecksum(), qmencrypt() and qmdecrypt() that are compatible with the qmbasic checksum(), encrypt() and decrypt() functions.

qm 2.10-4 (released 23 jul 10)
when installing a new qm system, the installer now asks whether the internal security system should be enabled. this prompt will not appear on an upgrade installation.installation of qm on a usb memory stick no longer has to be in a top level directory.the phantom command now includes an option to transfer the data queue from the parent process into the phantom process.the sed editor now includes a view function (bound as ctrl-x v by default) that prompts for a text string and displays a new buffer containing all lines of the original buffer that include the given text. positioning on a line and pressing the return key goes to the corresponding line in the main buffer.the set.file command has been extended to allow creation of qmnet style q-pointers to files on remote systems.the setptr command has been extended to allow control of the character sequence sent where the data contains a form feed character. by default this is a cr ff pair as in previous releases and as required by some pcl printers. the form.feed option of the setptr command can be used to change this to ff.for improved compatibility with other systems, the query.string.comp mode of the option command can be used to enforce string character comparison in the eq and ne operators of the query processor, equivalent to use of the qmbasic compare() function. with this option disabled, the comparison is equivalent to use of the qmbasic = relational operator in which case a numeric comparison is applied to numeric data.the search command has been extended to allow the search strings to be taken from a file.the brk command of the qmbasic debugger, used with no qualifying data, shows a list of the currently defined breakpoints. similarly, use of watch with no variable name shows the details of any active watch.the umask configuration parameter can be used to override the default value of the operating system umask on linux and unix for direct telnet, qmclient and qmnet connections.

qm 2.10-3 (released 21 may 10)
logging in directly to qm via port 4242 (or as redirected) on linux systems now supports use of additional password encryption methods within the operating system.as a further step in enhancements to qm security, use of q-pointers by users with account restrictions imposed using admin.user will not be able to process files in accounts to which access is denied.a multifile component can now be used as an element of a distributed file.qmnet can now open files where the voc item on the remote system is a q-pointer that leads to a file on the same server.qmnet now supports private server definitions that are local to the qm session in which they are defined. see set.private.server and delete.private.server. the ability to create private server definitions can be restricted using qm's security system.the relative option to the catalogue command, used when cataloguing in local mode, stores the pathname of the object file as a relative pathname so long as it is in a subdirectory of the account.the qmbasic arg.present() function provides an easier way than use of arg.count() to test whether an optional argument variable was passed by the caller to a subroutine or function declared with the var.args option.the qmbasic vslice() function has been extended to allow extraction of a subvalue slice from a dynamic array.the qmclient api qmconnectiontype() function now includes a mode to force use of an encrypted data connection. the session will fail to establish if the server does not support encryption.the qmclient api no longer has a limit on the number of simultaneous connections that may be opened.

qm 2.10-2 (released 09 apr 10)
this release contains a critical security fix for linux systems. it is strongly recommended that linux sites should upgrade as soon as possible.this release includes some enhancements to qm's user security system. the admin.user command has been extended to allow an optional list of valid or invalid account names to be set for each registered user. to enable this to be enforced correctly, the user names of qmconsole users on windows systems are now validated in the same way as network users. any user who is an administrator at the operating system level is not restricted by these changes.the installer on mac os x on intel systems adds the pathname of the qm binary directory to /etc/paths.d for use in automatic construction of the path environment variable.the admin.user tool can also be used to control which users can create new accounts when the system is running in secure mode.the selectindex command provides equivalent functionality to its qmbasic counterpart to allow construction of a select list containing all indexed values in a specified alternate key index.the delete.index command no longer requires exclusive access to the file.the pstat command now shows the user name of the blocking user when a process is waiting for a lock.the $query.defaults record has been extended to allow specification of default options for select operations.the qmbasic flush.dh.cache statement has been extended to add options to give greater control over its effect.the qmbasic mvepoch() function has ben extended to allow a variant with the date and time as separate arguments.the analysis in a process dump file now includes the persistent data from object variables.

qm 2.10-1 (released 25 feb 10)
a minor change to commands that require exclusive access to a file now shows the user number of the blocking user if the action is unsuccessful.support has been added for proc user exit u01a6 for screen painting.the file.stat command now support use of filenames to limit the report to the specified files.the create.file.no.case mode of the option command can be used to make the default behaviour of the create.file command to create files with case insensitive record ids. the case option can be used with create.file to override this setting.the qmbasic compiler now supports use of statements such as if mat a = mat b then ... to compare two dimensioned matrices for equality.the openseq statement can now open a floopy disk drive or other block device. as a result of this, the account import tools can now process pick style saves on floppy disks.the fl$seqtype key to the qmbasic fileinfo() function can be used to identify special file types opened with openseq (port, character device, block device, fifo).the qmbasic system() function with key value 1040 can be used to determine whether the underlying operating system file names are case insensitive.the uvimport tool (documented in the qm knowledgebase) has been enhanced to handle universe type 1 files correctly and to add options to simplify import of a complete account.

qm 2.10-0 (released 11 jan 10)
prior to release 2.10-0, the linux, freebsd, mac and aix versions of qm used the operating system network server (inetd or related packages) to monitor for incoming connections on ports that were to be routed directly to qm (default 4242 and 4243). from release 2.10-0 onwards, the qmlnxd deamon assumes responsibility for monitoring these ports. installation of an upgrade to a release that used the previous mechanism will prompt the use to confirm that the old network configuration files should be deleted. unless use of inetd for qm ports is to be retained, these files should be deleted. it will be necessary to manually restart inetd or its equivalent process after installation before qmlnxd can take on monitoring of the qm ports. alternatively, simply reboot the system. if there is a good reason to retain the old network monitoring system with inetd, respond n to the prompt regarding deleting the files and then edit the qmconfig configuration file to set the port and qmclient parameters to zero.qm now supports forced writing of every update to selected files for improved resilience to power failures and similar events where data may not be flushed to disk from the operating system cache. see the dynamic files section of the qm reference manual for a discussion of the ways in which this can be enabled.as an aid to migration, qm now supports two methods by which string operations in correlatives can be made case insensitive. firstly, the nocase; prefix can be inserted after the correlative type code to make the expression in which it appears case insensitive. alternatively, the correlative.nocase mode of the option command can be used to make string operations in all correlatives case insensitive.as a further aid to migration, field 8 of an a or s-type dictionary item may now contain an if expression as an implied a-correlative. this code is not supported as a conversion code in field 7.the qmbasic $mode directive can now include multiple comma separated mode names.the pwdelay configuration parameter can be used to set the pause in seconds between successive attempts to enter the user name and password on network connections.

qm 2.9-9 (released 04 nov 09)
this release includes a modification to the sort algorithm used for right justified fields in the query processor and in alternate key indices. this modification provides greater compatibility with other multivalue products where the items contain a mix of numeric and non-numeric data. it is recommended that any right justified alternate key indices should be rebuilt in case of incompatibility. note that this change does not affect tha action of right justified items in the qmbasic locate statement as this would potentially make existing data inaccessible.the voc $private.catalogue record may now use the american spelling, $private.catalog. if both records are present, the british spelling takes priority.the listu, list.phantoms and status commands now show the login time of the processes reported in the local time zone of the user executing the command.the query processor in and not.in operators have been extended to allow the list of acceptable/unacceptable values to be stored in files other than $savedlists.two new qmbasic functions, file.event() and wait.file.event(), allow a program to wait for changes in a windows directory in an efficient manner.for compatibility with other systems, the last accessed and last modified date/time values returned by the qmbasic status statement are now in the user's local timezone. two new fields have been added to the returned data that hold the equivalent data in epoch format.the qmbasic debugger has been modified to show the conditional element of a case statement prior to executing the conditioned code.the cleanup configuration parameter allows system administators to set the interval in seconds between automated scans for qm processes that have terminated abnormally, perhaps as a result of a network connection loss. if not present, this interval defaults to five minutes as in previous releases.the startup configuration parameter has been extended to allow the account name and user name to be specified. multiple startup parameters may also be used.

qm 2.9-8 (released 08 oct 09)
this release is primarilly to correct an issue where the windows installer did not complete successfully.the correlative.reuse mode of the option command causes all operators in correlative expressions to behave as though the reuse (r) option was present.

qm 2.9-7 (released 30 sep 09)
the copy and copyp commands now both have an option to override the default action of using binary mode data transfer when both files are directory files. this is particularly relevant when using qmnet to move data between linux and windows.the ed command now supports a fit.screen option in the $ed.options record to cause the default display size of the p, pl and pp commands to be set based on the screen size.as an aid to diagnosing printing problems, the spool.command option of the option command can be used to display the operating system command used to initiate printing (not windows).the sed editor has been extended to support esc-m as a shortcut to compile a program from within the editor without running it.the sed editor search sequence for editor extensions now looks in the &sed.extensions& file in the qmsys account if the extension is not found in any of the defined search location. this file is now shipped with the walk extension that appears in the qm reference manual.multivalued fields are now handled by delimited reports from the query processor.

qm 2.9-6 (released 17 aug 09)
a bug fix in the qmbasic locate statement means that programs compiled on this release that use locate will not run on earlier releases. forward compatibility for programs compiled on earlier releases has been maintained.for improved compatibility with other multivalue environments, the default pick style select list variable used by selectv (and select when the selectv option of $mode is active) if no target variable is specificed is now the same as numbered select list zero.the dir.dtm mode of the option command can be used to cause qm to update the date/time modified of the directory when writing to a directory file or on closing a sequential file that has been written. this option is not available on windows.the virtual file system (vfs) now supports use of pick style select list variables. the changes to add this new functionality also remove the risk of a vfs handler overwriting a numbered select list that is used by the application. for improved performance, the vfs now also supports partial select list generation where the list is generated as it is being processed. applications that use the vfs may need changes to the vfs handler select list generation functions. details are included in the template vfs.cls in the bp file of the qmsys account.the catalogue verb now skips items with invalid catalogue names, reporting the error to the user.the option command can now take multiple option names.the qmbasic formlistv statement can be used to build a pick style select list variable from a dynamic array.two new qmbasic functions, rounddown() and roundup(), have been added.the qmbasic return from program statement provides a neater and faster way to return from a call regardless of internal subroutine depth than use of repeated return to statements.the operating system level qm -u command now shows the command line used to start a phantom process as an aid to identifying specific qm processes.the qmsave tool, documented in the qm knowledgebase on the openqm.com web site, can be used to transfer data to qm from other environments.

qm 2.9-5 (released 08 jul 09)
two new qmclient functions have been introduced. qmselectpartial() builds a select list and returns multiple record ids in a single operation. qmnextpartial() returns the next part of the list. these functions provide better performance than reading the list item by item with qmreadnext() or in its entirety with qmreadlist().

qm 2.9-4 (released 26 jun 09)
the f-type voc entry record has been extended to add open mode flags in field 6. only one is currently defined. a letter t suppresses translation of restricted characters in record ids in directory files, leaving it up to the application to ensure compliance with operating system naming rules.procs now support the u01ad user exit.the command stack editor ctrl-r function has been enhanced to work more like its equivalent in other multivalue sytems.the basic command now supports use of a $basic.ignore control record which, determines which, if any, source records are skipped when using a select list or the * option.the find.program command can be used to locate and report details of a catalogued program.the rebuild.all.indices command has been extended to support the concurrent option.the qmbasic function, subroutine, public function and public subroutine statements now support provision of a default value for arguments not passed by the caller when declared using the var.args option.the no.map qualifier to the qmbasic open, openpath, openseq and deleteseq statements suppresses record id translation in directory files.use of the linux/unix kill command with signal 1 or 15 will now pass this on to the child process if the qm process is executing an operating system command.

qm 2.9-2 (released 08 jun 09)
the windows configuration editor and qmadmin tools are no longer included with qm. this is because microsoft have withdrawn functions that are needed by these tools. configuration parameter changes can be applied to the qmconfig file with any text editor. all functions of qmadmin can be achieved using command line tools.for improved consistency, both min.modulus and minimum.modulus are accepted by the create.file command and the equivalent qmbasic statement where previously each took just one of these synonyms.

qm 2.9-1 (released 02 jun 09)
this is a support release. there is no new functionality.

qm 2.9-0 (released 29 may 09)
this release adds support for the powerpc variant of the ibm rs6000 under aix.this release introduces distributed files that provide a view of multiple separate hashed files as though they were a single file. uses of distributed files include improved query performance by working with a reduced data set, load balancing over multiple disks, avoiding operating system file size limits and geographical separation of data over multiple servers.this release extends date and time handling to include support for applications that operate across multiple time zones. the qmbasic epoch() function can be used to return the current date and time in time zone independent epoch form. the e conversion code can be used to convert this to external form and vice versa. the time zone used by the e conversion is determined by the timezone private configuration parameter that may be updated for an individual qm session using the config command or the qmbasic set.timezone statement. the default time zone is taken from the operating system tz environment variable. as part of this development, the d conversion code has been extended to support two iso 8601 date formats. there are several functions to convert between epoch values and traditional multivalue date/time values. note that epoch handling is only fully supported in the linux, freebsd and mac versions of qm. aix provides partial support. windows support of time zones is very limited and cannot provide the full functionality of other platforms.the number of digits in the cyclic sequence number used by the next option of the setptr and set.queue commands can be changed from its default value of four by entering the required number of digits in field 3 of the record named $next in the dictionary of the $hold file. this value must be in the range 3 to 9.the authenticate command has been extended to support encrypted passwords.the copy.listp command has been introduced as a pick syntax version of copy.list.the list.index command has been extended to allow the report to be directed to a printer. it can now also report indices in all files in the account.the list.phantoms command provides a variant on the information shown by listu and status.the list.triggers command has been added to provide a summary of all trigger subroutines used by files in an account.the pick style listdict command (as distinct from use of list dict) has been enhanced to include d and i-type records.the make.index and build.index command now support a concurrent option that allows an index to be built while the file is in use. there is a performance penalty for this and the qmbasic selectindex, selectleft and selectright statements may stall waiting for the build to complete.the pstat command has been extended to allow selection of the processes to report by user login name. multiple user numbers or login names may be included in a single command.the set.date command has been withdrawn.the chained.select mode of the option command enables pick style behaviour of a select operation where, if the data queue is active, the command in the data queue will be executed on completion of the select if at least one record was selected. if no records were selected, the data queue is cleared.the option d3 and option mvbase commands provide shortcuts for setting multiple options that provide closer compatibility with other products.the implied.stop option of the $mode compiler directive will insert an implied stop at the end of a program, subroutine or function in place of the return that is normally inserted.the qmbasic dir() function has been modified to preserve the case of items in case insensitive file systems (e.g. windows). this change may require some applications that use this function to be modified to convert the returned data to uppercase. this function now also returns a third value containing the file attributes for each item. the format of this new data is platform dependant.the qmbasic flush.dh.cache statement can be used to force other qm processes to flush their cache of recently closed dynamic files. this should rarely be needed but allows a process to ensure that it is not blocked in an operating system level file action by some other process having a file cached.two new styles of the for/next loop have been introduced in qmbasic. these allow execution of a loop for a comma separated list of values and for each mark character delimited item in a variable.when the selectv option of the $mode compiler directive is in effect, the qmbasic select and readnext statements treat the list variable as optional, defaulting to an internal variable that is local to the program in which these statements are used.the qmbasic vocpath() function can be used to resolve a filename to its corresponding pathname, following q-pointers and applying extended filename syntax rules.the !phlog() subroutine can be used to determine the name of the log record for a phantom process.where both ends of the connection support it, qmclient and qmnet now encrypt network traffic. as a consequence of this change, the qmclilib.o object module previously released on linux, freebsd and mac has been replaced with the libqmclient.a library. the only change required in non-windows qmclient applications is to use this new library in place of the old qmclilib.o when linking the program. existing programs will continue to run but will not encrypt network traffic.the qmrevision() function of the qmclient api can be used to determine the version levels of the client and server sides of the connection.a new private configuration parameter, dhcache, has been added to control the size of the dynamic file cache. in most instances, the default value of 10 is probably adequate.a process started by the startup configuration parameter now runs with @tty set to "startup". this allows, for example, special handling in the login paragraph.

qm 2.8-10 (released 16 mar 09)
the inline prompt mechanism has been extended to allow the equivalent of qmbasic change(), iconv() and oconv(). this feature is most useful with nested inline prompts where the change or conversion is applied to some other prompt value.the sed editor now supports a trim command to remove trailing spaces from all lines in the record being edited.the synonym @account may now be used in place of @who.the qmbasic filelock and fileunlock statements have been extended to add optional then and else clauses.

qm 2.8-9 (released 02 mar 09)
alternate key indices may now be defined as being case insensitive when they are created using create.index or make.index. the internal sorting of a case insensitive index is based on an uppercase version of the data but operations such as selectindex will find data regardless of casing. note that because indices are stored in sorted order, a case sensitive index cannot be used in a query that uses case insensitive comparisond or vice versa.the column widths of the fstat command have been increased to allow for the high performance of mft drives.the options to the list.files command have been modified such that the default action is to show the statistical counts and the pathnames of open files. the brief option suppresses the pathname display. the detail option extends the report to show the user numbers and user names of the users with each file open. a file name can also be provided to show only users with that file open. the user option can be used to show only files open to a specific user.when a print unit is directed to a file, a check is made to see if there is a catalogued subroutine named hold.file.logger and, if there is, this is called when the file is opened and again when it is closed. this subroutine can be used, for example, to build a log of hold file entries or to take some action after the file has been closed.the query.merge.print mode of the option command causes a query report directed to a printer to merge the output as a continuation of the active print job if the printer is already active, leaving the printer active on completion of the report. without this option, the printer is closed at the end of the report.the rebuild.all.indices command rebuilds the alternate key indices of all files referenced by f-type voc pointers in the account from which it is executed. this may be of use following a system power failure where some data may not have been written to disk, ensuring that the indices correctly reflect the data stored in the files.the setptr command now has an eject option to force insertion of a form feed at the end of the job.the query processor now supports pick style explosion limiters on by.exp and by.exp.dsnd if the qualified.display mode of the option command is enabled.the stacklist option of the qmbasic execute statement causes qm to save the current state of the default select list (list 0) prior to executing the command and then restore it on return to the program. this allows the executed command to use the default select list internally.key value 1021 (fl$who) to the qmbasic fileinfo() function returns a field mark delimited list of the qm user numbers of user that have the file open.the qmbasic md5() function encodes a string to its md5 message digest value.the qmbasic open and openpath statements now support a non.transactional option to indicate that updates to the file are not to be treated as part of any transaction in which they occur.the qmbasic system() function has been extended to add key value 1036 to return the delay period for a login that had to wait for a spare user to become available when using the lgnwait configuration parameter. applications can use this data to perform statistical analysis for determining whether a larger licence is required.key value 1037 of the qmbasic system() function returns a list of all qm files open in the system and the user numbers of the users with them open.the full screen mode of the qmbasic debugger has been extended to add the /* command to view all variables in the program.the pda version of qm now supports limited capabilities for incoming telnet connections.the terminfo database now supports the stylus and pdakeys capabilities for the pda version of qm.

qm 2.8-8 (released 19 jan 09)
for compatibilty with other systems, a divide by zero in a correlative now returns zero with no warning or fatal error. divide by zero in qmbasic programs or i-type dictionary items continues to behave as in previous releases.the pick.ml.conv.mask mode of the option command can be used to modify the behaviour of the ml and mr conversion codes so that the format mask element may be enclosed in round brackets. use of this mode diables recognition of a left round bracket as a code requesting negative values to be enclosed in round brackets.the create.file command now supports a mode option to set the access permissions for the file (not windows).the delete command now reports a warning and continues if a record cannot be deleted because it is locked by another user.the inform option of the setptr command causes the name of the output file to be displayed when a mode 3 print job starts.the qmbasic clearcommon statement has been extended to allow clearing of a specific named common block.use of mode 3 printer output to direct printer output to a file now takes an update lock on the item while it is being written.

qm 2.8-7 (released 17 dec 08)
validation of directory file record ids has been modified to allow an extended range of characters.the proc processor has been enhanced to support [] as a call to a subroutine in the same procedure and to allow an alternative fb syntax.for compatibility with other multivalue systems, the if conditional expression in a correlative now returns a null string if the relevant then or else element is not specified in the expression.the force.reload mode of the option command can be used to force a complete reload of the qmbasic object code cache when a program is compiled or catalogued. this should be used with care as described under the qmbasic call statement in the qm reference manual.the listu command has been extended to include a detail option to show the current count of qm processes of each type and the peak number of processes that consumed a licence.the query processor selection commands now treat a field name on the command line that is not part of a selection or sorting clause as being an implied use of saving multivalued. this is for improved compatibility with other systems.the query processor l breakpoint option is ignore when used with the u option for improved compatibility with other multivalue environments.qmbasic now supports trailing substring assignment, e.g. a[3] = 'abc'.the qmbasic testlock() function can be used to return the owner of a specified task lock, zero if the lock is free.the trans(), rtrans() and xlate() functions have been modified such that failing to open the file will take the error action defined by the error code argument to the function.local functions and subroutines in qmbasic programs that take a whole matrix as an argument, no longer need a dim statement to declare the dimensionality of the matrix.the watch command of the qmbasic debugger has been extended to allow a condition that must be met for the program to stop.the lgnwait configuration parameter can be used to set a period in tenth of a second units for which a process will wait if it is unable to login because the user limit has been reached, trying again every tenth of a second. this feature can be useful in web server applications where peak loads could briefly exceed the licensed user limit.five new terminfo codes have been defined; eblink, eprot, edim, erev and ebold as the codes to turn off the corresponding blink, prot, dim, rev or bold display attribute. if these are not present in the terminal definition, the sgr0 code is used as in previous releases. this change allows qm to handle terminals that support multiple simulataneous display attributes.

qm 2.8-6 (released 10 nov 08)
this release fixes a bug in the linux installer that may set permissions incorrectly. there is no new functionality.

qm 2.8-5 (released 06 nov 08)
this release contains an important change for windows users. qm is only usable while the qmsvc service (or qmsrvr on windows 98/me) is running. this change has been necessitated by a change in windows regarding how shared memory works. for a detailed description of the reason for the change, see the openqm knowledgebase at www.openqm.com/cgi/lbscgi.exe?t0=h&t1=kb.00008.the absent.ignore keyword can be used in a query command to suppress the list of unfound records when ids are present on the command line or in a select list that are not present in the file being processed.the query processor csv option now supports a third mode (3) to quote all items.the basic command no.query option can be used to suppress prompts from the compiler. currently the only prompt that can occur is the confirmation when replacing a catalogued item.a new command, file.stat, has been added to produce a summary report of all files in one or more accounts.the if command used in a paragraph now supports exists and not.exists to check whether a record exists.the listu command now shows the account name for each user. as part of this modification, the process id column (pid) is now sized to fit the longest pid value in the report with a minimum width of four characters. this may affect any programs that capture and post-process the output from listu. such programs are probably better modified to use the !listu() subroutine.the reset option of the logto command has been extended to add reset all which discards all programs, menus, paragraphs, etc at all command levels.for improved compatibility with other systems where phantom processes can be started as specific user numbers, the phantom command now has an optional user clause that specifies that the user number for the new process. this number must be in the range defined by the phantoms configuration parameter.the set.file command has been modified to allow creation of q-pointer chains though this not recommended.the qmfix tool has been extended to add a new option, -z, that will clear the dead space at the end of a group. this has been added to correct a security risk where an encrypted file could have unencrypted data left in this area after splitting a group. users with encrypted files are recommended to run qmfix with this option once on each encrypted file. the underlying error in the group split process has been corrected so the problem will not recur.

qm 2.8-4 (released 09 oct 08)
the diagnostic data produced by the pdump command now shows the length of a string variable.the md conversion code is now more flexible in the order of its options.the !listu() qmbasic subroutine now returns the account name for each user.

qm 2.8-3 (released 03 oct 08)
to avoid some operating system security restrictions, the configuration file has been moved into the qmsys account directory where it is now named qmconfig on all platforms. an upgrade installation will automatically move this file. use of the qmclient qmconnectlocal() api needs to know the location of this file. if it is not in the default location (c:\qmsys on windows, /usr/qmsys on other platforms), the qmsys environment variable must be set to specify the location.the authenticate command can be used by a qm process started by the startup configuration parameter to reduce its privileges to those of some other user known to the operating system.the query processor break.on and break.sup keywords now support the n option to reset the page number to one at each breakpoint. this option implies the p option if not used with b or p.the $mode compiler directive can be used to enable support for the default file variable found in some other multivalue products. two variants of the default variable are provided; one in which the variable is local to the program in which it is used (as in d3 and unidata), the other in which the variable is common to all programs at the same command processor level (as in universe). the qmbasic statements that support use of the default file variable are clearfile, close, delete, deleteu, filelock, fileunlock, matread, matreadl, matreadu, matwrite, matwriteu, open, openpath, read, readl, readu, release, select, selectn, selectv, sselect, write and writeu. other statements and functions can use @stdfil to reference the default file variable.a new qmbasic getpu() function mode, pu$form.queue, can be used to retrieve the form queue number from the last use of sp.assign for a print unit.the qmbasic debugger now supports a "step over" command to step over a call to an internal or external subroutine without debugging its execution unless it contains a debug statement to force entry to the debugger.a qmbasic program can now test the status() function immediately after an end transaction statement to determine whether the transaction committed successfully.the qmbasic system() function supports two new key values. key 1033 returns true if a como file is active. key 1034 returns true if como output has been suspended.entering a blank command line in the qmbasic debugger now repeats the last command.

qm 2.8-2 (released 12 sep 08)
the como command has been extended to allow an existing record to be appended. also, logging of output can be suspended and subsequently resumed with the suspend and resume keywords to the como command.records in the $como file now go through the same process as other directory file records to transform names that contain invalid characters.the delete.account command now checks for subdirectories that are also accounts before deleting an account. the force option suppresses this check.the listdict command reports a and s-type dictionary records in a format similar to that used by pick style systems.the keep.old.object mode of the option command causes the qmbasic compiler to leave any previous version of the object code in place after a failed compilation instead of deleting it. use of this mode provides compatibility with some other products but is not recommended as a developer who fails to notice the compilation error may then go on to debug a program that has not actually been compiled.the qmbasic child() function can be used to determine whether a phantom process started from the session in which this function is used is still running.the qmbasic dquotes(), quotes() and squotes() functions provide multivalued equivalents of the dquote(), quote() and squote() functions, enclosing each element of a dynamic array in the appropriate type of quote.the !listu() qmbasic subroutine can be used to obtain the raw data used by the listu command.the way in which qm searches for public names in a class module has been changed to provide a substantial performance improvement to classes with very large numbers of public names. as a result of this change, class modules compiled at this release cannot be run on earlier releases of qm. older class modules will run on the new version without recompilation.entries in the error log now include the account name of the process that generated the message.

qm 2.8-0 (released 25 jul 08)
important note: release 2.8-0 renames the subfiles that form a dynamic hashed file. in earlier releases these were ~0, ~1, etc. they have been renamed to %0, %1, etc because two pc cleanup utilities have been indentified that incorrectly assume that any files with names commencing with a tilde are temporary items that can be deleted. conversion to the new names is automatic when a file is first opened by the new release but reverting to an earlier release will require manual renaming of the subfiles. use of qmnet to access files on a different revision is not affected. a quick way to convert all files in an account is to use listf as this will open each file referenced by the voc.qm now supports use of a and f-correlatives as conversion codes. these are provided to ease migration from other systems and their use is not recommended in new developments. in particular, the performance of an a-correlative used as a conversion code with the iconv() or oconv() function will be poor as the expression must be transformed to the equivalent f-correlative and then executed interpretively for every use of the conversion function. when used in the query processor, this transformation is performed only once as part of parsing the query.the copyp command has been modified for improved compatibility with other systems such that entering a null response to the to: prompt will display the records at the terminal.the stacked.account mode of the option command causes a program that performs an execute which directly or indirectly logs to a different account to revert to the original account on return from the execute.the query processor in operator can be used in a with or when clause to restrict output to only those items where the content of a field is in a previously saved select list. this can simplify queries that test against a large number of values. the corresponding not.in operator reports only items not in the named list.the qmbasic abort and stop statements now automatically use pick style message handling if there is a comma after the message.the qmbasic removef() function can be used to extract successive delimited items from a string using the same performance optimisation as remove.the qmbasic debugger now includes the pdump command to generate a full process dump file and the xeq command to execute commands.a new qmclient function, qmtrapcallabort, has been introduced to allow a qmclient session to trap aborts that occur in a subroutine called by qmcall.

Les maj plus anciennes n'ont pas été mise sur cette page

http://www.brodnet.com02.net http://www.bvr.com02.net http://www.heilles.com02.net http://www.helios.com02.net non aux racketicielshttp://www.pick.com02.net http://www.unwabu.com02.net http://www.toleacier.com02.net http://www.openqm.com02.net