Mega Code Archive

 
Categories / Delphi / Examples
 

Migration interbase 5 5 to 6 0

Question: A certain stored procedure caused me to get this error message: ISC ERROR CODE: 335544321 ISC ERROR MESSAGE: arithmetic exception, numeric overflow, or string truncation Answer: I found that a variable of type char(18) was assigned to another variable of type char(10). Since the data was never (?) longer than 8 characters, this worked fine up to version 5.5. Seems that IB 6.0 handles strings different. It is likely that a delcaration as VARCHAR instead of CHAR would help also. (See part 1 below) Another necessary change was a type cast where IB 5.5 did an implicit conversion. // part 1 declare variable v1 char(10); declare variable v2 char(18); .. v1 = v2; // generates the error in IB 6.0 // part 2 declare variable vchardate char(18); declare variable vdatedate date; vchardate = '1996-Jan-15'; vdatedate = vchardate; // generates error in IB 6.0 vdatedate = cast (vchardate as DATE);