Sha256: ff20cbcb11bfb5b332119841e7291e577d02a12a111e1d079a937933f3aae090

Contents?: true

Size: 1.3 KB

Versions: 18

Compression:

Stored size: 1.3 KB

Contents

# encoding: utf-8

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
require 'data_objects/spec/shared/typecast/byte_array_spec'

describe 'DataObjects::SqlServer with ByteArray' do
  # it_should_behave_like 'supporting ByteArray'
  #
  # ByteArray is not yet supported on JRuby:
  #
  # Like Postgres, SQL Server doesn't typecast bytea type to integer, decimal,
  # etc. In other words,
  #   @connection.create_command("SELECT id FROM widgets WHERE id = ?").execute_reader(::Extlib::ByteArray.new("2"))
  # results in the equivalent to the following query being executed:
  #   SELECT id FROM widgets WHERE id = 0x32
  # BUT 0x32 as a parameter = (decimal) 50
  # NOT the ASCII char for '2'.
  #
  # Other drivers (Postgres) override #setPreparedStatementParam in their
  # DriverDefinition implementations and use ps.getParameterMetadata() to let
  # the JDBC driver handle the casting.
  #
  # Unfortunately, we can't rely on ps.getParameterMetadata() because of the
  # following bug in jTDS:
  # https://sourceforge.net/tracker/?func=detail&aid=2220192&group_id=33291&atid=407762
  #  getParameterClassName(idx) => java.lang.Object
  #  getParameterTypeName(idx)  => null
  #  getParameterType(idx)      => 0 (NULL)
  #
  # Without this information we don't know what we should be casting to!
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
do_sqlserver-0.10.17-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.16-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.15-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.14-java spec/typecast/byte_array_spec.rb
do_sqlserver-tinytds-0.10.18.alpha spec/typecast/byte_array_spec.rb
do_sqlserver-tinytds-0.10.17.alpha spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.13-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.12-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.11-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.10-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.9-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.8-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.7-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.6-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.5-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.4-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.4.rc2-java spec/typecast/byte_array_spec.rb
do_sqlserver-0.10.4.rc1-java spec/typecast/byte_array_spec.rb