views:

296

answers:

3

I am moving from SQL 2000 to SQL 2008. The SQL 2000 is on a Server 2003. SQL 2008 is on a Server 2008. I have imported my database successfully. I am able to perform queries and they work fine. I use a VB6 program running in the IDE to update the database.

When my VB6 program runs on a server 2003 the program will connect using the following connection string:

Provider=SQLOLEDB;DATABASE=mydbname;SERVER=my ip;DRIVER={SQL SERVER};UID=myuser;PWD=mypw;

Using the above connection string, I can connect with no errors to either SQL 2000 or the new SQL 2008 database. On the Server 2008, there is no SQLOLEDB driver show, so I have to use the new SQLNCLI10 provider

CCTdbConnectionString = "Provider=SQLNCLI10;Server=myServer\My InstanceName;Database=MyDB;UID=myuser;PWD=mypw;

Here's the problem. When I am running on the Server 2008 I get the error 3228 Selected collating sequence not supported by the operating system. If I hit debug and try again, or stop the program and try again it gets past that error until I reopen the IDE. Then I get a 2nd error encountered is an error 3027 Can Not Update. Database or object is read-only! This never goes away and I'm dead.

A: 

Compile the code: don't use the IDE?

Related KS KB article 246167

gbn
That cured the Collating Sequence Error Messages. Wonder Why?The data base is sill 'Read Only'I Can use SQL Profiler on this same machine with the same credentials and all queries work.
CurtTampa
BTW: This is in VB6, the KB article is for EXCEL
CurtTampa
A: 

After Much research, I have found the answer. SQL 2005 and up apparently require a Unique Key Index exist on every single table that is accessed using ODBC or OLEDB. This Cures the problem.

CurtTampa
A: 

Sorry, that Only cures the Read Only issue, for the Collating Sequence error, all you have to do is Ignore the error and repeat the DB.OPEN a 2nd time to get around that problem.

CurtTampa