
---------------------------------------------------------------

SCR Number:   2004       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DDLP
Summary:
HAVE DDLP BE ABLE TO USE # DEFINES.

Description:
THE DDL FILE COULD HAVE # DEFINE STATEMENTS THAT WOULD TRANSFER TO THE 
HEADER FILE, AND KEEP THE DEFINED NAMES IN FIELDS.  SO SCHEMA COULD HAVE # 
DEFINE MAXSTR32 RECORD R1{ CHAR F1[MAXSTR];} AND IT WOULD PRODUCE IN THE 
HEADER FILE # DEFINE MAXSTR32 STRUCT R1          { CHAR F1[MAXSTR]};

---------------------------------------------------------------

SCR Number:   2005       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DDLP
Summary:
HAVE DDLP TRANSFER COMMENTS FROM SCHEMA FILE TO HEADER FILE.

---------------------------------------------------------------

SCR Number:   2018       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  WIDA
Summary:
WISH WIDA HAS SET DBDPATH & SET DBFPATH OPTIONS (PERHAPS WITHIN "SPECIAL" 
MENU 

Work Around or Fix:
rdm.ini for V330

---------------------------------------------------------------

SCR Number:   2024       Type:  ENH       Fixed in:  V330
Product:  V321           OS:    ALL       Function:  DDLP
Summary:
HOPE THAT DDLP WILL SUPPORT PREPROCESSOR (I.E. #IFDEF, ETC).

---------------------------------------------------------------

SCR Number:   2026       Type:  ENH       Fixed in:  V330
Product:  V321           OS:    WIN       Function:  WIDA
Summary:
WIDA ERROR "NOT ENOUGH MEMORY FOR THIS TASK"

Description:
WIDA GIVES ERROR "NOT ENOUGH MEMORY FOR THIS TASK" WHEN TRYING TO OPEN A 
DATABASE.  WIDA USES LOCAL ALLOCS; SHOULD USE GLOBAL ALLOCS.  

Work Around or Fix:
TEMPORARY:  USE SHORTER NAMES/LESS FIELDS

---------------------------------------------------------------

SCR Number:   2044       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  
Summary:
ADD IGNORECASE OPTION SWITCH TO UTILITIES

Description:
CURRENTLY USERS HAVE TO USE COUNTRY TABLE TO ACTIVATE IGNORECASE WITH THE 
UTILITES.

Work Around or Fix:
fixed with rdm.ini file

---------------------------------------------------------------

SCR Number:   2058       Type:  ENH       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  SUBSTR
Summary:
SUBSTR DOES NOT ACCEPT VARIABLES TO ITS POSITION OR LENTH PARAMETERS.

Description:
USING THE SALES DATABASE, DOING: "SELECT SUBSTR (COMPANY, 0, STRLEN 
(COMPANY) -2);"  GIVES ERROR "BAD FIELD EXPRESSION".  DOING "FIELD T1 = 
STRLEN (COMPANY) -2; FIELD 2 = SUBSTR (COMPANY, 0, T1);"  WILL GIVE AN 
"INVALID FIELD STATMENT" FOR T2.  TRYING TO PUT A VARIABLE IN THE POSITION 
PARAMETER GIVES SIMILAR RESULTS.

---------------------------------------------------------------

SCR Number:   2065       Type:  ENH       Fixed in:  Q330
Product:  Q220           OS:    ALL       Function:  
Summary:
DB_QUERY SHOULD HAVE A CALLBACK FUNCTION IMPLEMENTED FOR WORKING STATUS.

Description:
DB_QUERY SHOULD HAVE A CALLBACK FUNCTION IMPLEMENTED SO A USER COULD DO 
"SOMETHING" TO LET THE END-USER KNOW THAT DB_QUERY IS STILL CRUNCHING 
AWAY.  THIS WILL REQUIRE AN INTERNAL TASK SWAP.

---------------------------------------------------------------

SCR Number:   2069       Type:  ENH       Fixed in:  Q330
Product:  Q220           OS:    ALL       Function:  Q_BATCH
Summary:
ALLOW QRF FILES TO HAVE OTHER EXTENSIONS.

Description:
IF NO EXTENTION IS GIVEN, ASSUME "QRF", ELSE USE WHAT IS GIVEN.

---------------------------------------------------------------

SCR Number:   2206       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DAL
Summary:
DAL DOES NOT SUPPORT THE READONLY OPTION

Description:
DAL'S OPEN_U FUNCTION IN OFFCNS.C OPENS FILES FOR READ/WRITE ACCESS.  DAL 
OPENS THE .DBD FILES WITH THIS FUNCTION TO GET RECORD, SET, AND FLD 
NAMES.   SINCE THIS FUNCTION IS ONLY USED TO OPEN .DBD FILES, WHY DOES IT 
NEED TO OPEN FOR READ/WRITE ACCESS?

Work Around or Fix:
FIX: open_u in opfcns.c now uses O_RDONLY instead of O_RDWR.

---------------------------------------------------------------

SCR Number:   2210       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DDLP
Summary:
REQUEST DDLP TO HANDLE #IFDEF STATEMENT.

---------------------------------------------------------------

SCR Number:   2222       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_RECWRIT
Summary:
IF IGNORECASE OPTION IS ON, D_RECWRITE( ) ONLY MODIFIES THE DATA FILES 
PHYSICAL

Description:
INTUITIVELY, THE DATA FILES AND KEY FILES ARE NOT CONSISTENT.  (THE FIELD 
THAT IS NOT MODIFIED IS A PART OF THE COMPOUND KEY).   PLEASE SEE PAPER 
COPY FOR EXAMPLE.

Work Around or Fix:
fixed as a side effect to the fix that involved replacing fldcmp() with 
bytecmp() i n d_recwrite(), r_pfld(), et al. 

---------------------------------------------------------------

SCR Number:   2240       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_DBNUM
Summary:
D_DBUM() SHOULD ALLOW A PATH.

---------------------------------------------------------------

SCR Number:   2241       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  D_DBNUM
Summary:
D_DBUM() SHOULD BE CASE BLIND FOR DOS.

Work Around or Fix:
USE VSTRICMP() INSTEAD OF VSTRCMP().

---------------------------------------------------------------

SCR Number:   2267       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_RECREAD
Summary:
D_RECREAD() SHOULD UPDATE CURRENCY TABLE'S TIMESTAMP FROM DISK.

Description:
When doing { d_crset(); d_stscr(); d_crstat() ==> S_UPDATED; d_recread(); 
} you get the new data; but you can not get the new timestamp for later 
compares unless you do something like { d_recnext(); d_recprev() } to have 
them set the timestamp.  d_crread(), and  d_cs?read() should probably to 
the same.

---------------------------------------------------------------

SCR Number:   2302       Type:  ENH       Fixed in:  
Product:  V330           OS:    ALL       Function:  D_KEYREAD
Summary:
D_KEYREAD() SHOULD TAKE THE FIELD ID FROM DDLP AS A PARAMETER.

Description:
This would make the function consistant with the rest of the API.  

This will probably have to be done for RDM 3.40 anyway since the data 
d_keyread() uses to figure out what is the current key is a global 
variable! -- jmk

---------------------------------------------------------------

SCR Number:   2313       Type:  ENH       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  EXPREVAL
Summary:
ALLOW THE USE OF CONSTANTS IN SCIENTIFIC NOTATION

---------------------------------------------------------------

SCR Number:   2318       Type:  ENH       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  FIELD_VAL
Summary:
DB_QUERY SHOULD TREAT BYTE ARRAYS THE SAME WAY RDM DOES FOR CONSISTANCY.

Description:
With db_QUERY 2.21A, when data from a  field that was a byte array was 
passed to a user function or a translate function, all the data in that 
field was passed--as if a memcpy() was done on the field.  With 3.30_B2 
the data that is received is as if it were a string. 

While "char f[x][1]" means something special to RDM, it does not to 
db_QUERY.  This inconsistancy ought  to be addressed.

Work Around or Fix:
Works As Documented.  They were probably taking advantage of a bug in 
Q221A that got fixed in Q330 as a side effect to another bug fix.  There 
are ways for the application to do this correctly.

---------------------------------------------------------------

SCR Number:   2328       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_OPEN
Summary:
THE OPEN MODE FOR D_OPEN CAN NOW BE EITHER UPPER OR LOWER CASE.

---------------------------------------------------------------

SCR Number:   2329       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_SETPAGES
Summary:
D_SETPAGES() HAS LOWER LIMITS.

Description:
The minimums have been reduced from (8, 2) to (5, 3).

---------------------------------------------------------------

SCR Number:   2330       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_ON_OPT
Summary:
D_ON_OPT() AND D_OFF_OPT HAVE NEW OPTION DELETELOG.

Description:
By turning on the DELETELOG option, d_close() will remove the log file.  
This option is off by default.

---------------------------------------------------------------

SCR Number:   2331       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    D/W       Function:  D_ON_OPT
Summary:
D_ON_OPT() AND D_OFF_OPT() HAVE A NEW NOVELLTRX OPTION.

Description:
Turning this option on will use Novell's TTS instead of Raima's logging.  
By default this option is on only when using the LMC_NOVELL lockmgr.  It 
probably should NOT be used by itself.

---------------------------------------------------------------

SCR Number:   2332       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_ENCODE_DB
Summary:
THE PARAMETERS TO D_ENCODE_DBA() CHANGED.

Description:
The params changed from (int, long) to (short, unsigned long).

---------------------------------------------------------------

SCR Number:   2333       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_DECODE_DB
Summary:
THE PARAMETERS FOR D_DECODE_DBA() HAVE CHANGED.

Description:
The params have changed from (int *, long *) to (short *, unsigned long *).

---------------------------------------------------------------

SCR Number:   2334       Type:  ENH       Fixed in:  
Product:  V330           OS:    ALL       Function:  D_CURKEY
Summary:
D_CURKEY() NOW REQUIRES A RECORD LOCK.

---------------------------------------------------------------

SCR Number:   2335       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_INTERNALS
Summary:
DT_INTERNALS() IS NOW AVAILABLE IN THE SINGLE-TASKING LIBS AS 
D_INTERNALS().

---------------------------------------------------------------

SCR Number:   2336       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_INTERNALS
Summary:
SOME D_INTERNALS() OPTIONS CHANGED.

Description:
ID_PGZERO which used to return the next slot value is now 
TOPIC_PGZERO_TABLE and now returns the entire PageZero structure for the 
given file.

---------------------------------------------------------------

SCR Number:   2337       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_INTERNALS
Summary:
D_INTERNALS() HAS SOME NEW OPTIONS.

Description:
ID_CACHE_HITS

ID_CACHE_LOOKUP

ID_MAX_FILES

ID_MAX_IXOVPGS

ID_MAX_CACHEPGS

---------------------------------------------------------------

SCR Number:   2339       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_RDMINI
Summary:
NEW FUNCTION D_RDMINI().

Description:
d_rdmini() can be used to specify the directory that "rdm.ini" is to be 
found in.  The default is the current directory.  Under Windows, the 
directory specified must be a fully qualified path including the drive 
letter.  The initialization file is a text file with the format similar to 
the  Windows' INI files.

---------------------------------------------------------------

SCR Number:   2340       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_RECNUM
Summary:
NEW FUNCTION D_RECNUM().

Description:
Given the database number and the #define from DDLP for the record type, 
this function will give back the Record Table index number.  Useful when 
using d_internals().

---------------------------------------------------------------

SCR Number:   2341       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_FLDNUM
Summary:
NEW FUNCTION D_FLDNUM().

Description:
Given the database number and the #define from DDLP for the field type, 
this function returns the Field Table index number.  Useful with 
d_internals().

---------------------------------------------------------------

SCR Number:   2342       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_SETNUM
Summary:
NEW FUNCTION D_SETNUM().

Description:
Given the database number and the #define for the set type from DDLP, this 
function returns the Set Table index number.  Useful with d_internals().

---------------------------------------------------------------

SCR Number:   2343       Type:  ENH       Fixed in:  V330
Product:  V330           OS:    ALL       Function:  D_LMSTAT
Summary:
NEW FUNCTION D_LMSTAT().

Description:
Given a DBUSERID, this function will ask the lockmgr for the current 
status of the given user (e.g., ALIVE, DEAD, NEEDS_RECOVERLY, etc.).

---------------------------------------------------------------

SCR Number:   2363       Type:  ENH       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  USING
Summary:
REPORT FORMS CAN NOW USE %TIME AS WELL AS %DATE AND %PAGE

Description:
The resulting format is HH:MM:SS using the 24 hour clock as returned by 
ctime().

---------------------------------------------------------------

SCR Number:   2373       Type:  ENH       Fixed in:  V330_B3
Product:  V330_B2        OS:    WIN       Function:  D_LOCKCOMM
Summary:
THE NETWORK DLLS ARE NOW LOADED ON DEMAND INSTEAD OF AT STARTUP

Description:
Because the RDM DLL was using the import libraries to link to the Novell 
and LanMan DLLs, these network DLLs were automatically loaded with the RDM 
DLL even when they were not used.  Now these network DLLs are loaded by 
d_lockcomm() thru the LoadLibrary() SDK function.

---------------------------------------------------------------

SCR Number:   2374       Type:  ENH       Fixed in:  V330_B3
Product:  V330_B2        OS:    DOS       Function:  DBCHECK
Summary:
NOVELL VLM BUG CAUSING DBCHECK TO READ FROM WRONG FILE.

Description:
DBCHECK found a bug in Novell's VLM where it was having a file handle 
conflict of some sort.  Raima worked around this bug by calling 
d_closeall() after checking each file.  The fix was to upgrade to a newer 
version of VLM.

---------------------------------------------------------------

SCR Number:   2395       Type:  ENH       Fixed in:  
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
DDLP SHOULD GENERATE CLASSES THAT ARE DERIVED FROM STRUCTURES.

Description:
DDLP currently generates the classes with the data as part of the class.  
Instead, DDLP should generate the structures and then generate the classes 
as deriving from the structure.  This might be best added as an option.

---------------------------------------------------------------

SCR Number:   2405       Type:  ENH       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  Q_FUNCTION
Summary:
Q_FUNCTION() SHOULD ALLOW THE RETURNING OF A USER BUFFER.

Description:
When the result struct is given to the user's function to fill, the char 
pointer field is pre-assigned to a stack-based buffer so that the use does 
not need to worry about allocating and never freeing the string buffer.  
However, if the user ecided he needed a bigger buffer, he could allocate 
his own buffer and let db_QUERY use that buffer to read from if db_QUERY 
used the pointer out of the result struct instead of the pre-assigned 
buffer.  If db_QUERY did use the pointer and the user did not change the 
pointer, it would still point to the pre-assigned buffer, thus not 
breaking any existing applications.

---------------------------------------------------------------

SCR Number:   2448       Type:  ENH       Fixed in:  R330
Product:  R330_B1        OS:    D/W       Function:  DB_REVISE
Summary:
DB_REVISE GIVES ERRONIOUS S_DUPLICATE ERRORS WHEN USING OLD DBD.

Description:
Because the structure of the db_REVISE temporary database changed from 
1.04a to 3.30, attempts by the new EXE to use an old DBD gives S_DUPLICATE 
errors because the DBD and the header file do not match in structures.  
Need to add a check in the compile() function to verify that the version 
of the dbwork.dbd is compatible with the EXE.

---------------------------------------------------------------

SCR Number:   2499       Type:  ENH       Fixed in:  V330
Product:  V330_B3        OS:    ALL       Function:  D_INTERNALS
Summary:
D_INTERNALS() NEEDS AN OPTION TO RETURN THE LOCKMGR TYPE BEING USED.

Description:
If the app calls d_lockcomm() on its own, it already knows what type of 
lockmgr is being used.  However, if it is set from the INI file, the app 
will not necessarily know.

---------------------------------------------------------------

SCR Number:   2504       Type:  ENH       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_INTERNAL
Summary:
DT_INTERNALS CALL MISSING TAF PATH AND A FEW OTHERS

Description:
dt_internals() need a ID_DBTAF to return TAF path.

---------------------------------------------------------------

SCR Number:   2506       Type:  ENH       Fixed in:  V330
Product:  V330_B4        OS:    D/W       Function:  D_RDMINI
Summary:
ADD SUPPORT OF TRUENAME OPTION WITH RDM.INI FILE

---------------------------------------------------------------

SCR Number:   2510       Type:  ENH       Fixed in:  V330
Product:  V330_B4        OS:    ALL       Function:  D_ON_OPT
Summary:
NEED OPTION TO IGNORE ENVIRONMENT VARIABLES WHEN USING INI FILE.

Description:
The environment variables over-ride the INI file.  When the INI file is 
being used, it is sometimes desireable to make sure that only the INI file 
is used and that the environment variables are ignored.

---------------------------------------------------------------

SCR Number:   2547       Type:  ENH       Fixed in:  
Product:  V330_B4        OS:    D/W       Function:  LOCK MANAGE
Summary:
CONFIRM THAT LOCK MANAGER SHOULD BE SHUT DOWN IF USERS ARE CONNECTED

---------------------------------------------------------------

SCR Number:    661       Type:  SOF       Fixed in:  V330
Product:  V310           OS:    ALL       Function:  D_DESTROY
Summary:
AFTER USING D_RENFILE, D_DESTROY REMOVES WRONG FILES

Description:
d_destroy removes original db files, not renamed files.

Work Around or Fix:
Now deletes the files before closing the database.  That way the tables 
contain the correct file names as updated by d_renfile().  The old way by 
passed d_open() and caled  initdbt() and inittab().  It also needed 
renfiles().

---------------------------------------------------------------

SCR Number:   1127       Type:  SOF       Fixed in:  Q330_B1
Product:  Q220           OS:    ALL       Function:  Q_OPEN
Summary:
QUERY STILL CAN NOT OPEN MULTIPLE DATABASES USING DBDPATH.

---------------------------------------------------------------

SCR Number:   1266       Type:  SOF       Fixed in:  V330
Product:  V320           OS:    ALL       Function:  D_CLOSE
Summary:
D_CLOSE() SHOULD FLUSH BUFFERS ON EXCLUSIVELY LOCKED FILES.

Description:
While the exclusive locks remain after d_close() as documented, data is 
lost becase the buffers are not flushed.

---------------------------------------------------------------

SCR Number:   1424       Type:  SOF       Fixed in:  V330
Product:  V320           OS:    ALL       Function:  D_DESTROY
Summary:
USING D_RENFILE(), D_DESTROY() DELETES THE WRONG FILE.

Description:
This is a duplication of SCR #661 for V310 just to make sure V32x tracks 
the bug.

Work Around or Fix:
delete the files before closing the databases.  Old way was to close the 
database then call initdbt() and inittab().  Since renfiles() was not 
called next (as d_opon()  does) the new tables were not correct. -- jmk 

---------------------------------------------------------------

SCR Number:   1596       Type:  SOF       Fixed in:  R330
Product:  R103           OS:    ALL       Function:  X_SETS
Summary:
INITIALIZING A SET CAN CAUSE CORRUPTION ELSEWHERE.

Description:
When initializing a set, the record that is owned by the set can get 
corrupted.  he problem seems to be that it is calculating the offsets 
incorrectly.  In x-setsc, in the function x_sets() in the 
DEST_MBER_OF_LOOP, (line 156 of R103 Dos source) there are 3 bytecpy's 
that copy 0's to dest_rec + ST_OWN_PTR_DEST (dst) +... 

this should be dest_rec + MT_MEM_PTR_DEST (dst)+... 

This is duplicated by 2157.

---------------------------------------------------------------

SCR Number:   1601       Type:  SOF       Fixed in:  V330
Product:  V320           OS:    ALL       Function:  D_RLBTST
Summary:
DCHAIN CAUSES D_RLBTST() TO RETURN BAD S_LOCKED AFTER D_FILLNEW() IN 
TRANSCATIO

Description:
Deleting a record, starting a transaction and adding a new record causes 
d_rlbtst to return S_LOCKED always.

Work Around or Fix:
Fixed by allowing dio_rrlb() to use the cache on a w-locked or x-locked 
file.

---------------------------------------------------------------

SCR Number:   2002       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  DBIMP
Summary:
DBIMP DOES NOT WORK WITH IDENTIFIERS OVER 32 CHARACTERS

Description:
DDLP TRUNCATES FIELD NAMES WHICH ARE GREATER THAN 32 CHARACTERS AND 
REPORTS NO ERRORS.  DOING DBIMP ON THIS SAM DB PRODUCES WARNING "FIELD 
(FIELDNAME) NOT FOUND IN RECORD LINE X)"  IMPORT NOT PERFORMED.  DBIMP 
DOES NOT RECOGNIZE THE TRUNCATED FIELDNAME. This is a duplicate of SCR 
#2010.

Work Around or Fix:
see #2010

---------------------------------------------------------------

SCR Number:   2003       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  VAST
Summary:
VAST SOURCE MODULE NOT UPDATED TO REFLECT 3.21A CHANGE TO D_RDCURR, 
D_RERCURR, 

Description:
D_RDCURR, D_RERCURR,  AND D_WRCURR NOW NEED A DATABASE NUMBER PARAMETER.  
ENTRIES FOR FUNCTIONS IN D_FUNCS ARRAY IN VAST.C SHOULD HAVE A 1 FOR 
TAKES_DBN VALUE INSTEAD OF 0.

Work Around or Fix:
fixed by no longer supporting nor shipping this utility

---------------------------------------------------------------

SCR Number:   2010       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DBIMP
Summary:
DDLP, DBIMP, AND DBEXP DO NOT HANDLE LONG IDENTIFIERS (>31 CHARACTERS)

Description:
DDLP DOES NOT DISPLAY A WARNING WHEN IT TRUNCATES LONG IDENTIFIERS TO 31 
CHARACTERS.  DBIMP AND DBEXP WILL PRINT ERROR MESSAGES AND FAIL WHEN THEY 
ENCOUNTER AN IDENTIFIER >31 CHARACTERS LONG.  EITHER DBIMP AND DBEXP 
SHOULD "SILENTLY" TRUNCATE THE IDENTIFIERS, OR IDEALLY, ALL THE UTILITIES 
SHOULD PRINT WARNINGS AND TRUNCATE THE IDENTIFIERS.

---------------------------------------------------------------

SCR Number:   2012       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  WIDA
Summary:
WIDA AND IDA DO NOT INPUT/OUTPUT 2 DIM ARRAY DATA CORRECTLY

Description:
W/IDA DOES NOT INPUT/OUTPUT 2 DIM ARRAY DATA CORRECTLY.  FOR EX:  CHAR 
A[2] [8], VALUE: 773\0\0\0\0   774\0\0\0\0\0  INPUT IN IDA AS 
:"773\0\0\0\0\0774\0\0\0\0\0"   OUTPUT IN IDA AS: 
"773\0\0\0\0\074\0\0\0\0\0\0\0\0"  WE SHOULD BE ABLE TO INPUT 
"773\0\0\0\0\000774L0\0\0\0\0" IN ORDER TO PREVENT '07' CONVERSION TO 
'3'.  NOTE THE '000'.

---------------------------------------------------------------

SCR Number:   2013       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  DATDUMP
Summary:
DATDUMP CANNOT HANDLE A DATABASE WITH MORE THAN 32768 RECORDS

Description:
PLEASE SEE FAX ATTACHED TO PAPER COPY OF SCR.  THIS IS INFOR FOR US FROM 
HIM ON DEALING WITH THIS PROBLEM.

Work Around or Fix:
short int needed to be long int

---------------------------------------------------------------

SCR Number:   2014       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    UNX       Function:  LMCG.H
Summary:
WRONG PROTOTYPE IN LMCG.H FOR LMCG_TAF_ACCESS( ).

Description:
THE PROTOTYPE SHOULD BE INT EXTERNAL-FIXED LMCG_TAF_ACCESS (P1(MTYPE)) IN 
LMCG.H.  IT CURRENTLY HAS "INT" INSTEAD OF "MTYPE".

---------------------------------------------------------------

SCR Number:   2019       Type:  SOF       Fixed in:  V330_B1
Product:  V321A          OS:    ALL       Function:  DDLP
Summary:
DDLP CREATES A LARGE <DBNAME>.H FILE WHICH CONTAINS LONG SIZEOF_<REC/FIELD 
NAME

Description:
DDLP CREATES A LARGE <DBNAME.H> FILE WHICH CONTAINS LONG FIELD SIZES.  THE 
<DBNAME>.H FILE BECOMES LARGE WHEN THE DB HAS MANY FIELDS.  THE SIZEOF_... 
BECOMES TOO LONG WHEN THE DATABASE HAS DUPLICATE FIELD NAMES BECAUSE THE 
RECORD NAME IS ALSO INCULDED (IT WOULD BE SIZOF_<RECNAME>_<FIELDNAME>).  
WANTS A SWITCH TO TURN OFF THE GENERATION OF THESE SIZEOF_...'S.

---------------------------------------------------------------

SCR Number:   2027       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    ALL       Function:  D_IOPEN
Summary:
A D_IOPEN WITH NO FILE HANDLES LEFT RETURNS S_INVDB INSTEAD OF NO_FHANDLES.

Description:
corrected by fixing the error message text 

---------------------------------------------------------------

SCR Number:   2028       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    ALL       Function:  DDLP
Summary:
DDLP PRODUCES 2 STRUCTRS OF SAME NAME IN .H FILE IF 2 COMPND KEYS W/SAME 
NAME.

Description:
DDLP HANDLES DUPLICATE FIELD NAMES CORRECTLY EXCEPT WHEN TWO COMPUND KEYS 
HAVE THE SAME NAME.  WHEN THIS HAPPENS, THE .H FILE CONTAINS TWO DIFFERENT 
STRUCTURES WITH THE SAME NAME.

---------------------------------------------------------------

SCR Number:   2029       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    DOS       Function:  DIO.C
Summary:
LINE 242 (DIO_CLOSELRU()  BUG FIX

Description:
LINE SHOULD READ IF  (++LAST_FILE>= MAX_HANDLE)  MISSING "="

---------------------------------------------------------------

SCR Number:   2031       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    ALL       Function:  DDLP
Summary:
SORTING A MULTIMEMBER SET BY FIELDS OF DIFFERENT TYPES SHOULD GENERATE AN 
ERROR

Description:
WHEN CREATING SORTED  MULTIMEMBER SETS, DDLP NEEDS TO CHECK THAT THE 
FIELDS IN EACH MEMBER TO BE SORTED ON ARE OF THE SAME TYPE AND 
DIMENSIONS.  OS ERRORS (E.G. M6101) GET GENERATED WHEN THEY ALLOWED.

---------------------------------------------------------------

SCR Number:   2033       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    ALL       Function:  D_RLBSET
Summary:
AN RLBSET/RLBCLR REMOVES X-LOCKS ON DATAFILE IF CALLED OUTSIDE TRANSACTION

---------------------------------------------------------------

SCR Number:   2034       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    ALL       Function:  D_RECWRIT
Summary:
DT_RECWRITE FAILS ON 0X7FA00000

Description:
IEEE SPECS DESIGNATE 0X7FA00000 AS VALID FLOAT # INDICATING AN INVALID 
VALUE.  RECWRITE DOES FIELD BY FIELD COMPARE ON ACTUAL VALUES INSTEAD OF 
MEMCOMPARE TO DETERMINE IF RECORD NEEDS TO BE UPDATED.  VISTA.DLL IN 
COMBINATION WITH WINDOWS 3.1 FAILS ON THIS CONDITION AND BLOWS USER OUT OF 
APP.  I WAS ABLE TO DUPLICATE THIS WITH WIDA.

Work Around or Fix:
fixed by replacing the fldcmp() with bytecmp() in d_recwrite(), r_pfld(), 
et al., because we need to know if the data changed but not how the data 
changed. 

---------------------------------------------------------------

SCR Number:   2036       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    WIN       Function:  READONLY
Summary:
VISTA.DLL DOES NOT IMPLEMENT READONLY PROPERLY.

Description:
USING THE READONLY FLAG WITH dt_on_opt (OR -R WITH WIDA) WILL ALLOW 
MULTIPLE APPS TO OPEN THE DATABASE IN ONE USER MODE OK, BUT ANY ATTEMPTS 
TO ACCESS THE SAME KEY OR RECORD TYPE RESULTS IN A -940 SHARE VIIOLATION.

---------------------------------------------------------------

SCR Number:   2053       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  Q_FUNCTIO
Summary:
USER FUNCTIONS IN THE "WHERE" CLAUSE CAN ONLY BE PART OF THE ROOT RECORD.

Description:
THE CONCAT FUNCTION SEEMS TO WORK THE SAME WAY!

Work Around or Fix:
USE "IS NOT NULL" IN THE WHERE CLAUSE. 

---------------------------------------------------------------

SCR Number:   2054       Type:  SOF       Fixed in:  Q330
Product:  Q221           OS:    ALL       Function:  COUNT
Summary:
"SELECT COUNT (DISTINCT FIELD)" RETURNS BLANK ROW INSTEAD OF 1 . . .

Description:
"SELECT COUNT (SALE_ID) WHERE SALE_ID = 'SSW';" RETURNS A DATA ROW THAT 
HAS THE NUMBER 1.  "SELECT COUNT (DISITNCT SALE_ID) WHERE SALED_ID='SSW;" 
RETURNS A BLANK LINE.  IF MORE THAN ONE ROW IS SELECTED THE TWO STATEMENTS 
RETURN THE CORRECT VALUES.

---------------------------------------------------------------

SCR Number:   2056       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  DB_ADDR
Summary:
DB_ADDR( ) MAY NOT RETURN A VALUE IF USING A "GROUP BY" CLAUSE.

Description:
ON THE SALES DATABASE, "SELECT DB_ADDR (SALESPERSON), SALE_ID, REGION 
GROUP BY 2, 3" WILL PRODUCE NO INFORMATION FOR THE DB_ADDR ( ).  IT SEEMS 
YOU ONLY GET THE DB_ADDR IF GROUPING BY USING AN INTERNAL SORT.

---------------------------------------------------------------

SCR Number:   2064       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  
Summary:
QUERY DOES NOT ALLOW PRINTING A '%' IN HEADER.

Description:
FUNCTION QFORMINIT( )  DOES NOT ALLOW PRINTING '%' IN THE HEADER AREA...  
FOR EXAMPLE 'REPORT: WIDGETS % BREAKDOWN'  \% WILL PRINT JUST \ AND %% 
WILL IGNORE BOTH %'S CHANGE TO ALLOW \%.

Work Around or Fix:
fix is new error code -- % not allowed.  Since % means something special 
to printf( ) and sprintf(), % can not be used at all.

---------------------------------------------------------------

SCR Number:   2070       Type:  SOF       Fixed in:  Q330
Product:  Q220           OS:    ALL       Function:  Q_OPEN
Summary:
QUERY STILL CAN NOT OPEN MULTIPLE DATABASES USING DBDPATH.

Description:
PATHS SHOULD BE TREATED LIKE DOS/UNIX PATHS (search paths)

Work Around or Fix:
PUT THE QDB PATH ALSO IN DBDPATH STRING

---------------------------------------------------------------

SCR Number:   2083       Type:  SOF       Fixed in:  V330
Product:  R104           OS:    ALL       Function:  DBREV
Summary:
REPORT FILE FROM DB_REVISE STILL SAYS VERSION 1.02

Description:
New version is 3.30

---------------------------------------------------------------

SCR Number:   2085       Type:  SOF       Fixed in:  R330
Product:  R104           OS:    UNX       Function:  
Summary:
DB_REVISE MAY REPORT -914 DURING REV & FAIL EVEN THOUGH DBCHECK REPORTS OK

Description:
IN BOTH THE RES_FIRST AND RES_LAST FUNCTIONS IN X_SETS.C THE VARIABLE RT 
IS DECLARED AS INTEGER TYPE.  IT SHOULD BE A DB_SHORT TYPE SINCE IT IS 
USED FOR RECORD TYPE CHECKING AND ONLY 2 BYTES ARE COPIED INTO IT FOR 
LATER COMPARISON.  THIS IS AN EASY FIX FOR SOURCE CUSTOMERS AND DBREV 
SHOULD BE MADE AVAILABLE FOR OBJECT CUSTOMERS.

---------------------------------------------------------------

SCR Number:   2088       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  FLDCMP
Summary:
FLDCMP CAN GIVE ERRONEOUS RESULT DUE TO ARITHTMETIC OVERFLOW

Description:
WHEN USING REGULAR INT OR SHORT INT, ARITHMETIC OVERFLOW CAN RESULT IF 
USING HIGHLY POSITIVE OR HIGHLY NEGATIVE VALUES IN THE COMPARISON, AS THE 
RESULT IS BASED ON F1-F2.

---------------------------------------------------------------

SCR Number:   2089       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    UNX       Function:  DBIMP
Summary:
DUMMY SET REQUIRED IN DBIMP FROM RDM 3.21A - DOS VERSION SEEMS TO WORK 
FINE.

---------------------------------------------------------------

SCR Number:   2090       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  WIDA
Summary:
WIDA'S SET TAF FILE PATH/ SET LOG FILE PATH DOES NOT WORK.

Description:
WHEN TRAVERSING THE DIRECTORY TREE WITHIN THE COMBO BOX, AN EXTRA 
BACKSLASH IS INSERTED IN THE FILES PATH.  YOU NEED TO DELETE THAT EXTRA 
SLASH MANUALLY BEFORE YOU ARE ABLE TO MOVE FROM ONE DIRECTORY TO ANOTHER 
WITH DOUBLE-CLICKS.

---------------------------------------------------------------

SCR Number:   2091       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_RLBTST
Summary:
D_RLBTST NEVER RETURNS A STATUS OF S_UNLOCKED.

Description:
IN A CONDITION WHERE THE RECORD LOCK BIT IS UNLOCKED THE RLB_STATUS GETS 
SET TO S_UNLOCKED BUT DB_STATUS DOES NOT GET SET.

---------------------------------------------------------------

SCR Number:   2092       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  WIDA
Summary:
CANNOT CHANGE DIRECTORIES WITHIN WIDA AND FIND DATA & KEY FILES.

Description:
IF YOU CHANGE DIRECTORIES TO OPEN A DATABASE, THE DATABASE WILL OPEN, BUT 
BE UNABLE TO FIND DATA & KEY FILES.

---------------------------------------------------------------

SCR Number:   2093       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  WIDA
Summary:
SETTING ENVIRONMENT VARIABLES CAN MAKE WIDA UNABLE TO OPEN DATABASES.

Description:
IF ENVIRONMENT VARIABLES DBDPATH AND DBFPATH ARE SET, ENDING WITH A ' \ ', 
THEN WHEN YOU GO TO OPEN A DATABASE, THE PATH READS ' TEXT ' AND NO 
OPTIONS ARE GIVEN FOR SELECTING THE DATABASE.

---------------------------------------------------------------

SCR Number:   2095       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  IDA
Summary:
IF IDA STARTED WITHOUT -MG OR -MI AND NETBIOS NOT LOADED, A -925 ERROR 
OCCURS.

Description:
THIS HAPPENS EVEN THOUGH "-o" FOR ONE USER IS SPECIFIED.

Work Around or Fix:
use -mi or -mg or ignore the warning 

---------------------------------------------------------------

SCR Number:   2096       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  KEYPACK
Summary:
KEYPACK UTILITY WILL NOT RUN WITH THE -X OPTION.

Description:
KEYPACK HAS AN -X OPTION TO OPEN THE DATABASE IN EXCLUSIVE MODE.  THERE IS 
NO D_LOCKCOMM CALL IN KEYPACK.C BEFORE THE D_OPEN, SO THE PROGRAM FAILS 
WITH A -53 ERROR (S_NOLOCKCOMM) WHEN RUN WITH A -X.

---------------------------------------------------------------

SCR Number:   2097       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_DBNUM
Summary:
D_DBNUM( ) SHOULD SET DB_STATUS.

---------------------------------------------------------------

SCR Number:   2098       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DBIMP
Summary:
DBIMP NEEDS TO REPORT ERROR FOR NON-EXISTANT FIELDS

Description:
DBIMP PROBLEM WHERE A FIELD THAT EXISTS IN THE .IMP FILE BUT NO THE DBD -  
DOES NOT GENERATE AN ERROR MESSAGE.

---------------------------------------------------------------

SCR Number:   2101       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_TRBEGIN
Summary:
D_TRBEGIN( ) NEEDS TO CHECK THE RETURN OF O_INIT( ).

Description:
BECAUSE THE RETURN OF 0_INIT( ) IS NOT CHECKED, DB_STATUS GETS PROPERLY 
SET BUT THE "TRANSACTION ACTIVE" FLAG IS INCORRECTLY SET SO THAT THE 
FOLLOWING FUNCTIONS RETURN BOGUS CODES.

---------------------------------------------------------------

SCR Number:   2102       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    UNX       Function:  DBIMP
Summary:
DBIMP CANNOT HANDLE MIXED CASE DATABASE NAMES.

Description:
WHEN READING FROM THE IMPORT SPEC FILE ALL CHARACTERS ARE CONVERTED SO AS 
TO BE CASE INSENSITIVE.  IT SHOULD HAVE A CASE SENSITIVITY SWITCH.

---------------------------------------------------------------

SCR Number:   2103       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_SETMM
Summary:
D_SETMR, D_SETOR, D_SETMM (CALLS FUNCTION R_SMEM WHICH) REQUIRES LOCK ON 
RECORD

Description:
THESE FUNCTIONS ARE NOT SUPPOSED TO REQUIRE A LOCK (AS NOTED IN MANUALS).  
R_SMEM FUNCTION MAY REQUIRE A SET UP TO ALLOW UNLOCKED READS SIMILAR TO 
CRTYPE.C.

---------------------------------------------------------------

SCR Number:   2105       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_FILLNEW
Summary:
D_FILLNEW( ) SHOULD NOT ALLOW CREATION OF A SECOND SYSTEM RECORD.

Description:
FIXED BY CHECKING THE # OF FIELDS IN REC. (SYSTEM== -1) 

---------------------------------------------------------------

SCR Number:   2106       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DBCHECK
Summary:
DBCHECK FINDING MULTIPLE SYSTEM RECORDS.

Description:
DBCHECK NEEDS TO REPORT ANY SYSTEM RECORDS NOT IN SLOT #1 AS AN ERROR.

---------------------------------------------------------------

SCR Number:   2108       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    ALL       Function:  D_RDCURR
Summary:
D_RDCURR( ) AND D_WRCURR( ) DON'T CHECK IF DB OPEN.  AS RESULT, DOS GETS 
CORRUP

Description:
MOST FUNCTIONS DO NOT CHECK TO SEE IF DB IS OPEN AND CAN CAUSE MEMORY 
VIOLATIONS WHEN THEY CHANGE TO CURRENCY TABLE.

---------------------------------------------------------------

SCR Number:   2109       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    UNX       Function:  DBIMP
Summary:
DBIMP CONVERTS DB NAME TO ALL LOWER CASE

Description:
INPUT( ) FUNCTION (INLEX.E) CONVERTS THE INPUT STRING TO ALL LOWER CASE 
WHICH WILL GENERATE A -4 IF THE DBD IS NOT IN LOWER CASE.

---------------------------------------------------------------

SCR Number:   2112       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    DOS       Function:  LOCKMGR
Summary:
LM IS NOT PROPERLY FREEING LOCKS THAT WERE PART OF A GROUP LOCK REQUEST.

Description:
THE FUNCTION FREEPENDING( ) SHOULD FREE THE LOCK WHENEVER THE QUEUE FOR 
THE FILE IS EMPTY.  IT IS NOT CURRENTLY DOING SO. 

---------------------------------------------------------------

SCR Number:   2113       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    WIN       Function:  DDLP
Summary:
CANNOT HAVE A ' STRUCT ' AS THE LAST FIELD IN THE .DDL FILE.

---------------------------------------------------------------

SCR Number:   2114       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    DOS       Function:  PRDBD
Summary:
PRDBD SKIPS A FIELD

Description:
PRDBD PRINTS OUT A BLANK FIELD WHEN THE PREVIOUS FIELD NAME IS > = 31 
CHARS LONG.  ALL FIELDS FOLLLOWING THE BLANK FIELD ARE SHIFTED DOWN.  THE 
LAST FIELD IN THE RECORD IS MISSING.  SEE EXAMPLE ON PAPER COPY.

---------------------------------------------------------------

SCR Number:   2115       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    WIN       Function:  WIDA
Summary:
WIDA DOES NOT OPEN A .DBD IN ROOT DIRECTORY.

Description:
IF .DBD IS IN ROOT DIRECTORY SUCH AS C:\ WIDA CANNOT OPEN IT PROPERLY 
BECAUSE IT CREATES A PATH OF C:\\DBNAME

---------------------------------------------------------------

SCR Number:   2118       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    WIN       Function:  D_ICLOSE
Summary:
D_ICLOSE() ONE DATABASE CAUSES KEY FUNCTIONS TO FAIL ON ANOTHER DATABASE.

Description:
TEST PROGRAM HAD 3 DATABASES OPEN.  A D_KEYFIND ON DB#1 WORKS.  HOWEVER, 
AFTER DB#0 IS ICLOSED (AND DB#1 BECOMES DB#0), THE KEYFIND ON THE SAME KEY 
WILL RETURN STATUS = 0 BUT CURRENT RECORD = 0.  IF DB#2 HAD BEEN ICLOSED, 
THE KEYFIND WOULD WORK.  IF A RECFRST IS USED (NOT A KEYFIND), THE RECFRST 
WORKS.

---------------------------------------------------------------

SCR Number:   2119       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    ALL       Function:  DDLP
Summary:
DDLP WILL NOT ACCEPT AN UPPERCASE SYSTEM RECORD WHEN CASE-SENSITIVITY IS 
ON.

---------------------------------------------------------------

SCR Number:   2123       Type:  SOF       Fixed in:  V330
Product:  V320           OS:    DOS       Function:  D_CRSET
Summary:
D_CRSET TAKES [KEYFILE NO;1] AS AN ADDRESS

Description:
D_CRSET TAKES [KEYFILE NO:1] AS AN ADDRESS AND DOES NOT SPIT OUT ERROR -6, 
INVALID DB_ADDRESS.  THIS ONLY HAPPENS WITH SLOT NUMBER = 1.  YOU CAN TRY 
THIS WITH DAL:    RECFRST (<RECNAME>):  CRGET(A):  INPUT A: /* TO MODIFY 
TO THE "ADDRESS" OF KEYFILE */  /*             /*   CRSET (A) ;

---------------------------------------------------------------

SCR Number:   2130       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  LIKE
Summary:
"LIKE" WITH DESCENDING ORDER RETURNS NO DATA.

Description:
THE FOLLOWING RETURNS NO DATA:                                  DATABASE 
TEST {    DATA FILE "TEST.D01" CONTAINS REC;   KEY FILE "TEST.K01"  
CONTAINS FD1;   RECORD REC {   KEY  CHAR FD1 [10];   }   }   

ADD DATA OF   "P03"   "P01"   "P02"    THEN RUN THIS QRF IN DB_QUERY :   

"SELECT FDL WHERE FDL LIKE "P*" ORDER BY 1 DESC;"                 

---------------------------------------------------------------

SCR Number:   2131       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    WIN       Function:  
Summary:
NEEDS CONSISTENT SYSTEM DATES W/RDM 3.21 & 3.21A. 

Description:
1)  THE DATES IN W_QUERY ARE CALCULATED FROM THE NUMBER OF ELAPSED SECONDS 
FROM 1970 IN 3.21.  IN 3.21A THE YEAR IS BASED FROM 1900.  HE WANTS TO USE 
MSC6.0 FOR BOTH 3.21 AND 3.21A.  

Work Around or Fix:
For unknown reasons Microsoft changed its system base dates in MS C 7.0+ 
from 1970 to 1900.  To accommidate this, there is now the db_QUERY option 
QO_DATEFROM1970.  See the readme/manual for more details.

---------------------------------------------------------------

SCR Number:   2133       Type:  SOF       Fixed in:  Q330
Product:  Q221           OS:    ALL       Function:  IF
Summary:
NEED ABILITY TO HAVE NESTED IF'S.

Description:
NEED TO BE ABLE TO HAVE A SERIES OF NESTED IF'S OR IT SHOULD BE DOCUMENTED 
THAT YOU CANNOT DO THIS.  (Parser internal stack overflow).

Work Around or Fix:
"I BELIEVE THIS WAS A MEMORY PROBLEM THAT WAS RESOLVED", but see also SCR 
2249

---------------------------------------------------------------

SCR Number:   2134       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  WHERE
Summary:
KEY OPTIMIZING BREAKS ON MULTIPLE INSTANCES OF ROOT RECORD TYPE.

Description:
USING A VIEW OF OWNER o1 TO MEMBER TO OWNER o2 DO "SELECT o1.X, M.Y, o2.X 
WHERE o1.X = 1 AND o2.X = 6;"  BECAUSE THE INSTANCE NAMES ARE NOT CHECKED, 
DB_QUERY INCORRECTLY OPTIMIZES ON o2.X INSTEAD OF o1.X.

---------------------------------------------------------------

SCR Number:   2135       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  CREATE VI
Summary:
CREATE VIEW MAY NOT SET UP A GOOD VIEW.

Description:
WHEN SETTING UP A VIEW THAT GOES FROM AN OWNER RECORD TO 2 OCCURRENCES OF 
A SINGLE MEMBER RECORD TYPE, THE VIEW IS NOT CORRECT.  ON THE SALES 
DATABASE TRY "CREATE VIEW V1 PATH CUSTOMER TO SALES_ORDER S1 THRU 
PURCHASES AND SALES_ORDER S2 THRU PURCHASES;" AND THEN "SELECT CUST_ID, 
SL.ORD_NUM, S2.ORD_NUM FROM VL;"  WILL SHOW THAT NOT ALL POSSIBLE 
COMBINATIONS ARE THERE.  HOWEVER, "CREATE VIEW V2 PATH CUSTOMER CL TO 
SALES_ORDER SL THRU PURCHASES TO CUSTOMER C2 THRU PURCHASES TO SALES_ORDER 
S2 THRU PURCHASES;"  WORKS.

---------------------------------------------------------------

SCR Number:   2136       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  COUNT
Summary:
SELECT COUNT (DISTINCT FLD); WILL NOT ALWAYS RETURN THE CORRECT DATA.

Description:
THE PLACE WHERE THE PREVIOUS DATA IS STORED IS NOT BEING CLEARED OUT SO A 
COMPARISON AGAINST IT WILL SOMETIMES YIELD TRUE INSTEAD OF FALSE, 
RESULTING IN AN INCORRECT COUNT.

---------------------------------------------------------------

SCR Number:   2137       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  
Summary:
THE BEST OPTIMIZATION IS NOT ALWAYS PICKED CORRECTLY.

Description:
IN CHK_OPTIMIZE, IF MORE THAN ONE POSSIBLE OPTIMIZATION EXISTS, ONLY THE 
FIRST ONE WILL BE CHOSEN, NOT THE ONE WITH THE HIGHEST PRIORITY.

Work Around or Fix:
Completely rewrote it.

---------------------------------------------------------------

SCR Number:   2138       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  ORDER BY
Summary:
LOW NUMBER OF PAGES CAN CAUSE QUERY TO IMPROPERLY SORT "ORDER BY" FIELD.

Description:
Pages for the group/sort database not getting properly locked.

Work Around or Fix:
Use bigger cache

---------------------------------------------------------------

SCR Number:   2139       Type:  SOF       Fixed in:  Q330
Product:  Q221           OS:    ALL       Function:  
Summary:
MEMORY LEAKAGE IN CODED_VALUE( )

Description:
IF "VALUES ARE" AND IN THE LIST, THE QVSTRFREE( ) NEEDS TO BE BEFORE THE 
E_FLIT ASSIGNMENT.

---------------------------------------------------------------

SCR Number:   2140       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  DISTINCT
Summary:
"SELECT DISTINCT" GIVES DUPLICATES.

Description:
ON SALES: "SELECT DISTINCT PROD_ID, QUANTITY ORDER BY 1 DESC, 2;"  GIVES 
DUPLICATE ROWS.

---------------------------------------------------------------

SCR Number:   2142       Type:  SOF       Fixed in:  Q330
Product:  Q221           OS:    WIN       Function:  DIF FILE
Summary:
REPORT OUTPUT SENT "INTO DIF FILE..." GIVES A UAE.

Description:
WHEN SENDING THE OUTPUT OF A "REPORT SELECT" STATEMENT TO A DIF FILE UNDER 
WINDOWS, YOU GET A UAE (3.0) OR A GENERAL PROTECTION FAULT (3.1).

---------------------------------------------------------------

SCR Number:   2147       Type:  SOF       Fixed in:  Q330
Product:  Q221           OS:    ALL       Function:  IF
Summary:
IF CALC. PERFORMED IN "IF" STATEMENT & GROUPING PERFORMED, RESULTS 
INCORRECT.

Description:
WHEN GROUPING IS PERFORMED AND THE FOLLOWING FIELD IS SELECTED;  
IF(SUM(FIELD1)>0, FIELD2/SUM(FIELD1), 0);  WHICH SHOULD KEEP A DIVIDE BY 
ZERO MESSAGE FROM OCCURRING, IF THE SUM EQUALS ZERO, IT STILL ATTEMPTS THE 
DIVIDE.

Work Around or Fix:
Need to always evaluate both of the true and false expressions. 

---------------------------------------------------------------

SCR Number:   2156       Type:  SOF       Fixed in:  R330
Product:  R104           OS:    ALL       Function:  DBREV
Summary:
IF THERE ARE NO SETS IN EITHER DATABASE, MEMORY NOT PROPERLY ALLOCATED.

Description:
IN ALLOC_TABLES( ), IF NO SETS ARE FOUND IN EITHER SOURCE OR DESTINATION 
DATABASE, THE LINE TO ALLOCATE THE SET_TABLE TRIES TO ALLOCATE 0 BYTES.  
THIS RETURNS NULL AND THE FUNCTION EXITS WITH RETURN CODE OF -904.  THE 
RETURN CODE IS NOT CHECKED, SO THE PROGRAM CONTINUES EXECUTING AND REBOOTS 
(UNDER BORLAND) BECAUSE OTHER VARIABLES HAVE NOT BEEN ALLOCATED.

---------------------------------------------------------------

SCR Number:   2157       Type:  SOF       Fixed in:  R330
Product:  R104           OS:    ALL       Function:  MACROS
Summary:
INITIALIZING A SET CLEARS OUT WRONG SET POINTERS.

Description:
IN X_SETS.C IN THE DEST_MBER_OF_LOOP, IF THE SET IS BEING INITIALIZED, WE 
USED THE MACRO ST_OWN_PTR_DEST (DST) INSTEAD OF MT_MEM_PTR_DST (DSM) 
THEREFORE INITIALIZING THE WRONG POINTERS.

---------------------------------------------------------------

SCR Number:   2158       Type:  SOF       Fixed in:  R330
Product:  R104           OS:    ALL       Function:  X_REC
Summary:
DBREV NOT CONVERTING FOR ALL POSSIBILITIES.

Description:
IF A RECORD SIZE DOES NOT CHANGE NOR THE NUMBER OF FIELDS, NOR THE FIELDS 
TYPES, AND THERE IS NO CONVERSION, BUT THE LENGTHS CHANGE (ONE INCREASES 
AND ONE DECREASES), THE RECORD IS NOT HANDLED PROPERLY.  IN TRANS.C IF THE 
FOLLOWING LINES ARE ADDED, IT WORKS:      IF (FI_FLAGS(DFD + I) ! = 0)   
GOTO NOFLD;                                 FOR (J = 0; J< MAXDIMS; 
J++)                                   <<NEWLINE          IF 
(FD_DIM_DEST(DFD + I, J) ! = FD_DIM_SRC(SFD + I, J))         
<<NEWLINE         GOTO NOFLD;                                 <<NEWLINE

---------------------------------------------------------------

SCR Number:   2161       Type:  SOF       Fixed in:  V330
Product:  V321           OS:    OS2       Function:  D_DBLOG
Summary:
D_DBLOG() DOES NOT WORK WITH PATHS FOR OS/2.

Description:
d_dblog() DOES NOT PUT THE LOG FILE IN SPECIFIED PATH.  EITHER WITH 
D_DBLOG OR ENVIRONMENT VAR LOG FILE IS PUT IN CURR DIRECTORY.

---------------------------------------------------------------

SCR Number:   2166       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_CSSTAT
Summary:
IF D_CSSTAT( ) USED TO CHECK TIMESTAMP ON NEW SET W/ NO MEMBERS,RETURNS 
-41 ERR

Description:
PSUEDO CODE: 

d_fillnew(OWNER REC...);

d_setor(SET 1, CURR DB);

d_csstat(SET1, CURR DB );     <--RETURNS -41

Work Around or Fix:
bug was in d_fillnew()

---------------------------------------------------------------

SCR Number:   2168       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  SOURCE
Summary:
COMPILER WARNINGS

Description:
COMPILER WARNINGS MAY NEED MINOR MODIFICATION IN RDM SOURCE.   SOME MAY BE 
A PROBLEM.

---------------------------------------------------------------

SCR Number:   2169       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  
Summary:
DBQUERY WON'T HANDLE EMBED QRF FILES PROPER IF PASSING ARGUEMENTS TO THESE 
FILE

Description:
THE PROBLEM IS CAUSED BY EARLY RELEASE OF ARGUMENT BUFFERS, SO THE SECOND 
QRF FILE AND THE ONES AFTER IT WILL NEVER RECEIVE THE ARGUMENT.  

Work Around or Fix:
Fixed in Q330 by forcing all params to be explicily passed to inner QRFs.

---------------------------------------------------------------

SCR Number:   2172       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    WIN       Function:  SELECT
Summary:
LONGS LATE IN A SELECT STATEMENT ARE NOT DISPLAYED CORRECTLY.

Description:
A GROUP BY OR ORDER BY MAY HAVE SOME EFFECT.

Work Around or Fix:
Bug seems to be in RDM not db_QUERY.  Fixed in V330.

---------------------------------------------------------------

SCR Number:   2173       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  FLDCMP
Summary:
IGNORE CASE DOES NOT WORK ON SINGLE CHARS;  WORKS OK ON STRINGS.

---------------------------------------------------------------

SCR Number:   2177       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    WIN       Function:  
Summary:
W_QUERY DOES NOT PRINT OUT FIELD CORRECTLY.  

Description:
THE LAST ACTIVITY IN SELECT DID NOT PRINT CORRECTLY (INCONSISTENT WITH THE 
ONE IN THE DATAFILE).  TEST SUITES ARE INCLUDED IN A DISK ATTACHED TO 
PAPER COPY.

---------------------------------------------------------------

SCR Number:   2182       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    DOS       Function:  IF 
Summary:
INCORRECT RESULTS FROM SUMMING OF FIELD PASSED TO A USER DEFINED FUNCTION.

Description:
COMPLICATED FIELD SELECT CONSISTING OF AN "IF (---, SUM (IF (---) ), 
---)"  IS PASSED TO A USER DEFINED FUNCTION DESIGNED TO CONVERT THE LONG 
TO A STRING.  THE USER DEFINED FUNCTION SEEMS TO BE ENACTED TOO MANY TIMES 
DUE TO THE "GROUP BY" CLAUSE.  THE SUM VALUE JUST INCREASES WITH EACH 
EXECUTION OF THE user function.

---------------------------------------------------------------

SCR Number:   2193       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_CHECKID
Summary:
D_CHECKID HAS A PROBLEM IF CALLED BEFORE D_LOCKCOMM.

Description:
D_CHECKID GIVES A GP FAULT UNDER WINDOWS IF CALLED BEFORE D_LOCKCOMM.  
HANGS SYSTEM UNDER DOS AND PROBABLY DOES SIMILAR BAD THINGS UNDER OTHER 
OPERATING SYSTEMS.  

Work Around or Fix:
CALL D_LOCKCOMM FIRST.

---------------------------------------------------------------

SCR Number:   2196       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  WIDA
Summary:
PROBLEM DOING A SCAN BY KEY ON COMPOUND KEYS WITH FIRST FIELD DESCENDING.

Description:
IF YOU DO A SCAN BY KEY ON A COMPOUND KEY WHERE THE FIRST FIELD IS ORDERED 
DESCENDING, IT WILL NOT FIND ANY RECORDS.  IDA WILL WORK CORRECTLY AND 
SHOWS ALL OF THE RECORDS.  THIS PROBLEM IS IN RDM 3.21 AND RDM 3.21A.

Work Around or Fix:
Bad parsing of the input from the user. 

---------------------------------------------------------------

SCR Number:   2197       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  WHERE
Summary:
DB_QUERY IS NOT USING THE COUNTRY TABLE CORRECTLY.

Description:
THE COUNTRY TABLE IS NOT USED PROPERLY WHEN IT IS ACTIVE, ESPECIALLY WHEN 
OPTIMIZING KEYS.  THIS CAUSES THE WRONG DATA TO BE RETURNED.  

Work Around or Fix:
NO WORKAROUND AVAILABLE.   fix = call fldcmp() or ctblcmp() instead of 
strcmp()

---------------------------------------------------------------

SCR Number:   2198       Type:  SOF       Fixed in:  R330
Product:  R104           OS:    DOS       Function:  DBREV
Summary:
DBREV SETS TIMESTAMPS ON SETS TO 0-CAUSES APP TO RETURN: SETS NOT 
TIMESTAMPED.

---------------------------------------------------------------

SCR Number:   2199       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  LOCKMGR
Summary:
LM_TSR WAITS IN INFINITE LOOP FOR RECOVERY ON APP RUNNING ON THE SAME 
MACHINE.

Description:
SEE SHEET ATTACHED TO PAPER COPY.

---------------------------------------------------------------

SCR Number:   2200       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  D_ON_OPT
Summary:
PORTABLE DOES NOT WORK UNDER WINDOWS.

Description:
2 PROBLEMS:  1) WRONG TEST BEING DONE ON OPENFILE (OF_DELETE), AND 2) 
BECAUSE A NULL PTRS IS PASSED INSTEAD OF &OF, THE LFG FILE NEVER GETS 
DELETED.  #1 WAS HIDING #2.  #2 a bug in OpenFile()???

---------------------------------------------------------------

SCR Number:   2201       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  
Summary:
COMMIT_FILE( ) NOT CLOSING ORIGINAL FILE WHEN CLOSEFILES IS ON.

---------------------------------------------------------------

SCR Number:   2204       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  D_CHECKID
Summary:
D_CHECKID DOES NOT ISSUE A NETBIOS DELNAME

Description:
d_checkid ADDS THE DBUSERID TO THE CURRENT MACHINE'S NETWORK CARD, BUT 
DOES NOT DELETE IT.  THIS MEANS ANOTHER MACHINE MAY TRY TO USE THE SAME 
DBUSERID AND GET A -921 S_DUPUSERID ERROR EVEN IF MACHINE 1 NEVER OPENED 
THE DATABASE.

---------------------------------------------------------------

SCR Number:   2215       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DBCHECK
Summary:
DBCHECK -A -P##.  IF THE NUMBER FOR OPTION -P EXCEEDS THE MEMORY LIMIT 

Description:
THERE IS NO PATTERN AS TO WHAT ERROR YOU WILL GET.  ABOVE WAS WHAT I 
EXPERIENCED.  THE CUSTOMER EXPERIENCED THE SITUATION LIKE THE FOLLOWING, 
WHICH I EXPERIENCED TOO:     DBCHECK DOES PROCESS TO CERTAIN POINT AND 
THEN HANGS THE MACHINE.  ALL THE UTILITIES HAVE THIS PROBLEM.

---------------------------------------------------------------

SCR Number:   2216       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    DOS       Function:  Q_OPEN
Summary:
SET QRFPATH TO A RELATIVE PATH, THE QIF FILE WILL NOT BE FOUND.

Description:
THIS IS A BUG IN Q_OPEN IN FILE OPENCLOSE.C LINE 297.  WHERE QRFPATH WAS 
PREPENDED TO THE QIF FILE NAME ONCE, THEN CALL Q_BATCH.  IN Q_BATCH FROM 
FILE BATCH.C QPUSHSQL( ) WAS CALLED, AND QRFPATH WAS PREPENDED TO THE FILE 
NAMED AGAIN.

Work Around or Fix:
Fixed in Q330 by allowing a relative path to start with a '.' when the 
QRFPATH is not wanted. 

---------------------------------------------------------------

SCR Number:   2223       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  DDLP
Summary:
DDLP DOESN'T GIVE ERROR MSG FOR A BAD KEY

Description:
When duplicate fields are allowed, and the schema has a record.key file 
listed, but the record does not exist in the schema, but the field is a 
valid key in another record, no error is given.

---------------------------------------------------------------

SCR Number:   2224       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  
Summary:
FORMAT NOT CONSISTENT BETWEEN HEADER AND CONTENTS IF DATA EXCEEDS THE 
BUFFER. 

Description:
The length of the title is the length of the field declaration which means 
the title is too long and gets not printed.  However if the string length 
of the field INSTANCE is small enough to fit, it gets printed without the 
title.

---------------------------------------------------------------

SCR Number:   2229       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  DBIMP
Summary:
DBIMP DOESN'T IMPORT DATA CORRECTLY IF SPACES USES BETWEEN QUOTED FIELDS.

Description:
SEE ATTACHMENT TO PAPER COPY FOR EXAMPLE.

---------------------------------------------------------------

SCR Number:   2230       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    DOS       Function:  Q_OPEN
Summary:
PASSING MULTIPLE PATHS WITH DBDPATH GIVES -4 IN Q_OPEN

Description:
PASSING MULTIPLE PATHS WITH DBDPATH OR SETTING IT IN ENVIRONMENT VARIABLE 
AS (<PATH 1> ; <PATH 2> ) AND DOING Q_OPEN ( <DB1> ; <DB2>,"_")    RETURNS 
-4 INVDB.

---------------------------------------------------------------

SCR Number:   2231       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  D_FREEALL
Summary:
D_FREEALL( ) (CALLS FREE_DBLOCKS( ) )  DISCARDS CACHE PAGES INCORRECTLY 
....

Description:
WITH AN EXCLUSIVE LOCK.  (DIO_CLEAR( ) CALLED BEFORE D_CLOSE( ) SO THAT 
THE MODIFICATIONS TO THE DATABASE ARE LOST.)

---------------------------------------------------------------

SCR Number:   2232       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    DOS       Function:  IF
Summary:
IF (XX="YY", VALUE, NULL) RETURNS IF FUNCTION TYPE MISMATCHING.

Description:
The val_type of "value" does not match the val_type of "null."

---------------------------------------------------------------

SCR Number:   2245       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  D_OPEN
Summary:
WHEN S_DBLACCESS HAPPENS WITH LMC_OPT_PORTABLE SET, SHOULD NOT RETURN 
S_NOSHARE

Description:
THIS HAS BEEN FIXED FOR RDM 3.3 SO THAT THE LOGIC CHECKS FOR 
LMC_OPT_PORTABLE BEGING SET??

---------------------------------------------------------------

SCR Number:   2248       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_CHECKID
Summary:
DT_CHECKID USED WITH THE GENERAL LOCK MANAGER WILL NEVER RETURN S_DUPLICATE

Description:
IN LMCG_CHECKID LMC_ERRNO IS SET TO G_DUPUSERID WHEN THE GIVEN NAME IS 
ALREADY IN USE.  UNFORTUNATELY, WHEN DBL_COMMIT IS CALLED LATER IN THE 
FUNCTION IT CALLS DBL_UNLOCK, WHICH CALLS LMCG_LOCKING.  LMCG_LOCKING 
RESETS LMC_ERRNO TO G_OKAY.  EITHER LMCG_LOCKING MUST CHANGE OR LMC_ERRNO 
MUST BE SAVED AND RESTORED AFTER CALLING DBL_COMMIT.

---------------------------------------------------------------

SCR Number:   2249       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    DOS       Function:  IF
Summary:
QUERY'S FIELD STATEMENT DOESN'T TAKE MORE THAN 5 OR 7 NESTED IF STATEMENTS.

Description:
THE FIELD STATEMENT WAS PARSED OK, BUT WHEN DOING A SELECT, QUERY RETURNS 
"INVALID DATA FIELD" ERROR.  

The fix:  The YACC stack was getting overflowed.  This error was not 
trickling back to a high enough level in db_QUERY.  A new error code was 
added for this.  Also increased the size of the YACC stack

Work Around or Fix:
USE Q_TRANSLATE() OR Q_FUNCTION()

---------------------------------------------------------------

SCR Number:   2252       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  
Summary:
WHEN APPLICATIONS USE SHARED MODE TO OPEN DATABASE (ONE OF THE LOCKMGRS); 
AND C

Description:
IT'LL BE NICE IF WE HAVE OPTIONS SUCH AS "-MB", "-MI", "-MG" TO SWITCH THE 
TYPE OF LOCKMGR OTHER THAN "LMC_NONE."  WE MIGHT GET AWAY FROM DELETING 
THE TAF FILE.  (IT'S NOT A GOOD IDEA TO DELETE THE TAF FILE IF THE 
DATABASE NEEDS TO BE RECOVERED.)

Work Around or Fix:
Fixed by using the RDM 3.30 rdm.ini file 

---------------------------------------------------------------

SCR Number:   2254       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    DOS       Function:  
Summary:
SYSTEM DATE IN YEAR 2000 IS DISPLAYED AS YEAR 20.

Description:
USING DATE FORMAT (1,8) jAN 1, 2000 IS DISPLAYED A 1:1:20 INSTEAD OF 
1:1:00.

Work Around or Fix:
WORKAROUND FOR NOW IS TO USE DATE FORMAT (1,10) SO THAT '2000' IS 
DISPLAYED FULLY INSTEAD OF '20.'

---------------------------------------------------------------

SCR Number:   2255       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DBIMP
Summary:
DBIMP DOES NOT HANDLE COMMAND LINE OPTIONS CORRECTLY.  IT WILL STILL RUN 
EVEN W

Description:
IN FUNCTION "MAIN" IN DBIMP.C THERE SHOULD BE AN EXIT(1) STATEMENT AFTER 
THE FPRINF STATEMENT AT LINE 172 OR SO.  THE FPRINTF PRINTS "... INVALID 
OPTION..." and keeps going.

---------------------------------------------------------------

SCR Number:   2263       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_SETDB
Summary:
TIMESTAMP OF CURRENT RECORD IS NOT SAVED BETWEEN DATABASE SWAPS.

Description:
d_recfrst(..., db0); d_recfrst(..,db1); d_crget(...,db0) ==> correct dba; 
d_gtscr(..., db0) ==> timestamp of record from db1 instead of db0. 

Work Around or Fix:
call d_gtscr() before changing databases.

---------------------------------------------------------------

SCR Number:   2264       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    VMS       Function:  D_LOCK
Summary:
VMS DBL_UPDATED() USES WRONG I/O FCN THUS CAUSING INFINATE LOOP.

Description:
Because dbl_updated() in lmcg.c uses read() instead of rmsrdwrbuff(), the 
data returned is not valid and allows the while loop to become infinite.

---------------------------------------------------------------

SCR Number:   2266       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_KEYBUIL
Summary:
D_KEYBUILD() WORKS FOR ONLY DBN == 0 (THE FIRST DATABASE)

Description:
Because the file table index numbers are being passed to d_initfile() and 
dio_read(), only the first database gets built correctly.  Need to call 
NUM2EXT() before d_initfile() and dio_read().

---------------------------------------------------------------

SCR Number:   2268       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    D/W       Function:  
Summary:
MSC DOS AND WINDOWS FLOATS -1.0 < X < 1.0 USE WRONG DECIMAL POINT

Description:
The floating point numbers with abs() < 1.0 use a hard coded decimal point 
character instead of the qdecimal character.

---------------------------------------------------------------

SCR Number:   2272       Type:  SOF       Fixed in:  V330_B1
Product:  V330_B1        OS:    D/W       Function:  LMC_NOVELL
Summary:
NOVELL'S TRANSACTION SYSTEM REQUIRES ALL FILES STAY OPEN.

Description:
When using Novell's TTS, all files opened before d_trend() must stay open 
until d_trend().  The reasons for this are (1) that once the files are 
closed they can not be reopened (access denied), and (2) some of the data 
may get prematurely flushed to disk and corrupt the database.

Work Around or Fix:
Call d_closeall() before d_trbegin(), or link in the correct startup code 
to allow d_setfiles() to have all the necessary files open at once, or 
maybe both.

---------------------------------------------------------------

SCR Number:   2273       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_SETLOCK
Summary:
D_SETLOCK() DOES NOT CLEAR STATIC OWNER PAGES ALLOWING FOR BAD PTR USE.

Description:
While the data in a static record can not be updated in shared mode, the 
set pointers in this owner can be.  d_setlock() needs to clear the pages 
of this static owner so that the set pointers stored in this static page 
are current.

---------------------------------------------------------------

SCR Number:   2274       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_TRBEGIN
Summary:
D_TRBEGIN SHOULD RETURN S_TRANSID IF A NULL STRING IS PASSED AS THE 
TRANSACTION

---------------------------------------------------------------

SCR Number:   2275       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  D_LOCK
Summary:
WITH MORE THAN 4 USERS, GENERAL LOCK MANAGER GETS GP FAULT.

Description:
in lmcg.c somewhere in the code { ...; free_pending(); free_partial(); 
map_zero( uptr->r_que, ... ); ... } where uptr->r_que is NULL, which 
caused problem.

Work Around or Fix:
fixed when all lmc modules were rewritten for new lockmgrs? 

---------------------------------------------------------------

SCR Number:   2276       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    WIN       Function:  DISPLAY A
Summary:
PROBLEM WITH SPECIFYING ZERO DECIMAL PLACES IN A FIELD STATEMENT.

Description:
If zero decimal places are specified for a float or double field in a 
field statement, then zero values result in a blank value being displayed.

---------------------------------------------------------------

SCR Number:   2282       Type:  SOF       Fixed in:  V330_B1
Product:  V321A          OS:    ALL       Function:  KEYPACK
Summary:
KEYPACK NEEDS A WAY TO SELECT A LOCK MANAGER TYPE TO SELECT EXCLUSIVE MODE

Description:
Keypack allows the database to be opened in exclusive mode, but there is 
no way to set d_lockcomm().

---------------------------------------------------------------

SCR Number:   2287       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    DOS       Function:  CONSOLE
Summary:
CONSOLE -MG EXITS IF USER TO KILL NOT IN THE TABLE.

Description:
Under LMC_GENERAL -- maybe others, too -- if "kill user" does not find the 
user, CONSOLE prints the error message then exits.  It should not exit, 
but continue.

---------------------------------------------------------------

SCR Number:   2288       Type:  SOF       Fixed in:  Q330_B2
Product:  Q330_B1        OS:    ALL       Function:  Q_OPEN
Summary:
Q_OPEN() FAILS TO INITIALIZE THE DB_QUERY DATABASE, CAUSES S_READ FROM 
D_TRBEGI

Description:
Because d_trbegin() now calls o_fileinit() for all the files, the db_QUERY 
data and key files need to be initialized instead of just created so that 
o_fileinit() does not get an S_READ error from dio_pzread() from 
dio_pznext().

Work Around or Fix:
q_open() now calls d_initialize() after calling d_open().

---------------------------------------------------------------

SCR Number:   2289       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_RLBCLR
Summary:
D_RLBCLR CAUSES NON-READ LOCK ON DATA FILE TO CHANGED TO READ LOCK 

Description:
d_rlbclr() "downgrades" write lock on data file to read lock, and gives 
multiple apps the opportunity for dead lock.  Also see SCR 2033.

---------------------------------------------------------------

SCR Number:   2291       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  REMCON
Summary:
WHEN IN LM'S CONSOL, STATUS SCREEN DOES NOT DISPLAY MORE THAN 50 ENTRIES, 
UP AN

Description:
He had an application opening up 2 databases, but when there were 30 users 
on system, status screen only displayed 50 entries, he tried scrolling 
screens but keys have no effect.

Work Around or Fix:
The console for both the lock manager and the remote console has been 
rewritten and the problem no longer exists starting in 3.30.

---------------------------------------------------------------

SCR Number:   2292       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    D/W       Function:  MANY
Summary:
MISSING COMMAND LINE OPTION FOR NOVELL NATIVE LOCK MANAGER.

Description:
IDA, WIDA, DAL, KEYPACK utilities missing the -mx option for LMC_NOVELL.  
Also the examples db_query.exe and w_query.exe.

---------------------------------------------------------------

SCR Number:   2293       Type:  SOF       Fixed in:  Q330_B3
Product:  Q221A          OS:    ALL       Function:  Q_CLOSE
Summary:
POSSIBLE MEMORY LEAK FROM FIELD STATEMENT

Description:
The user states that memcheck is showing a memory leak if he does 
something like:

field x = if (a = "unfreed", 1, 0) display as int(1);

select x;

But not if he uses "like" instead of "=".

The memcheck reports that the memory is unfreed after q_close().  The 
memory is not related to the field x but rather to the string "unfreed".  
He also goes on to say that:

"The memcheck reports were for documents invloving hundreds of query 
selects.  When I ran the statements that had a problem individually, there 
was no problem.  Examining the source code for rel_eval() in expreval.c, 
it looks like a qvstrfree() would be performed in all cases except when 
one of the terms is NULL or NOVAL around line #1768.  I believe this is 
the problem; there shouldn't be a return witput a qvstrfree() if either 
rval or lval is E_CHAR."

Work Around or Fix:
Q330 seems to have no problem with the individual statement.  Claiming it 
to be fixed under the assumption that there really was a bug. 

---------------------------------------------------------------

SCR Number:   2295       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    D/W       Function:  HEADERS
Summary:
KEYWORD "OPTION" NEEDS TO BE USED WITH #PRAGMA FOR BORLAND COMPILER

Description:
In sections of header files that are specifically for TURBO, change:

#pragma -a-

and

#pragma -a.

to:

#pragma option -a-

and

#pragma option -a.

---------------------------------------------------------------

SCR Number:   2299       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  WIDA
Summary:
WIDA GIVES S_INVSET WHEN TRYING TO SET CURRENT RECORD FROM CURRENT 
MEMBER/OWNER

Description:
Using WIDA, if you have currency set for current owners and/or members, 
you cannot use the Currency/Change Current Record/from Current Owner of or 
from Current Member of, as it always gives S_INVSET (-2) error.

Bad logic in the index2define conversion.

---------------------------------------------------------------

SCR Number:   2303       Type:  SOF       Fixed in:  V330_B1
Product:  V321A          OS:    DOS       Function:  DIO_FINDPG
Summary:
LOW MEMORY WILL CAUSE AN S_SYSERR ERROR.  NEED TEST FROM CUSTOMER!

Description:
With low memory free, everything is okay, but when TSR's are loaded and 
memory became low, S_SYSERR occurs.

Pointer problem in dio_findpg():  see fax from Doug Wilson.

Work Around or Fix:
dio_findpg() was completely rewritten.

---------------------------------------------------------------

SCR Number:   2307       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
DDLP ERRONEOUSLY MAKES NON-KEYED STRUCTS WITHIN RECORDS INTO KEY OBJECTS

---------------------------------------------------------------

SCR Number:   2312       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  WIDA
Summary:
WIDA IS NOT CORRECTLY TRANSLATING SOME FLOATS INTO SCIENTIFIC NOTATION.

Description:
If you enter a value between 0.1 and 0.9 into a float field, then the 
exponent is showing +1 instead of -1.

---------------------------------------------------------------

SCR Number:   2315       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    DOS       Function:  DBEDIT
Summary:
DBEDIT "ADDRESS OVERFLOW" PROBLEM.

Description:
Using DBEDIT, goto 1:13381626 produces file address overflow error.  This 
is a dbaddr  that he found using dbedit.  (It is a member of a set.)

Work Around or Fix:
Two problems:  1) add math needs to be in ULONGs.  2) removed the '=' from 
the if on 'i'. 

---------------------------------------------------------------

SCR Number:   2316       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
DIRECTREF AND RELATEDTO WITH -D DOESN'T WORK.

Description:
The DIRECTREF & RELATEDTO macros do not work when using the -d (duplicate 
name) option.

Work Around or Fix:
In the function pr_storeobj class, when the RELATEDTO macro was written 
out, if d_lfag was set the second parameter needed the uppercase record 
name added.  DIRECTREF did not need modification.

---------------------------------------------------------------

SCR Number:   2317       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  D_CHECKID
Summary:
IF D_CHECKID() CALLED BEFORE D_LOCKCOMM(), GP FAULT WILL RESULT.

Description:
lmc_avail() is a null fcn ptr!

---------------------------------------------------------------

SCR Number:   2322       Type:  SOF       Fixed in:  Q330
Product:  Q330_B2        OS:    WIN       Function:  QT_NEXTVAL
Summary:
QT_NEXTVAL RETURNING GARBAGE DATA (ALIGNMENT PROBLEM APP VS DLL)

Description:
Customer reports that recompiling an application with rdm3.3 causes his 
queries using qt_nextval to return the correct number of rows, but returns 
data as garbage (not even legible information).

Borland linking with Microsoft DLL has problem.  First VALUE structure has 
correct data, subsequent ones do not.  Works fine when using Microsoft compiler.

Change the Windows query.h file so that the TURBO #pramga line reads:

#pragma option -a-

(It read #pragma option -a).

Work Around or Fix:
Wrong packing #pragma for Borland under both DOS and Windows in "query.h". 

---------------------------------------------------------------

SCR Number:   2324       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  NEW_PAGE
Summary:
QFORMFEED = '\N' AND QLENGTH = 0 WILL GIVE GP FAULT DUE TO STACK 
CORRUPTION.

Description:
When qformfeed == '\n' and qlength == 0, the stack gets corrupted because 
the calculation ends up casting -1 to an unsigned.

---------------------------------------------------------------

SCR Number:   2325       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
KEY FIELD WITHIN A STRUCT GIVES A DDLP ERROR

Description:
If you have a key field in an embedded struct in a record, DDLP will give 
a "missing '}' error followed by an "invalid ddl statement" error on the 
line in the DDL that defines the key field.  This worked in RDM 3.21A.

Bug fix for beta ROM option broke this.

---------------------------------------------------------------

SCR Number:   2344       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  QFORMINIT
Summary:
A FORM FILE ROW WITH LEADING NULL CHARACTERS WILL CAUSE A GP FAULT

Description:
The length of the string is reported as 0, so accessing qrowtxt[len - 1] 
causes GP fault.

---------------------------------------------------------------

SCR Number:   2345       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    ALL       Function:  DBEDIT
Summary:
DBEDIT SHOWS THE WRONG DATABASE ADDRESS IN THE SET POINTER LIST

Description:
The data is correct but the numbers displayed are wrong.

Work Around or Fix:
The "gibberish" assignment statements were broken by the d_decode_dba() 
usage.

---------------------------------------------------------------

SCR Number:   2346       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    DOS       Function:  LMC_SPX
Summary:
LMC_SPX UNDER BORLAND AND PHARLAP GP FAULTS

---------------------------------------------------------------

SCR Number:   2347       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    DOS       Function:  LMC_SPX
Summary:
LMC_SPX AND CONTEXT SWITCHING LOSING LOGINS

---------------------------------------------------------------

SCR Number:   2348       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    D/W       Function:  LMC_NOVELL
Summary:
LMC_NOVELL CORRUPTS MEMORY ON MULTIPLE OPENS.

---------------------------------------------------------------

SCR Number:   2350       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    DOS       Function:  LOCKMGR
Summary:
LOCKMGR HELP SCREEN DOES NOT CORRECTLY SHOW 'SHUTDOWN' COMMAND

---------------------------------------------------------------

SCR Number:   2351       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    D/W       Function:  D_OPEN
Summary:
D_OPEN() CLEANUP CODE IS LOSING THE VALUE OF DB_STATUS.

---------------------------------------------------------------

SCR Number:   2352       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    D/W       Function:  RLBFCNS
Summary:
RLBFCNS GETTING GP FAULT ON NULL PTR.

Description:
In the if() that checks the locks, it needs to check 'dopen' first instead 
of last so that the use of the ptr is not null.

---------------------------------------------------------------

SCR Number:   2353       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    WIN       Function:  LMC_SPX
Summary:
SPX FOR WINDOWS NEEDS TO SWAP SEARCH TYPE

---------------------------------------------------------------

SCR Number:   2354       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    D/W       Function:  TASK.H
Summary:
BAD DT_COVER MACROS FOR D_???NUM().

---------------------------------------------------------------

SCR Number:   2355       Type:  SOF       Fixed in:  V330_B2
Product:  V321A          OS:    D/W       Function:  D_LOCKMGR
Summary:
D_LOCKMGR() IS NOT CORRECTLY CHECKING FOR NULL AND '\0'.

---------------------------------------------------------------

SCR Number:   2356       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    D/W       Function:  LMC_INTERNA
Summary:
LMC_INTERNAL SHOULD NOT CALL ENTER_USER() WHEN HOLDING_X_LOCKS.

---------------------------------------------------------------

SCR Number:   2357       Type:  SOF       Fixed in:  V330_B2
Product:  V330_B1        OS:    D/W       Function:  D_TIMEOUT
Summary:
LMC_GENERAL NEEDS TO CALL DBL_ACCESS() AND DBL_COMMIT() FOR D_TIMEOUT()

Description:
The new value is getting lost because the next message DOES do a 
dbl_access() which overwrites the copy in memory.

---------------------------------------------------------------

SCR Number:   2358       Type:  SOF       Fixed in:  V330_B3
Product:  V330_B2        OS:    ALL       Function:  LM_FIND_GPT
Summary:
D_CHECKID WITH LMC_INTERNAL CAN GIVE GP FAULT

Description:
If you have already started an Internal lock manager, say with WIDA, and 
then you do a d_lockcomm(LMC_INTERNAL), d_checkid(uid) with the same 
internal lock manager, you will get a GP fault in the function 
lm_find_gptr() in lmci.c.  The GP fault occurs on the line:

bytecpy(&LD_dbGptr, &Gptr, sizeof(G_GLOBAL_P));

as LD_dbGptr is null.

Work Around or Fix:
lmci_checkid() needs to make sure that lmc_data is not NULL.  If it is 
null, it needs to be allocated and freed.  Free is needed because no 
commitment to this lockmgr type has been made by d_open().

---------------------------------------------------------------

SCR Number:   2359       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  R_CHKFLD
Summary:
R_CHKFLD() DOES A BYTECMP RATHER THAN FLDCMP, CAN GIVE BAD S_DUPLICATE 
STATUS

Description:
If a d_recwrite() is performed on a record that has a character string 
unique key, where some non-key fields have been changed and the unique key 
field has been changed after the first null character (i.e. 
"test1\0\0\0\0\0" has been changed to "test1\0aaaa" for a 10 character 
string).  Then the bytecmp() will report that the unique key field has 
changed, but the subsequent d_keyfind() within r_chkfld() will find the 
value already in the key file, so it will erroneously report an 
S_DUPLICATE status.

There are 2 other places in the RDM 3.30 source where a 3.21A fldcmp() has 
been change to a 3.30 bytecmp(), in d_recwrite and r_pfld().  These should 
be checked out.

Work Around or Fix:
The bytecmp() in d_recwrite() is good because it allows keys with 
ignorecase to be changed between cases.  The bytecmp() in r_chkfld() needs 
to be changed so that keyed fields use fldcmp() while non-keyed fields use 
bytecmp().

---------------------------------------------------------------

SCR Number:   2360       Type:  SOF       Fixed in:  V330_B3
Product:  V330_B2        OS:    ALL       Function:  O_INIT
Summary:
ROOT INDEX ENTRIES BEING TRASHED IN O_INIT.

Description:
Can cause database corruption.

---------------------------------------------------------------

SCR Number:   2361       Type:  SOF       Fixed in:  V330_B3
Product:  V330_B2        OS:    ALL       Function:  D_TRABORT
Summary:
D_TRABORT WITH LMC_NOVELL GETS S_TTSUNAVAILABLE ERROR

---------------------------------------------------------------

SCR Number:   2362       Type:  SOF       Fixed in:  V330_B3
Product:  V330_B2        OS:    ALL       Function:  DIO_WRLB
Summary:
RLB NOT SET IN CORRECT SLOT IN SHARED MODE IF LOCKS NOT APPLIED

Description:
Function dio_wrlb() was using an unsigned int for the file offset when it 
should use a DB_ULONG.

---------------------------------------------------------------

SCR Number:   2365       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    D/W       Function:  LOCKMGR
Summary:
NETBIOS LOCK MANAGER DOES NOT WORK WITH NETBEUI FROM LANMAN 2.2

Description:
The problem seems to be in the lmcnetb_avail(), where the return value of 
the function is tested instead of the completion code of the NCB.

Work Around or Fix:
Seems to have been fixed in the rewrite of the LMC and lockmgr modules. 

---------------------------------------------------------------

SCR Number:   2367       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
DDLP NEEDS TO CREATE THE CONSTRUCTOR FOR THE SYSTEM CLASS AS PUBLIC

Description:
When DDLP creates ROM classes, the class for the system object needs to 
have a public constructor.

---------------------------------------------------------------

SCR Number:   2368       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    D/W       Function:  LOCKMGR
Summary:
SPX LOCKMGR IS LOSING A RANDOM CONNECTION UNDER HEAVY STRESS

Description:
Might be a Novell VLM bug instead of Raima's.

---------------------------------------------------------------

SCR Number:   2369       Type:  SOF       Fixed in:  V330_B3
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
DDLP PROBLEM WITH COMPOUND KEY FOLLOWED BY STRUCT IN NEXT RECORD

Description:
Problem where the first field in a record following a record with a 
compound key is a struct.

---------------------------------------------------------------

SCR Number:   2370       Type:  SOF       Fixed in:  V330
Product:  V330_B1        OS:    D/W       Function:  LOCKMGR
Summary:
RECOVERY IS NOT OCCURING CORRECTLY IN ANY OF THE LOCKMGRS.

---------------------------------------------------------------

SCR Number:   2371       Type:  SOF       Fixed in:  V330_B3
Product:  V330_B1        OS:    D/W       Function:  LOCKMGR
Summary:
LOCKMGR'S HASHING ALGORITHM IS NOT SUFFICIENT.

Description:
Collisions are not getting resolved correctly.

---------------------------------------------------------------

SCR Number:   2372       Type:  SOF       Fixed in:  V330_B3
Product:  V330_B2        OS:    D/W       Function:  LOCKMGR
Summary:
LOCKMGR IS NOT CLEANING UP ALL THE NADDS CORRECTLY.

---------------------------------------------------------------

SCR Number:   2375       Type:  SOF       Fixed in:  
Product:  V330_B2        OS:    D/W       Function:  LMC_LANMAN
Summary:
LANMAN DOES NOT GUARANTEE MESSAGE DELIVERY BETWEEN CLIENTS.

Description:
Since the messages are only guaranteed between the client and the server, 
the LanMan lockmgr needs to be put on hold until an OS/2 version of the 
lockmgr can be running on the server.

---------------------------------------------------------------

SCR Number:   2378       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  CALLBACKS
Summary:
Q[T]_SET_DISPLAYPROC AND Q[T]_SET_PRINTERPROC NEED TO BE ON EVERY OS

---------------------------------------------------------------

SCR Number:   2379       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  SELECT
Summary:
DB_QUERY IS NOT PROPERLY HANDLING UNSIGNED LONGS.

---------------------------------------------------------------

SCR Number:   2380       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  KEYSTORE
Summary:
D_KEYSTORE IS NOT PROPERLY UNLOCKING PAGES IF IT FAILS.

---------------------------------------------------------------

SCR Number:   2381       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  RECREAD
Summary:
D_RECREAD CAN ATTEMPT TO UNLOCK THE WRONG PAGE.

---------------------------------------------------------------

SCR Number:   2382       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  READ
Summary:
IF _LREAD FAILED IN WINDOWS ERRNO WAS NOT SET.

---------------------------------------------------------------

SCR Number:   2384       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_IOPEN
Summary:
IF D_IOPEN FAILS, IT NEEDS TO RESET THE CURR_DB_TABLE AND CURR_RN_TABLE

---------------------------------------------------------------

SCR Number:   2385       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  TIMESTAMPS
Summary:
THE INTERNAL FUNCTION R_PFLD WAS IS NOT SETTING THE TIMESTAMPS CORRECTLY.

Description:
r_pfld() is not setting the owner and member timestamps correctly.

---------------------------------------------------------------

SCR Number:   2386       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  FLDCMP
Summary:
FLDCMP() IS COMPARING UNSIGNED CHARS AS SIGNED CHARS.

---------------------------------------------------------------

SCR Number:   2387       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_RECPREV
Summary:
THE FUNCTIONS D_RECNEXT AND D_RECPREV SHOULD WRAP LIKE OTHER FUNCTIONS

---------------------------------------------------------------

SCR Number:   2388       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_INITIALIZ
Summary:
D_INITIALIZE DOES NOT CHECK FOR LOCKS ON ALL FILES.

---------------------------------------------------------------

SCR Number:   2389       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DBCHECK
Summary:
DBCHECK CAN TRY TO ALLOCATE TOO MUCH MEMORY

Description:
Dbcheck tries to allocate enough memory to have one bit for every record 
in a file.  This can exceed 64K.

---------------------------------------------------------------

SCR Number:   2390       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  Q_BATCH
Summary:
Q_BATCH DOES NOT HANDLE AN INVALID PATH

---------------------------------------------------------------

SCR Number:   2391       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  SELECT
Summary:
QUERY'S DB_ADDR NAVIGATION DOES NOT WORK IN SOME PLACES IN THE PATH.

---------------------------------------------------------------

SCR Number:   2392       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DB_ENTER
Summary:
IF DB_ENTER FAILS, CLEANUP IS NOT HANDLED CORRECTLY.

---------------------------------------------------------------

SCR Number:   2393       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    WIN       Function:  Q_NEXTROW
Summary:
WINDOWS DB_QUERY DOES NOT FORMAT FLOATS 0.1 <= X < 1.0 CORRECTLY FOR EXP 
FORMAT

Description:
The sign on the exponent for floats 0.1 <= x < 1.0 is not correct (but the 
number is).

---------------------------------------------------------------

SCR Number:   2394       Type:  SOF       Fixed in:  
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
DDLP NEEDS TO GENERATE CLASSES COMPATIBLE WITH ROM 2.0

Description:
Currently the classes that DDLP generates are compatible with ROM 1.1 
only.  A change in ROM 2.0 requires more data in the generated classes.  
DDLP should be able to handle both formats with a special switch.

---------------------------------------------------------------

SCR Number:   2396       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  SPX
Summary:
SPX LOSSES CONNECTIONS WHEN MORE THAN TWO APPS ARE RUN UNDER WINDOWS.

Description:
When three or more applications are run under Windows on the same machine 
SPX losses connections to some of them.  Under VLM the completion code is 
ED (connection terminated poorly).  Under NETX the completion code is FC 
(socket closed).  Two applications work fine.

---------------------------------------------------------------

SCR Number:   2399       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DBEXP
Summary:
DBEXP HANDLES UNSIGNED VALUES AS SIGNED VALUES.

Description:
A LARGE UNSIGNED VALUE EXPORTS TO BE A NEGATIVE SIGNED VALUE; DBEXP TREATS 
A LARGE UNSIGNED # AS A NEGATIVE #.

---------------------------------------------------------------

SCR Number:   2401       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    DOS       Function:  LIBFCNS
Summary:
ANSI VS. NON-ANSI FCN DECLARATIONS DO NOT MATCH IN VARIABLE NAMES.

---------------------------------------------------------------

SCR Number:   2402       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  DBCHECK
Summary:
DBCHECK GETS GP VIOLATION WHEN RID IS BAD.

Description:
In the function chk_rec(), the check for system records uses the RID as an 
array index.  If the RID is bad, you get a GP violation.

---------------------------------------------------------------

SCR Number:   2403       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  KEYBUILD
Summary:
KEYBUILD GETS A GP VIOLATION WHEN THE RID IS BAD.

Description:
In main() about line 140, the Record ID is used as an array index.  It 
needs to be checked against size_rt.  If bad, the processing needs to be 
stopped.  The function d_keybuild() has the same problem.

---------------------------------------------------------------

SCR Number:   2407       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  D_SETPAGES
Summary:
NUMBERS > 32K GIVEN TO D_SETPAGES() CAUSES GP VIOLATIONS.

Description:
The problem is that 32bit ints are given to d_setpages(), but the tables 
driving the caches use only signed shorts as indices.  This causes the 
numbers to become negative.

---------------------------------------------------------------

SCR Number:   2429       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
DDLP DOES NOT HANDLE NAMES LONGER THAN 31 CHARACTERS PROPERLY

Description:
After a name greater than 31 characters is encountered, all name strings 
are printed to the screen rather than to to DBD.

---------------------------------------------------------------

SCR Number:   2430       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
DDLP WITH ROM OPTIONS DOES NOT CREATE ARRAYED KEYED STRUCTS OBJECTS 
PROPERLY

Description:
The constructor needs to use the address of an array element.

---------------------------------------------------------------

SCR Number:   2454       Type:  SOF       Fixed in:  
Product:  V330_B2        OS:    D/W       Function:  LOCKMGR
Summary:
LOCK MANAGER FREEZES UNDER HIGH STRESS

Description:
The lock manager can freeze after processing for a while with a high 
amount of stress.

---------------------------------------------------------------

SCR Number:   2455       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  EXPREVAL
Summary:
SETTING QG_QWILDONE VALUE DOES NOT WORK FOR KEYED FIELDS

Description:
When QG_QWILDONE is set to '%' or '!' (values I tested), then selecting 
from Sales database with:

select cust_id where cust_id like "SE%"

no values are returned.  When QG_QWILDONE was not set, this worked.  When 
the same sort of test was done on non-keyed fields, the proper rows were 
returned.

---------------------------------------------------------------

SCR Number:   2457       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  Q_FUNCTION
Summary:
DB_QUERY'S TASK SWITCHING IS LOSING THE VALUE OF Q_STATUS FROM Q_FUNCTION

---------------------------------------------------------------

SCR Number:   2458       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DIO_IN
Summary:
WHEN OUT OF DISK SPACE, DIO_IN RETURNS S_WRITE INSTEAD OF S_NOSPACE.

Description:
When dio_in tries to extend the file, but there is no disk space left, it 
cleans up which includes a call to dio_pzflush() which clears errno.  
Immediately afterwards errno is checked and S_WRITE or S_NOSPACE is 
returned.  Errno should have been saved over the call to dio_pzflush().

---------------------------------------------------------------

SCR Number:   2459       Type:  SOF       Fixed in:  V330
Product:  V320B2         OS:    DOS       Function:  LM SPX
Summary:
SPX LOCK MANAGER DOES NOT CLEAR DEAD USERS PROPERLY

Description:
If 2 users are logged into the SPX lock manager and one of the turns their 
workstation off (in my test it was the second one), then when the lock 
manager detects that it has a dead user it can actually try to kill the 
wrong user.  That user will then get S_LMCERROR, -925, send or receive 
command timed out.

---------------------------------------------------------------

SCR Number:   2460       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  WHERE
Summary:
DUPLICATES IN DB_QUERY'S 'IN (LIST)' CAN CAUSE S_SYSERR ERRORS

Description:
If duplicate entries are in 'list' for the 'where field in (list)' 
statement, db_QUERY will report an S_SYSERR when doing where clause 
optimization because key_insert() is trying to put the same data and same 
database address (from the user's database) into the db_QUERY key file.  
The processing of the 'in' clause needs to remove the duplicates which can 
be done while it is sorting the list.

---------------------------------------------------------------

SCR Number:   2464       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  DDLP
Summary:
WHEN CASE SENSITIVITY TURNED OFF, RECORD NAMES DO NOT MATCH CORRECTLY

Description:
If ddlp is run with the -s- option, record names should be compare without 
case sensitivity.  This was not happening everywhere.

---------------------------------------------------------------

SCR Number:   2465       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    DOS       Function:  SIZE
Summary:
3.30 SIZE IS TOO LARGE.

Description:
The size of the executable has grown too much since 3.21A.

---------------------------------------------------------------

SCR Number:   2466       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    D/W       Function:  TRUENAME
Summary:
TRUENAME DOES NOT WORK UNDER WINDOWS.

Description:
The method that we are using for Truename under DOS does not work 
correctly for Windows.  That means that DOS and Windows clients can not 
use the same database.

---------------------------------------------------------------

SCR Number:   2467       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  D_CHECKID
Summary:
D_CHECKID CALLED WITH LMC_GENERAL CAN CREATE INCORRECTLY NAMED DBL FILE

Description:
If d_checkid() is called under Windows using General lock manager type, 
then a vista.dbl file is created and used by the program rather that 
lockmgr.dbl.  However, the lock manager name in the vista.taf is still 
"lockmgr".  No call has been made to d_lockmgr().

Note: This appears to be fixed in RDM 3.30.

Work Around or Fix:
Call d_lockmgr("lockmgr") before the d_checkid() call.

---------------------------------------------------------------

SCR Number:   2468       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    WIN       Function:  TTS
Summary:
LMC_NOVELL AND OPENING IN ONE USER CAUSES GP FAULT

Description:
If dt_lockcomm(LMC_NOVELL) is called, but the database is opened in 
single-user mode, the Novell DLLs never get loaded and thus when the 
functions to check for TTS are called, the program GPs.

---------------------------------------------------------------

SCR Number:   2469       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    WIN       Function:  DT_TRBEGIN
Summary:
S_DBLACCESS ERROR ON DT_TRBEGIN() DUE TO INVALID DBUSERID LENGTH.

Description:
A customer had an application which was accepting a 12 character string as 
the DBUSERID.  Upon a dt_trbegin, he received a -907 TAF/LOG file error.  
When he changed his DBUSERID to 8 characters, the problem went away. 

Should the Windows version allow a DBUSERID to be set equal to a string 
greater than 8 chars?  This seems to cause problems with the creation of 
the log files.

Work Around or Fix:
For now, the programmer needs to guarantee that his DBUSERIDs will not 
exceed 8 cha  racters.

---------------------------------------------------------------

SCR Number:   2471       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    DOS       Function:  LM_TSR
Summary:
TRYING TO UNLOAD A TSR LOCK MANAGER FROM SAME BOX HANGS THE MACHINE.

Description:
Try this using either the console or the lmclear -l option.

---------------------------------------------------------------

SCR Number:   2474       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  KEY_BLDCOM
Summary:
POINTER ARITHMETIC COULD CAUSE A GP FAULT

Description:
A value is being subtracted from a pointer and then another value is being 
added to it.  The first subtraction could cause a GP fault.  The two 
values should be subtracted from each other and then the result should be 
added to the pointer.

---------------------------------------------------------------

SCR Number:   2475       Type:  SOF       Fixed in:  Q330
Product:  Q330_B2        OS:    ALL       Function:  DB_ADDR
Summary:
"HALF AND HALF" KEY OPTIMIZATION DOES NOT RETURN DB_ADDRS CORRECTLY.

Description:
Two pass key optimization that uses the user's data file and db_QUERY's 
key file does not return the db_addr of the record for the grouping.  One 
pass grouping and two-pass, fully external grouping work fine.  All three 
work fine for the sorting phase.

---------------------------------------------------------------

SCR Number:   2476       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    WIN       Function:  LMCNOV
Summary:
GP FAULT CAN BE CAUSED BY OPENING WITH LMC_NOVELL

Description:
If the fileid_init is called a second time to increase the string_tab 
array, the wrong pointer is freed thus causing a GP fault when it is 
accessed later on.

---------------------------------------------------------------

SCR Number:   2477       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  OPTIMIZE
Summary:
KEY OPTIMIZATION ON FIELDS WITH OFFSETS > 0 ARE NOT DONE PROPERLY.

Description:
If db_QUERY tries to do key optimization on a field that has been offset 
into the middle of it somewhere, the optimization uses an offset of zero, 
not the user given offset, thus causing improper sorting.  For example, 
given in the schema "key char c[3][10]" and given a select statement of 
"select c[1][3] order by 1", the data will be the correct data but the 
sort order will be as if c[0][0] had been sorted on.

---------------------------------------------------------------

SCR Number:   2480       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    DOS       Function:  TTSFCN
Summary:
PHARLAP DOES NOT LINK CORRECTLY BECAUSE TTSFCN IS NOT IN THE RDMPHAR LIBS.

Description:
LMCNOV automatically gets linked in Pharlap because of the 
NWCheckAttributes2() function.  This should be moved to TTSFCN and TTSFCN 
should get included in the RDMPHARx.LIBs.

---------------------------------------------------------------

SCR Number:   2483       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    WIN       Function:  UNKNOWN
Summary:
RUNNING W_QUERY USING THE QTOTAL DBASES AND WTOTAL.QRF CAUSES A GP FAULT.

Work Around or Fix:
There was an incorrect check on a pointer before using it.

---------------------------------------------------------------

SCR Number:   2484       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    WIN       Function:  VISTAW.DEF
Summary:
DT_DBTMP() NEEDS TO BE EXPORTED FOR RDM AND DB_QUERY.

---------------------------------------------------------------

SCR Number:   2485       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    WIN       Function:  TRUENAME
Summary:
TRUENAME SUPPORT UNDER WINDOWS ON NETWARE 3.12 YIELDS DIFFERENT NAMES

Description:
On a regular Netware 3.11 network, the truename function comes up with a 
file name like //DEV/SYS/RDMTEST/TEST.C.  On Netware 3.12, that file name 
would be DEV\SYS:/RDMTEST/TEST.C

Work Around or Fix:
Problem ended up being VLM vs non-VLM. 

---------------------------------------------------------------

SCR Number:   2486       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    ALL       Function:  CTBLCMP
Summary:
THE ANSI AND NON-ANSI FUNCTIONS DECLARATIONS DIFFER.

Description:
The function ctblcmp() in libfcns.c is declared as having a third 
parameter named len in the ANSI version of the declaration, which is the 
correct name.  The non-ANSI version is named n.  This will cause a problem 
to anyone compiling with ANSI turned off.

---------------------------------------------------------------

SCR Number:   2489       Type:  SOF       Fixed in:  V330_B3
Product:  V330_B3        OS:    DOS       Function:  PHARLAP
Summary:
NEITHER SPX NOR NETBIOS WORK FOR PHARLAP CONTEXT SWITCHING.

Description:
Due to two global variables that should be on the stack, Pharlap will not 
work under context switching mode with SPX and NetBIOS.

---------------------------------------------------------------

SCR Number:   2490       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    D/W       Function:  LMC_GENERAL
Summary:
TRUENAME UNDER THE LMC_GENERAL LOCKMGR IS CORRUPTING MEMORY.

Description:
Under MS6 and Z31, test 31 of the suite test fails for the General Lock 
manager.  When using Pharlap, it GP faults under all MS C compilers 
(Borland + pharlap not tried at the time.)  Further testing in test room 
seems to indicate that in the call sequence d_close() -> l_dbclose() -> 
close_file() -> bit_clr() { using a NULL ptr }.  Error not reproduceable 
on live network.  Full debug version runs fine (optimization problem?) on 
both networks.   Further testing shows that LMC_GENERAL does not correctly 
support truename, as it uses filename buffers of only 48 characters and 
they can get overflowed.

---------------------------------------------------------------

SCR Number:   2491       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    WIN       Function:  WCONSOLE
Summary:
THE WCONSOLE GOT A GP FAULT WITH THE INTERNAL LOCK MANAGER

Description:
When trying to look at a specific file with the WConsole program, I got a 
GP Fault.  I have tried it with only LMC_INTERNAL so far.

---------------------------------------------------------------

SCR Number:   2492       Type:  SOF       Fixed in:  Q330
Product:  Q330_B3        OS:    WIN       Function:  SHOW VIEW
Summary:
"SHOW VIEW" HAS AN INVALID CHARACTER UNDER WINDOWS

Description:
"show view" tries to print multiple lines using '\n' in the strings within 
one call to qfprintf().  Windows can not handle new-line characters 
causing them to show up as black rectangles.

---------------------------------------------------------------

SCR Number:   2494       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    D/W       Function:  LMCLEAR
Summary:
LMCLEAR IS NOT GETTING THE CORRECT S_DUPUSERID ERROR BACK.

Description:
Under NetBIOS, LMCLEAR will try up to 10 different names before giving 
up.  However the function is not returning S_DUPUSERID correctly, so 
LMCLEAR is failing after the first userid.

---------------------------------------------------------------

SCR Number:   2495       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    D/W       Function:  LOCKMGR
Summary:
SPX CAN FAIL WHILE DOING RECOVERY FOR UNUSUAL SITUATIONS.

Description:
For most situations, SPX handles recovery correctly, but for some 
situations it has problems.

---------------------------------------------------------------

SCR Number:   2496       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    DOS       Function:  D_RDMINI
Summary:
IF D_RDMINI FAILS, ZORTECH IS NOT SETTING ERRNO CORRECTLY.

Description:
For Zortech, whenever we use errno.h, we need to define a macro.  In the 
inifile.c module we include errno.h but do not define this macro.

---------------------------------------------------------------

SCR Number:   2497       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    ALL       Function:  D_RECWRITE
Summary:
D_RECWRITE RETURNS S_EOS INCORRECTLY

Description:
Because the return codes are now being checked, we need to allow for both 
S_OKAY and S_EOS to be returned from d_discon() in r_pfld()

Work Around or Fix:
if (db_status!=S_EOS) return(db_status) 

---------------------------------------------------------------

SCR Number:   2498       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    D/W       Function:  TTS
Summary:
IF TTS FUNCTIONS FAIL, -30XXX NUMBER ARE RETURNED FROM DBERR

---------------------------------------------------------------

SCR Number:   2500       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    D/W       Function:  O_INIT
Summary:
A DBUSERID LONGER THAN 8/16 CHARS COULD GET STRCPY-ED TO CLOBBER MEMORY

Description:
File OVFCNS.C, we strcpy() or strcat() the dbuserid onto the .LOG file 
name.  With a long dbuserid, this can create an invalid DOS file name (and 
possibly overrun the buffer).    

2) File LMC_FCNS.C, line 941, we strcpy() the dbuserid into the uptr->u 
name structure.  An id longer than 16 bytes WILL clobber other members of 
the structure.

See 10/21/93 fax from John Lussmyer.

---------------------------------------------------------------

SCR Number:   2501       Type:  SOF       Fixed in:  V330
Product:  V330_B3        OS:    D/W       Function:  LMC_NETBIOS
Summary:
FOR LMC_NETBIOS, THE LOCK MANAGER WAS USING THE SAME DATA AREA FOR MANY 
PKTS

Description:
The setup for the send NCBs was assigning each buffer to the same data 
area, causing an app to get data for a different app.

---------------------------------------------------------------

SCR Number:   2502       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  LOCKMGR
Summary:
IF A BAD PACKET COMES IN, IT CAN CORRUPT THE STACK, CAUSING GP FAULTS

Description:
If the runtime expects a packet of 0 bytes, but gets a bad packet with 
more data, the stack can become corrupted

---------------------------------------------------------------

SCR Number:   2505       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    ALL       Function:  HEADERS
Summary:
ERROR MESSAGES MISSPELLED IN DBERR.H AND POSSIBLY VISTAW.DEF

---------------------------------------------------------------

SCR Number:   2511       Type:  SOF       Fixed in:  V330
Product:  V330_B2        OS:    D/W       Function:  D_OPEN
Summary:
UNDER LMC_NOVELL, THE TAF AND LOG FILES NEED TO BE MARKED AS NOT_TTS_FILE.

Description:
The TAF and log file need to be marked in the file table as NOT_TTS_FILE 
since they are not used by any of the TTS functions and will cause bogus 
S_TTSUNAVAILABLE errors.

---------------------------------------------------------------

SCR Number:   2512       Type:  SOF       Fixed in:  Q330
Product:  Q330_B2        OS:    D/W       Function:  Q_OPEN
Summary:
Q_OPEN() NEEDS TO MARK THE DB_QUERY DATABASE AS NOT_TTS_FILE UNDER 
LMC_NOVELL

Description:
The db_QUERY database is created on the fly.  Also, since no transactions 
are done on the db_QUERY database they need not be flagged as 
transactional and thus can be marked as NOT_TTS_FILE in the file_table.  
Otherwise bogus S_TTSUNAVAILABLE errors are generated.

---------------------------------------------------------------

SCR Number:   2514       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    D/W       Function:  D_LOCKCOMM
Summary:
WHEN USING LMC_NETBIOS UNDER PHARLAP, LMCNETB_AVAIL() GIVES GP FAULT.

Description:
lmcnetb_avail() is giving a gp fault during the call to the first 
sub-function() that can be called (asm dump in debugger did not give the 
sub-fcn's name).

---------------------------------------------------------------

SCR Number:   2517       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    D/W       Function:  D_OFF_OPT
Summary:
ALLOW SHARETEST TO BE TURNED OFF BY D_OFF_OPT().

Description:
Currently sharetest can only be manipulated by the rdm.ini file.

---------------------------------------------------------------

SCR Number:   2522       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    ALL       Function:  TASK_SWITCH
Summary:
GP FAULT CAN BE GENERATED WHEN SWITCHING TASKS.

Description:
Due to the non-reentrant code of RDM, it is possible for a task to get 
pointers to freed data in its task variable, thus causing GP Faults.  The 
problem relates to using task_switch with qtask_switch.

Work Around or Fix:
Fix:  dt_closetask() needs to set Vistatask.v.ptr to NULL.

---------------------------------------------------------------

SCR Number:   2523       Type:  SOF       Fixed in:  V330_B4
Product:  V321A          OS:    D/W       Function:  LMC_FCNS.C
Summary:
L_DBOPEN (LMC_FCNS.C LINE 204) HAS A LOOP CONTAINING AN INCORRECT INDEX.

Description:
l_dbopen contains a incorrect index inside a loop. Should use 
fptr->f_name[0] instead of filetab[j].f_name[0].

---------------------------------------------------------------

SCR Number:   2524       Type:  SOF       Fixed in:  
Product:  V330_B4        OS:    ALL       Function:  DDLP
Summary:
DDLP HANDLING OF DEFAULT SETS IS INCORRECT UNDER CERTAIN CONDITIONS 

---------------------------------------------------------------

SCR Number:   2525       Type:  SOF       Fixed in:  V330_B4
Product:  V321A          OS:    DOS       Function:  LM_TSR
Summary:
SHUTTING DOWN LM_TSR CAN LEAVE UNFREED MEMORY

Description:
If lm_tsr -f 512 is used, then when the lock manager is shut down it will 
leave some memory unfreed.

Work Around or Fix:
Fixed in the rewrite.

---------------------------------------------------------------

SCR Number:   2526       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    D/W       Function:  LMC_FCNS
Summary:
L_LMCOPEN AND L_LMCCLOSE SHOULD HAVE THE PARAMETER ATASK_ONLY

Description:
They currently have as their only parameter "ATASK_PARM", which has the 
declaration for a pointer to a task preceeded by a ','.

---------------------------------------------------------------

SCR Number:   2527       Type:  SOF       Fixed in:  Q330
Product:  Q330_B4        OS:    ALL       Function:  DATECNV
Summary:
MICROSOFT C 8.0 REQUIRES QUERY TO RETURN TO 1970 DATE STANDARD.

Description:
For Q221a, special code was needed to make sure that M70 versions of 
db_QUERY could properly manipulate system dates based on 1970 when M70 
fell off the world standard.  They have seen the error of their ways and 
have joined the world again with M80.  However, the special code may now 
inadvertantly cause the system dates to be miscalculated due to any 
"features" and limitations of the Microsoft C time functions.

Work Around or Fix:
The m70 libs will still know how to convert from the 1970 dates to the 
1900 dates.  However, the m80 libs will not know how to do this (not 
possible), and not libs will be able to convert from 1900 to 1970.

---------------------------------------------------------------

SCR Number:   2528       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    WIN       Function:  LMW
Summary:
LMW HANGS IF IT COULD NOT START PROPERLY, E.G. NETBIOS NOT INSTALLED

Description:
In order to shut down the lmw process, you need to use Ctrl-Alt-Del.  Why 
does it bring up the lock manager window in the first place if NetBIOS 
cannot be found.

---------------------------------------------------------------

SCR Number:   2530       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    WIN       Function:  LMW
Summary:
NEED TO IMPLEMENT -U, -F AND -Q OPTIONS FOR LMW.

---------------------------------------------------------------

SCR Number:   2532       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    D/W       Function:  D_TRBEGIN
Summary:
TRANSACTIONS ARE CONSIDERABLY SLOWER THAN 3.21A

Description:
Log file initialization was only done once in 3.21a.  They are now done on 
every trbegin in 3.3, resulting in a dramatic slowdown for a large series 
of transactions.  Should implement a d_on_opt() option for LOG_INIT which 
allows for initializing on each transaction while keeping a single 
initialization as the default (for performance)  Both options should be 
allowed due to customer requests requiring each method.

---------------------------------------------------------------

SCR Number:   2533       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    D/W       Function:  TRUENAME
Summary:
IF TRUENAME OPTION IS OFF, LOCK MANAGER USES DRIVE LETTER WITH THE FILE 
NAME

Description:
It should remove the drive letter so that 2 users can properly use the 
same files if their drive mappings are different.

---------------------------------------------------------------

SCR Number:   2534       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    D/W       Function:  CONSOLE
Summary:
CONSOLE PROGRAM LOCKS UP IF 'FILES' STATUS IS CHOSEN WITH A DATABASE OPENED

Description:
if a database has been opened and the FILES option is chosen with the 
Console program, the console station will lock up.  Further attempts to 
get in either by rebooting or from another station result in a status code 
5 (S_UNAVAIL).  This means that there is no way to get in and kill users 
or shut down the lock manager without rebooting the lock manager station. 
Duped with LM_TSRS.

---------------------------------------------------------------

SCR Number:   2535       Type:  SOF       Fixed in:  
Product:  V330_B4        OS:    D/W       Function:  CONSOLE
Summary:
CONSOLE GENERATES -941(SHARE NOT LOADED) IS SHARE IS NOT RUNNING

Description:
console requires share to be loaded, even though it does not use it for 
anything.

---------------------------------------------------------------

SCR Number:   2536       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    ALL       Function:  CONSOLE
Summary:
NO WAY TO RUN MORE THAN ONE COPY OF CONSOLE, CANNOT RENAME USER

Description:
If a user wishes to monitor the lock manager, such as the tsr version, in 
more than one location, it cannot be done since the console name is 
hardcoded.

Work Around or Fix:
New "-u userid" option.

---------------------------------------------------------------

SCR Number:   2537       Type:  SOF       Fixed in:  
Product:  V330_B4        OS:    DOS       Function:  LOCKMGR
Summary:
SHUTTING DOWN LM_TSRS FROM CONSOLE APPEARS TO FREEZE LOCK MANAGER STATION

Description:
sending the SHUTDOWN command via the console program to LM_TSRS freezes 
the lock manager station.  If the user had other apps (after all, it was 
running as a TSR) running, it will lock them up also.

---------------------------------------------------------------

SCR Number:   2541       Type:  SOF       Fixed in:  
Product:  V330_B4        OS:    WIN       Function:  LMW
Summary:
RERUNNING LMW.EXE FOR SPX CAN LOCK MACHINE.

Description:
Running lmw -ms, shutting it down and then restarting can lead to a system 
lockup, needing hard boot to recover.  I was able to reproduce on machines 
using IPX/NETX, but not with VLM.

---------------------------------------------------------------

SCR Number:   2543       Type:  SOF       Fixed in:  Q330
Product:  Q221A          OS:    ALL       Function:  Q_OPEN
Summary:
Q_OPEN NEEDS TO CHECK USERID BEFORE INITIALIZING TMP DATABASE.

Description:
Some type of sharing violation will occur if the userid is not checked 
before the call to d_open() when q_open() tries to use the userid to 
initialize the tmp database if the userid is in use by someone else.  Can 
sometimes cause GP faults under Windows.

---------------------------------------------------------------

SCR Number:   2544       Type:  SOF       Fixed in:  V330
Product:  V321A          OS:    UNX       Function:  DDLP
Summary:
DDLP NOT CORRECTLY HANDLING EMBEDDED STRUCTS WITH DOUBLE FIELDS

Description:
If the schema is set up with an embedded struct containing a double field, 
ddlp will not properly calculate the beginning of the struct on an 8 byte 
boundary.

---------------------------------------------------------------

SCR Number:   2546       Type:  SOF       Fixed in:  
Product:  V330_B4        OS:    ALL       Function:  TIMEOUT
Summary:
HIGH TIMEOUTS ( > 30 OR -1) MAY NOT WORK CORRECTLY WITH NETBIOS AND SPX

Description:
Because of timeouts used when waiting for packets from the lock manager, 
NetBIOS and SPX can return -925, even though the lock manager can 
potentially still grant the lock.

---------------------------------------------------------------

SCR Number:   2550       Type:  SOF       Fixed in:  V330
Product:  V330_B4        OS:    DOS       Function:  LM_TSR
Summary:
NEED TO IMPLEMENT -R OPTION FOR LM_TSRS AND LM_TSRB
