• One thing:

    why the name of sj and sh data type are sysname? which causes centain problems in datalength() function...

    -D