FldType.ibeblock
execute ibeblock ( FType integer, FSubType integer, FLen integer, FScale integer, FSegmentSize integer, FCharLen integer, FPrecision integer, SQLDialect integer = 3) returns (TypeAsString varchar(200)) as begin TypeAsString = ''; if ((FCharLen = 0) or (FCharLen is NULL)) then FCharLen = FLen; if (FType = 261) then TypeAsString = ibec_Concat('BLOB SUB_TYPE ', FSubType, ' SEGMENT SIZE ', FSegmentSize); else if (FType = 14) then TypeAsString = 'CHAR(' || FCharLen || ')'; else if (FType = 37) then TypeAsString = 'VARCHAR(' || FCharLen || ')'; else if (FType = 12) then TypeAsString = 'DATE'; else if (FType = 13) then TypeAsString = 'TIME'; else if (FType = 35) then begin if (SQLDialect = 3) then TypeAsString = 'TIMESTAMP'; else TypeAsString = 'DATE'; end else if (FType = 7) then begin if ((FScale < 0) or (FSubType = 1) or (FSubType = 2)) then begin if (FSubType = 2) then TypeAsString = 'DECIMAL'; else TypeAsString = 'NUMERIC'; if (FPrecision > 0) then TypeAsString = TypeAsString || '(' || FPrecision || ',' || (FScale * -1) || ')'; else TypeAsString = TypeAsString || '(4,' || (FScale * -1) || ')'; end else TypeAsString = 'SMALLINT'; end else if (FType = 8) then begin if ((FScale < 0) or (FSubType = 1) or (FSubType = 2)) then begin if (FSubType = 2) then TypeAsString = 'DECIMAL'; else TypeAsString = 'NUMERIC'; if (FPrecision > 0) then TypeAsString = TypeAsString || '(' || FPrecision || ',' || (FScale * -1) || ')'; else TypeAsString = TypeAsString || '(9,' || (FScale * -1) || ')'; end else TypeAsString = 'INTEGER'; end else if (FType = 27) then begin if ((FScale < 0) or (FSubType = 1) or (FSubType = 2)) then begin if (FSubType = 2) then TypeAsString = 'DECIMAL'; else TypeAsString = 'NUMERIC'; if (FPrecision > 0) then TypeAsString = TypeAsString || '(' || FPrecision || ',' || (FScale * -1) || ')'; else TypeAsString = TypeAsString || '(9,' || (FScale * -1) || ')'; end else TypeAsString = 'DOUBLE PRECISION'; end else if (FType = 16) then begin if ((FScale < 0) or (FSubType = 1) or (FSubType = 2)) then begin if (FSubType = 2) then TypeAsString = 'DECIMAL'; else TypeAsString = 'NUMERIC'; if (FPrecision > 0) then TypeAsString = TypeAsString || '(' || FPrecision || ',' || (FScale * -1) || ')'; else TypeAsString = TypeAsString || '(18,' || (FScale * -1) || ')'; end else TypeAsString = 'BIGINT'; end else if (FType = 10) then TypeAsString = 'FLOAT'; suspend; end
back to top of page
<< DomExtract.ibeblock | IBEBlock | GensExtract.ibeblock >>