Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 DESAFIO PARA EL QUE MAS SEPA
 Foro Bloqueado  Tema Bloqueado


Autor Temas
berfer
New Member


56 Posts
Mensajes - 24 May 2004 :  19:57:51  Ver Perfil  Enviar Email
Tengo una bbdd creada en access llamada TIENDA.MDB con una tabla articulos y tengo otra base de datos ALMACEN.MDB y quiero con codigo asp copiar la tabla articulos de la bbdd tienda.mdb a la base de datos almacen.mdb como lo puedo hacer???

Alexis_m20
Senior Member

Chile
1021 Posts
Posted - 24 May 2004 :  20:52:59  Ver perfil  Enviar e-mail  Visit Alexis_m20's Homepage
PERO LAS TABLAS EN LOS DOS LADOS SON IGUALES O NO

Si puedo ayudar lo hare
Entren a mi web y registrense
http://www33.brinkster.com/alexis20Inicio Pagina

leandrin_f
New Member

Argentina
50 Posts
Posted - 24 May 2004 :  20:54:46  Ver perfil  Enviar e-mail
En primer lugar tenes que crearte la tabla en la base de datos en almacen.mdb para esto usas el comando CREATE TABLE, luego necesitas 2 conecciones, 1 a cada base de datos y por ultimo recorres los registros de la tabla origen y los vas insertando en la tabla destino.

Inicio Pagina

berfer
New Member


56 Posts
Posted - 24 May 2004 :  21:07:50  Ver perfil  Enviar e-mail
Si, las dos tablas son iguales y respondiendo a leandrin_f te dire que no tengo por que conocer la estructura de la tabla, imagina que la tabla tiene 5000 campos que lata el tener que escribirlos otra vez ¿no? si ya lo hice una vez quiero que esa tabla la pueda usar en otra bbdd

Inicio Pagina

Alexis_m20
Senior Member

Chile
1021 Posts
Posted - 24 May 2004 :  23:06:46  Ver perfil  Enviar e-mail  Visit Alexis_m20's Homepage
lo que tu quieres es que te cree una secuencias de comando la cual te permita crear exactamente la misma tabla y los mismos campos

pero bueno en asp
eso no se puede hacer (hasta donde yo se)

Si puedo ayudar lo hare
Entren a mi web y registrense
http://www33.brinkster.com/alexis20Inicio Pagina

leandrin_f
New Member

Argentina
50 Posts
Posted - 25 May 2004 :  23:58:30  Ver perfil  Enviar e-mail
Mmm....
1_ Esta bien, no me habias dicho que no tenes porque conoser la estructura de la tabla, pero no veo porque esto es un problema.
luego de establecer la coneccion a la tabla origen recuperas los 5000 campos en un array para crear la tabla destino, este proceso puede ser un poco pesado pero para lo que queres hacer es lo unico que te queda, loego usas los datos del array para crear la tabla destino, despues te conectas y vas recorriendo con un For o un while la tabla origen e insertando en la ta bla destino.
Bueno espero que te sirva y si tenes alguna duda no dudes en molestarme (leandrin_f@hotmail.com)


Inicio Pagina

snomar
Starting Member

España
42 Posts
Posted - 26 May 2004 :  08:43:41  Ver perfil  Enviar e-mail
' Damos un tiempo de espera largo para la conexion del servidor

Server.ScriptTimeout=1000 ' A saber y depende de la cantidad de registros de la BD

'Conectamos con DSN a la base de datos
cn.Open dns2
sql = "SELECT * FROM ALMACEN"
rs.Open SQL, cn
'Ponemos el contador a 0
contador=0

' Nuestras tres variables para jugar con la bd
Dim oConn, rs, SQL

'Creamos los objetos
set oConn=Server.CreateObject("ADODB.Connection")
set rsQ=Server.CreateObject("ADODB.Recordset")

'Conectamos con DSN a la base de datos
oConn.Open dnsQ
' Tenemos que traernos algo al recordset. Podemos traer toda la tabla,
' pero si es muy grande no tiene sentido traerla para no hacer nada.
' Podemos hacer, en cambio, una consulta que aunque no nos devolviese nada
' nos proporcionaría el recordset que necesitamos.
' La cláusula WHERE campo = valor nos trae sólo los registros que cumplan el criterio.
' Tenemos que especificar un Cursor y un Lock (cerrojo) que permitan editar.
rsQ.CursorType=1
rsQ.LockType=2
SQL="SELECT loquesea,dato1,dato2 FROM registros ;"
'Ahora añadimos un registro nuevo
rsQ.Open SQL, oConn

Do While NOT rs.EOF
'*********************INICIO Bucle

rsQ.AddNew
rsQ("datos")=rs("datos")
Y todos los campos *****

'*************** FIN Bucle
rs.MoveNext
contador=contador+1
Loop

'Guardamos los cambios
rsQ.Update

'Cerramos la conexion
rsQ.close
set rsQ=nothing

response.write ("<center><br><br><br><br>Trasladados un total de ")&contador&(" registros de la base ")&loca&(" . ")

'Cerramos la conexion de entrada de datos
set rs = nothing
Set cn = nothing


yoInicio Pagina

snomar
Starting Member

España
42 Posts
Posted - 26 May 2004 :  08:50:01  Ver perfil  Enviar e-mail
por cierto, los desafios te los guardas , mira de leer los tutoriales y ejemplos de asptutor asi nos ahorras ver que no te curras lo minimo.


Copiando sin leer no se aprende.

yoInicio Pagina

chec0
Junior Member

Colombia
145 Posts
Posted - 26 May 2004 :  22:14:51  Ver perfil  Enviar e-mail  Enviar chec0 un Mensaje ICQ
existe una forma de crear tablas con el comando CREATE TABLE como te dicen anteriormente pero el problema es que ahi tienes que definir el nombre del campo y el tipo para cada uno de los campos que se van a tener y si no conoces la estructura tendras que recorrer campo por campo de la tabla origen preguntando que tipo es para ir generando el codigo para el CREATE TABLE y despues de eso poder hacer un INSERT para la nueva tabla pero eso no es necesario uno por uno si no a traves de un select
INSERT INTO MyTable (PriKey, Description)
SELECT ForeignKey, Description
FROM SomeView

CHEC0 a sus serviciosInicio Pagina

Carlitos
Moderator

Chile
881 Posts
Posted - 27 May 2004 :  20:00:14  Ver perfil  Enviar e-mail
Hola a todos:
Mira yo creo que esta bien que traten de resolverlo con asp..pero no es la mejor solución ya que creo que eso lo debes hacer una vez (la idea es tener tu nfo centralizada!!!.
Creo que es mejor hacerlo con Access Directamente !!!
Ahora si son tablas de SQl Server puedes utilizar DTS.


Carlitos ayuda a sus amigos!!Inicio Pagina

leandrin_f
New Member

Argentina
50 Posts
Posted - 28 May 2004 :  14:33:46  Ver perfil  Enviar e-mail
Si chec0 entiendo lo que decis y es por eso que le digo que tiene que capturar el tipo de datos del campo y para eso existe

for i = 0 to ts.fields.count - 1

vartipodedato = rs.fields.item(i).type
varnombrecampo = rs.fields.item(i).name

next

suponiendo que nuestro recordset se llame rs es la variable del de esta forma cargamos en la variable (vartipodedato) el tipo de dato y en la variable (varnombrecampo) el nombre. Tambien podemos capturar con otras propiedades la longitud del campo, si es o no requerido ,etc ...


Inicio Pagina

@lbert0
New Member

Mexico
67 Posts
Posted - 23 Jun 2004 :  00:14:27  Ver perfil  Enviar e-mail  Enviar @lbert0 un Mensaje Yahoo!e
Sinceramente creo que leandrin_f lo que quiere es que le hagamos el trabajo por que el 1 no sabe o 2 es un flojo que quiero que los demas hagamos o hagan su trabajo.Inicio Pagina
TYler Durden
Starting Member


19 Posts
Posted - 23 Jun 2004 :  12:30:11  Ver perfil  Enviar e-mail
Hola a todos.
Esto tiene solución....

En ASP puedes utilizar un tipo de objetos llamados ADOX (extension de ADO).

Mediante algunos de los objetos de ADOX, puedes extraer la informacion de esquema de la tabla a copiar (nombre de campos, tipos de datos...) y crear una nueva tabla con la misma estructura.

Te aconsejo que le heches un vistazo a la MSDN alli encontraras la informacion necesaria.Inicio Pagina

betisimo
Starting Member


21 Posts
Posted - 25 Jun 2004 :  20:19:33  Ver perfil  Enviar e-mail
A ver si esto te vale

'Abre las conexiones a las 2 bbdd, eso lo primero

<%
'creamos la ruta donde estan las bbdd
archivo=request.serverVariables("APPL_PHYSICAL_PATH")
bdtienda=archivo & "\tienda.mdb"
bdalmacen=archivo & "\almacen.mdb"

sSQL="Select * from almacen"
set sss=oconn.execute(sSQL)
if sss.eof then
insSQL="Insert into almacen in '"& bdtienda & "' select almacen.* from almacen in '"& bdalmacen & "'"
set ins=oconn.execute(insSQL)
end if


Siempre intentando aprenderInicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar