Ir para conteúdo

POWERED BY:

Arquivado

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

xanburzum

[Resolvido] transferir os dados de uma tabela para outra

Recommended Posts

Com isso você pode transferir os dados de uma tabela para outra localizada em um banco de dados diferente, depois que você pode baixar a segunda base de dados,script para exportar dados de uma tabela em um banco de dados para outra tabela em outro mdb.

 

É muito simples, primeiro de tudo você precisa de dois bancos de dados Acces, com menos uma tabela com as mesmas colunas

 

Dados1.mdb em um arquivo do access com a seguinte estrutura:

id - Número

login - Texto

password - Texto

 

 

<%Option explicit
Response.Buffer=True



	Dim dsn1, dsn2, tabla1, tabla2, basedatos1, basedatos2, basedatosseguridad, ncampos, columna, useDSN
	
	useDSN ="Yes" '  se  usar DSN ou não "Não" ou "Sim"

	dsn1 = "DSN=DSNdatabase1" 
	dsn2 = "DSN=DSNdatabase2"
	
	tabla1 = "table1" ' Esta é a tabela de onde você quer exportar
	tabla2 = "table2" ' Esta é a tabela que recebe os dados
	
	basedatos1 = "c:\webserver\wwwroot\dado\dados1.mdb" '  full path no server
	basedatos2 = "c:\webserver\wwwroot\dado\dados2.mdb"
	basedatosseguridad = "c:\webserver\wwwroot\dado\dados2backup.mdb"
		' o nome ea pasta para a cópia do arquivo datos2.mdb antes de importar os dados
	
		
	ncampos = 3 ' número de colunas que você deseja exportar / importar
	columna = Array("id", "login", "password") ' como colocar nomes como o número de colunas na matriz




'>>>>>>>>>>>>>>>>>>>>>>>>>>> Aqui é onde podemos fazer uma cópia de backup do banco de dados de última temp
				Dim fso, f2
				Set fso = CreateObject("Scripting.FileSystemObject")
				Set f2 = fso.GetFile (basedatos2)
			    f2.Move (basedatos2)
			    f2.Copy  (basedatosseguridad)

'>>>>>>>>>>>>>>>>>>>>>>>>>>> Aqui vamos excluir todos os dados da tabela 2
			Dim cnDelete, SQL, rsDelete

			Set cnDelete = Server.CreateObject("ADODB.Connection")
				if useDSN = "No" then
					cnDelete.Provider="Microsoft.Jet.OLEDB.4.0"  ' ***** Descomente esta linha se você não usar DSN
					cnDelete.Open basedatos2
				else
					cnDelete.Open dsn2
				End if
			SQL= "DELETE * FROM " & tabla2  
			Set rsDelete = cnDelete.Execute(SQL)
			cnDelete.close
			response.write "<br><br><br>Press the link for downloading the generated mdb file : "" " & basedatos2 & """<br>"
'response.end


'>>>>>>>>>>>>>>>>>>>>>>>>>>> Aqui vamos abrir o banco de dados grande para a leitura dos dados database1
				Dim cn1, SQL1, rs1
		
				Set cn1 = Server.CreateObject("ADODB.Connection")

				if useDSN = "No" then
					cn1.Provider="Microsoft.Jet.OLEDB.4.0"  ' ***** Descomente esta linha se você não usar DSN
					cn1.Mode = 1
					cn1.Open basedatos1
				else
					cn1.Mode = 1
					cn1.Open dsn1
				End if

				set rs1 = Server.CreateObject ("ADODB.RecordSet")

				SQL1= "SELECT * from " & tabla1  
				rs1.Source = SQL1
				rs1.Activeconnection = cn1
				rs1.CursorType = 0
				rs1.LockType = 1
				rs1.open

'>>>>>>>>>>>>>>>>>>>>>>>>>>>Aqui é onde nós fazemos o loop para atualizar os dados no banco de dados segundo
				Dim cnUpdate,rsupdate,  SQLu, i
				
				
				
				Set cnUpdate = Server.CreateObject("ADODB.Connection")
				cnUpdate.Open dsn2

				do while not rs1.EOF
					SQLu= "INSERT INTO " & tabla2 & " ("
					for i = 0 to ncampos-1  ' loop fields (colunas)
					SQLu= SQLu & columna(i)     
					if i <> ncampos-1 then SQLu = SQLu & "," 'filtando ","
					next
					SQLu = SQLu & ") VALUES ("
					for i = 0 to ncampos-1  ' número de colunas
					SQLu= SQLu & "'" & rs1(columna(i)) & "'"  
					if i <> ncampos-1 then SQLu = SQLu & "," 
					next
					SQLu = SQLu & ")"


					
					'response.write SQLu
					Set rsupdate = cnUpdate.Execute(SQLu) 'executando a  SQL insert.
					rs1.movenext
				loop
				rs1.close
				cnUpdate.close
'>>>>>>>>>>>>>>>>>>aqui vamos chamar o link para o arquivo atualizado
		response.write "<a href='" &  basedatos2 & "'> Download arquivo</a>"				
%> 

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.