[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
                       NETLIB What's going on there...

NETLIB - networking library described in this review is version 5.20, the 
newest version available for purchase from Database Warehouse in England.

First, what is a NETLIB. NETLIB is generally NETWORKING library with
wide support for not only Novell network. What is it not, STRICTLY related
low level library for Novell. For someone wishing to have maybe more low
level access to Novell supporting function is maybe better to pick NOVLIB.
But there is always good to know WHAT is in particular library before buying
it, therefore this review will try to fill purpose give FULL picture of
abilities of NETLIB.

Second, CLBBS Magazine is looking for possibility to test and write the same
review about NOVLIB, if someone from NOVLIB developers or owners is willing
to cooperate in this manner, it will be greatly appreciated.
NETLIB is coming in Summer 87 and Clipper 5.0 version with support of Novell
Netware, NETBIOS and Banyan/Vines networks. Some functions related to Novell
Netware are not available for other networks and vice versa. Also support for
some features available in all networks is more easier in Novell than in
other networks (where lacks of services from network operating system is
asking for additional solving with some external files).

NETLIB is more complex than one can thought. Even it's offering some
functions having nothing to do with networks, then strictly network related
function and also some function offering just Clipper/databases service.

    Some generic functions
    ----------------------

CH_AINIT()      Filling Array with enumerated list (it's for S87)
CH_RPAD()       Returns string padded with spaces to the specified length.
CH_SWAPCOL()    Swaps standard and enhanced colors in current setting.
CH_VARTYPE()    Returns data type of memory variable.
N_CHKSUM()      Performs standard XOR checksum on specified string.
N_ERROR()       Returns error code from most recent NetLib function.
N_NDX()         Returns name of Nth index file.

    Keyboard related (mostly for use in Clipper Summer 87)
    ------------------------------------------------------

CH_ALT()        Returning the numeric values of Alt key
CH_CTRL()       Returns the numeric value of the specified Ctrl+key.

    Conversions from ASCII number representations to numbers
    --------------------------------------------------------

CH_ASC1()       Retunrs Ascii value of character at specified position
CH_ASC2()       Returns two byte unsigned integer from string
CH_ASC4()       Returns four byte unsigned integer from string
CH_ASC8()       Returns 8 byte IEEE floating point from string

    Conversions from numbers to ASCII(byte) representations
    -------------------------------------------------------

CH_CHR1()       Overwrites one byte in memory-variable at position
CH_CHR2()       Overwrites two bytes in memory-variable with unsigned integer.
CH_CHR4()       Overwrites four bytes in variable with signed long integer.
CH_CHR8()       Overwrites eight bytes in variable with IEEE floating point.

    Database related functions
    --------------------------

CH_FLDNUM()     Returns the order number of the field in area.
CH_ISMEMO()     Returns .T. if specified field is a memo fielrray.
N_GATHER()      Gathers (replaces) database fields with data from array.
N_SCATTER()     Scatters (stores) database fields to specified array
N_SELECTUP()    Selects next active area starting from specified area.
N_UPDATED()     Compares array values to DBF fields
N_USE()         Attempts to open a database file and, optionally, index files.

    Numeric conversions
    -------------------

CH_HEXFMBIN()   Converts binary string to hex string
CH_HEXTOBIN()   Converts hex string to binary string
CH_STRH()       Returns hex string from numeric value.
CH_VALH()       Returns numeric value from hex string.

    Journaling functions
    --------------------

        Journaling is powerful capability of NetLib library. It offers
        complex ability to LOG (journal) every operations upon databases
        in program and later use those journal files for checking, backtrace
        or even changes of remote site (case of two the same database
        in two different places whose needed to be updated without copying
        of complete database files. Complete process is hidden for programmer
        because all what is required is just ask for start of transactioning
        (journaling) and then stop it when needed.

JNL_CONCAT()        Concatenates journal files
JNL_CREATE()        Create and initialize journal files.
JNL_INIT()      Reinitializes primary or secondary journal file header.
JNL_PARSE()     Parses journal file and creates a DBF for reporting.
JNL_TYPE()      Returns descriptive name for journal record type.
J_COMMENT()     Writes a user-defined comment record to journal file.
J_LOG()         Writes a log-on or log-off comment record to journal file.
J_START()       Opens the journal file and begins NetLog journaling.
J_STOP()        Closes the journal file and ends NetLog journaling.
J_STATUS()      Checks the status of the NetLog journaling file.
J_TRANS()       Marks the beginning or end of a transaction.
N_JOURNAL()     Directs NetLib to journal files in subsequent USE's.

    Low level network functions
    ---------------------------
        Those functions are sometime related to specific networks services
        or abilities (like NETBIOS related data cannot be coming from
        Novell Netware IPX related communication)

N_ADDR()        Returns physical network address of the current station.
N_AREDIRECT()   Stores redirected devices and paths into arrays (NETBIOS)
N_ASERVER()     Stores list of attached servers into array.
N_ATTACH()      Attaches to specified server.
N_DATE()        Returns current system date from server.
N_DETACH()      Detaches from specified server.
N_FULLNAME()    Returns full name of user logged-in at specified station.
N_FVOL()        Returns the network volume name of the drive letter.
N_LOGIN()       Attaches and logs object in server.
N_LOGMSG()      Writes up to 80 characters to Novell system log.
N_LOGOUT()      Logs out from specified server.
N_MAPDRIVE()    Creates, queries or destroys a drive mapping
N_NETLIB()      Returns number of the NetLib driver (network type)
N_NETNAME()     Returns NetBios Name Table entry
N_REDIRECT()    Redirects device to path or cancels redirection
N_RIGHTS()      Queries current user's effective rights
N_SECONDS()     Returns current system time from server
N_SERIAL()      Returns the server's serial number
N_SERVER()      Set or get preferred server.
N_SERVNUM()     Returns server's connection number (1-8)
N_SETLOG()      Enables/disables login to specified server.
N_STAMAX()      Returns the number of stations on the network.
N_STANUM()      Returns the current station number, 1-255.
N_TIME()        Returns current system time ("hh:mm:ss") from server.
N_VERSION()     Returns server version number and other statistics
N_WHERE()       Returns station number where the specified is logged
N_WHOAMI()      Returns ID of user logged-in at specified station.

    Network printing (NOVELL) related functions
    -------------------------------------------

        Greate set of functions to manipulate redirection (CAPTURE) of
        printer ports directly from Clipper with COMPLETE control over
        all (normally) CAPTURE parameters. There is NO set of functions
        for accessing jobs in QUEUE (PRINTCON in Novell).

N_BANNER()      Specifies print banner page text (up to 12 characters)
N_CLASS()       Sets document print class (0-99).
N_COPIES()      Sets number of copies to printed by spooler.
N_PRINTER()     Sets target printer number (1-99).
N_PRTSC()       Prints screen contents on selected printer using INT5.
N_SOFTSCR()     Prints screen contents by software emulation.
N_SPLCPL()      Sets maximum page width for current printer
N_SPLDEL()      Enables | disables deletion of spooled files
N_SPLFRM()      Sets document print form name.
N_SPLLPP()      Sets maximum lines per page for current printer.
N_SPLLPT()      Selects local print capture device (LPT1, LPT2, etc.)
N_SPLNOFF()     Suppresses | enables extra form feed at end of document.
N_SPLQUE()      Select print capture queue name.
N_SPLSRV()      Selects target server for printer output.
N_SPLTABS()     Sets number of spaces for tab expansion.
N_SPLTMO()      Sets spooler timeout value in seconds.
N_SPLFRM()      Prints specified username of print banner
N_SPOOL()       Start or Stop spool capture, or add file to spool queue.

    Record and filelocking functions and related
    --------------------------------------------

        NETLIB is expanding Clipper ability of locking ONE record per ONE
        file into MULTIPLE record locks in one file. It needs of course
        new set of functions.

N_BADLOCK()     Returns record number that caused N_MLOCK to fail
N_BLIP()        Set waiting "blip" for use with N_TIMEOUT
N_CHECKF()      Check which stations have an RLOCK or FLOCK
N_CHECKR()      Check which station has record locked.
N_CHECKU()      Check which stations have DBF file opened.
N_ISEXCL()      Returns if file is open exclusively or shared.
N_ISFLOCK()     Returns if file is FLOCKed by current station.
N_ISRLOCK()     Returns if record is locked by current station.
N_MLOCK()       Attempt to lock multiple records (all or none)
N_TIMEOUT()     Set lock timeout in seconds.

    Semaphores
    ----------

        Semaphores are special service offering possibility to create
        temporary Network object with given name which can be created only
        once and another station cannot create it again unless originator
        will release it.

N_CHECKS()      Check which station has semaphore locked.
N_ISSLOCK()     Returns if semaphore is locked at current station.
N_SLOCK()       Attempt to lock a "post-and-wait" semaphore string.
N_SUNLOCK()     Unlocks a specified semaphore, or all semaphores

    Novell Netware Bindery manipulation
    -----------------------------------

        Most dangerous part of NETLIB is allowing COMPLETE manipulation
        of bindery (definition of all users, groups and their properties)
        informations in Novell Netware. Because there is also possibility
        of changing, adding and deleting bindery informations must be this
        all used with caution.

N_B_CREATE()    Creates Bindery Object
N_B_DEL()       Deletes Bindery Object
N_B_ID()        Returns the bindery ID (number) of the specified Object.
N_B_ISMEMBER()  Returns .T. if member object is part of set.
N_B_LINK()      Connects Object to set
N_B_MEMBERS()   Stores names of set members in specified array.
N_B_NAME()      Returns the name of the specified bindery object.
N_B_PASSWORD()  Returns .T. if password is valid.
N_B_PRCREATE()  Creates Bindery Property
N_B_PRREAD()    Returns the value of the specified Property.
N_B_PRSCAN()    Stores names of all properties attached to Object.
N_B_PRTYPE()    Returns type of specified Bindery Property
N_B_PRWRITEE()  Modify a Bindery Item Property
N_B_SCAN()      Scans Bindery for matching Objects.
N_B_TYPE()      Returns the type (number) of the specified bindery object.
N_B_UNLINK()    Disconnects Object from Bindery Set

    Networking/DOS/Clipper related functions
    ----------------------------------------

        Those means some kind of expansion of Clipper abilities in DOS
        meaning. N_APPEND() is kind of very interesting service, normally
        all text related outputs from Clipper are just OVERWRITING any
        existing file (if there is output to file), N_APPEND() can switch
        overwriting to APPENDING and therefore ALL completely separated
        outputs with the same destination name can be appended to end of
        existing files, where Communications Horizons got idea of this
        function is really interesting....

N_APPEND()      Enable (ON) or disable (OFF) appending to TXT files.
N_DBASE()       Turns dBase compatible record locks on or off.
N_DBF()         Returns the name of the currently selected database file.
N_DBT()         Returns the name of the DBT file, open in the current area.
N_DEBUG()       Act as if it were on a network even when it is not.
N_ENVLEN()      Returns total length of root DOS Environment strings
N_ENVSIZ()      Returns size of root DOS Environment space.
N_EXCL()        Set's Clipper's Exclusive flag On or Off.
N_HANDLES()     Sets number of available file handles.
N_HOT()         Optionally turns Clipper's "hot buffer" flag off.
N_INDEX()       Opens or closes index files(s) in the current area.
N_MODENV()      Sets new environment variable
N_READONLY()    Files will be opened in readonly or normal read-write
N_RECCON()      Returns current record buffer as a string.

    Communication BETWEEN two (or more) stations via network
    --------------------------------------------------------

        This is NOT a using of standard SEND (or anynamed) Novell
        command, there is just special way for establishing connection
        between two or more stations and sending messages between them.
        It's complete basic for anything comunicating in between, network
        games, chating programs, controlling of remote programs....

N_CONNECT()     Initializes connections to a station or list of sta
N_DISCON()      Disconnect from a station or list of stations.
N_RECV()        Receives a message from a station.
N_SEND()        Send message to a station or list of stations.

    Files related functions
    -----------------------

        Finally there is a function setting Attributes of files INCLUDING
        Novell attributes SHAREABLE, TRANSACTIONAL and INDEXED!  Also what
        is very handy for debugging or playing nasty games with Clipper and
        his file handles is possibility of use N_FMAP() to get filespec
        related to file handle!

N_FATTR()       Sets or resets the specified file attribute.
N_FCOPY()       Copies one file to another.
N_FDRIVE()      Returns driveletter portion of filespec (including ":").
N_FEXT()        Returns extension portion of filespec.
N_FMAP()        Returns fiIespec associated with handle.
N_FNAME()       Returns 1-8 character base filename portion of filespec.
N_FPATH()       Returns path portion of filespec (including trailing "\").
N_FSPEC()       Searches Clipper SET PATH and DEFAULT for file.

    Databases and strings crypting
    ------------------------------

        Complete background, programmer independent process for
        crypting and decrypting databases on the fly.

N_CODELVL()     Queries encryption status of specified DBF file.
N_DECODE()      Decrypts specified DBF or DBT file.
N_DECODEST()    Decodes specified string with current SETKEY.
N_ENCODE()      Encrypt DBF or DBT file based on curremvar).
N_ENCODEST()    Encodes string using current SETKEY.
N_SETKEY()      Sets current encryption key (1-8 characters).

    Generic TIMER function
    ----------------------

        This is absolutely ingenious. First, it can store in keyboard
        buffer (like KEYBOARD command) string after some time passed and
        nobody touched keyboard (good to exit READ when user is lunching
        somewhere). Second it can activate periodical calling to needed
        function (in simpliest way it can call displaying of clock on
        screen).

N_SETTIME()     Stuffs string onto keyboard after has elapsed time.
                Calls procedure on regular interval while wait-state

    Transaction Tracking (TTS) of Novell Netware
    --------------------------------------------

        Complete needed support for including TTS ability into Clipper
        programs.

T_ROLLBACK()    Roll-back (cancel) currently active transaction.
T_START()       Disables implicit transactions and activates TTS
T_STATUS()      T_STATUS(0) returns True if TTS active.
T_STOP()        Re-enables implicit transactions prior to ending application.
T_TRANS()       Start or end a TTS transaction.


What to say at end? NETLIB is very interesting set of functions from more
parts of networking, there are some from very good ideas like multiple record
locking, timer function, timeout stuffing of keyboard commands, journaling
and other networking stuff. Final feeling is still, that ideal combination
would be NETLIB with NOVLIB for complete needs.


This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson