Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

[Resolvido] Consulta INNER JOIN em Tabelas de Bases Diferentes

Recommended Posts

Olá pessoal,

 

Estou tentando realizar a consulta abaixo (apenas de teste para ver como criaria uma consulta entre bases diferentes no VS 2005). Ambas as bases são de mesmo servidor. No SQL Server 2005 ela funciona direitinho, só não estou conseguindo implementar na minha aplicação.

 

Dim SQL As New System.Text.StringBuilder

Dim Ds As New Data.DataSet

Dim Cm As New SqlCommand

Dim Cx As New SqlConnection

Dim Da As New SqlDataAdapter

 

SQL.Append(" SELECT A.Cur_Codigo, A.Cur_Sigla, A.Cur_Nome, ")

SQL.Append(" A.Cur_Ativo, A.Tipo_Codigo, ")

SQL.Append(" B.Cur_Nome(CURSO, B.Cur_Ementa) ")

SQL.Append(" FROM CONACC.dbo.TB_Cursos A ")

SQL.Append(" INNER JOIN FECOP.dbo.C_Cursos B ON (B.Cur_Codigo = A.Cur_Codigo) ")

 

Cx.ConnectionString = ConfigurationSettings.AppSettings("cStrConexao")

 

Cm.Connection = Cx

Cm.CommandText = SQL.ToString

Da.SelectCommand = Cm

 

Da.Fill(Ds)

DataGrid1.DataSource = Ds

DataGrid1.DataBind()

Em meu Web.config minha string de Conexão está assim:

 

 

<add key="cStrConexao" value="server=MEU_SERVIDOR;uid=USUÁRIO;pwd=SENHA;database=FECOP"/>

 

 

Porém, está me retornando o seguinte erro:

 

Cannot find either column "B" or the user-defined function or aggregate

"B.Cur_Nome", or the name is ambiguous.

Como posso corrigir isso?

 

Grato,

 

Ilano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá quintelab,

 

Bom, no SQL Server o código está como abaixo e funciona direitinho:

 

SELECT A.Cur_Codigo, A.Cur_Sigla, A.Cur_Nome,

A.Cur_Ativo, A.Tipo_Codigo,

B.Cur_Nome CURSO, B.Cur_Ementa

FROM CONACC.dbo.TB_Cursos A

INNER JOIN FECOP.dbo.C_Cursos B ON (B.Cur_Codigo = A.Cur_Codigo)

Mas, onde uso o OWNER? Pois já coloquei em todas as posições e sempre dá ero, mesmo no SQL Server, por exemplo:

 

SELECT A.Cur_Codigo, A.Cur_Sigla, A.Cur_Nome,

A.Cur_Ativo, A.Tipo_Codigo,

B.Cur_Nome CURSO, B.Cur_Ementa

FROM OWNER.CONACC.dbo.TB_Cursos A

INNER JOIN OWNER.FECOP.dbo.C_Cursos B ON (B.Cur_Codigo = A.Cur_Codigo)

Aparece o erro: Could not find server 'OWNER' in sysservers. Execute sp_addlinkedserver to add the server to sysservers.

 

 

Só fazendo uma correção no post anterior a linha SQL.Append(" B.Cur_Nome(CURSO, B.Cur_Ementa) ") está errada, deveria ser SQL.Append(" B.Cur_Nome CURSO, B.Cur_Ementa ").

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.