That was actually what I tried first - the code that parses the version 
string didn't handle the @@VERSION string. If you look at the regex they're 
completely different strings.

On Wednesday, April 2, 2014 8:10:53 PM UTC-5, Jeremy Evans wrote:
>
> On Wednesday, April 2, 2014 4:57:00 PM UTC-7, Nathan Walker wrote:
>>
>> I'm not certain that it'll be possible to solve this problem - for the 
>> most part I'm posting this so that if any other unlucky soul has to deal 
>> with this particular database there'll be a direction to go for the 
>> workaround.
>>
>> I'm trying to connect my favorite SQL gem to a MSSQL / PDW instance. 
>> (Parallel Data Warehouse, it seems to be a MS-branded distributed SQL 
>> Server version)
>>
>> The key point here is that PDW doesn't seem to support the SERVERPROPERTY 
>> command, which makes Sequel very angry and me very sad. It throws an 
>> exception from within lib/sequel/adapters/shared/mssql.rb:166 (as one would 
>> expect), and I can't really do anything. I hacked my way around it by 
>> monkey-patching the server_version method to always return 10000000 - it 
>> appears to be a SQL Server 2008 version - and then everything else seems to 
>> work.
>>
>> "SELECT @@VERSION" returns: 
>> Microsoft SQL Server 2008 R2 (RTM) - 10.0.3595.0 (X64) Jul 27 2012 
>> 20:35:00 Copyright (c) Microsoft Corporation Parallel Data Warehouse 
>> (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)
>>
>> In my research it doesn't look like all SQL Server instances support the 
>> @@VERSION either - so couldn't just switch the query. I'd be happy to try 
>> other commands against the server but it belongs to our IT group so I don't 
>> have much info to share about the instance specifically. For all I know 
>> they've somehow disabled SERVERPROPERTY on this specific instance.
>>
>> In any case: Sequel is awesome and works with PDW with a *little* bit of 
>> tweaking.
>>
>
> Instead of hacking the adapter, you may be able to do:
>
> Sequel::MSSQL::DatabaseMethods.send(remove_const, :SERVER_VERSION_SQL)
> Sequel::MSSQL::DatabaseMethods::SERVER_VERSION_SQL = 'SELECT @@VERSION'
>
> One simple way to support this would to add a :server_version Database 
> option, and have it use that if given instead of doing a database query. 
>  Alternatively, we could have it fallback to using @@VERSION if 
> SERVERPROPERTY raises an error, but I like that approach less.  I'm open to 
> other ideas if anyone has any.
>
> Thanks,
> Jeremy
>

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to