2006-05-01 13:05:08 +04:00
|
|
|
# This is test script to check that WIN32OLE should convert nil to VT_EMPTY in second try.
|
|
|
|
# [ruby-talk:137054]
|
|
|
|
begin
|
|
|
|
require 'win32ole'
|
|
|
|
rescue LoadError
|
|
|
|
end
|
|
|
|
require 'test/unit'
|
2006-05-07 03:40:08 +04:00
|
|
|
|
2006-05-01 13:05:08 +04:00
|
|
|
if defined?(WIN32OLE)
|
|
|
|
class TestNIL2VT_EMPTY < Test::Unit::TestCase
|
|
|
|
def setup
|
|
|
|
fs = WIN32OLE.new('Scripting.FileSystemObject')
|
|
|
|
@path = fs.GetFolder(".").path
|
|
|
|
end
|
|
|
|
def test_openSchema
|
|
|
|
con = nil
|
|
|
|
begin
|
|
|
|
con = WIN32OLE.new('ADODB.Connection')
|
|
|
|
con.connectionString = "Provider=MSDASQL;Extended Properties="
|
|
|
|
con.connectionString +="\"DRIVER={Microsoft Text Driver (*.txt; *.csv)};DBQ=#{@path}\""
|
|
|
|
con.open
|
|
|
|
rescue
|
|
|
|
con = nil
|
|
|
|
end
|
|
|
|
if con
|
|
|
|
rs = con.openSchema(4, [nil,nil,"DUMMY", "TABLE"])
|
|
|
|
assert(rs)
|
|
|
|
assert_equal("_Recordset", rs.ole_type.name)
|
2007-01-19 11:22:45 +03:00
|
|
|
|
|
|
|
rs = con.openSchema(4, [WIN32OLE_VARIANT::Empty, WIN32OLE_VARIANT::Empty, "DUMMY", "TABLE"])
|
|
|
|
assert(rs)
|
|
|
|
assert_equal("_Recordset", rs.ole_type.name)
|
2006-05-01 13:05:08 +04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|