Friday, February 17, 2012

Connecting 32bit ASP to 64 bit SQL Server 2005

issue:

i have an ASP-Application running fine with both SQL Server 2000 and SQL 2005 (both 32 bit)

Now i have to attach a 64bit SQL-Server.

I have a problem with the connection:

This one runs fine with sql 2005 32bit

<%set myConn = Server.CreateObject("ADODB.Connection")

myConn.open "driver={SQL Native Client};server=<servername>;database=<dbname>;uid=<uid>;pwd=<pwd>" %>

but not with the 64-bit server:

ADODB.COnnection error "800a0ea9". Provider is not specified and there is no standard provider.

ok, i did some research and came up with the following:

<%set myConn = Server.CreateObject("ADODB.Connection")

myConn.open "PROVIDER=SQLOLEDB;DATA SOURCE=<serverip>,<serverport>;database=<dbname>;uid=<uid>;pwd=<pwd>" %>

thats fine, now i get a connect.

Unfortunately, this provider seems to behave different to the one i use in 32bit :

Lets say i have a stored procedure"

create spName as

select * from mytable

when i execute the following

<%sqlstr = "exec spname"

set myRecSet = CreateObject("ADODB.Recordset")

myRecSet.open SQLStr, myConn

response.write(myRecSet(0)) %>

it gives the first value of the first row with the Connection to a 32bit SQL-Server

but myRecSet seems to be empty on my 64bit SQL Server the response.write leads to an error message.

As far as i understand this, the provider used when connecting to a 32bit Server returns the records selected by the last row of the stored procedure into the recordset, but the provider when connecting to a 64bit server does not return these results.

What can i do, if i dont want to rewrite my asp-programming. I hope somebody has the correct naming / syntax for an connection string which allows me to connect my asp-application to the 64bit SQLServer which behaves like the "old" one for 32bit.

I hope my comments are clear enough - english is obviously not my mother-tongue - and somebody can give me a hint.

Thanks,

Heinrich

What is the error message?

No comments:

Post a Comment