Rails tinyTDS running with MS SQL 2012 - ruby-on-rails-3

I am testing rails applications with the new MS SQL 2012 server.
Installed it on a new Win 2008 R2 test system.
Installed Rails 3.1, Ruby 1.9.1 with all necessary stuff to connect MS SQL server.
When you configure the connection to a new SQL 2012 you can't connect, because the tinyTDS driver returns not supported platform.
The defintion is here:
.\ruby\lib\ruby\gems\1.9.1\gems\activerecord-sqlserver-adapter-3.0.16\lib\active_record\connection_adapters\sqlserver_adapter.rb:
Line 169: SUPPORTED_VERSIONS = [2005,2008,2010,2011].freeze
So first I wonder why there are 2010 and 2011 record inside.
Those sql versions don't exists as far as I know :).
So I change the line to:
Line 169: SUPPORTED_VERSIONS = [2005,2008,2012].freeze
Then I started a rails console, it worked.
I run some db migrations so far and everything looks well.
So does anybody know ANY problems running this setup?

This is fixed in the latest versions of the adapter.

Related

How to install SQL Server 2005 Express in Windows 8

I tried to install SQL Server 2005 Express SP3 x64 on Windows 8 but the installer gives me an error:
An installation package for the product Microsoft SQL server native
Client cannot be found. Try the installation again using a valid copy
of the installation package 'sqlncli_x64.msi'
How can I solve the problem?
I had the same problem. But I also had to perform additional steps. Here is what I did.
Perform the following steps (Only 64bit version of SQL Server 2005 Developer Edition tested on Windows 8 Pro 64bit)
Extract sqlncli.msi / sqlncli_x64.msi from SP3 or SP4. I did it from SP4
Install sqlncli
Start SQL Server 2005 Setup
During setup I received an error
The SQL Server service failed to start. For more information, see the SQL Server Books Online topics, "How to: View SQL Server 2005 Setup Log Files" and "Starting SQL Server Manually."
Don't click cancel yet. From an installation of SQL Server 2005 SP3 or SP4 copy SQLSERVR.EXE and SQLOS.DLL files and put them in your SQL install folder.
Click RETRY
For STEP 5 above: Although I didn't try looking into SP4 / SP3 setup for SQLSERVR.EXE and SQLOS.DLL but if you don't have an existing installation of SQL Server 2005 SP3/SP4 then maybe try looking into the SP3/SP4 EXE (Compressed file). I am not sure if this may help. In any case you can create a VM and install SQL Server 2005 with SP3/Sp4 to copy the files for Windows 8
I had a different experience loading SQL Server 2005 Express on Windows 8. I was using the installer that already had SP4 applied so maybe that explains the difference. The first error I received was when Setup tried to start the SQL VSS Writer. I just told it to Ignore and it continued. I then ran into the same error Sohail had where the SQL Server service failed to start. There was no point in following the rest of Sohail's method since I already was using a SP4 version of SQLServr.exe and SQLOS.dll. Instead, I just canceled the install rebooted the machine and ran the install again. Everything ran fine the second time around.
The place I found Sohail's technique invaluable was when I needed to install SQL Server 2005 Standard on Windows Server 2012. We have a few new servers we're looking to roll out with Windows 2012 but we didn't feel the need to upgrade SQL Server since the 2005 version has all the functionality we need and the cost to license SQL 2012 on these boxes would have been a 5-figure sum.
I wound up tweaking Sohail's technique a bit by adding steps to revert the SQLServr.exe and SQLOS.dll files so that I could then apply SP4 fully. Below are all the steps I took starting from a scratch install of Windows Server 2012 Standard. I hope this helps anyone else looking to get a fully updated install of SQL Server 2005 x64 on this OS.
Use Server Manger Add roles and features wizard to satisfy all of SQL's prerequisites:
Select the Web Server (IIS) Role
Add the following additional Web Server Role Services (note that some of these will automatically pull in others, just accept and move on):
HTTP Redirection
Windows Authentication
ASP.NET 3.5 (note that you'll need to tell the wizard to look in the \Sources\SxS folder of the Windows 2012 installation media for this to install properly; just click the link to "Specify an alternate source path" before clicking Install)
IIS 6 Metabase Compatibility
IIS 6 WMI Compatibility
Start SQL Server 2005 Install, ignoring any compatibility warnings
If SQL Server service fails to start during setup, leave dialog up and do the following:
Backup SQLServr.exe and SQLOS.dll from C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
Replace those two files from a working copy of SQL Server 2005 that already has had SP4 applied (alternatively, extract them from the SQL Server 2005 Service Pack 4 distributable using 7-Zip, here's a helpful write-up.)
Return to setup, hit Retry and setup will now run to completion.
Stop SQL Service and restore orignal versions of SQLServr.exe and SQLOS.dll (or else SP4 doesn't think it is needed in the next step)
Install SQL Server 2005 SP4
Install SQL Server 2005 SP4 Cumulative Hotfix 5069 (Windows Update wasn't offering this for some reason so I had to download and install manually)
If you want the latest documentation, install the latest version of SQL Server 2005 Books Online.
Microsoft says the SQL Server 2005 it's not compatible with Windows 8, but I've run it without problems (only using SP3) except the installation.
After you run the install file SQLExpr.exe look for a hidden folder recently created in the C drive. Copy the contents to another folder and cancel the installer (or use WinRar to open the file and extract the contents to a temp folder)
After that, find the file sqlncli_x64.msi in the setup folder, and run it.
Now you are ready the run the setup.exe file and install SQL server 2005 without errors
I found that on Windows 8.1 with an instance of SQL 2014 already installed, if I ran the SQLEXPR.EXE and then dismissed the Windows 'warning this may be incompatible' dialogs, that the installer completed successfully.
I suspect having 2014 bits already in place probably helped.
install "SQL Express 2005 service pack 4" version "directly".
it contains sql Express 2005 inside . dont let the name fool you
runs succesfuly. from my experince
Microsoft SQL Server 2005 Express Edition Service Pack 4 on Windows Server 2012 R2
Those steps are based on previous howto from https://stackoverflow.com/users/2385/eduardo-molteni
download SQLEXPR.EXE
run SQLEXPR.EXE
copy c:\generated_installation_dir to inst.bak
quit install
run inst.bak/setuip/sqlncli_x64.msi
run SQLEXPR.EXE
enjoy!
This works with Microsoft SQL Server 2005 Express Edition Service Pack 4 http://www.microsoft.com/en-us/download/details.aspx?id=184

The 'SQLNCLI' provider is not registered on the local machine, sql server 2012

Working on deploying an application from my development box to a client. On the client when I run my exe, I get the error "The 'SQLNCLI10' Provider is not registered on the local machine.
I'm developing in SQL Server 2012. I have tried installing sqlncli.msi on the target machine with no luck.
Can anyone tell me what package I need to install on the client machine to get my app to work? And if possible provide a URL to said package?
Thanks!
Figured out I needed the 2008 version as opposed to the 2012 version.
http://go.microsoft.com/fwlink/?LinkId=123718&clcid=0x409
Are you perhaps working on a 64 bit machine and used the 32-bit install?
Here's the 64-bit link: http://go.microsoft.com/fwlink/?LinkID=188401&clcid=0x409
Use SQLNCLI11 for connecting to SQLserver 2012
eg:
Provider=SQLNCLI11;Data Source=trv6s177;Integrated Security=SSPI;Initial Catalog=DPVCube_Stage
Downloads
http://go.microsoft.com/fwlink/?LinkID=239649&clcid=0x409
X86 Package (sqlncli.msi)
http://go.microsoft.com/fwlink/?LinkID=239650&clcid=0x409
X64 Package (sqlncli.msi)
Some updates:
SQLNCLI11 works on windows 10 as well, and it can connect SQL 2012 and 2014 (not tested on later SQL versions)
This is the latest version available
At the time of writing, the most updated package can be found here:
https://www.microsoft.com/en-us/download/confirmation.aspx?id=50402
SQL ServerĀ® 2012 Native Client - QFE
From Microsoft:
It is not recommended to use this driver for new development.
The new OLE DB provider is called the Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)
which will be updated with the most recent server features going forward.
Article:
https://learn.microsoft.com/en-us/sql/relational-databases/native-client/sql-server-native-client?view=sql-server-2017
Download link:
https://learn.microsoft.com/en-us/sql/connect/oledb/oledb-driver-for-sql-server?view=sql-server-2017
Install the sqlncli10 provider on your machine.
The sqlncli10 provider for SQL 2008 R2 can be downloaded from here.
X86 package.
X64 package

SSDT, do I need different dacpacs if I need to deploy the same db to SQL Server 2008 and 2012?

While converting database project to SSDT and upgrading to SQL Server 2012 I need deployment script to work for both SQL Server 2008 and 2012.
I am using sqlpackage.exe /Action:Publish to deploy the latest database bits.
In sqlproj project properties I do see a target platform dropdown with options 2005/2008/2012 sql server. Does it generate a different dacpac if I change this target platform? Do I need to carry two versions of dacpac for each sql server version?
Or will the same dacpac work for any version of sql server?
I know this is 11 months old, but there is an option when you come to deployment specifically for this scenario - AllowIncompatiblePlatform.
//Set Deployment Options
DacDeployOptions dacOptions = new DacDeployOptions();
dacOptions.AllowIncompatiblePlatform = true;
Without setting the option I can deploy a 2008 dac to sql2012, but it will error if I deploy a 2012 dac to sql2008 with:
Microsoft.Data.Tools.Schema.Sql.Deployment.DeploymentCompatibilityException:
A project which specifies SQL Server 2012 as the target platform cannot be published to SQL Server 2008.
Setting the option means I do not get this error and can deploy to previous versions (back to 2005 I believe). NB You may also need to set the option TreatVerificationErrorsAsWarnings to true - YMMV.
The short answer is yes - different DACPACs for different SQL Server editions. Bob Beuachemin wrote a useful blog post about DAC Fx3.0 vs. DAC 2.0
From the command line using SqlPackage.exe, use the p:AllowIncompatiblePlatform option. A warning will still be shown but it will continue. This works from a SQL Server 2012 dacpac going to SQL Sever 2008 R2.
SqlPackage.exe /Action:Publish
/SourceFile:"testdb.dacpac"
/TargetDatabaseName:testDb
/p:AllowIncompatiblePlatform=true
/TargetServerName:"testserver"

Error while installing Microsoft SQL Server 2005 on Windows 7

I was trying to install Microsoft SQL Server 2005 on my Windows 7 pc. When I tried to install it, it tells me that I have a newer version installed on my pc. So, I checked that Microsoft Sharepoint 2010 installed some sql server 2008 tools for me.
I decided to uninstall SharePoint 2010(which I wasn't using) and then tried to install MS SQL Server 2005 again. This threw me the following exception:
Error 1603 installing microsoft sql server setup support files
Searching on Google I found this article: http://support.microsoft.com/kb/916760 but it's not my case actually.
Any help will be appreciated. I really need this to continue working.
I hope this might be useful
http://vivekthangaswamy.blogspot.com/2008/05/none-of-selected-features-can-be.html
Turn on all the Windows Features for IIS - this fixed the problem for me.
This is done via Start -> Control Panel -> Programs and Features -> Turn Windows features on or off.

.mdf is too new (661) my database supports version 655

I am using SQL Server 2008 express and i want to import .mdf and i get this error:
.mdf version is 661, your db supports the version 655
Which version is 661 and how to import it in sql Server 2008.
Install SQL Server 2008 EXPRESS R2. There is a bug in the Web Platform Installer and it still thinks EXPRESS R1 is the latest version.
You will need to apply a service pack. Check Microsoft Update.
Version 661 sounds like the format used by server 2008 R2 so it looks like someone has installed the beta and then attached your DB to it.
See this link for some more details
http://www.sqlskills.com/BLOGS/PAUL/post/SQL-Server-2008-R2-bumps-the-database-version.aspx
Express 2008 - like without any service pack? Try getting your hands on the latest express version (they did not get service packs, but new installers) and install that. Chance we talk about 2008 R2 express, which should run around somewhere as beta?
You have probably selected the instance name on the dialog box that comes when you try to add a connection from the server explorer in VS 2010. Try giving only the server name and it should work.