SQL Native Client ODBC On Ia64 And SQLGetStmtAttr(SQL_ATTR_CONCURRENCY)
Dec 12, 2006
We've run into an issue running against the SQL Native Client ODBC driver (version 2005.90.2047.0) on Windows 2003 Server (Itanium). The "INFO: ODBC 64-Bit API Changes in MDAC 2.7" article (http://support.microsoft.com/kb/298678) doesn't say that the returned value for SQL_ATTR_CONCURRENCY changed to a 64-bit value, but if you request this attribute from the SQL Native Client driver, a 64-bit value is returned. The ODBC spec still indicates that SQL_ATTR_CONCURRENCY is a SQLUINTEGER value, which is 32-bit, even on a 64-bit platform.
This is easy to see by using the ODBC Test utility in the Windows SDK for ia64, "C:Program FilesMicrosoft SDKBinWin64ia64odbcte32.exe". If you connect to the SQL Server driver and then simply call SQLGetStmtAttr(SQL_ATTR_CONCURRENCY), you'll see that the *StringLengthPtr argument returns 8 bytes, when it should only return 4.
Note that we've also seen the same behavior with SQL_ATTR_ROW_BIND_TYPE as well as other statement attributes defined to return SQLUINTEGER values.
I apologize if this is not the correct forum for this posting. Looking at the descriptions, it appeared to be the best choice.
I am running Windows XP Pro SP2. I have installed the SQL Native Client for XP. However, when I try to add a new data source through ODBC Connection Manager, SQL Native Client is not listed as an option. I have followed this procedure on three other systems with no problems. What would be causing the SQL Native Client to not show up in the list of available ODBC data sources?
I installed sql2005 on server, created odbc connection , sucess connection. I installed native client on pc. pc ping server sucessfully. I created odbc using sa with valid password (as i do in server), when completing give error " sql server does not exist or access denied" , and can not connect with server. how can i resolve the problem.
I have a SQL express database which I need to access from a shared hosting plan. I can create an ODBC connection through the hosting provider's control panel for SQL Server, but it won't connect. I tested this locally and discovered that the SQL Native Client connects fine, but the previous SQL Server driver does not. This seems to only happen with SQL 2005 Express edition; it works with the Developer Edition. Does SQL Express only use the Native SQL Client??
SQL Native Client 2005.90.3042.00 ODBC driver does not return SQL_CVT_DOUBLE as part of the mask from SQLGetInfo for SQL_CONVERT_WCHAR, SQL_CONVERT_WVARCHAR even though driver actually supports converting nchar and nvarchar to SQL_DOUBLE. For example,
When I'm using SQL server 2005, and ODBC drive €œSQL Native Client€? I get an error when executing the below given code. Error Message: €œTransaction cannot start because more than one ODBC connection is in use.€?
But this works well with SQL Server 2000 with ODBC drive "SQL Native Client" and in SQL server 2005 also when I used ODBC drive €œSQL Server€?.
I used aTrgConn.Execute(€œBegin Transaction€?) and it's working properly. But unfortunately I cannot use this method, because I want to run the same code with Oracle ODBC as well. Is this a known issue in SQL Native client drive with SQL server 2005? Do you know a solution for this?
Please Help..............
Thanks in advance.
Code:
Dim aTrgConn As New ADODB.connection Dim aCmdIns As New ADODB.Command Dim aCmdUpd As New ADODB.Command
aTrgConn.Open sConnStr
Set aCmdIns.ActiveConnection = aTrgConn Set aCmdUpd.ActiveConnection = aTrgConn
I created very simple table with 3 columns and one is varchar(max) datatype
When i insert records thru VC++ ADO code i am getting this error
Exception Description Multiple-step OLE DB operation generated errors. Check e ach OLE DB status value, if available. No work was done. and Error Number:: -2147217887
The following (VB.Net) code causes exceptions at seemingly random times. Any suggestions? Not sure if the problem is in .Net's ODBC support or in Sql Native Client.
If MARS is off, usually after less than 100 loops:
Code Snippet
System.Data.Odbc.OdbcException was unhandled ErrorCode=-2146232009 Message="ERROR [HY000] [Microsoft][SQL Native Client]Connection is busy with results for another command" Source="SQLNCLI.DLL" Turning MARS is on bypasses that error, so it will sometimes survive a thousand or so runs before hitting:
Code Snippet
System.Data.Odbc.OdbcException was unhandled ErrorCode=-2146232009 Message="ERROR [23000] [Microsoft][SQL Native Client][SQL Server]Cannot insert the value NULL into column 'Number', table 'tempdb.dbo.#TempTable___..(shortened to fit).. _________000000002F3F'; column does not allow nulls. INSERT fails. Source="SQLNCLI.DLL" Code here: (Console Application, empty database, Visual Studio 2005, .Net 2.0, Windows XP,SQL Server 2005 or SQL Express 2005, Local or Remote)
Code Snippet
Module Module1
Sub Main()
'Dim connection As New SqlClient.SqlConnection("database=TestDB;server=.sqlexpress;Integrated Security=SSPI;") 'Doesn't crash 'Dim connection As New OleDb.OleDbConnection("Provider=SQLNCLI;database=TestDB;Server=.sqlexpress;Trusted_Connection=yes;") 'Doesn't crash
'Dim connection As New Odbc.OdbcConnection("Driver={SQL Native Client};Database=TestDB;Server=.sqlexpress;Trusted_Connection=yes;") 'Crashes Dim connection As New Odbc.OdbcConnection("Driver={SQL Native Client};Database=TestDB;Server=.sqlexpress;Trusted_Connection=yes;MARS_Connection=yes") 'Crashes
VBMath.Randomize()
Dim run_count As Integer = 1 connection.Open() Console.WriteLine("Connected!!")
While True 'connection.Open()
Dim testcmd As New Odbc.OdbcCommand("CREATE TABLE [#TempTable] (Number int PRIMARY KEY)", connection) testcmd.ExecuteNonQuery() testcmd.Dispose() testcmd = Nothing
Dim dtTemp As New DataTable Dim daTemp As New Odbc.OdbcDataAdapter("SELECT * FROM [#TempTable]", connection) daTemp.MissingSchemaAction = MissingSchemaAction.AddWithKey daTemp.Fill(dtTemp) Dim cbTemp As New Odbc.OdbcCommandBuilder(daTemp) Dim viewTemp As New DataView(dtTemp, Nothing, "Number", DataViewRowState.CurrentRows)
Dim i As Integer For i = 1 To 1000 Dim test_number As Integer = CInt(Rnd() * 2000) If viewTemp.Find(test_number) = -1 Then 'Keep it unique Dim new_temp_row As DataRowView = viewTemp.AddNew() new_temp_row("Number") = test_number new_temp_row.EndEdit() End If Next
daTemp.Update(dtTemp)
'daTemp.Dispose() 'daTemp = Nothing
'cbTemp.Dispose() 'cbTemp = Nothing
'dtTemp.Dispose() 'dtTemp = Nothing
'viewTemp.Dispose() 'viewTemp = Nothing
Dim testcmd2 As New Odbc.OdbcCommand("DROP TABLE [#TempTable]", connection) testcmd2.ExecuteNonQuery() testcmd2.Dispose() testcmd2 = Nothing
'connection.Close() 'GC.Collect()
'Console.Write(".") run_count += 1 End While
End Sub
End Module
Usually the ".Update" triggers the exception, but sometimes the other sql commands do it. Have tried various experiments with disposing of objects immediately when finished, but no effect. Opening and closing the connection each loop seems to delay the errors, but it still happens eventually.
I have a 32 bit development/playbox SQL 2005 SSIS that can see and run 32 bit OLE DB drivers from Teradata. Granted I have the same issues as others where a table or a view would work and not a query or a variable query. The alternative is to use Linked Server and OPENQUERY.
But our real development box is a 64 bit IA 64 using 64 bit SQL 2005. Non of the Teradata.com drivers would work/show up in the dropdown box of the Connection Manager since they are 32 bit. One option is to use the 64 bit Teradata ODBC drivers and then use the .Net ODBC connection instead. Linked server doesn't work either because the SQL 2005 is 64 bit and it is looking for 64 bit drivers.
Has anyone have any experience with 64 bit SQL 2005 and Teradata?
Looked at other 3rd party vendors such as ETI but their documentation excludes IA 64 (Itanium).
Planning to try again using the 64 bit ODBC and .Net Adapter but I'm interested to hear if someone (MSFT & NCR) would have a real solution for 64 bit.
Product: Microsoft SQL Server 2005 -- Error 29515. SQL Server Setup could not connect to the database service for server configuration. The error was: [Microsoft][SQL Native Client]Encryption not supported on the client. Refer to server error logs and setup logs for more information. For details on how to view setup logs, see "How to View Setup Log Files" in SQL Server Books Online.
On Windows XP systems I get the following issue when trying to browse the MSDB folder in SSIS
Client unable to establish connection Encryption not supported on SQL Server. (Microsoft SQL Native Client)
I have noticed another post where several others have noticed the same issue. It appears to only occur on Windows XP installations. Is there a workaround or fix for this?
I have SQL2000 installed as the default instance, and now I'm trying to install SQL 2005 standard edition as a named instance.
I receive this error : SQL Server could not connect to database service for server configuration.. [SQL Native client] Encryption not supported on the client. However I'm able to install client tools
The setup works fine on other box with the same config : SQL 2000/Windows XP, is there any work around for this issue ?
In my SQL 2000 client network utilty "Force proctocol encryption " is desabled and did not find the setting for SQL 2005 !
I have application create by MsAccess and connect with Sql Server 2000 in x86
and now we transfer system to HP rx3600 Intel Itanium - Install Windows 2003 Server Enterprise (for Itanium) - Install Sql Server 2005 Standard Edition (IA64)
and now we try to create ODBC connection from client for testing.
But we can't not done it.
Anybody can tell us how to create connection to sqlserver 2005 (ia64)
I have tried this on several different operating systems (VISTA and XP ) and several versions of SQL NATIVE CLIENT including 2005.90.3042.0
I have a 64 bit "SQL NATIVE CLIENT" connection that fails. The exact same connection and code succeeds on 32 bit. My customer and I prepend "oledb:" to the connection string and it starts working.
FAILS on 64 bit: Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Wrigley_Test;Data Source=MONGO;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=RIPTIDE;Use Encryption for Data=False;Tag with column collation when possible=False;MARS Connection=False;DataTypeCompatibility=0;Trust Server Certificate=False
WORKS oledb:Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Wrigley_Test;Data Source=MONGO;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=RIPTIDE;Use Encryption for Data=False;Tag with column collation when possible=False;MARS Connection=False;DataTypeCompatibility=0;Trust Server Certificate=False
I debugged my code to the point that I know it is happening when I call CreateAccessor for my SQL statement.
Does anybody knowk if it's necessary to upgrade Sql Native Client to conect to a Server when you has upgrade it to Sql 2005 SP2? That is to say, can you conect to a Sql server 2005 SP1 and to a Sql Server 2005 SP2 from a client with the same Sql Native client or you have also to upgrade it?
We have a VB6 app that we're trying to connect to an SQL2005 server.
We're able to connect from dev machines that have SQLExpress, or SQL 2005 tools installed, but we cannot connect from other machines. We've installed sqlncli.msi from the MS site, but this still doesn't work. When we try to login, we get an error that reads "0[Microsoft][SQL Native Client]Fractional truncation" when we try writing to a smalldatetime field. This problem does not happen on the dev machines.
Connection string:
connectiontype = cnnSQLServer
database name = name
pasword = password
userid = uid
servername = servername
driver = {SQL Native Client}
Driver version on the dev machines is: 2005.90.3042.00
Driver version on the roll out machines is: 2005.90.1399.00
We're upgrading from SQL2K to 05 next week. We want to push the SQL Native Client driver(ODBC) thru the network but IT said it can only be an msi or exe file. Is their anyway we could get this file in this format?
I'm new in this forum and I 'm Italian, so my English won't be perfect!
If i want to connect to my SQL Server database in prompt i type:
"osql -U sa" and then i type the password. So, I get an error that says:
"[Sql Native Client] Provider Via: Impossible to find the specified module. [Sql Native Client] Access timeout expired [Sql Native Client] An error occured during the attempt to estabilish a connection to the server. During the connection to SQL Server this error may be caused by pre-defined settings that don't ......"
How i can solve this problem? Who can help me? Thank you!!
Can I use the "SQLOLEDB" provider to connect to a SQL Native Client? Follow-up question: does the "SQLOLEDB" provider use the same TDS transport protocol as the SQL Native Client provider?
The Clients Environment: Windows Server 2003 R2 SQL Server 2005 SP1 Standard Edition Version 9.00.2153.00 SQL Native Client Version 2005.90.2047.0
My Development Environment Windows XP SQL Server 2005 SP1 Developer Edition Version 9.00.2047.0 SQL Native Client Version 2005.90.3042.0
The Error: [Microsoft] [ODBC SQL Server Driver] Fractional truncation
We have tons of VB 6 legacy code. (I know.. we are trying to get it to .Net.. just not enough time in the day) We recently installed our application at a cleints site (environment listed above) and all of a sudden we are getting errors every time we execute a rs.update using ADODB. I have pasted an example below. The kicker is that it runs fine in my development environment. I can get around this issue by using a command object to do the insert, but we have thousands of these sprinkled throughout the application and would take weeks to change them over; and of course this client demands to start using our application NOW. I am inclined to think that it is an issue with SQL Client since it does not appear to have been updated when the SP1 was installed. I have read some blogs about issues with SQL Native Client and datetime values.
'Broke Code Dim RS as New ADODB.Recordet Dim SQL as String Dim datGetDate as Date
'THis select statement return an empty recordset. ID is an identity column SQL = "SELECT * FROM table WHERE id is null RS.Open SQL, gadoConn,adOpenKeySet, adLockOptimistic RS.AddNew RS("col1")=Value1 RS("col2")=Value2 RS("starttime")=datGetDate RS.Update 'This is where it blows RS.Close
'New and Improved code. Works perfectly Dim SQL as String Dim objCMD as new ADODB.Command
When i try to query for Column precision using SQL Native Client ODBC Driver it returns '0' instead of 2^31-1 (which is the value for MAX), but when i use other driver it works as expected. If i assign some value like varbinary(20) then it works.
Please let me know is there any fix pack available for this. Because one of our client is facing this problem, so we have to provide solution as early as possible:
I'm new in this forum and I 'm Italian, so my English won't be perfect!
If i want to connect to my SQL Server database in prompt i type:
"osql -U sa" and then i type the password. So, I get an error that says:
"[Sql Native Client] Provider Via: Impossible to find the specified module. [Sql Native Client] Access timeout expired [Sql Native Client] An error occured during the attempt to estabilish a connection to the server. During the connection to SQL Server this error may be caused by pre-defined settings that don't ......"
How i can solve this problem? Who can help me? Thank you!!
How can I check "Native client" is present on my client? I'm trying to eliminate all the reasons my client won't run a VC++ app which access a sql server.
When using Named Pipes the issue is no longer there.
On massive batch inserts we sometimes get a long pause at the end of one insert and before begining the next one. Example:
1000 inserts in the same table and then repeat. This will work fine for 3 or 4 iterations, then pause during the 5th iteration for up to 40 seconds and then simply continue.
When this exact same procedure is done using Named Pipes as the connection method this never happens.
While this is happening neither the server or the workstation is doing anything, 0% CPU, 0% network, it just sits there.
All this using the SQL Native Client 2005 and ADO.
I cannot connect to my SQL2005 server using the old SQL ODBC drivers, I have to use the Native client drivers. The database I am trying to connect to is a SQL 2000 db I just attached. Its owner is a SQL user login, which works fine and can connect remotely.
I was trying to install SQL Server 2005 on Windows 2003 Server and it failed on installing one of the components "SQL native Client",
the Error message is
The Installation Package of the Product Microsoft SQL Server Native Client cana not be found. Try the Installation again using the Valid copy of the installtion package "sqlncli.msi"
I have a VB6 front end connecting to SQL Server 2005 using the SQL Native Client.
When I execute a stored procedure the returned recordset contains more fields then it should. These extra fields seem to be the fields that the tables are joined on.
This happens with every stored procedure(simple to complex).
If I change the ODBC to use the standard SQL Server driver it works fine.
Hi: Glad to find this forum. I have a MS Access application, just moved the database table from .mdb to sql2005. I notice in my office pc, from "ODBC Data Source Administrator" ->tab: "Drivers", only have one item listed which is: "SQL Native Client", file name is: SQLNCLI.DLL.
Is that .dll includs most of the drivers which needs to link to MSSql from MS Access?
From my home pc, under the "Drivers" Tab, not only has "SQL Native Client", but also has: SQL Server, file name is: SQLSRV32.DLL.
Do I need include both of them, if that is true, I need to install SQLSRV32.DLL in my office pc.
I have an application that works fine when I connect to SQL 2000 with the SQL Server driver (2000.85.1117.00), but when I run the same program and use the SQL Native Client driver (2005.90.1399.00) it crashes when I try to send NULL data for an image column using SQLPutData and SQL_NULL_DATA.
This seems to be the same as https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=126388
Has this issue been addressed yet? It isn't clear from anything I've found.
We have a SQL 2005 SP2 64 bit server that needs to communicate with our 32 bit AS400 server. We have stored procedures in databases that query the AS400 (generally just select statements). I am not understanding the procedure to connect to the AS400 now that the OLE DB for ODBC provider no longer exists.
I know how to create a system DSN (and that it will be located in C:WINDOWSSysWOW64odbcad32.exe). I called the System DSN 'ConnectMe'. The server I am trying to access is 'ServerA'. I have filled out the following to create a linked server: Linked Server: AS400 Provider: SQL Native Client Product Name: AS400 (from what I understand, this holds no value and only serves as a description) Data source: ServerA Provider String: dsn::=ConnectMe (same as system DSN) Catalog:<I left it blank> Under the security tab I have the remote username and password that should be used.
When I try to create the linked server, I get the error: "OLE DB provider "SQLNCLI" for linked server "AS400" returned message "An error has occured while establishing a connection to the server. ..may be be caused by the fact that under the default settings SQL Server does not allow remote connections"
Remote connections for both TCP/IP and named pipes is enabled and SQL services have restarted to enable that. What am I missing?
I am currently modifying an existing application (which uses OLE DB Consumer Templates to access a remote SQL db) to utilize SQL Native Client instead. Does anyone have any experience making this change? Am I correct in my assumption that all I have to do is: change my included headers from 'sqloledb.h' to 'sqlncli.h' and change CLSID_SQLOLEDB to CLSID_SQLNCLI? I am still including the 'atldbcli.h' header and therefore still using the OLE DB Consumer Templates. Can I continue to use the Consumer Templates along with SQL Native Client?
I have been running SQL Server 2005 Express (basic) Instance MSSMLBIZ in conjunction with Microsoft Office Accounting 2007 Professional.
I want to make a "clean install" of SQL Server 2005 Express Advanced, SQL Server2005 Express Tools, in order to create additional Reports in Microsoft Office Accounting 2007 Professional.
I ran uininstall on the basic SQL Server 2005 Express, but Native Client did not uninstall; the following message was posted:
"An installation package for the product Microsoft SQL Native Client cannot be found. Try the installation again using a valid copy of the installation package 'sqlncli.msi'."
I then attempted to install SQL Server 2005 Express Advanced, but it failed to load Native Client. I then uninstalled all instances, deleted the SQL Server Express Files in Programs, and ran "CC Cleaner" to clear the Registry.
I then attempted to uninstall Native Client again, and received the following message:
"This action is only valid for products that are currently installed."
I the returned to CCCleaner Tools to attempt to delete the residuals and received the following message
"Cannot delete msi installer."
I ran "Search - *.msi" and there is no instance of sqlncli.msi visible.