234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
|
# File 'lib/sybase/lib.rb', line 234
def self.display_length(data_format)
len = case data_format[:datatype]
when CS_CHAR_TYPE, CS_LONGCHAR_TYPE, CS_VARCHAR_TYPE, CS_TEXT_TYPE, CS_IMAGE_TYPE
[data_format[:maxlength], MAX_CHAR_BUF].min
when CS_UNICHAR_TYPE
[data_format[:maxlength] / 2, MAX_CHAR_BUF].min
when CS_BINARY_TYPE, CS_VARBINARY_TYPE
[(2 * data_format[:maxlength]) + 2, MAX_CHAR_BUF].min
when CS_BIT_TYPE, CS_TINYINT_TYPE
3
when CS_SMALLINT_TYPE
6
when CS_INT_TYPE
11
when CS_REAL_TYPE, CS_FLOAT_TYPE
20
when CS_MONEY_TYPE, CS_MONEY4_TYPE
24
when CS_DATETIME_TYPE, CS_DATETIME4_TYPE
30
when CS_NUMERIC_TYPE, CS_DECIMAL_TYPE
CS_MAX_PREC + 2
else
12
end
[data_format[:name].size + 1, len].max
end
|