SELECT ACCESS E JOGAR PARA UMA dento SQL

28/08/2008

0

Bom dia pessoal,

precisa da ajuda de vcs, preciso dos dados desse arquivo ATV dentro de uma conexão sqlserver, essa tabela é criada dentro do arquivo mdb do access e preciso trabalhar com ela dentro do sql.


ja´tenho a conexao com acces odbc e já tenho uma conexao SQL

Não sei se consigo deixar claro, mas quem puder ajudar.




Dim sql_trade1 As String = ´select * into ATV from tb_atvltr where cod_cadusu = ´ + vMatricula + ´ and ((year(dta_hor_atvltr) = ´ + RTrim(Str(Year(vdata_ini))) + ´) or (year(dta_hor_atvltr) = ´ + RTrim(Str(Year(vdata_fim))) + ´)) and ((month(dta_hor_atvltr) = ´ + RTrim(Str(Month(vdata_ini))) + ´) or (month(dta_hor_atvltr) = ´ + RTrim(Str(Month(vdata_fim))) + ´)) ´
´***Conexão Access***
Dim dr As Data.Odbc.OdbcDataReader
Dim conexao_trade As Data.Odbc.OdbcConnection
conexao_trade = New Data.Odbc.OdbcConnection(´Driver={Microsoft Access Driver (*.mdb)};DBQ=u:\Tradenet.mdb´)
conexao_trade.Open()
Dim cmd As Data.Odbc.OdbcCommand = New Data.Odbc.OdbcCommand(sql_trade, conexao_trade)
dr = cmd.ExecuteReader()


Oliverjer10

Oliverjer10

Responder

Posts

06/09/2008

Psergio.p

Porque você não cria um linked sever para a tabela do access? Assim você vai poder manipula-la em seu programa como se fosse mais uma tabela do SQL Server.

Se tiver duvida me escreva.


Responder

08/09/2008

Oliverjer10

Caro colega,

1. Faço o linked ser da seguinte maneira, pelo query analyzer

go
exec sp_addlinkedserver
@server = ´trade´, -- nome do linked server
@provider = ´microsoft.jet.oledb.4.0´, -- provider para access
@srvproduct = ´trade´, -- pode ser qualquer coisa
@datasrc = ´\\172.20.0.244\teste\tradenet.mdb´ -- caminho completo + nome do banco access
go

2. Em seguida executei esse comoando no query analiser para testar:
EXEC sp_tables_ex trade
3. Apresenta o erro abaixo:

Servidor: Msg 7399, Level 16, State 1, Procedure sp_tables_ex, Linha 20
OLE DB provider ´microsoft.jet.oledb.4.0´ relatou um erro.
[OLE / DB provedor retornou mensagem: O mecanismo de banco de dados Microsoft Jet não pode abrir o arquivo ´\ \ 172.20.0.244 \ teste \ tradenet.mdb ´. É já abriu exclusivamente por outro usuário, ou você precisa de permissão para exibir seus dados.]
OLE DB error trace [OLE / DB Provider ´microsoft.jet.oledb.4.0´ IDBInitialize:: Inicializar retornou 0x80004005:].

Já estou com as permissões e se eu criar um arquivo novo lá nesse 172.20.0.244 apresenta a mesma mensagem.

Já tenho uma conexão odbc pelo painel de controle com driver do access que está mapeada para letra u:
se puder ajudar ou precisar de mais detalhes eu informo, grato.


Responder

08/09/2008

Oliverjer10

Só mais um detalhe, outro colega do forum me indicou faser assim o linked server e atualizar o mdac.

use master
if (select count(*) from master.dbo.sysservers where srvname=´trade´)=0
EXEC sp_addlinkedserver

@server=´TRADE´,
@srvproduct=´TRADE´,
@provider=´MSDASQL.1´,
@datasrc=´TRADE´
GO

apresentou esse erro:
error 7302: Could not create an instance of ole dbprovider ´MSDASQL.1´
OLE DB error trace [ non-interface error: CoCreate of DSO for MSDASQL.1.returned 0x80040154].


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar