• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

gastao

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

31 mensagens neste tópico

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;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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)"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso confirmo te pk sao duas bases de dados iguais so q a base de dados B q kero passar as coisas esta vazia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

- Como assim?? e q eu nao sei como faço para passar de uma base de dados para outra percebes!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens aplicacoes que comparam 2 base de dados e inserem registos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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()
   

0

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