Using an ADODB connection to query 2 different servers

I am currently using ADODB connections to make my queries from VB6 to SQL servers.  My question is how do you make a statement that will reference 2 different SQL servers?  I want to eventually query one SQL server, take data from a particular table and then INSERT that into a different SQL server.

Below I have sample code that I use currently to transfer data from one table to another on the SAME SQL server.

    Set MyRec = CreateObject("adodb.recordset")
    MyConn.Open = "provider=SQLOLEDB;Server=testserver;database=Data1;user id=sa;password=test123"
    sSQL = "INSERT INTO [Data1].DBO.Table2_t "
    sSQL = sSQL & "SELECT [Data1].DBO.Table1_t.* "
    sSQL = sSQL & "FROM [Data1].DBO.Table1_t; "
    MyConn.commandtimeout = 0
    MyRec.Open sSQL, MyConn
    MyConn.Close

Thanks
ADEZOYSA1Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

John EastonDirectorCommented:
It sounds like the best option is to create a linked server.  This would allow you to access data on the second server by using table names like [SRVR002].database.dbo.table from the server you are connected to.

Please see this Microsoft article for detailed information.
0
ADEZOYSA1Author Commented:
I thought of that as well.  And I believe it works well when you create the LINKS and then use that within the SQL Management's Query area.

However, I want to do this directly from VB6.

Is there a way to reference the LINKS within VB6?

Thanks
0
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
You can set up a Linked Server on one of both MSSQLs. That allows the server the link is defined in to connect to the other one with something like
  insert into [MySecondServer\instanceName].DB2.Schema.Tbl2 select * from DB1..Tbl1
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

QlemoBatchelor, Developer and EE Topic AdvisorCommented:
As soon as you have defined the Linked Server entry, you can use it in any SQL tool or programming language, including VB6.
0
ADEZOYSA1Author Commented:
makes sense, let me try this and I will let you know.
0
ADEZOYSA1Author Commented:
Qlemo,

I first created the LINKED server and then tried the reference in my code and got INVALID OBJECT NAME.

So just to make sure that I got the LINK correct.  I went into the SQL Server Management and then created a simple SELECT on the "linked" tables and got the following:

OLE DB provider "SQLNCLI10" for linked server "SRV-NEWANA" returned message "Unspecified error".
OLE DB provider "SQLNCLI10" for linked server "SRV-NEWANA" returned message "The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.".
Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "SERVER1". The provider supports the interface, but returns a failure code when it is used.


Any ideas?
0
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
No clue. You are, of course, trying to access MSSQL, do you?
0
ADEZOYSA1Author Commented:
Yes that is correct.  One server is SQL 2000 and the other is SQL 2008 R2.
0
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
I've just tried that (again). No issues with a link to MSSQL 2000 in MSSQL 2008r2. Maybe an issue with the (underprivleged) db user?
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.