Module: Sybase::Lib

Extended by:
FFI::Library
Defined in:
lib/sybase/lib.rb

Class Method Summary collapse

Class Method Details

.check(code, msg = "error") ⇒ Object



228
229
230
231
232
# File 'lib/sybase/lib.rb', line 228

def self.check(code, msg = "error")
  if code != CS_SUCCEED
    raise Error, msg
  end
end

.display_length(data_format) ⇒ Object



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