Foros del Web » Programando para Internet » ASP Clásico »

Como inserto varios registros a la vez!!???

Estas en el tema de Como inserto varios registros a la vez!!??? en el foro de ASP Clásico en Foros del Web. Hola. Tengo un gran problema. Estoy haciendo una aplicación en Dreamweaver para gestionar una base de datos con ASP. Tengo una tabla "Documentos", y otra ...
  #1 (permalink)  
Antiguo 13/08/2004, 04:48
 
Fecha de Ingreso: agosto-2004
Mensajes: 41
Antigüedad: 20 años, 9 meses
Puntos: 0
Exclamación Como inserto varios registros a la vez!!???

Hola. Tengo un gran problema. Estoy haciendo una aplicación en Dreamweaver para gestionar una base de datos con ASP. Tengo una tabla "Documentos", y otra "Autores". Lógicamente es una relación N:N puesto q un documento puede tener varios autores, por lo que tengo otra tabla "DocAut" que las relaciona con el Id del Documento y el Id del Autor. El caso es que si quiero insertar un nuevo documento, ¿cómo hago para que se inserte en "DocAut" tantos registros como autores seleccione el usuario de la lista múltiple?. He probado con Arraysm pero devuelven los valores separados por comas y cuando selecciono más de un autor me sigue diciendo que los valores de consulta son más que los campos de destino. Estoy desesperado, no hay forma!!, se lo agracedería muchísimo a quién pudiera ayudarme. Gracias.
  #2 (permalink)  
Antiguo 13/08/2004, 10:44
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Claro que hay forma, y muchas.
Pero antes de pegar código de manera indiscriminada, ¿ya buscaste en las respuestas anteriores a ver si alguna te sirve?

Saludos

PD. Bienvenido a este foro, veras que por aca siempre hay soluciones.
  #3 (permalink)  
Antiguo 16/08/2004, 00:01
 
Fecha de Ingreso: agosto-2004
Mensajes: 41
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola Myakire. ¿A qué respuestas anteriores te refieres? No he encontrado ninguna respuesta todavía, he buscado por todo el foro y ninguna de las preguntas se adapta a lo que yo necesito. Si sabes cómo hacerlo, ¿podrías ayudarme?

Muchas gracias.
  #4 (permalink)  
Antiguo 16/08/2004, 15:42
 
Fecha de Ingreso: julio-2004
Mensajes: 27
Antigüedad: 20 años, 9 meses
Puntos: 0
hola para poder insertar datos en dos tabls puedes hacer le asi espero y tecirva

Sql2= "Insert Into Usuarios values ('"&Usuario&"','"&CDKey&"','"&Password&"','"&Pregu nta&"','"&Respuesta&"' )"

Sql3= "Insert Into Privilegios (CDKey,Usuario,Version) values ('"&CDKey&"','"&Usuario&"','"&Version&"')"

bye
  #5 (permalink)  
Antiguo 17/08/2004, 03:29
 
Fecha de Ingreso: agosto-2004
Mensajes: 41
Antigüedad: 20 años, 9 meses
Puntos: 0
Muchas gracias por tu interés Ana Alda, pero no es eso lo que quiero. No pretendo insertar datos en dos tablas, sino desde un formulario insertar varios registros en una sola tabla. Hay en select desde el que el usuario selecciona los autores de un documento, y si selecciona 3, se deberían insertar 3 registros, si selecciona 1, sólo un registro, etc. No hay forma de consguirlo, estoy desesperado!!
Ciao
  #6 (permalink)  
Antiguo 17/08/2004, 08:38
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Bueno, no pienses que es mala onda ni mucho menos, pero es que si lees las respuestas anteriores te darás cuenta de que de un tiempo para aca algunos usuarios no se conforman con algun tip o algo, sino que casi, casi exigen solución a su problema con código y todo.

Sin con lo que veas en por ejemplo, esta liga, no logras hechar a andar tu programa, con gusto te ayudaré. Por que por lo menos ya estaré seguro que le has hecho el intento. Perdona si sientes que soy algo "mamila", y aclaro que esto no es por tí especñificamente, pero ultimamente algunos usuarios estan en un plan de no hacer nada, que la verdad me han estado desaminando en seguir participando en FDW.

Saludos .
  #7 (permalink)  
Antiguo 18/08/2004, 02:00
 
Fecha de Ingreso: agosto-2004
Mensajes: 41
Antigüedad: 20 años, 9 meses
Puntos: 0
Sonrisa

Hola Myakire. Eres un hacha en el foro por lo que veo, eh? jeje. Se agradece muchísimo tu ayuda. Y respecto a tu respuesta anterior te comprendo, la gente se cree que aquí se lo dan todo hecho...
Bueno, a lo que voy. El link que me recomendaste ya lo había visto antes, pero el problema es que estoy trabajando con Dreamweaver y el código no lo conozco mucho. De todas formas he conseguido, mediante el FOR..NEXT, reunir los valores de todos los Selects, pero no consigo hacer que los inserte en la base de datos. A carlunchos le dijiste lo siguiente:

Bueno, el tener el mismo nombre en los elementos te sirve para hacer operaciones tales como updates, deletes y select.

Ejemplos:

SQL = "UPDATE tabla set campo = verdadero WHERE ID IN(" & Request.Form("Check") & ")"
o bien
SQL = "Delete From tabla where ID IN(" & Request.Form("Check") & ")"

Pero para los insert no va.
Tienes que distingirlos según su nombre: Como ya te hemos mencionado, normalmente, agregandoles un número; o por su índice.

Se manejarian mas o menos igual:
<%
for cnt=1 to CInt(request("cantidad"))
if request.form("sel_sino"&cnt)="SI" Then
Sql = "insert .... etc, etc"
End If
next
%>

De la segunda sería con algo mas o menos asi:
<%
for cnt=1 to request.form("sel_sino").count
if request.form("sel_sino")(cnt)="SI" Then
Sql = "insert .... etc, etc"
End If
next
%>


Pero no lo entiendo, no sé a qué corresponden los campos que están entre comillas, si son los nombres de los selects, del formulario, de los campos... no sé si lo selects tienen q tener el mismo nombre o no (ahora tengo Autor1, Autor2... Autor4)
Bueno, perdona si abuso de tí.
Muchísimas gracias.
  #8 (permalink)  
Antiguo 18/08/2004, 07:47
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
A ver FoxM, dime si te he entendido o estoy desvariando: Tienes un formulario, del cual, uno de los campos es una lista múltiple llanada con los registros de 'Autores', dependiendo de cuantos valores elija de dicha lista, serán los registros que se insertarán en la tabla 'DocAut'. ¿Estoy en lo correcto?, si es así prueba con esto:

<%..codigo ASP de conexion y creación del recordset Autores%>
<form method=post action='graba.asp'>
<select name=ListaAutores multiple="multiple">
<%While Not RsAutores.EOF%>>
<option value=<%=RsAutores("IdAutor")%>><%=RsAutores("NomA utor")%></option>
<%
RsAutores.MoveNext
Wend
%>
<select>
<!-- Mas código de formulario -->
<input type=submit name=submit value='Grabar'></td>
</form>

y el código que grabe sería mas o menos así:
<%
...Código de Conexion(si es otro archivo)
vAutores = Request.Form("ListaAutores")

vector = split (vAutores,",")
for i=0 to UBound(vector)
sql = "INSERT INTO DocAut (IdAutor, NomDoc, etc) VALUES ('"&vector(i)&"', '"&request("Nombre del Autor")&"etcetera)"

conexion.Execute(sql)
Next
%>

Prueba y me dices.

Saludos

Última edición por Myakire; 18/08/2004 a las 10:54
  #9 (permalink)  
Antiguo 19/08/2004, 01:30
 
Fecha de Ingreso: agosto-2004
Mensajes: 41
Antigüedad: 20 años, 9 meses
Puntos: 0
Ya lo tengo solucionado. Muchísimas gracias por la ayuda.
No me han hecho falta matrices ni nada, solo un IF...THEN diciéndole que si el campo era distinto de NADA que ejecutara la inserción, y en caso contrario nada.

Gracias otra vez por le interés.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:23.