On 13/11/2009, at 5:08 AM, Dennis Lovelady wrote:
Hmm... not as friendly-looking as the alternative, but sounds like
either
will do the trick. I wonder what the reason is that IBM has
multiple APIs
for functions like this... and with such wildly dissimilar names?
Because they were designed at different times and for different
purposes. The QHF APIs are part of the Hierarchical File System which
underlies Document Library Object support. These APIs are used by
Folder and Document interfaces such as OfficeVision. Although named
Hierarchical File System the hierarchy is faked via records in
database files. The actual objects are stored in the flat library
structure with a system-generated object name.
They also allow you to create user-defined file systems by using the
underlying DLO support. Fairly ugly but does work although I don't
know of anyone other than IBM building such a file system. This stuff
was created before the Integrated File System merged disparate file
systems such as QSYS and QDLS into a relatively consistent single
interface.
The Qp0l APIs are part of the Unix-like interface to stream files and
directories that arrived with VRM310. Although most people seem to use
the term IFS to mean stream files and directories they are wrong. The
IFS is everything on the system INTEGRATED under a single path-name
syntax. In addition to adding support for real stream files and a
proper hierarchical directory structure the designers managed to make
existing file systems appear under the same umbrella and so give a
Unix-like path syntax to all OS/400 objects.
Anyone
have any insight into that, and into whether one of these (QHFMOVSF,
'Qp0lRenameKeep') is more/less capable or efficient or something
than the
other? Of course one is a program; the other a procedure, so there
may (?)
be some performance gain there...
I believe the QHF APIs have been deprecated because everything they
can do can be done with directories, stream files, and UDFS in a
faster fashion.
Using the appropriate API for a given file system is likely "better"
than using one of the IFS APIs (e.g. QLIRNMO vs. Qp0lRenameKeep) but
the primary advantage to the IFS APIs is the consistent naming
convention which makes it easier to create client software that can
handle all OS/400 objects.
Regards,
Simon Coulter.
--------------------------------------------------------------------
FlyByNight Software OS/400, i5/OS Technical Specialists
http://www.flybynight.com.au/
Phone: +61 2 6657 8251 Mobile: +61 0411 091 400 /"\
Fax: +61 2 6657 8251 \ /
X
ASCII Ribbon campaign against HTML E-Mail / \
--------------------------------------------------------------------
As an Amazon Associate we earn from qualifying purchases.