Ir para o conteúdo
gastao

passar de bases de uma base de dados para outra!!!

Mensagens Recomendadas

gastao    0
gastao

Boa noite,

É a primeira vez que escrevo no forum, e tou a ver que aqui ajudam dentro dos possiveis, tenho as bases notórias de .net, e desde ja tou a fazer migraçao de vb.net 2003 para 2008 pelo q ando um bocado a nora em termos de ligações e por ai fora...

Pronto falando de coias serias, o q eu desejo fazer e do genero de um integrador de bases de dados, ou seja tenho Base de dados A e B, e quero passar por exemplo campos existentes de uma tabela econtrada na base de dados A para uma tabela completamente distinta da base de dados B, estas bases dados sem tar interligadas uma a outra. sejam bases de dados feitas em access pra ja

Se alguem me puder dar umas luzes sobre este assunto agradecia

a todos Abraços;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
José Lopes    1
José Lopes

integrador de bases de dados :dontgetit:

A mim parece-me que queres criar código para criares objectos numa BD que existam noutra....

Pelo que conheço... à excepçao da utilização das próprias ferramentas da BD para importação de dados... não existe nada para fazeres o que queres.... nos grandes SGBD's... tu podes criar todos os objectos por código... é na boa... mas em access... nao me lembra de ter visto isso...

Estou aqui a lembrar-me por exemplo dos CMS em PHP, e de alguns scripts de php... trazem código embutido para criar e povoar base de dados... logo é possivel.... agora.. copiar de uma para a outra.... não sei não....

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

Pelo que estou a ler parece-me que vais ter de ler uma e depois verificar se existe na outra e, caso não exista, escrever.

No entanto é melhor, e uma vez que parece algo complexo, explicares um pouco melhor e dares alguns exemplos.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

sim jpaulino, entendes te me o que eu keria, ou seja Base de dados A com tabela x com os campos exemplo id,nome,tipo e base de dados B com tabela y com is campos id, nome, idade mas so eu querendo verificar se esse nome ja existe na base dados B se nao existir escrever...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

Mas os campos têm algo em comum ?

Isto não é uma questão que se responde com um exemplo e aplica-se no teu código. Tens de ler um pouco, fazer alguns testes, antes de funcionar como deve ser.

Vê este exemplo:

VB.NET: Utilizando o controlo ComboBox

Mostra como ler informação de uma tabela de access e preencher um dataset. O dataset poder ter uma ou mais tabelas, mas a ideia é leres a informação para um dataset da tabela A e repetir para a tabela B.

Depois poder verificar que informação tens em uma e não em outra (de acordo com um critério que defines) e escrever na tabela que está em falta.

Dá trabalho mas não é nada que não se faça.

Poder explicar no entanto qual é o objectivo ? Pode ser que exista uma solução mais agradável e simples de implementar.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

Os campos tem algo em comum como assim???  so mesmo o tipo do campo!

Pois a Base dados B encotrasse  Vazia!

o objectivo  q quero construir, e mais do genero de ter umas bases de dados com dados e ir buscar informaçao que me vao preenchendo a Vazia;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

ou seja base de dados A tenho a tabela alunos, e nessa tabela existem os campos ids, nome, idade, mail... e na base de dados tambem existe uma tabela alunos (com outro nome), com os campos ids, nome, idade.... por ai fora, mas esta bd B estando vazia, so quero passar os dados de uma pra outra sem colidir informação e repetir no intuito de tentar fazer uma base de dados de varias!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

ou seja base de dados A tenho a tabela alunos, e nessa tabela existem os campos ids, nome, idade, mail... e na base de dados tambem existe uma tabela alunos (com outro nome), com os campos ids, nome, idade.... por ai fora, mas esta bd B estando vazia, so quero passar os dados de uma pra outra sem colidir informação e repetir no intuito de tentar fazer uma base de dados de varias!

Então só tens de ler como te mostrei e depois criar um ciclo nos dados lidos e inserir na base de dados final.

Vê o exemplo que te mostrei para ler a informação, implementa ou tenta implementar, e à medida que vais tendo dúvidas vais perguntando.

Não se pode colocar o código e dizer: "toma, é assim" porque envolve muita coisa.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

tenho as tabelas a aparecerem me no form e agora tenho um botao que me vai fazer a passagem de um lado pro outro nAS bases de dados mas tou uma beca a nora...

tenho que abrir as conexoes do genero:

If ****.State = ConnectionState.Open Then ****.Close()

        If conB.State = ConnectionState.Open Then conB.Close()

        Dim st = "Insert into conb.tabela(id,nome,value) Select * from ****.tabela"

        Dim cmd As New OleDbCommand(st, ****)

        Dim cmd1 As New OleDbCommand(st, conB)

        ****.Open()

        cmd1.ExecuteNonQuery()

so que isto da erro

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

E as tabelas têm os mesmos campos ? É que isso é para inserir os id,nome,value com todos os que vêm da tabela.

Não testei mas devia ser assim

"insert into tabela(id,nome,value) values (select a,b,c from outratablea)"

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

Em access nunca testei esses comandos complexos (ler e escrever ao mesmo tempo) mas acho que funciona sem problemas.

Vou ter de testar melhor mas confere se os campos são do mesmo tipo (tamanho, tipo, etc)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

Boas novamente,

tendo duas bases de dados,em mdb como vou conseguir passar a informação de uma para outra.

Ja abri as conexoes a base de dados, agora o q me falta e do genero ter um botao e fazer a query q nao tou a ver como! alguem csg dar uma ajudinha?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

tal e qual o que eu quero fazer... so que nao sei do genero sei  q tenho de abrir as duas bases de dados ou seja liga las isso na boa, so q falta me o statement em sql q tou a nora nao sei com ir buscar da tabela A da base de dados A para por na Tabela B na base de dados B, isso depois o que kero fazer e so fazer uma copia tambem dos campos q eu desejo das umas luzes sff?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
PauloR    0
PauloR

Trabalha apenas com uma ligação e uma base de dados.

Fazes o link das tabelas da 2ª DB na primeira e apenas trabalhas com uma DB.

Vai facilitar muito o processo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

Trabalha apenas com uma ligação e uma base de dados.

Fazes o link das tabelas da 2ª DB na primeira e apenas trabalhas com uma DB.

Vai facilitar muito o processo.

Tipo mas isso nao me intressa pk imagina eu tenho varias bases de dados para uma final, eu assim tinha dois ou tres trabalhos, e do genero tenho uma base de dados destino e nas q kero comparar ou ir buscar dados posso sempre indo mundando! uma das razoes que quero bases de dados diferentes, so precisava de um pequeno exemplo, e q tou completamente a nora

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
PauloR    0
PauloR

Não vejo porque razão vais ter mais trabalho assim.

Tens a BD "x" que é para onde vais copias os dados correcto?

Tens as BD "a" "b" "c" etc que é onde trabalhas correcto?

Se tiveres as tabelas da BD "x" linkadas na "a", "b", "c" sabes sempre o que tens na BD final e o que deves ou não copiar.

Assim apenas precisas de trabalhar com "a" ou com a "b" ou com a "c" etc ... e a "x" tem os registos de todas as outras BD...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

nao pk eu para isso tenho q tar a abrir a base de dados e espetar la as tabelas assim faço logo em runtime pk vou usar campos especificos msm

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
PauloR    0
PauloR

Se queres inserir na tabela final os valores que te falta da tabela inicial tens de fazer o insert assim:

Isto é um exemplo mas acho que é isto que necessitas


INSERT INTO BDFinal_Table1 (codigo, desc1, desc2) 
SELECT * FROM table1 WHERE ((table1.codigo) NOT IN (select codigo FROM BDFinal_Table1))

Com o cenário das tabelas linkadas só tinhas de correr este SQL quando precisasses de fazer actualizações a base de dados final.

nem mais nem menos  :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
gastao    0
gastao

tenho de momento algo assim do genero que nao esta a funcionar, alguem me consegue dar uma dica?

    
    Dim conB As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection("Provider = Microsoft.jet.OleDB.4.0;Data Source = " & OpenFileDialog1.FileName)
        Dim **** As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection("Provider = Microsoft.jet.OleDB.4.0;Data Source = " & OpenFileDialog1.FileName)
        ****.Open()
        conB.Open()
        Dim selecao As String
        selecao = "select * from Tabela1"
        Dim oledbselect As New OleDbCommand(selecao, conB)
        oledbselect.ExecuteNonQuery()

        Dim insere As String
        insere = "insert into Tabela1"
        Dim oledbinsere As New OleDbCommand(insere, ****)
        oledbinsere.ExecuteNonQuery()
        ****.Close()
        conB.Close()
   

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade