Introducing the new Microsoft ODBC Drivers for SQL Server


Today, we are happy to announce availability of new Microsoft ODBC Drivers for SQL Server on Windows and for SQL Server on Linux.

Introducing the new Microsoft ODBC Drivers for SQL Server

As outlined in a previouspost, Microsoft is adopting ODBC as the de-facto standard for native access to SQL Server and Windows Azure SQL Database. We have provided longstanding support for ODBC on Windows and, in the SQL Server 2012 timeframe, released support for ODBC on Linux (Red Hat Enterprise Linux 5 and 6, and SUSE Enterprise Linux). Microsoft is aligning and renaming the previous ODBC drivers as follows:

  • SQL Server Native Client (SNAC) along with its ODBC functionality is now called Microsoft ODBC Driver 11 for SQL Server on Windows
  • Microsoft SQL Server ODBC Driver 1.0 for Linux along with its functionality is now called Microsoft ODBC Driver 11 for SQL Server on Linux

This change will result in our ODBC drivers for Windows and Linux being better aligned going forward.  We hope that this change makes it easier for you to find the right driver for your needs and makes it easier to stay informed of new releases. Today’s availability marks the first combined release for your use. 

These new ODBC drivers also include additional functionality not available in the previous versions; learn more about the new drivers.

New key features for the Windows version.

  • Driver-aware connection pooling: Driver-aware connection pooling allows driver writers to customize the connection pooling behavior in their ODBC driver.
  • Connection resiliency in the Windows ODBC Driver: To help improve resiliency for cloud scenarios, the ODBC driver on Windows can restore broken connections along with a session state to a Windows Azure SQL Database.
  • Asynchronous Execution (Polling Method): An application thread can call an ODBC function in asynchronous mode and the function can return before the
    operation is complete, allowing the application thread to perform other tasks. Beginning in the Windows 8 SDK, you can determine that an asynchronous
    operation is complete using the notification method. Learn more about Asynchronous Execution (Polling Method).

Download the Microsoft ODBC Driver 11 for SQL Server on Windows

Download Command line Utilities for Microsoft ODBC Driver 11 for SQL Server

 

 New key features for the Linux version

  • Connect Linux to Windows Azure SQL Database: You can now connect from both Linux on-premises applications and Windows Azure Linux-supported VMs to Windows Azure SQL Database.
  • High Availability Support: Support for SQL Server 2012 AlwaysOn Availability Groups to enable High Availability and Disaster Recovery for Linux-based applications.
  • SQL Trace Support: Expanded tracing now supports Linux ODBC to help you know what your Linux-based application is doing all from the same SQL Trace experience.

Download Microsoft ODBC Driver 11 for SQL Server on Red Hat Linux

 

 

 

Shekhar Joshi, Senior Program Manager, SQL Server Group, Microsoft

Shekhar.joshi@microsoft.com

Comments (81)

  1. Ayyappan says:

    Is this the preparation for deprecating SQL Server Native OLE DB drive?

    sqlserverrider.wordpress.com

  2. david_vcp says:

    At the very least, this release shows that we have a way to move forward with the ODBC driver for SQL Server, outside of SQL Server Native Client.

    David Schwartz

    SQL Server Documentation team

    dschwart@microsoft.com

  3. Cody says:

    This doesn't have anything to do with using the OLEDB drivers for opening XLS spreadsheets etc, right?

  4. david_vcp says:

    This is an ODBC release.

  5. Eddy says:

    Where is the MAC OS X version?  It would make more sense to have an ODBC driver for Mac ten for Linux.  There is an Office for Mac but not for Linux…

  6. david_vcp says:

    It has been discussed.  But no plans for it yet.

  7. Dongsheng song says:

    This driver version is 11.0.2270.0, release at 1/15/2013,

    Microsoft® SQL Server® 2012 SP1 Native Client  version is 11.0.3000.0, released at 1/9/2013,

    Why lower version released later ?

  8. David W says:

    The License text excludes production use. From the license file:

    1. INSTALLATION AND USE RIGHTS.

    One user may install and use any number of copies of the software on your devices

    to design, develop and test your programs.

    Why is production excluded?

    Is there a issue, concern, or cost to use in production?

  9. david_vcp says:

    Are you looking at Windows or LINUX?

    Does the License text that you are looking at differ from the license text for SQL Server Native Client in SQL Server 2012?  Can you check that?

  10. David W says:

    We are on LINUX writing scripts and we want to connect to SQL Servers with sqlcmd and bcp.

    I have the tools locally on my windows machine.  Do you know where I would find the license text?

  11. david_vcp says:

    The license text is displayed when you install.  Visit http://www.microsoft.com/…/details.aspx and start an installation.  You will be prompted to accept/agree to the license, which you can read.

  12. david_vcp says:

    No, wait,. you said that you were on LINUX.  I was using Windows.  I don't have a LINUX computer setup just at this moment, so I am going from memory.  Do you see files installed in your Linux ODBC driver directory?  A license text file should be there.  Let me know.

  13. david_vcp says:

    OK, one more email as I flair away at this …I just looked at http://www.microsoft.com/…/details.aspx and there it says under "INSTALLING THE MICROSOFT ODBC DRIVER 11 FOR SQL SERVER ON LINUX ", that you have to read the license and agree to it.  So, just run the install for LINUX ODBC driver to see the license.

  14. HeatherK says:

    Can you provide more information on this sentence: "To help improve resiliency for cloud scenarios, the ODBC driver on Windows can restore broken connections along with a session state to a Windows Azure SQL Database."  Does this only work with ODBC, or did Microsoft update the ADO and ADO.NET providers to handle disconnects as well?  Also, does this only work with Winodws Azure SQL databases?  The clients don't handle disconnects/failovers in database mirroring or AlwaysOn Availability groups?  

    Thanks,

    Heather

  15. david_vcp says:

    Yes, currently only in the Windows Microsoft ODBC Drivers for SQL Server.

    I don't think this has been released yet in SqlClient.

    It works with any server that has been enabled to support it.  I think that is currently only SQL Azure.

  16. why not one example of a valid odbc.ini file says:

    why not one example of a valid odbc.ini file

  17. david_vcp says:

    Does this topic have the information that you are looking for?

    msdn.microsoft.com/…/hh568455.aspx

  18. Martijn says:

    Is connecting to a named instance using the Linux ODBC driver supported yet?

    According to social.msdn.microsoft.com/…/c3dc09bb-7ac6-47d8-a188-564b57b192c6   this has been a limitation before. However I can't find anything in the documentation about this limitation, but I have not been able to connect to a named instance either.

    (I have been able to connect to a named instance with the FreeTDS driver, but I much rather use the driver provided by the actual creator of the server software itself!)

    The documentation lists "Server" as an available connection keyword but the detailed description of this keyword does not mention limitations in the Linux ODBC driver in this regard. Also no mention of this on the "Known Issues" or "Programming Guidelines" page.

    So is connecting to a named instance supposed to work or might the documentation be a little unclear on this?

  19. david_vcp says:

    Hi Martijn,

    Server = tcp:servername, portnumber

    Did you try specifying the server name and port number of the named instance?

  20. Martijn says:

    Hi David,

    Thank you for your very quick reply!

    Yes, connecting using a port number works just fine, however we wanted to be able to connect to instances with dynamic ports as well (since we don't always control the server).  

    So you confirm that connecting to a named instance is not supported in the Linux version of the driver. Are there any plans to support this in the near future?

  21. david_vcp says:

    I spoke with the developer yesterday and he said that you can connect to a named instance via the port number.

    I can check with him later today, or maybe tomorrow, about dynamic ports.

  22. Martijn says:

    Ok, that would be great! Thanks in advance!

  23. david_vcp says:

    OK, I checked, use of dynamic ports implies named instance resolution, which the Linux ODBC driver does not do.  If you need to connect to a named instance on a static port, you can use

    Server=servername,port#

  24. Martijn says:

    Thank you for checking! Not the answer I was hoping for (I was hoping that I did something wrong) but at least I have an answer now from an authoritative source.

    Are there any plans to support named instance resolution in the near future?    (Like in the next release? 😉 )

  25. david_vcp says:

    I do not know what might be on the list of features to add to the next release of the Linux ODBC driver.  And I do not know when a new release of the Linux ODBC driver is scheduled.

  26. Chris Roth says:

    Any idea how to get this odbc driver into Ubuntu?

  27. Martijn says:

    Hi Chris,

    Try this explanation: codesynthesis.com/…/microsoft-sql-server-odbc-driver-linux

    Here at work we use RedHat but I also tried it at home on a Debian system (so this should work for Ubuntu as well). The only things that I needed to do was:

    – Download the redhat el5 version of the driver

    – build unixodbc 2.3.0 using the configure options Microsoft mentions in their installation instructions

    – force the installer to install the driver (you have to force it because it will not find all dependencies since it is not a redhat system) or unpack it yourself (read the install script), or just removed some checks from the install script… 😉

    – run ldd on the library in /opt/microsoft/msodbcsql/lib64 to check for missing libraries

    If there are any libraries missing, install them. On my system the only "missing" libraries were libssl.so.6 and libcrypto.so.6. However libssl was installed, they were only "missing" because of a naming scheme difference between redhat and debian. The libraries are compatible however, so you only have to create symlinks to them in the /usr/lib directory (libssl.so.6 -> libssl.so.0.9.8  and  libcrypto.so.6 -> libcrypto.so.0.9.8).

    After these small modifications it worked on my debian system (didn't test it very thoroughly though, just needed it to test connecting to a named instance), so this should work just as well on your ubuntu system.

  28. Ansley says:

    Hi,

    A previous commenter asked the question copied below but I don't see a response.

        Dongsheng song

        24 Feb 2013 2:02 AM#

        This driver version is 11.0.2270.0, release at 1/15/2013,

        Microsoft® SQL Server® 2012 SP1 Native Client  version is 11.0.3000.0, released at 1/9/2013,

        Why lower version released later ?

    I have the same question.

    Is this essentially the same driver as the SQL Native Client 11.0 but renamed and "rebranded" for go-forward? We make specific recommendations to our users on using the latest released driver build for the major platform version (i.e. latest 2005 driver for any 2005 instance even if instance is RTM) and this new driver could change that significantly.

    Thanks!

    Ansley

  29. david_vcp says:

    Hi Ansley,

    The Microsoft ODBC Driver for SQL Server for Windows is indeed a superset of the functionality that shipped in the ODBC driver in SQL Server Native Client in SQL Server 2012.

    As it says on msdn.microsoft.com/…/jj730314.aspx, "ODBC Driver 11 for SQL Server contains new features as well as all the features that shipped with ODBC in SQL Server 2012 Native Client."

    Regarding version, good question.  Let me look into that.

    David Schwartz

    SQL Server documentation team

    dschwart@microsoft.com

  30. david_vcp says:

    Ansley, quick question, what did you install to get

    Microsoft® SQL Server® 2012 SP1 Native Client  version is 11.0.3000.0, released at 1/9/2013,

    ?

    I think I still have RTM bits on one of my computers and I see 11.0.2218.0 for Microsoft SQL Server 2012 Native Client, in the Programs and Features dialog box.

  31. Ansley says:

    David,

    11.0.3000.0 was from installing the Native Client released with 2012 SP1 (http://www.microsoft.com/…/details.aspx). Prior to that, I had 11.00.2100.60 (http://www.microsoft.com/…/details.aspx) with was the RTM driver. I haven't seen 11.0.2218.0 around before.

    Ansley

  32. david_vcp says:

    I chatted with one of the devs about this and he said that it is not useful to compare version numbers of SQL Server Native Client with version numbers of the new ODBC driver. Even if a version of SQL Server Native Client is higher, there will be no new features in SQL Server Native Client.

    Hope this helps,

    David

  33. Hello David,

    First let me send y'all a big thanks! I just recently started on a project that requires a connection to a Microsoft SQL Server 2008 R2 Database. I've been looking for an ODBC Driver that will make Linux play nice with SQL Server, and to see a Microsoft developed driver for Linux… Thats just plain cool!

    The installation script for RedHat looks for unixODBC-2.3.0 even though RHEL 6.4 ships with unixODBC-2.2.14.

    If unixODBC-2.3.0 is not installed, the instructions ask for the installed version to be removed and to let the install script build unixODBC-2.3.0 from source.

    The issue with this process is that it breaks compatibility with other packages requiring unixODBC-2.2.14 (php-odbc for my purpose)

    With a stock install of 64bit CentOS 6.4, “odbc_config –cflags” produces the required: SIZEOF_LONG_INT=8

    “odbcinst –j” produces the required: SQLULEN Size 8, SQLLEN Size 8, and SQLSETPOSIROW Size 8

    I've had success with the driver and unixODBC-2.2.14 by symlinking libodbc.so.1->libodbc.so.2 and libodbcinst.so.1->libodbcinst.so.2 and modifying the installation script changing:

    req_dm_ver="2.3.0" to req_dm_ver="2.2.14"

    The issue with this process is that it breaks compatibility with your software by changing the installation script. Additionally, when, and if, RHEL moves to unixODBC-2.3.0, it will cause issues.

    Are there any other requirements that unixODBC-2.3.0 provides which are not satisfied by unixODBC-2.2.14?

    If not, would it be possible to have two sets of binaries; one linked to libodbc.so.2 and libodbcinst.so.2 for unixODBC-2.2.14, and the other linked to libodbc.so.1 and libodbcinst.so.1 for unixODBC-2.3.0, and let the installation script decide which to use?

    Thank you,

    Chris Compton

  34. Matt Walton says:

    Any plans for a 32-bit version of the driver?

  35. David Whelan says:

    I support customers with ECM solutions and often run into trouble where client PC’s are not upgraded to the correct version of the SQL Native client.  I’m not a DBA, but more specialize in supporting the application.

    Do you know, is there any way to shield the SQL server from connecting with these outdated (buggy) client machines, by only accepting connections using a newer native client?

    If not, is there a way to generate a listing of all machine names and the version of native client that was used to connect?

    Any thoughts or suggestions greatly appreciated

    David Whelan

    dwhelan@databankimx.com

  36. david_vcp says:

    I asked the folks on the SQL Server Native Client team and there was one suggestion:

    —-

    You probably could use sys.dm_exec_sessions to get the client lib name and TDS version in a stored proc, perhaps in a logon trigger, then raise a fatal error back to the client which kills the connection.

    —-

    Does that help?

    — David

  37. Ansley says:

    David Whelan,

    Comparing the TDS version to the instance version is something we've done for that situation for many customers – typically we run it as a scheduled job that logs to a table then review that data to find workstations with outdated drivers. The TDS version can be obtained this way but not the build (2005+).

    Here's a sample query:

    SELECT A.session_id

    , B.login_name

    , B.host_name

    , A.client_net_address

    , B.client_interface_name

    , A.protocol_type

    , CAST(A.protocol_version AS VARBINARY(9))

    ,driver_version =

    CASE SUBSTRING(CAST(A.protocol_version AS BINARY(4)), 1,1)

    WHEN 0x70 THEN 'SQL Server 7.0'

    WHEN 0x71 THEN 'SQL Server 2000'

    WHEN 0x72 THEN 'SQL Server 2005'

    WHEN 0x73 THEN 'SQL Server 2008'

    WHEN 0x74 THEN 'SQL Server 2012'

    ELSE 'Unknown driver'

    END

    FROM sys.dm_exec_connections A

    INNER JOIN sys.dm_exec_sessions B ON A.session_id = B.session_id

    WHERE B.client_interface_name = 'ODBC'

    AND SUBSTRING(CAST(A.protocol_version AS BINARY(4)), 1,1) <> 0x73

    Ansley Ingram

    Hyland Software, Inc.

  38. Vittorio says:

    Senza polemica, avrei preferito un drive ODBC per Apple OS X (parecchio tempo fa, inoltre esisteva già …) che per il mondo Linux …

    Spero che Microsoft si attivi al più presto, essendo Microsoft SQL Server il miglior database (a mio giudizio) e avendo sempre più la richiesta di operare in ambienti 'misti' con client Windows e Apple.

    Grazie

  39. Hi everyone.

    Do you know if the SQLServer 2012 native client work under Microsoft Windows 2012 server?

    Thanks….

  40. david_vcp says:

    SQL Server Native Client should work on any operating system that supports the SQL Server version that SQL Server Native Client shipped with.

    So, if SQL Server 2012 is supported on Microsoft Windows 2012 server, then SQL Server 2012 Native Client is supported on Microsoft Windows 2012 server

  41. GIOVANNI says:

    E PER OS X ?

  42. MichCl says:

    We are getting a new server and want it to use Linux.  Our old server was running MS SQL Server 2008 R2 with MS SQL Server DB 2008 R2.  How do we port the DB over from MS SQL Server to Linux?  Is that what this addresses?

  43. david_vcp says:

    You cannot install SQL Server on Linux.

  44. Mark says:

    Hello,

    Im running Microsoft SQL 2012.  Will I be able to access the 2012 SQL database remotely from a P.C. that is running windows XP professional?  

    Thanks…Mark

  45. david_vcp says:

    Please make sure that the technology that you use (to connect to an instance of SQL Server 2012) is supported to connect to SQL Server 2012.

    You are aware that Windows XP goes out of support on April 8, 2014 ?

  46. Maritim says:

    I want to connect in the client machine using odbc to Windows server 2012.the client machine is in windows 7???

  47. david_vcp says:

    Hi Martin, I'm not sure I understood that.  You want to use the ODBC driver to write an app that runs on Windows 7 and connects to a SQL Server database on Windows Server 2012?  That should work.

  48. Mark M. says:

    The beta/CTP version of SuSE Linux ODBC Driver for SQL Server was released in September 2012 (http://www.microsoft.com/…/details.aspx). When does Microsoft plan to release a production/non-CTP version??

  49. david_vcp says:

    I have not heard about a schedule for this.  I do not think that anyone is working on it at the moment.

  50. Mark M. says:

    Oh darn. The non-CTP version of the ODBC for Red Hat Linux and SQL Server was released about a year after its beta, and so I had hoped MS would rollout the SuSE version in a similar way. If no one is working on it, does this indicate the demand wasn't great enough to make it a priority?

  51. david_vcp says:

    I was not in the room when the decision was made, about which projects to resource.  It was probably a combination of things.  

  52. Mark M. says:

    Well, perhaps, David, you will put me in touch with someone who was. I'm on the virge of making a technology decision that impacts a multi-million dollar project. Elsewhere–on this very page and others–Microsoft states its mission to make "ODBC drivers for Windows and Linux…better aligned going forward". If this is true, there's a basis for that claim. Please put me in touch with someone involved in release planning.

  53. david_vcp says:

    If you send me your email address, I will forward it to The Decision Makers.

    David Schwartz

    dschwart@microsoft.com

  54. James Chavez says:

    Does the Microsoft® SQL Server® ODBC Driver 1.0 for Linux support connections to Microsoft SQL Server 2008R2 ?

    Thanks

  55. david_vcp says:

    Yes

    From msdn.microsoft.com/…/hh568451.aspx

    "The ODBC driver for SQL Server allows native applications (C/C++) running on Linux to connect to SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, and SQL Azure Database."

  56. Feto says:

    Can someone definitively tell me what driver we should be using, can use? Currently our WIN32 app is using SQL Server ODBC Driver 6.01.7601.17514 on a Windows Server 2008 R2 to access SQL Server 2005 & SQL Server 2012.

    But lately we've been getting random TDS errors on long varchars, corruption on Long Varchars (varchars(max)). We suspect its the drivers and/or network related. Currently these issues are occurring mostly on the SQL 2005 servers since majority of our DBs are still on SQL 2005 servers.

    Any help would be greatly appreciated.  

  57. Feto says:

    BTW the hosted server and the SQL Servers are all 64bit, the client app though is WIN32

  58. david_vcp says:

    I suggest that you use the Microsoft ODBC Driver 11 for SQL Server on Windows.  You can install the driver from:

    http://www.microsoft.com/…/details.aspx

    and bcp and sqlcmd from

    http://www.microsoft.com/…/details.aspx

    Or, you could use the ODBC driver in SQL Server Native Client from SQL Server 2012

    — David

  59. Feto says:

    Thanks David,

    I've installed the ODBC Driver 11 and changed the connection string to 'Driver={ODBC Driver 11 for SQL Server};…'  This is on our Beta, at first early glance things are looking good. We're going to leave it on the Beta for few days before promoting it to the production environment.

  60. Feto says:

    Unfortunately we are still getting random corruption when passing a large (>8k) adLongVarChar to varchar(max) in an SP call. It fails once but then since we have retry logic it works on the second attempt 2-4 seconds later. Currently we are using the SQL Server Native Client 10.0.

    Any ideas?

  61. david_vcp says:

    (Curious, you said that you are using ODBC Driver 11 and SQL Server Native Client 10.0.?)

    Do you need some ideas about how to debug the failure?  Are you familiar with the following:

    msdn.microsoft.com/…/cc765421(SQL.100).aspx

    blogs.msdn.com/…/connectivity-troubleshooting-in-sql-server-2008-with-the-connectivity-ring-buffer.aspx

    If you decide to do data access tracing, you will need to download MOF files for the SQL Server version you are using.  For example, if you are using SQL Server 2012, you can download the files from msdn.microsoft.com/…/hh880086.aspx.

    Let me know if you need more assistance.

    — David

  62. Feto says:

    Well we did switch to use ODBC Driver 11 for a little bit, but soon noticed that in one particular case when we were retrieving data one of the column's data types (varchar(max) & xml) wasn't mapping through with the same data type on the ADO side as it did with the older drivers. So we switched it to use Native Client 10 until we could properly modify/debug/test the cases where the data type mapping is different than what we currently have.

    Native Client 10 ODBC seems to behave like the original SQL Server ODBC 6.1 driver, also in that both exhibit the rare random corruption on large strings passed to the DBs via SPs calls. This corruption almost certainly occurs during the transfer between the source WIN32 app making the call and the destination DB server. The corruption is very rare and it didn't used to happen. But we've been upgrading both hardware and software including the SANs and VMware, server OSs etc., while the server on which they are hosted on have changed, the WIN32 client app and the DBs themselves haven't changed (still using SQL 2005). Our connections, load and traffic has also increased linearly.

    I'll take a look at the links you mention to help further troubleshoot this issue.

  63. Dan C. says:

    A couple of things:

    First, if your going to use this on Redhat, try the latest version (6.5) I could not get this to compile correctly on Redhat 6.3 (I see many others are having issues as well).

    Second, I was excited to ditch my old $1,700 driver from E*sySoft since I now have your new driver which seems to be working for what I need.

    But then BAM!, Really?  No backawards compatibility to older SQL servers like 2005, 2000, etc?

    [unixODBC][Microsoft][SQL Server Native Client 11.0]SQL Server Native Client 11.0 does not support connections to SQL Server 2000 or earlier versions

    I have older legacy stuff that I really don't want to have to upgrade (nor can I afford to upgrade give MS's steep price$ on 2012 Enterprise – like $47k!)

    Finally:

    I have a solution for you MS, hire me as a developer to help you find and fix these things.  It would be REALLY smart on your part to better support Linux based drivers to SQL server (with more bells and whistles).  After all, when I need to do heavy processing, I ALWAYS use Linux since its cheap, easy and very lightweight (no bloated kernels here).   More and more middle and top tiers are going Linux.  Having this interoperability between Linux and MS backends would broaden your user base!  Come on MS, make me a advocate!  I'm tired of being a MS cynic!

    –Dan

  64. Goroth says:

    Replaced provider SQLOLEDB with the {ODBC Driver 11 for SQL Server} but found out the recordsets in the ODBC have read only properties.

    Code like this no longer works… "rsTemp.Properties("Preserve on Commit").Value = True"

    Since properties on the recordset is read only.

  65. Khalifah says:

    Is there anyway to install this driver on Mac OS X (10.8)? Is there a way I can install it manually. If not, what would keep it from running on Mac?

  66. Anthony says:

    We have a C++ program that uses ADO to connect to various databases. We've successfully been connecting to SQL Server databases using the SQL Server Native Client ODBC drivers. We are now trying to use the "ODBC Driver 11 for SQL Server" driver and I keep getting the following error from ADODB.Connection:

    ( 0x800a0e7a ) Provider cannot be found. It may not be properly installed.

    This is my connection string:

    Provider=ODBC Driver 11 for SQL Server;SERVER=MYPCSQL2014a;Trusted_Connection=Yes;

    It works fine if I use SQL Server Native Client 10 or 11.

    Any ideas as to why I'm getting the error ?

  67. Tesla3D says:

    We have great luck using MS Access 2010 with DSN-Lell links for SQL Server Native Client 11 over Citrix for a national DB.

    So far, everything translates correct, fast, and efficiently.

    Just wondering if there is a guide for Queries executing in MS Access that use Linked Tables to SQL Server?

    For example: If a query on one table using the Primary Key, the second field has multiple Like statements with wild cards.   e.g.   Like '*TMT* OR Like '*ASPT*' Or Like '*TLTZ*'

    These queries run just perfect. The question is about the efficiency of the ODBC translator from MS Access SQL language to T-SQL. Are there any guidlines to follow for efficiency?

    We Access programmers know never to put in VBA function in the query. I avoid the IIF statement in a query for that reason.   e.g. of a QBE field  OutputValue: IIF([MyFieldValue] > 3, "True", "False")  

    Is there a list of any other pointers or guidlines with writing MS Access Queries that will run on SQL Server Native Client 11?

  68. MarkB says:

    Hi MS,

    Are there any available 32 bit version of the driver?

  69. hassan sayed issa20014 says:

    thanks

  70. Matt says:

    This driver appears to be completely broken on Linux when trying to open multiple concurrent connections to a mirrored sql server:

    Program received signal SIGSEGV, Segmentation fault.

    [Switching to Thread 0x7ffff062c700 (LWP 29046)]

    0x00007ffff295df48 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    (gdb) bt

    #0  0x00007ffff295df48 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #1  0x00007ffff2960fa2 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #2  0x00007ffff29480e6 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #3  0x00007ffff2931fc5 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #4  0x00007ffff2933644 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #5  0x00007ffff2930766 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #6  0x00007ffff292a2a5 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #7  0x00007ffff292ac29 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #8  0x00007ffff292b9b2 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #9  0x00007ffff28b053a in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #10 0x00007ffff28df246 in ?? () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #11 0x00007ffff28b2e1b in SQLDriverConnectW () from /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

    #12 0x00007ffff3013f19 in SQLDriverConnectW (hdbc=0x7fffe8003f30, hwnd=0x0, conn_str_in=0x7ffff062b120, len_conn_str_in=105, conn_str_out=0x7fffe80054c0,

       conn_str_out_max=1024, ptr_conn_str_out=0x7ffff062aebe, driver_completion=0) at SQLDriverConnectW.c:601

    #13 0x00007ffff325eb36 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/libqsqlodbc.so

    #14 0x00007ffff7970231 in QSqlDatabase::open() () from /usr/lib/x86_64-linux-gnu/libQt5Sql.so.5

    Of course there doesn't seem to be much of a way for me to get further debug information about this, nor is there necessarily a platform for me to file a bug report. Any word on whether Microsoft intends to update the driver in the future? Is this a known issues?

  71. Paka says:

    Hi ,

    When I use ODBC Driver 11 for SQL Server on Red Hat 5.8 64 bit, I have a problem :

    -Execute batch statement for example "update tblDemo set id=5 where name="user100";select * from tblDemo" by SQLExecDirect method. But return code is SQL_NO_DATA, this query need return first result is "0"(effected row), second result is result set.

    Help me about this issues.

  72. Heinzi says:

    The SQL Server Native Client ODBC driver was not supported to be used via MSDASQL:

    msdn.microsoft.com/…/ms131035.aspx

    (In other words, there was no officially supported way to access SQL Server from legacy ADO-based applications.)

    Does this still apply to the ODBC Driver 11 for SQL Server?

  73. Mark says:

    Any comment on plans to upgrade the driver to provide support for SQL Server 2014?

  74. Jan says:

    To limit the number of issues reported by the users (mine would be +1) I would recommend to prepare compiled packages to easy install for each of linux distribution, including debian and ubuntu which are currently top choice on many hosting services. You are losing user base, or at least not getting new ones.

  75. Noel says:

    Hi, I'm getting a bunch of [Microsoft][SQL Server Native Client 11.0]Communication link failure

    I've posted the problem on MSDN: social.msdn.microsoft.com/…/microsoftsql-server-native-client-110communication-link-failure

    Anyone able to help?

  76. Dinesh Vishe says:

    Good

  77. rghv says:

    Going through the below listed pages about Microsoft® ODBC Driver 11 for SQL Server® – RedHat Linux, and a particular note in install instructions section at [1] http://www.microsoft.com/…/details.aspx caught my attention.

    >> click the appropriate link to download unixODBC-2.3.0 (not unixODBC-2.3.1). UnixODBC-2.3.1 is not supported with this release of the Microsoft ODBC Driver 11 for SQL Server.

    As we can see on the changelog ( [2] http://www.unixodbc.org/), unixODBC 2.3.0 was released five years ago, during April.2010. A lot of fixes/enhancements have now come to unixODBC 2.3.2 (released in late 2013). But since there's an explicit dependency on the specific version of unixODBC as mandated by the MS driver for Linux, developers are forced to use the archaic unixODBC 2.3.0.

    Is there any plan to test out and certify Microsoft® ODBC Driver 11 for SQL Server® – RedHat Linux with latest version of unixODBC (2.3.2)? Or, is there a new version of Microsoft® ODBC Driver on Linux for SQL Server® in the roadmap of Microsoft, that works with latest unixODBC? Or, can one just use unixODBC 2.3.2 with the MS ODBC Driver 11 for Linux, and if this hits known issues, what could they be?

    Unfortunately, there is not much of info to be found on MS pages/blog regarding this topic. [3] blogs.msdn.com/…/introducing-the-new-microsoft-odbc-drivers-for-sql-server.aspx

    It's a really good thing that MS has given out a driver for SQL Server that works on Linux; if that's made open-source it would be even better! Am sure you folks might have given some thought about it, if not, please think about it once!

  78. Ray says:

    As an alternative to a standard SQL Server ODBC driver I found this one http://www.devart.com/…/sqlserver

    It works great for me even better in some tests comparing to microsoft driver. The main feature for me that it will be available for Linux and Mac OS X platforms (32 and 64-bits) in the nearest time according to developers words. I am very excited to see that.  

  79. Mike says:

    Anyone else noticing long disconnect times when using 'ODBC Driver 11 for SQL Server' when connected to a SQL 2012 database?

    Trace file shows the SQLDisconnect, SQLFreeConnect, and SQLFreeEnv ODBC calls were all successful. Taking just over 10 seconds to perform these however.  

  80. RaelImperial says:

    I see that a preview version (13) for this driver has been posted.

    Which is nice, except that it only seems to work with RHEL 7.

    There is *still* an issue with the existing ODBC Driver (11). This worked

    in RHEL/Centos 6.5, but broke on 6.6 and 6.7 as documented. I put in the following

    bug that got no attention:

    social.msdn.microsoft.com/…/microsoft-o$

    connect.microsoft.com/…/1684372

    Microsoft ODBC Driver 11 for SQL Server for linux has ot been updated since Jan 2013.

    Are there any plans to provide an updated driver?

    Currently, bcp is broke on RHEL 6.6.

    ldd /opt/microsoft/msodbcsql/bin/bcp-11.0.2270.0

           linux-vdso.so.1 =>  (0x00007fff18974000)

           libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00000030c8000000)

           libdl.so.2 => /lib64/libdl.so.2 (0x00000030bf400000)

           librt.so.1 => /lib64/librt.so.1 (0x00000030bfc00000)

           libssl.so.10 => /usr/lib64/libssl.so.10 (0x00000030c8c00000)

           libuuid.so.1 => /lib64/libuuid.so.1 (0x00000030c5800000)

           libodbc.so.1 => not found

    The documentation says to use unixODBC 2.3.0, but that had issues and were

    were told to use unixODBC 2.3.2, however, 2.3.2

    which users libodbc.so.2 (not libodbc.so.1).

    This package is 2.5  years out of date and needs an update….

  81. rseiler says:

    ODBC Driver 11 (Setup page calls it v12.0.4219.0) was just made available:

    http://www.microsoft.com/…/details.aspx