goenYerSel
New Member
Hello,
Any ideas on this strange one, it's doing my head in.
I am running a progress program in out our test environment which is a unix platform using progress 91d. The output of the program is output to a file which is monitored for progress errors.
Basically the progress code creates a dynamic buffer from field name, type information and data in a text file. This buffer is then buffer copied to a table in the db (the buffer and table have the same field name and types).
The problem arises in that buffer-copy, I get the error output to a file.
Value 10000013 cannot be displayed using >>>>9. (74)
This is rather annoying as I am monitoring for 'real' errors.
The value I am buffer copying has a bigger value than the display format, however there is not display statement in the code..?!?
Bizarrely, this 'error' does not happen on the dev environment which is almost the same, I am running the same rcode and exactly the same version of progress although there slightly different version of unix. It also works fine on my local windows machine with no hint of a display error.
Any ideas would be greatly appreciated.
Thanks
Here a cutdown snippet of code I am running, hope it make sense.
/*create temp table to hold field and type info from file*/
CREATE TEMP-TABLE hTempTable NO-ERROR.
/*clist is line read from file, containing field and their data type */
DO iLoop = 1 TO NUM-ENTRIES(cList):
ASSIGN
cEntry = ENTRY(iLoop, cList)
cField = ENTRY(1,cEntry,"|")
cType = ENTRY(2,cEntry,"|")
cExtent = ENTRY(3,cEntry,"|").
hTempTable:ADD-NEW-FIELD(cField, cType, int(cExtent)) NO-ERROR.
END.
hTempTable:TEMP-TABLE-PREPARE("tt" + cTable) NO-ERROR.
hbTT = hTempTable
EFAULT-BUFFER-HANDLE.
/*create an empty buffer for temptable, for each field of buffer assign data value from
the information in the file*/
hbTT:BUFFER-CREATE NO-ERROR.
DO iLoop = 1 TO hbTT:NUM-FIELDS:
hField = hbTT:BUFFER-FIELD(iLoop).
IF hField:EXTENT <> ? AND hField:EXTENT <> 0 THEN
DO iLoopInner = 1 TO hField:EXTENT:
iPos = iPos + 1.
IF hField
ATA-TYPE = "Integer" THEN
hField:BUFFER-VALUE(iLoopInner) = INT(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
ATA-TYPE = "Decimal" THEN
hField:BUFFER-VALUE(iLoopInner) = DECIMAL(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
ATA-TYPE = "Date" THEN
hField:BUFFER-VALUE(iLoopInner) = DATE(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
ATA-TYPE = "Recid" THEN
hField:BUFFER-VALUE(iLoopInner) = INT(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
ATA-TYPE = "ROWID" THEN
hField:BUFFER-VALUE(iLoopInner) = TO-ROWID(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE
hField:BUFFER-VALUE(iLoopInner) = ENTRY(iPos,cLine,CHR(244)) NO-ERROR.
END.
ELSE
DO:
iPos = iPos + 1.
IF hField
ATA-TYPE = "Integer" THEN
hField:BUFFER-VALUE = INT(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
ATA-TYPE = "Decimal" THEN
hField:BUFFER-VALUE = DECIMAL(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
ATA-TYPE = "Date" THEN
hField:BUFFER-VALUE = DATE(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
ATA-TYPE = "Recid" THEN
hField:BUFFER-VALUE = INT(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
ATA-TYPE = "ROWID" THEN
hField:BUFFER-VALUE = TO-ROWID(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE
hField:BUFFER-VALUE = ENTRY(iPos,cLine,CHR(244)) NO-ERROR.
END.
END. /* of hbTT:NUM-FIELDS */
CREATE BUFFER hbTable FOR TABLE tablename NO-ERROR.
hbTable:BUFFER-CREATE.
hbTable:BUFFER-COPY(hbTT) NO-ERROR.
..............
These are the startup params for the db.
-S dbsv # Service name
-n 120 # No of Users
-Mn 28 # Maximum no of Servers
-Ma 5 # Maximum Users/Server
-Mi 4 # Minimum Users/Server
-L 100000 # No of Locks
-B 50000 # No of DB Buffers (8K blocks)
-bibufs 30 # No of Before image buffers
-aibufs 45 # No of After image buffers (recommended 1.5 x bibufs)
-yy 1920 # Default century
-yr4def # Don't think we need this, it's a client param
-ld logicalname # DB logical name, don't think it is referenced
-N TCP # Network protocol
-T /tmp # defines working directory
-spin 5000 # Multi processor spin lock
-semsets 2 #increased to two semsets as recommended by progress
-tablerangesize 488 #added to investigate performance issues
-indexrangesize 636 #added to investigate performance issues
Any ideas on this strange one, it's doing my head in.
I am running a progress program in out our test environment which is a unix platform using progress 91d. The output of the program is output to a file which is monitored for progress errors.
Basically the progress code creates a dynamic buffer from field name, type information and data in a text file. This buffer is then buffer copied to a table in the db (the buffer and table have the same field name and types).
The problem arises in that buffer-copy, I get the error output to a file.
Value 10000013 cannot be displayed using >>>>9. (74)
This is rather annoying as I am monitoring for 'real' errors.
The value I am buffer copying has a bigger value than the display format, however there is not display statement in the code..?!?
Bizarrely, this 'error' does not happen on the dev environment which is almost the same, I am running the same rcode and exactly the same version of progress although there slightly different version of unix. It also works fine on my local windows machine with no hint of a display error.
Any ideas would be greatly appreciated.
Thanks
Here a cutdown snippet of code I am running, hope it make sense.
/*create temp table to hold field and type info from file*/
CREATE TEMP-TABLE hTempTable NO-ERROR.
/*clist is line read from file, containing field and their data type */
DO iLoop = 1 TO NUM-ENTRIES(cList):
ASSIGN
cEntry = ENTRY(iLoop, cList)
cField = ENTRY(1,cEntry,"|")
cType = ENTRY(2,cEntry,"|")
cExtent = ENTRY(3,cEntry,"|").
hTempTable:ADD-NEW-FIELD(cField, cType, int(cExtent)) NO-ERROR.
END.
hTempTable:TEMP-TABLE-PREPARE("tt" + cTable) NO-ERROR.
hbTT = hTempTable
/*create an empty buffer for temptable, for each field of buffer assign data value from
the information in the file*/
hbTT:BUFFER-CREATE NO-ERROR.
DO iLoop = 1 TO hbTT:NUM-FIELDS:
hField = hbTT:BUFFER-FIELD(iLoop).
IF hField:EXTENT <> ? AND hField:EXTENT <> 0 THEN
DO iLoopInner = 1 TO hField:EXTENT:
iPos = iPos + 1.
IF hField
hField:BUFFER-VALUE(iLoopInner) = INT(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
hField:BUFFER-VALUE(iLoopInner) = DECIMAL(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
hField:BUFFER-VALUE(iLoopInner) = DATE(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
hField:BUFFER-VALUE(iLoopInner) = INT(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
hField:BUFFER-VALUE(iLoopInner) = TO-ROWID(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE
hField:BUFFER-VALUE(iLoopInner) = ENTRY(iPos,cLine,CHR(244)) NO-ERROR.
END.
ELSE
DO:
iPos = iPos + 1.
IF hField
hField:BUFFER-VALUE = INT(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
hField:BUFFER-VALUE = DECIMAL(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
hField:BUFFER-VALUE = DATE(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
hField:BUFFER-VALUE = INT(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE IF hField
hField:BUFFER-VALUE = TO-ROWID(ENTRY(iPos,cLine,CHR(244))) NO-ERROR.
ELSE
hField:BUFFER-VALUE = ENTRY(iPos,cLine,CHR(244)) NO-ERROR.
END.
END. /* of hbTT:NUM-FIELDS */
CREATE BUFFER hbTable FOR TABLE tablename NO-ERROR.
hbTable:BUFFER-CREATE.
hbTable:BUFFER-COPY(hbTT) NO-ERROR.
..............
These are the startup params for the db.
-S dbsv # Service name
-n 120 # No of Users
-Mn 28 # Maximum no of Servers
-Ma 5 # Maximum Users/Server
-Mi 4 # Minimum Users/Server
-L 100000 # No of Locks
-B 50000 # No of DB Buffers (8K blocks)
-bibufs 30 # No of Before image buffers
-aibufs 45 # No of After image buffers (recommended 1.5 x bibufs)
-yy 1920 # Default century
-yr4def # Don't think we need this, it's a client param
-ld logicalname # DB logical name, don't think it is referenced
-N TCP # Network protocol
-T /tmp # defines working directory
-spin 5000 # Multi processor spin lock
-semsets 2 #increased to two semsets as recommended by progress
-tablerangesize 488 #added to investigate performance issues
-indexrangesize 636 #added to investigate performance issues