======================== UniVerse for Windows NT Release 9.5.1.1D Release Notes August 1999 ======================== Copyright 1999, Ardent Software, Inc. All rights reserved. Microsoft is a registered trademark of Microsoft Corporation. Visual Basic and Windows NT are trademarks of Microsoft Corporation. UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company, Ltd. All other company or product names mentioned are trademarks or registered trademarks of their respective trademark holders. These release notes contain important information about Release 9.5.1.1 of UniVerse for Windows NT that supplements the help files and printed documentation. Using UniVerse Online Help ========================== UniVerse has a complete online help system. For details, refer to UniVerse User Reference or UniVerse System Description. Technical Support ================= Ardent Technical Support Center numbers are operated between 8:00 a.m. and 8:00 p.m., Eastern Time. To reach the Center, simply dial 1-800-729-3553. A support representative will answer your call and you will be asked to supply your license serial number, UniVerse release level, and a description of the problem. If you reach the electronic mail box, please leave your name, phone number, time of call, license serial number, UniVerse revision level, and a brief description of the problem. A support representative will call you back shortly. If calling from outside the United States, please dial (508) 366-3888 and request that your call be transferred to Technical Support. You can also fax your request for assistance to the Technical Support fax number at (508) 389-8750. ========= Contents ========= 64-Bit File System Support Important Notes about Replication Differences from Previous Releases Starting Up and Shutting Down UniVerse Transferring Accounts to Windows NT Improving System Performance Problems and Restrictions Differences Between PI/open and UniVerse GTARS File National Language Support (NLS) Corrections/Updates to the Documentation Problems Fixed at This Release UVODBC 3.7 Release Notes =========================== 64-Bit File System Support =========================== Starting with Release 9.5.1.1C, UniVerse supports 64-bit file systems. There is a new UniVerse configurable parameter, 64BIT_FILES, that lets you specify whether UniVerse uses 32-bit or 64-bit file systems. New options have been added to the following UniVerse commands: o CREATE.FILE has two new options that let you override the current setting of the 64BIT_FILES parameter. The 64BIT option lets you create 64-bit files on a UniVerse system using 32-bit file systems. The 32BIT option lets you create 32-bit files on a UniVerse system using 64-bit file systems. o RESIZE has two new options that let you override the current setting of the 64BIT_FILES parameter. The 64BIT option lets you resize a file to 64-bit on a UniVerse system using 32-bit file systems. The 32BIT option lets you resize a file to 32-bit on a UniVerse system using 64-bit file systems. o FORMAT.CONV has a new -o (Old Style) option that lets you convert a 32-bit file created or resized on a UniVerse 9.5.1C or later system to the older 32-bit format used on Releases 7.3.1 through 9.5.1B. The InterCall ic_fileinfo function does not support 64-bit files at Release 9.5.1C. ================================= Important Notes about Replication ================================= At the A-patch release we added support for Q-pointers, multiple data files and files with explicit file paths or short file names. This support essentially requires changes be made to the underlying replication subsystem. If you are upgrading from UniVerse 9.4.1 or 9.5.1 and you currently use the replication feature of UniVerse, you need to follow these steps in order to maintain the stability of your replication configuration. In order to complete this upgrade without disrupting your systems replication subsystem, all subscriptions, publications and system definitions must be removed while the patch release is installed. Once the installation is complete and UniVerse has been restarted, you can republish and resubscribe your files. At the C-patch release, the user interface to replication has been rewritten. Replication now supports the publication and subscription of file dictionaries and distributed files. ================================== Differences from Previous Releases ================================== At this release some functionality may behave differently from previous releases of UniVerse for Windows NT. Read the following sections to see how this could affect your applications. Changed User Names Default __________________________ Before Release 9.3.1, UniVerse on Windows NT used short user names that did not include the domain name. At this release, fully-qualified user names are used in the format: \ If you want to use short user names, use the Windows NT Registry Editor to add an entry to the registry as follows: 1. Choose HKEY_LOCAL_MACHINE > Software > Ardent Software > UniVerse > CurrentVersion On Windows NT 4.0, choose Edit > New > DWORD Value. Enter the value name UseShortUserNames. Double click the value name and you are prompted to enter a value. Enter 0 for long user names or any nonzero number for short user names, then choose OK. Short User Names and MESSAGE ____________________________ If you configure UniVerse to use short user names as described in the previous section, you cannot use the MESSAGE command to send messages to all users on the local domain, as the domain name is not present in the user name. Domain Users and SQL GRANT __________________________ A domain user and a local user with the same user name are treated as different users. For example SALES\alice and alice are not recognised as the same user. This affects the SQL GRANT statement. If your users can log in both locally and from a domain, you must specify both the domain and the local user name in the GRANT statement. For example: >GRANT CONNECT TO alice, SALES\alice; FORMAT.CONV Command ___________________ The FORMAT.CONV command is not available in this release. Use the fnuxi command from a DOS command window. ====================================== Starting Up and Shutting Down UniVerse ====================================== You must be a system or domain administrator to start up or shut down UniVerse. You can start up UniVerse in one of three ways: 1. From the UniVerse Control Panel Choose Start > Programs > Ardent UniVerse> UniVerse Control. Click Start All Services. 2. From the Windows NT Control Panel Double-click Services. Scroll down the list of services until you find four entries for UniVerse: UniVerse Resource Service, Uni RPC Service, UniVerse Telnet Service, and UniVerse REXEC Service. Click UniVerse Resource Service and press Start. Repeat this for the other three services. 3. From the MS-DOS prompt At the MS-DOS prompt type the following four commands: net start universe net start unirpc net start uvtelnet net start hsrexec Each command reports the name of the service it is starting and whether the startup is successful. NOTE: The UniVerse services start automatically when the operating system is loaded unless you unchecked the automatic startup boxes during UniVerse installation. You can shut down UniVerse in one of three ways: 1. From the UniVerse Control Panel Choose Start > Programs > Ardent UniVerse > UniVerse Control. Click Stop All Services. 2. From the Windows NT Control Panel a. Double-click Services. Scroll down the list of services until you find four entries for UniVerse: UniVerse Resource Service, Uni RPC Service, UniVerse Telnet Service, and UniVerse REXEC Service. b. Click UniVerse Resource Service and press Stop. A window appears informing you that in addition to the UniVerse Resource Service the UniVerse Telnet Service will also be stopped, and asking for confirmation to proceed. Click OK. The UniVerse Resource and UniVerse Telnet Services are shut down. c. Click Uni RPC Service and press Stop. A window appears informing you that in addition to the Uni RPC Service the UniVerse REXEC Service will also be stopped, and asking for confirmation to proceed. Click OK. The Uni RPC and UniVerse REXEC Services are shut down. 3. From the MS-DOS prompt a. Type the following command: net stop universe This displays a message indicating that if the UniVerse Resource Service is stopped, it will also stop the UniVerse Telnet Service and will ask for confirmation to proceed. Enter Y and press RETURN. The two services are shut down in turn. b. Type the following command: net stop unirpc This displays a message indicating that if the Uni RPC Service is stopped, it will also stop the UniVerse REXEC Service and will ask for confirmation to proceed. Enter Y and press RETURN. The two services are shut down in turn. NOTE: If users are connected to the services when the services are shut down, the users will not lose their connections; the connections remain active until the users terminate them. However, it will not be possible for new users to connect to UniVerse. To do a complete shutdown of UniVerse, in order to restart the services, you should ensure that all connections are terminated. ==================================== Transferring Accounts to Windows NT ==================================== If you want to transfer accounts between UniVerse systems running UNIX and Windows NT, or between two Windows NT systems, you can use the uvbackup and uvrestore commands. You cannot transfer accounts to Windows NT using UniVerse Admin. If you save an account with uvbackup and want to restore it to a different operating system, specify relative rather than absolute pathnames as the directory structure may be different on the target system. ============================ Improving System Performance ============================ This section contains some ideas for improving system performance on a Windows NT server. Tasking _______ You can improve response time from UniVerse by balancing the Windows NT tasking so that foreground and background tasks receive equal CPU time. On Windows NT 4.0, from the Windows Control Panel, choose System, then choose the Performance tab. Move the Application Performance slider to None. Click OK. Screen Savers _____________ Use a blank screen saver on your server. Screen savers with elaborate graphics can use huge amounts of foreground CPU tasking. This slows down background tasks, such as a UniVerse telnet session. ========================= Problems and Restrictions ========================= This section contains information about some problems and restrictions associated with this release. Logging Out Sleeping or Busy Processes ______________________________________ It is not possible to log out a sleeping or busy process on Windows NT. This affects the MASTER OFF and LOGOUT -pid commands. For example, if you have used a SLEEP statement to defer execution of a program sequence, you cannot use MASTER OFF to kill it, you must wait until the process is active again. Phantom Processes and Console Users ___________________________________ If you run a phantom process from the console window, then quit, the window does not go away until the phantom process completes. (This can seem like UniVerse is hanging.) To avoid this, always launch phantoms from a telnet window. Lowercase Device Names and Transaction Logging ______________________________________________ You cannot configure transaction logging to log to a tape device whose name is in lowercase. This applies even if the device name is in lowercase in the &DEVICE& file. The device appears in the list of possible devices, but if you select it and then redisplay the list of devices configured for transaction logging, it is not present. To avoid this problem, use uppercase device names. *REMOTE.B Subroutine Calls __________________________ The *REMOTE.B subroutine encounters problems when it is called during a UV/Net II connection to a UniVerse system running under Windows NT version 4.0. The subroutine works correctly the first time it is run; the second time it is run it fails and returns an empty string; the third or subsequent times it works correctly. Windows NT Shutdown and Data Integrity ______________________________________ Windows NT allows only a very short time for applications to close during a shutdown of the system. If applications do not respond quickly, the shutdown process closes the applications immediately. If your UniVerse application is writing data to disk during the shutdown you could lose data. This can have severe consequences for the UniVerse transaction logging service. If a shutdown request is issued during a transaction, the transaction logging service must flush the buffered transaction to disk. If the operating system shuts down before the write to disk finishes, the data integrity of the transaction is lost. To ensure data integrity, always shut down the UniVerse service from the Services menu before shutting down Windows NT. If you have a transaction running, check that the final entry in the uvlogd.info file in your transaction log directory reads as follows: "Logging system shut down consistently." If this message is present, it is safe to shut down Windows NT. COMO files and VERIFY.SQL _________________________ If you use a COMO file to collect the output from the VERIFY.SQL ALL command when the COMO file is closed, an unexpected error results and UniVerse terminates. The workaround is to create an entry in the VOC of the account where you wish to run the verification: 0001: PA 0002: TERM ,9999 0003: VERIFY.SQL ALL Save the entry under a well known name, for example MY.VERIFY. Execute the following command from the MS-DOS prompt: uvsh "MY.VERIFY" >outputfile The output is captured in the file outputfile. UniVerse Admin ______________ If you change a configurable parameter that affects the multiuser environment the configuration editor incorrectly reports that the uvconfig file is corrupt. These parameters are GSEMNUM, FSEMNUM, PSEMNUM, FLTABSZ, GLTABSZand RLTABSZ. The uvconfig is not corrupt and the data was saved. You can use the uvconfig file. ========================================= Differences Between PI/open and UniVerse ========================================= The following sections describe differences between PI/open and UniVerse that are in addition to those documented in Moving to UniVerse from PI/open. These differences may cause problems for users moving from PI/open to UniVerse. SELECT SAVING -------------- If you use the SAVING keyword with SELECT you may encounter problems if the item being saved consists of multiple fields. For example, suppose you have a file called TEST.FILE which contains records whose F1 field contains multiple values (values separated by value marks). If you execute the following sentences the number of records saved may not be what you expect; it depends on the number and size of the values involved: LIST TEST.FILE SAVING EVAL "RAISE(F1)" SAVE.LIST TEST.LIST With a small number of values, TEST.LIST will contain an ID for every value in TEST.FILE. However, with a large number of values, some of the values will not be raised correctly, leading to a corrupt save list (see also GTAR 15940). One suggested workaround is to create a new version of the SAVE.LIST command (e.g., SAVE.LIST2) along the following lines: PA HUSH ON SAVE.LIST TEMP.NAME DELETE &SAVEDLISTS& > ED &SAVEDLISTS& TEMP.NAME DATA SAVE <> DATA QUIT HUSH OFF Order of Processing of Prompts in Paragraphs -------------------------------------------- If a prompt in a paragraph is preceded by the * comment symbol, the prompt may not appear in the same place in the output when the paragraph is executed in UniVerse. This may cause problems for some applications. Consider the following paragraph: PA DATE * <> In PI/open it gives the following output: Tuesday, January 31, 1995 06:01 PM Press RETURN to continue = : In UniVerse it gives the following output: Press RETURN to continue= Tuesday, January 31, 1995 06:02pm > However, if you remove the comment symbol in the UniVerse example, the ordering of the output is the same as in PI/open (see also GTAR 15942). terminfo Definitions ---------------------- If you do not install the UniVerse terminal definitions, you may find that some display features of your terminal are not handled as you might expect. In this case UniVerse uses the version of the terminal definition supplied by the operating system, but it does not interpret all of the control sequences correctly. For example, on a Wyse 50, the HP-UX operating system definition for the clear function is \E*$<20>, but the UniVerse definition is ^Z. Both are valid, but when UniVerse attempts to use the system definition, it does not understand the $<20> syntax and sends the sequence as printable characters to the terminal, hence it appears in your output (see also GTAR 15943). DISPLAY Does Not Support the : Option -------------------------------------- The DISPLAY command, which can be executed from the UniVerse prompt, does not support the : option. In PI/open, if a : is appended to the display string, a newline character is not sent to the terminal at the end of the string. This means that the next display position starts immediately after the last character of the display string; in UniVerse the next display position is in column 1 of the next line down (see also GTAR 15946). Pagination Does Not Support the Suppress Option ----------------------------------------------- In PI/open, when output is being paginated on the screen, it is possible for the user to suppress it (i.e., skip to the end) by typing s in response to the Press to continue... prompt. This feature is not available in UniVerse (see also GTAR 15947). Clearing Distributed Files -------------------------- In PI/open it is possible to clear all parts of a distributed file by using the CLEAR.FILE command on the distributed file itself. This is not possible in UniVerse. Instead you must use the CLEAR.FILE command on each part file (see also GTAR 15948). BASIC DEFFUN Statement ---------------------- In UniVerse the BASIC compiler produces an error if you use the DEFFUN statement to define a function without first defining its arguments. The following example uses the DEFFUN statement twice: in the first case the compiler generates an error; in the second case, the arguments are defined before the function, and the syntax is accepted by the compiler (see also GTAR 15453): DEFFUN MYFUNC1(MAT A) DIM B(0) B(0) = '' DEFFUN MYFUNC2(MAT B) END Compilation output: Compiling: Source = 'BP/DEFFUN.B', Object = 'BP.O/DEFFUN.B' * Array 'A' never dimensioned. 1 Errors detected, No Object Code Produced. BASIC KEYIN Function -------------------- In a PI/open INFO/BASIC program, the KEYIN function normally returns the mapped values for system delimiters (unless you specified the PI/open RAW.INPUT compiler option) as shown in the following table: Delimiter ASCII Value Mapping --------------------------------------------- Text mark 26 251 Subvalue mark 28 252 Value mark 29 253 Field mark 30 254 Item mark 31 255 In UniVerse no mapping takes place, and the KEYIN function returns the ASCII values shown in the middle column. BASIC $OPTIONS INFO.CONVERT --------------------------- The INFO.CONVERT option is not supported in this release. BASIC INPUT @ Statement ----------------------- In a PIOPEN flavor compilation (i.e., $OPTION PIOPEN), or in programs that use the $OPTIONS INPUTAT statement, the screen position you specify is that of the input prompt, rather than the input field. That is, the input field begins one column to the right of the column you specify. Except in PIOPEN flavor, the INPUT @ statement does not currently provide an automatic carriage return when the specified number of characters have been entered into the field (see also GTAR 15767). BASIC RETURN Statement ---------------------- The UniVerse BASIC compiler produces a warning when the RETURN statement returns from an internal subroutine within a function. The warning does not affect the compiled code and may be ignored (see also GTAR 15447). FUNCTION BETA GOSUB INITIALIZE * *Main program code * RETURN (CODE) INITIALIZE: * * Internal subroutine code * CODE = 0 RETURN END Compilation output: Compiling: Source = 'BP/FUNCTION.B', Object = 'BP.O/FUNCTION.B' ** 0018 RETURN ^ WARNING: no RETURN value specified, null used. Compilation Complete BASIC Variable Names -------------------- If you use a variable name in the format INCLUDE.text, as shown in the following example, the compiler produces an error (see also GTAR 15451): LOOP INPUT INCLUDE.VAR WHILE INCLUDE.VAR REPEAT END Compilation output: Compiling: Source = 'BP/INCLUDE.B', Object = 'BP.O/INCLUDE.B' 0007 WHILE INCLUDE.VAR ^ No VOC entry for INCLUDEd file ".VAR". ^ End of Line unexpected, Was expecting: Array Name, CALLable Variable Name, DIMENSIONable Array Name, Variable name, New variable name, Expression, "CREATE", "FLUSH", "GET", "INPUTIF", "LOCATE", "LOCATEP", "LOCK", "MATREAD", "NOBUF", "OPEN", "OPENPATH", "PROCREAD", "READ", "READBLK", "READNEXT", "READSEQ", "READT", "READV", "REWIND", "SEEK", "uSEEK", "TTYCTL", "WEOF", "WRITEBLK", "WRITESEQ", "WRITET", "FIND", "FINDSTR", "GETLIST", "READLIST", "TTYGET", "TTYSET", "uINPUT", "TRANSACTION", "OPENCHECK", "BSCAN", "RPC_CALL", "WRITESEQF" 2 Errors detected, No Object Code Produced. Terminal Width -------------- In UniVerse, the default terminal width is set to 79 columns, and column 80 is reserved for a Return. If your program uses a terminal width of 80 columns, your reports may be listed vertically on UniVerse. If you try to avoid this by using the command TERM 80 to change the default setting, the reports are listed double spaced because both UniVerse and the terminal issue a Return at the end of each line. Currently, the only workaround is to reduce the terminal width to 79 columns (see also GTAR 15434). PI/open to UniVerse Account Conversion Problem ---------------------------------------------- Record IDs in NEWACC and VOC Files If the ISYS NEWACC file or any of your PI/open accounts' VOC files hold record IDs that contain the "special" UNIX shell $ or \, account conversion may fail. The solution to this problem is to change the record IDs in PI/open before you begin the conversion, and change them back in UniVerse when conversion is complete (see also GTAR 15780). ISOMODE 2 --------- If you are running with the UniVerse configurable parameter ISOMODE set to 2 (default value is 1), several System Administration BASIC routines will fatal due to updating an administrative file without previously setting a lock. The menu options include Add Accounts, Modify Accounts, Delete Accounts, and Devices (see also GTARs 15280, 15281, 15282, and 15283). =========== GTARS File =========== The UV account directory has a UniVerse file called GTARS which contains both the fixed and open bugs associated with the current release of UniVerse. You can use all the facilities of RetrieVe to produce reports of these GTARs. The VOC file of the UV account contains a menu that you can use to display the following on your terminal: · All closed GTARs incorporated in the current release · All GTARs describing unfixed problems in the current release · All GTARs submitted under your customer number · All closed GTARs submitted under your customer number · All open GTARs submitted under your customer number To invoke this menu, change directories to the UV account directory and enter the UniVerse environment by using the uv command. This will bring you into the UniVerse System Administration menu system. Press the Esc key to exit the menu system and return to the UniVerse command prompt. Enter the command LIST.GTARS to display the GTAR menu. If you do not know your customer number, please contact your technical support provider. ================================ National Language Support (NLS) ================================ Multibyte Identifiers ------------------------------------------------------ At Releases 9.4 and 9.5, UniVerse NLS does not support the following: - Multibyte UniVerse account names - Multibyte SQL identifiers (schema names, table names, view names, etc.) UVLANG Environment Variable --------------------------- To set your initial UniVerse locale, use the UVLANG variable. When you start a UniVerse session, UniVerse retrieves the value of the UVLANG variable and checks to see of a locale of the specified name is loaded. If it is, it becomes your current locale. Direct UniVerse connections (uvsh), telnet connections, and BCI connections are all affected by the UVLANG variable. NLS Map for Windows NT Console ------------------------------ When you install UniVerse on Windows NT, be sure to set up the NLS map for the console correctly. The default is probably something like PC850 or MS1252; howeverm this may not be correct for your version of Windows NT. Choose an appropriate map. For example, for the Korean version of Windows NT you should use MS949. Note: The appropriate map may not be one of the PCxxx or MSxxxx maps. If you cannot set the map correctly during installation, correct it later as follows: 1. Change directory to the UV account directory, e.g. D:\UV\UV 2. Decompile the console terminal definition: bin\uvtidc console > tmpfile 3. Use NOTEPAD to edit the tmpfile. Change at80 and at81 to the name of the required NLS map and save the file. 4. Compile the console terminal definition: bin\uvtic tmpfile If the map is not set up correctly UniVerse commands that are run stand-alone or from UniVerse client/server products, such as UniVerse Admin, may not display messages correctly. Multibyte NLS Maps and System Delimiters ---------------------------------------- NLS provides maps for a number of multibyte character sets such as Japanese, Chinese, and Korean. On their own these maps do not allow the UniVerse system delimiters to be used (which is also true of the single-byte maps). However, unlike the single-byte maps where it is possible to use the internal values of the system delimiters in the external character set, this is not possible with the multibyte maps because the system delimiters can be misinterpreted as lead bytes of multibyte characters. For this reason NLS provides versions of all the multibyte maps both with and without the UniVerse system delimiters. The maps provided are as follows: Without System Delimiters With System Delimiters ------------------------- ---------------------- BIG5 BIG5+MARKS GB2312 GB2312+MARKS JIS-EUC+ JIS-EUC++MARKS JIS-EUC JIS-EUC+MARKS JIS-EUC2+ JIS-EUC2++MARKS JIS-EUC2 JIS-EUC2+MARKS KSC5601 KSC5601+MARKS PRIME-SHIFT-JIS PRIME-SHIFT-JIS+MARKS SHIFT-JIS SHIFT-JIS+MARKS TAU-SHIFT-JIS TAU-SHIFT-JIS+MARKS The UniVerse system delimiters are mapped into the following values for each character set: Value (in hex) System Delimiter -------------- ---------------- 1A Text mark 1C Subvalue mark 1D Value mark 1E Field mark 1F Item mark In addition, the null value is mapped to the hexadecimal value 19. The NLS.UPDATE.ACCOUNT Command and the UV Account -------------------------------------------------- The NLS.UPDATE.ACCOUNT command must be run in the UV account if you want to use non-ASCII data. This ensures that all UniVerse system files are configured with the appropriate NLS maps. Code Page Configuration on Multibyte Windows NT ----------------------------------------------- On Windows NT the code page detected by UniVerse client programs may not be the real code page in use. This information is returned by an operating system call and is outside of the client's control. The code page information is passed to the server, which looks it up in the NLS.CLIENT.MAPS file, part of the NLS database. If there is no entry in the file, a default is selected either from the NLS.CLIENT.MAPS file, if one exists, or from the NLSDEFSRVMAP configurable parameter in the uvconfig file. It should be clear from this that the server can select the wrong map for the client. For example, suppose you are running on the Korean version of Windows NT. This returns the code page number 1252, though the real code page is 949. The client sends an identifier of WIN:1252 to the server. The server tries to find a record for WIN:1252. If it finds the entry that is shipped with UniVerse, this sets the NLS map to MS1252, which is wrong. You can do one of three things to resolve the problem: - Change the WIN:1252 entry to point to the correct NLS map, e.g Record id: WIN:1252 0001: Korean character set 0002: KSC5601+MARKS - Delete the WIN:1252 entry and set the WIN:DEFAULT entry to point to the correct NLS map. - Delete both WIN:1252 and WIN:DEFAULT entries and set the NLSDEFSRVMAP tunable parameter to the correct NLS map. The first of these options is preferable. Known NLS Problems at Release 9.4 ================================= International Currency Symbol in DEFAULT Locale ----------------------------------------------- The DEFAULT locale is built during the initial installation of NLS. This does not build the international currency symbol correctly. It will be displayed as USD rather than USD , that is, USD followed by one space character. This can be fixed as follows: 1. Change directory to the UV account directory. 2. Enter UniVerse. 3. Execute the following command: ED NLS.LC.MONETARY DEFAULT 4. Change field 6 to USD , that is USD followed by one space character. Save the record. 5. Use the NLS.ADMIN tool to create a new locale where all of the categories are set to DEFAULT. Build the locale. 6. Shut down and restart UniVerse to load the new definition into shared memory. CURR_SYMBOL, POS_SIGN and NEG_SIGN Must Be Unique ------------------------------------------------- The CURR_SYMBOL, POS_SIGN and NEG_SIGN fields of a locale must all contain unique characters. If not, it is impossible to distinguish the sign from the currency symbol meaning that an ICONV of currency values can fail. This problem has been raised as GTAR 21197. BASIC Programs and Multibyte Filenames and Record IDs ------------------------------------------------------ The verbs which allow the you to compile, catalog and examine programs work only with ASCII filenames and record ids. That is, you cannot create a program with a multibyte name in a file with an ASCII name, or a program with an ASCII name in a file with a multibyte name. The BASIC command will not compile the program and you will not be able to catalog it. Commands affected are: BASIC CATALOG DECATALOG DELETE.CATALOG VCATALOG This problem has been raised as GTAR 21509. uvrestore and Multibyte Characters ----------------------------------- Dynamic files are not restored properly from a full uvbackup if the dynamic file name contains multibyte characters and the dynamic file currently exists in the directory where the file is to be restored. Before attempting such a restore, delete the dynamic file from the account. The file will then be recreated properly by the uvrestore process. Additionally, if the NLS map on a type 1 file has been changed since the time of the full backup, the type 1 file must be deleted for the original NLS map to be restored properly. If the map has not changed, the warning messages printed will not stop the file from being restored properly. List of Outstanding NLS GTARs at This Release --------------------------------------------- The following is a list of NLS relate GTARS that are outstanding at this release. Some of the problems noted above are repeated in this list. GTAR. Long Description........................................... 16834 When using T.READ to display the contents of a tape, if NLS is active and the byte count of a character is not equal to the display length then the display can become corrupted.This will only happen with NLS active and multi-byte data on the tape. 21007 The uvrestore fix under Gtar 20150 was implemented incorrectly. The functions iftoef and eftoif should have been called but instead were included verbatum inside the uvbackup.c module. Further modifications to the iftoef and eftoif functions will not be available to the uvrestore process because of this. Need to change uvrestore to call these functions. 21112 The functional spec for NLS locales says that the MT conversion code should allow the HMS separator to be any single non-numeric character, which may be enclosed in quotes (single or double). As implemented today, if NLS is off it can be any character, but cannot be quoted. With NLS on it can be any character enclosed in single or double quotes. No check is made to see if the character is nonnumeric, in either case. 21153 BCI must reject connections to ODBC data sources when NLS is ON (because BCI maps user data to UTF8 before writing and from UTF8 after reading, so data other than 7bit ASCII is changed)...NOTE: needs reconsideration; may be ok. 21197 The CURR_SYMBOL, POS_SIGN and NEG_SIGN fields of a locale must all contain unique characters. If not, it is impossible to distinguish the sign from the currency symbol meaning that ICONV of currency values can fail. The solution is to modify NLS.BUILD to verify that all the characters chosen are unique. 21269 Install (or possibly just re-install) of NLS on NT does not set the terminal map correctly for the console. You can specify the map you want during the install, but it seems to be ignored. 21370 The LISTU command does not display the date correctly when running on NT with a multibyte character set. The code does not take NLS into account and the month displays with unmappable characters. 21474 There are two problems with the default MT conversion code (field 7) in the Korean locale: (1) it is defined as MTP[...etc...], giving an hour, minutes, seconds separator of 'P' (should be ':'); (2) the text in [] following the MT is missing a leading ' for the seconds separator:['^xC2DC','^xBD84',^xCD08'] => ['^xC2DC','^xBD84','^xCD08'] 21485 Uvrestore will not restore a dynamic file with a multibyte name if the file already exists on disk and the user is attempting a full restore. Also, the .Type1 and .uvnlsmap files associated with Type1 files are not being removed are restored properly. 21486 CREATE.FILE will not work when the file already exists on disk but does not have a corresponding VOC record. The command fails with the error messages: Maximum file number has been reached. ***Processing cannot continue*** 21487 Revise does not display associated multivalued fields properly if these fields contain double width characters. An extra blank space appears to be printed for each double width character being displayed. 21488 mkdbfile.c and do_mkdb.c have places where internal and external file names are not being mapped properly when NLS is on. 21509 Verbs which provide the BASIC compilation and cataloging environment cannot be used with multi-byte filenames or record ids. At present only ASCII filenames and record ids are guaranteed to work. 21510 ANALYZE.FILE does not display the Pathname of the file correctly when the filename is multi-byte. The Filename *is* displayed correctly, however. 21511 When building the NLS-DEFAULT locale during an initial install of NLS you get a message warning that the MNEMONICS map is not loaded and that the locale may not be built correctly if it contains mnemonics. This affects the MONETARY category of NLS-DEFAULT because the international currency symbol is defined as USD. This is taken as the literal currency symbol - the should be replaced by a space character, but is not. The fix is to change the definition to have a real space rather than in the definition. ============================================= Corrections and Updates to the Documentation ============================================= The C-patch release includes a new UniVerse Online Library on CD-ROM. This is a completely updated documentation set for UniVerse 9.5.1D. It supersedes the previous UniVerse Online Libraries for Release 9.5.1, Release 9.5.1A, and Release 9.5.1C. Use the following notes in conjunction with the UniVerse documentation described in the Ardent Technical Publications Catalog. The following sections describe updates to the documentation that are applicable for Releases 9.5.1 and later. The following technical bulletins have been corrected on the web at http:\\www.ardentsoftware.com. UVEXPORT: The UniVerse Export Facility, updated for Release 7.3.3 Part No. 74-0074 Revision Date: 6/94 WordPerfect Versions 5 and 6 Part No. 74-0063 Revision Date: 6/94 =============================== Problems Fixed at This Release =============================== Problems fixed in release 9.5.1.1D ---------------------------------- 10531 A BASIC program will no longer hang when using the FINDSTR command on a string that includes a CHAR(255). 13071 SMAT no longer takes up a universe license seat. 17755 !AMLC will now work properly with keys 4 and 5. 19623 When the uvconfig file is modified and uvregen is run, NT systems no longer incorrectly display a message referring to DBsetup. 21895 FILEINFO, FINFO$IS.AKFILE will now return a 0 if no indexes are found. This is now consistent with documentation. 23420 The -SUPPRESS option was added to the "MESSAGE" command to suppress the display of the message announcement "Message from USERNAME" when receiving a message. 23637 Implemented utility to automatically generate record ids. TABLES now allow no PRIMARY KEY or PRIMARY KEY DEFAULT NEXT_AVAILABLE. Files support DICT entry of NEXT_AVAILABLE. 24039 The DN date conversion code now defaults to DY when NLS is off. 24302 FILEINFO, FINFO$PATHNAME now returns the correct pathname when when the file is opened using the VOC pointer with a relative pathname. 24432 The "FROM" keyword is now case insensitive in the command "DELETE from table". 24452 Cache memory is now cleared in a PICK flavor account both before and after execution of verbs with a Z mode in field 4. 24593 Fixed query optimizer problem so that I-descriptors will now be evaluated after simple AND nodes involving the same field. 24674 A new tunable is now available in the uvconfig file called PIOPENDEFAULT which, when set on, will affect the default behavior of PIOPEN flavor accounts in the following manner $OPTIONS INFO.CONVERT will be turned on when the program is recompiled. $OPTIONS PIOPEN.EXECUTE will be turned on when the program is recompiled. 24683 EVAL with a TRANS no longer causes an abnormal termination of universe. 24687 Implement support for multiple forms within UV spooler. 24695 Fixed the compiler to store both $COPYRIGHT and $COMMENTS at the end of the object code. VLIST will now print out $COPYRIGHT at the top along with the other header info. If source is available the $COMMENTS print out as part of the source code. If source is not available, the $COMMENTS print out after the $COPYRIGHT. 24916 When RLTABSZ < MAXRLOCK and an SQL command is being executed, if 1. the process has consumed all record lock entries in a group lock semaphore, set where a new record lock is to be inserted 2. all the record lock entries are for the file on which the new record lock is being obtained 3. the process holds less than MAXRLOCK record locks on the file on which the new record lock is being obtained then a File lock of the appropriate strength will be obtained in lieu of the record lock. Furthermore, on each subsequent commit of a (sub)transaction, any record locks that were rendered redundant due to the acquisition of a File lock will be released. 24943 Within a transaction, after escalating to a File Lock because there are more than MAXLOCK record locks, the File Lock is no longer prematurely released by FreeStmt-CLOSE. 25004 HS.SCRUB...AUTOFIX DATA will no longer loop indefinitely. 25013 If an error occurs when listing a printer on NT while doing a SPOOL -LIST, all other printers will now be listed properly. 25046 The SICA has been enhanced to allow more than 18 bytes for Schema and Table name in NLS mode. 25123 Printing to the HOLD file with NLS ON will no longer generate an available memory exceeded error after 55 jobs are spooled. 25128 UVRestore of some Dynamic files with very large records will now restore the files correctly. 25138 Changes to spooler including (1) adding support for SETPTR extension specifying USEROPTS, (2) sending USEROPTS , Page-width, and Page-length to the usd driver script, and (3) allowing spooling to a bogus print queue. 25184 A core dump will no longer occur when running a BASIC program using the INT function with a number that is too large. 25189 SQL CONSTRAINT CHECK will now work for the upper set of 8 bit characters (eg Japanese) in column names. 25190 Foreign key constraints will now work correctly with Japanese tables. 25191 Extra field marks are now removed from capture files. This change has been implemented as part of the $OPTIONS PIOPEN.EXECUTE under gtar 25267. 25245 Correct spelling of Japanese year "Heisei" in the file NLS.LC.TIME. 25267 HS.FILEINFO will no longer abort if the dictionary contains an uncompiled itype. 25273 Query will no longer abnormally terminate when being executed through a PROC. 25275 Universe will no longer give improper errors when it is unable to open files due to no file units being available. 25276 Implemented $OPTIONS PIOPEN.EXECUTE to generate a more PIOPEN compatible version of the Basic EXECUTE command, where a new layer is not setup which will enable select lists created in an EXECUTE level to remain active unless they are instead returned back to the calling level via the RTNLIST clause. 25283 Implemented BREAK COUNT command. When this command is issued, the number of times that breaks have been turned off will be returned. 25330 uvlictool in report_lic mode will no longer generate an unhandled exception on NT. 25379 UvAdmin will now install properly when loaded on a system without Visual Basic. 25396 HS.SCRUB no longer exceeds available memory if there are too many data anomalies. 25398 CONVERT.SQL will now correctly handle leading zeros in dictionary LOC fields. 25414 Dynamic files will now correctly handle a SPLIT.LOAD greater than 87 percent. 25454 A record can now be deleted out of a directory when the VOC entry is in lower case. 25455 COPY will now properly copy records in type 1 and type 19 files. 25459 CREATE.FILE (in PICK flavor) will now create a file using the specified modulo when the resulting file size is greater than 0x7fffffff hex. 25475 HS.FILENFO will now provide better reporting when creating the file information cache. 25479 New style 32bit files will no longer produce BLINK error messages when the file is actually intact. 25494 UvAdmin will now work properly when using short names with the UV account or UV directory option in UvAdmin. 25503 UVObjects will now detect a network failure on a read or write. 25522 See Gtar 25494. 25524 UVNET will now work successfully between NT and unix at the 9.5.1.1D release. 25537 RESIZE no longer corrupts a file that has records sizes over 512 bytes. 25549 The domain name in UV_USERS on NT systems can now be changed by using the command "CREATE.DOMAIN OLD-domain NEW-domain user". 25556 UVNET will no longer core dump when trying to open a remote file that does not exist. 25557 Universe cleanup could remove memory segments with an ID of 0 under some circumstances. Users attempting to enter universe would receive an initialization error 2 2. This has been corrected. 25597 HS.SCRUB now detects an uncompiled itype amd restarts itself only once. 25621 UVnet will now connect properly between the "D" release and releases prior to 9.5.1.1C. 25681 Update HEADING command documentation Problems fixed in release 9.5.1.1C1 ----------------------------------- GTAR Short Description ---- ----------------- 24374 Fix LSEEK support for 64 bit files. 24414 Memory will now be properly allocated for SDML queries. 24993 Fix problems in filetool for 64 bit files. 25141 UNLOCK ALL will now properly release locks. Latches will now be release properly on Alternate Keys. 25242 NFS file stat calls will now work properly with 64-bit files. 25273 Query will no longer abnormally terminate when executing a query via a PROC. 25295 SISO maps will now work properly on UNIX systems. 25364 Filepeek will now work properly with files larger than 2 gigabytes. 25426 Fix dereferencing of variable in transaction logging. 25457 Fix possible hangs in UCI. Problems fixed in release 9.5.1.1C ---------------------------------- GTAR Short Description ---- ----------------- 22647 Implement 64-bit file support in UniVerse. 23221 DROP TABLE will now handle removing all tables with multibyte names. 23406 Fix problem with machine name matching in Replication Access List. 23624 UV/ODBC does not require the server's host file (on AIX) to contain an entry for every client if the rexecd process is started with the "-c" parameter. In the /etc/inetd.conf file on the AIX server, the "-c" parameter should be added to the "rexecd" command. Then, at unix level use the command "refresh -s inetd" so the new option will take effect. 23626 Allow publication and subscription of multiple files in replication. 23641 It is now possible to replicate dictionaries along with data files. 23663 Warn users that files with old style headers will not work with replication. 23762 Duplicate print ids will no longer exist on spooler startup. 23928 SET.SQL REPORTING will now report the current VOC.CACHE setting. 23932 USING clause for SQL joined tables will now work correctly. 24058 The uv.rc will now log out the creator of shared memory segments. 24069 All SQL keywords in CREATE TABLE will now be case insensitive. 24140 Improve performance of replication. 24137 Disable CNAME command on files marked for replication. 24138 Add a new interface for Replication in UVAdmin. 24139 Increase user debugging support for replication. 24144 BASIC non-transactional Write will release any record lock on the item after the trigger/cascade have completed. 24411 UCI will now support SQLParamOptions. 24504 The return value from the UCI/BCI command SQLRowCount will no longer have its return value truncated to 16 bits. 24564 Performance enhancement for UCI/BCI in INSERT/UPDATE/DELETE. 24635 Accessing accounts via the UV.ACCOUNT file will now work properly for accounts containing multibyte characters. 24637 Fix VOC entry for udtconv on NT. 24638 RESIZE no longer fails when dealing with oversized records. 24673 BCI connected to an ODBC database will now return the correct result for SQL.COLUMN.MONEY. 24682 The file tool and uvfixfile will now detect invalid record padding values. 24693 OPENSEQ and CREATE with multibyte files containing "\" as a trail byte character will now function properly. 24705 It is now possible to delete and then recreate multi-column UNIQUE indexes in a table that is not empty. 24706 BUILD.INDEX will now work correctly on an SQL table where the index has a multi-column UNIQUE constraint. 24749 Memory will no longer be freed incorrectly when an NLS mapping error occurs. 24767 A backup of all UniVerse accounts on NT run through UVAdmin will now work with a long list of pathnames. This is a change to the UVAdmin client at this release and requires the version of UVAdmin shipped with this and later releases. 24768 Fixed uvbackup to properly wait between I/O operations. 24770 Pathnames will now be stored correctly in SQL control files when NLS is enabled. 24799 The EMPTY.NULL option will now allow empty numeric fields with INSERT ... SELECT. 24800 SQL SELECT statement with IN keywords will no longer abort. 24862 Calls to OCONV for time conversions will no longer dump core when a bad specification string is passed. 24880 Core dumps will no longer occur while adding or deleting a right justified null index. 24893 Record locks will no longer be left in certain cases on type 25 files. 24920 The install script now correctly calls /usr/sbin/slibclean for the IBM. 24925 FORMAT.CONV will no longer dump core when processing files with new style padding. 24938 A uvnet process with a shared memory id of 0 will no longer terminate during initialization. 24940 The uv.rc script will now log out users regardless of the length of their PID. 24956 RD Group locks will now be released properly on type 25 files. 24958 Update HS.ADMIN interface to support UniOLEDB as well as UV/ODBC. 24993 Update UniVerse File Tool to support 64-bit files. 24998 DROP INDEX will no longer take an unhandled exception on NT due to memory problems. 25063 Uninitialized portions of NLS maps will no longer cause checksum problems. 25082 Raid test 3620 in the QA suite no longer coredumps on the IBM. 25103 Unable to get shared memory segment messages will no longer appear when upgrading to release 9.5 from a previous release. Problems fixed in release 9.5.1.1B ---------------------------------- GTAR Short Description ---- ----------------- 22879 The READU statement without a LOCKED clause will now wait on a lock if the row in the lock table is full until it can be obtained or until the timeout is reached. Note that the ELSE clause will still be taken if the lock cannot be obtained after the timeout period (default is one hour). 23019 UVObjects - Problems with string arguments with a char(0) in them. This has been found to be a problem with native Visual Basic. 23221 DROP TABLE will now remove tables from DISK when NLS is enabled and the table name contains multibyte characters. 23740 UVobjects will now properly release memory associated with file objects. 23842 Record locks will be released correctly when the lock table has been filled. 24234 Extend SET.SQL TRACE to put trace entries into an external file. 24251 Added support for multiple database specification in the uvrpc services file. 24266 Uvrestore will now work properly on NT systems 24278 Extend SET.SQL TRACE facility to the UCI/BCI Server. 24308 The remote UCI/BCI server now returns only the used size buffer with each LS_SQFetch request, not the MAXBUFFSIZE size. This is a performance improvement, especially for slow modems. 24336 Remove an 'extranious' NLS on induced data mapping from BCI/UCI Server. Doing it twice resulted in bad data. 24341 A UCI/BCI client could not do row fetching from a second server which used a larger MAXBUFFSIZE fetch buffer. 24352 NLSSTRmap() will now correctly map strings containing only SISO characters. 24353 UVread will no longer take an access violation in certain circumstances when NLS is off. 24378 Test TL.5B1.1 in the akstress testbed will no longer coredump. 24401 NLS will now generate one unmappable character (instead of two) when a valid lead byte is followed by an invalid trail byte. 24402 NLS will no longer generate shift characters in internal data when unmappable characters are input. 24404 Corrected tamdem command in Feed mode on HP systems 24405 The BCI/UCI does not ship a LS_SQDefine request to the Server for each subsequent SQLBindParameter call if the SqlType field did not change. Performance improvement. 24413 Fixed several core dump problems when NLS is on (opening remote partfiles of a distributed file, invoking UVFIXFILE with -LOG or -OUTPUT option and executing SORT from a BCI client program). 24426 BUILD.INDEX on AIX and NT no longer fail with fault type 11. 24432 Release 9.5.1 supports mixed case keywords in SQL's DML. The FROM keyword was missed. This GTAR now allws 'from' to be mixed case. 24449 Update JPN- shift-in, shift-out maps. 24454 SET.FILE.MAP will now work for SISO maps with myltibyte shift characters. 24467 Provide an alternate shift-JIS map and associated collation sequence. 24484 A numeric column's value was not being compared correctly when it was in a multi-column index. This caused the optimizer to produce incorrect results when it tried to use the index to get row sets that met the WHERE clause criteria (column contained unnormalized data, like 075). 24486 ALTER TABLE will now successfully add a column to a table containing multi-column UNIQUE constraints. 24500 Add the NLS map MS1252+MARKS. 24501 Enhanced UCI to support Unidata DBMSType. 24502 Added two new functions: SQLUseCfgFile and SQLDataSource. 24506 Uvbackup will no longer leave groups locked after -R option is used. 24512 LIST will no longer display garbage when the field of a large record in a dynamic file is empty. 24530 Japanese Shift maps will now consistantly ignore spurious shift sequences. 24533 The SQL GROUP BY function will now work properly with NLS locales enabled when grouping by more than one column. 24536 When NLS is enabled, SEQPath() will now return a proper error when the file name does not map into the OS character set. 24540 SEQPath() will now decompose a UTF pathname properly. 24552 In Sql, deleteing more then 'about' 2000 rows caused any INDEX not to be updated. 24554 Enhanced BCI to support new datatypes returned by SQLTables when using SQL Server 7 ODBC driver. 24577 See gtar 24552. 24591 ICONV Date conversion codes with delimiters will now correctly handle years less than 100 when the year is specified in the first or second format position in the conversion code. For example, ICONV("0001-01-01","DYMD"). 24605 Enhanced UCI to support OLEDB 24608 Fix problem with broken overflow blocks. 24616 Certain SQL queries will no longer core dump when NLS is enabled. These involved UNIONs. 24619 Dynamic files will be properly restored using uvrestore. UVFIXFILE will no longer find problems with the T30first flag and file load discrepancy. 24631 DROP TABLE will now longer leave some records locked on the SQL catalog tables. 24644 It is now possible to attach to an account via the api when the account name contains multibyte characters. Problems fixed in release 9.5.1.1A ---------------------------------- GTAR Short Description ---- ----------------- 21797 It is now possible to publish or subscribe a file where the VOC entry for the file does not match the name of the file located in the current directory. (This includes files with Q pointers, long VOC entries with truncated OS filenames, and files located in remote accounts.) 23255 If Data Replication has been setup with some published files that have the hot backup box checked and some which are only replicated (hot backup box not checked), then when synchronizing on the Publisher after a failover, the SYNC command is now successful. 23662 Replication no longer allows you to unpublish a file until all subscriptions have been removed. 23680 The FORMAT.MAP option will now produce formatted output when NLS is active. The FORMAT.MAP mapname will no longer be reset to NONE after a PRINT is done. Also, if a FORMAT.MAP mapname is changed and the new mapname length is larger than the original mapname length, a core dump will no longer occur at a future PRINT time. 23804 When modifying SETPTR settings, an implicit PRINTER CLOSE is now correctly done. This sends a pending print job to the spool queue. 23830 Using READLIST with the SETTING option will now set the variable to the correct number of records. 23937 See gtar 23421. 24036 Correct internal naming conventions for clarity. 24037 The C option for LIST now correctly generates the reference number for the extra parameter for the LENDP, FMTDP and FOLDDP opcodes. 24057 If a file has keys greater than 64 characters in a type 25 file, the records will now be accessed correctly. 24064 Corrected memory error when accessing an index within a view. 24073 On NT, if a view's data file is missing, DROP VIEW now clears up the SQL catalog, removes the view's dictionary file, and deletes the view's VOC pointer. 24116 A BCI client running remotely will no longer 'hang' on NT if it receives a NOWAIT error return on a SQLFetch. 24131 HELP files now exist in UVADMIN. 24132 Running a UCI or BCI program with the sequence of calls similar to SQLPrepare, SQLFreeStmt Close, SQLExecute with an ORDER BY or GROUP BY clause will no longer cause the uvsrvd process to produce a core dump. 24232 The UNIX and NT installer no longer write an entry for "&NEXT.AVAIL&" to any new UDR configuration file dictionaries. 24261 Enhanced universe file tool. 24271 When viewing the list of published files on a replication server, the details button on that dialog will now correctly use the publication ID as the publication key. 24277 The display of LIST.READU will no longer line wrap with the Group information. 24280 Improved existing multibyte code. 24284 Add support for shifting in and out of multiple maps within UniVerse NLS 24285 Export unishared function from universe.dll. 24287 When opening more than 48 files, UVOBJECTS no longer fails with an application error. 24292 Changed uvfixfile to follow latch concurrency rules for type 25 files. 24337 NLS string mapping functions will now work properly if a ShiftIn/ShiftOut map is missing. 24342 Fixes to NLS SISO code. 24348 Fix SPOOL -LIST -PRINTER command. 24352 NLSSTRmap() will now correctly map strings containing only SISO characters. 24353 UVread will no longer take an access violation in certain circumstances when NLS is off. 24358 When reinstalling uniVerse release 9.5 from cdrom onto a Solaris 2.7 machine, the install no longer aborts when copying certain files into the uvhome/INCLUDE directory. =================================================== End of UniVerse for Windows NT Release Notes. =================================================== ================================ UniVerse ODBC Server Version 3.7 Release Notes ================================ Copyright 1998, Ardent Software, Inc. All rights reserved. UniVerse ODBC, UV/ODBC, UniVerse ODBC Config, UV/ODBC Config, HyperStar, HyperStar Server, HyperStar FP Server, STAR/Config, STAR/ODBC, UniVerse, UniVerse Call Interface, PI/open, Prime INFORMATION, and Ardent are trademarks of Ardent Software, Inc. Cognos and Impromptu are trademarks of Cognos Inc. DG/UX is a registered trademark of Data General Corporation. Hewlett-Packard and HP-UX are trademarks of Hewlett-Packard Company. IBM and AIX are trademarks of the IBM Corporation. Microsoft is a registered trademark and Open Database Connectivity, Windows, Windows NT, and Windows 95 are trademarks of Microsoft Corporation. Powersoft and Powerbuilder are trademarks of Sybase Inc. UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company, Ltd. Solaris and SPARC are trademarks of Sun Microsystems, Inc. All other company or product names mentioned are trademarks or registered trademarks of their respective trademark holders. ============================= Compatibility and Limitations ============================= UniVerse ODBC Server version 3.7 is compatible with the following UniVerse ODBC client software: UniVerse ODBC Driver version 3.7 UniVerse ODBC Config version 3.7 * If the Encrypt Passwords option is used, the configuration file can be used only by version 3.7 client software. STAR/Config Version 2.1 or later * Configuration files with encrypted passwords are not supported. STAR/ODBC FP and STAR/ODBC FP 32 Version 3.0 * Configuration files with encrypted passwords are not supported. * ODBC procedures are not supported. * Data source connection options for NLS are not supported. STAR/View, STAR/DDE, STAR/C and STAR/ODBC (non-FP) clients do not work with any UniVerse ODBC server. Compatibility of older UniVerse ODBC servers with UniVerse Release 9.5 ---------------------------------------------------------------------- UniVerse ODBC (HyperStar) non-FP server versions 3.0 and earlier will continue to operate after upgrading your UniVerse installation to Release 9.5 on UNIX platforms ONLY. UniVerse ODBC server releases for Windows NT earlier than version 3.5 will NOT operate with UniVerse Release 9.5. =============================== Tested ODBC Client Applications =============================== UniVerse ODBC Server version 3.7 has been tested with the following 16-bit Windows ODBC client applications: * Microsoft Access Version 2.0 * Microsoft Query Version 1.0 UniVerse ODBC Server version 3.7 has been tested with the following 32-bit Windows ODBC client applications: * Microsoft Access Versions 95 (7.0) and 97 * Microsoft Visual Basic Enterprise Edition Versions 4.0 and 5.0 * Microsoft Query Versions 2.0 and 8.0 * Powersoft Powerbuilder 5.0 * Cognos Impromptu Version 3.0 Microsoft Access ---------------- The performance of running queries in Microsoft Access can be significantly affected if the primary key field of a UniVerse file, table, or view is not UniVerse ODBC accessible. This would occur if the primary key field is excluded from the @SELECT phrase in the dictionary of a file, table, or view, or the primary key field is excluded and ID.SUP is specified in the '@' phrase of a file dictionary where there is no '@SELECT' phrase (note that the '@' phrase is ignored by UniVerse for SQL tables and views). To get the best possible performance from Microsoft Access, we strongly recommend that the primary key field be UniVerse ODBC accessible. For more information about UniVerse ODBC accessible fields, see chapter 4, Accessing UniVerse Data, in "UniVerse ODBC Server Guide". Microsoft Access has the following functional limitations imposed by its use of the Microsoft Jet database engine: * Only the first 255 columns of an ODBC table are accessible. All other columns are hidden from the user. * Access does not allow importing or linking ODBC tables with table or column names longer than 64 characters. Fields defined with a UniVerse SQL data type of DECIMAL or NUMERIC and a precision greater than 15 digits are converted to Text fields by Microsoft Access. When inserting new rows into a table whose underlying UniVerse representation is an association or unassociated multivalued field, be sure to enter a value for the @ASSOC_ROW pseudo-column (with name mapping on, this column will be called Z_ASSOC_ROW). Failure to specify a value for @ASSOC_ROW can cause Access 97 to abort with an "access violation" error. When creating a query in Microsoft Access, you have the option to specify an SQL statement as the basis of the query. Due to a bug in Access, any SQL statement that contains the UNION keyword will fail to execute. Before submitting the query to ODBC for execution, Access rewrites the SQL and puts parentheses around each SELECT statement, which is invalid ODBC SQL syntax. For example: SELECT * FROM U_TABLE UNION SELECT * FROM U_TABLE would be rewritten by Access as: ( SELECT * FROM U_TABLE ) UNION ( SELECT * FROM U_TABLE ) Microsoft Query (accessed via "Get External Data" from Microsoft Excel) --------------- Attempting to connect to a UniVerse account that has a file, table, or view whose name is greater than 65 characters will fail with a "General ODBC Error". This is due to a bug in Microsoft Query, which fails to allocate enough memory to accomodate ODBC table names, which can contain up to 128 characters as defined in the ODBC 2.0 specification. Microsoft has confirmed that this is a problem with Query, but is not planning to provide a fix in any future release. When connecting to a UniVerse account that is not an SQL schema, only UniVerse files referenced by that account are made available by Microsoft Query. All UniVerse SQL tables and views are excluded from the list of available tables, and the dropdown list of available schemas is disabled. Microsoft has confirmed that this is a problem with Query, but is not planning to provide a fix in any future release. When connecting to a UniVerse account that is an SQL schema, only UniVerse SQL tables and views are made available by Microsoft Query. UniVerse files are excluded from the list of available tables. Due to a bug in Microsoft Query, any ODBC tables reported with an empty string as the ODBC Table Qualifier are ignored. Since Universe files are not part of a Universe SQL schema, UniVerse ODBC reports their ODBC Table Qualifier as the empty string, in conformance with the ODBC 2.0 specification. Microsoft has confirmed that this is a problem with Query, but is not planning to provide a fix in any future release. Microsoft Query Version 1.0 quotes numeric literals in the SQL statements it generates for queries which select on numeric columns. This causes a "Data type conflict" error to be returned when the query is executed, as the quoted numeric literal is interpreted as a string and cannot be used in a numeric comparison. This problem has been fixed in Version 2.0 of Microsoft Query, which is included with Microsoft Excel for Windows 95 Version 7.0. Microsoft Query only provides visibility to the first 255 columns of an ODBC table. All other columns are hidden from the user. Microsoft Query does not allow adding tables to a query that have column names longer than 64 characters. Attempts to do so fail with a "Can't access table" message. However, such tables are accessible by building a query using an SQL statement which SELECTs the table. To execute an SQL statement, choose "Execute SQL..." from the File menu. It is suggested that Query Designer be used with Microsoft Query 8.0 (available in Microsoft Office 97) rather than Query Wizard. If Query Wizard is used to create queries having any selection criteria, Microsoft Query will generate an SQL statement having invalid syntax and the query will fail to execute. Microsoft has confirmed that this is a problem with Query, but is not planning to provide a fix in any future release. To use Query Designer, make sure the box labeled 'Use the Query Wizard to create/edit queries' is unchecked when presented with the 'Choose Data Source' dialog box. File DSNs --------- If you are having problems using File DSNs, you can generally circumvent the problem by using the file DSN as a "pass-through" mechanism to an existing User or System DSN. You do this by manually editing the file DSN file and inserting a single line after the "[ODBC]" section header as follows: [ODBC] DSN= No other lines should be present in the ODBC section. When your application requires a file DSN (because it uses the FILEDSN keyword in its SQLDriverConnect call,) the Driver Manager will find the file DSN and then extract all needed connection information from the User or System DSN. Visual Basic ------------ Data Access Objects have the following functional limitations imposed by their use of the Microsoft Jet database engine: * Only the first 255 columns of an ODBC table are accessible. All other columns are hidden from the user. * ODBC Tables with table names longer than 64 characters are inaccessible. * ODBC Tables with column names longer than 64 characters are accessible for queries, but attempts to insert, update, or delete rows from the table will fail. The above limitations do not exist with Remote Data Objects. =================== General Usage Notes =================== Connection Licenses ------------------- Each connection from an ODBC client application to the UniVerse ODBC requires one UniVerse ODBC server connection license and one UniVerse user license. If your application makes multiple simultaneous connections to UniVerse, each one uses one UniVerse ODBC server connection license and one UniVerse license. Fetching Data from Multiple Statement Handles --------------------------------------------- To fetch data from multiple open statement handles using SQLFetch, the application must be in manual-commit transaction mode. To enable manual-commit mode, auto-commit mode must be turned off by calling the SQLSetConnectOption ODBC function as follows: SQLSetConnectOption(hdbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF); It is not possible to concurrently fetch data using SQLFetch on two or more statement handles in auto-commit mode due to the cursor commit behavior of the UniVerse Call Interface (UCI), which the UniVerse ODBC server uses to access UniVerse data. UCI has a cursor commit behavior of SQL_CB_CLOSE, which means that all allocated statement handles (apart from the statement which caused the auto-commit) in the 'executed' state are closed and returned to the 'prepared' state. Result sets associated with closed statement handles are no longer available to be retrieved using SQLFetch. To fetch rows from multiple open statement handles using SQLFetch, use manual-commit mode. For more information on cursor commit behavior and transaction modes in ODBC, see "Microsoft ODBC 2.0 Programmer's Reference". ============== Error Messages ============== The following error messages are not documented in "UniVerse ODBC Guide": 1. Invalid Cursor State - Cursor unprepared by an autocommit caused by a previously executed statement. Error ID: 8 Severity: ERROR Facility: OCLIERR ============================= Problems Fixed in UniVerse ODBC version 3.7 ============================= The following problems have been fixed in UniVerse ODBC Server 3.7. GTAR Description ------------------------------------------------------------------------- 20850 Error when A-correlative refers to field 0 21664 HS.ADMIN menu doesn't reprompt correctly 21789 Correlative with group extract codes are invisible 22493 Pick associations with correlative in controlling field are invisible 23117 Can't change transaction isolation level 23750 Several HS.SCRUB problems fixed 23752 SQLSpecialColumns() fails to identify some SQL_BEST_ROWIDs ================================================== Functionality changed in UniVerse ODBC version 3.7 ================================================== The following functionality has changed in UniVerse ODBC 3.7 Server. For details of UniVerse ODBC functionality, see the UniVerse ODBC Guide. GTAR Description ------------------------------------------------------------------------- 23746 HS.SCRUB supports DATE, TIME, VARCHAR(n) 23748 HS.SCRUB creates @SELECT phrase in dictionary 23747 HS.SCRUB creates @EMPTY.NULL phrase in dictionary 24061 Support ODBC SQL FOR UPDATE clause 24061 Support UniVerse SQL keywords EXPLAIN and NOWAIT 24061 Support parameter markers in {native} and reparsed SQL statements 24061 Improved server debug logs =================================================== End of UniVerse for Windows NT Release Notes. ===================================================