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

añadir una lista de registros

Estas en el tema de añadir una lista de registros en el foro de ASP Clásico en Foros del Web. hola nuevamente aca estoy para preguntarles si es posible insertar a una tabla access una cantidad x de registros, me explico tengo un formulario en ...
  #1 (permalink)  
Antiguo 29/03/2007, 01:22
 
Fecha de Ingreso: febrero-2007
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
añadir una lista de registros

hola nuevamente aca estoy para preguntarles si es posible insertar a una tabla access una cantidad x de registros, me explico tengo un formulario en el cual llamo a una tabla con 2 campos, los listo y agrego 3 input text para ingresar valores codigo:
Código:
'proc_compras.asp
sSQL="Select tipo_moneda,stock From apertura Order By tipo_moneda"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "casa_cambios"

Set RS = Server.CreateObject("ADODB.Recordset")


RS.Open sSQL, conn,3,1
%>
<table  border="0"align="center">
<tr>
<td align="center" class="head2"><B>Tipo de Moneda</B></td>
<td align="center" class="head2"><B>Stock</B></td>
<td align="center" class="head2"><B>Cantidad</B></td>
<td align="center" class="head2"><B>Precio $</B></td>
<td align="center" class="head2"><B>Total $</B></td>
</tr>

<%
Do While Not RS.Eof
%>

<form method="POST" action="proc_compras2.asp" name="proc_compras">
<tr>
<td class="head4"><%=UCASE(TRIM(rs("tipo_moneda")))%></td>
<td align="center" class="head3"><input type="text" name="stock" disabled readonly id="stock" size="10" maxlength="10" class="text1" value="<%=RS("stock")%>" style="text-align:right"></td>
<td align="center" class="head3"><input type="text" name="cantidad" onBlur="calculo(this.form)" size="10" maxlength="10" class="text1" style="text-align:right"></td>
<td align="center" class="head3"><input type="text" name="precio" onBlur="calculo(this.form)" size="10" maxlength="10" class="text1" style="text-align:right"></td>
<td align="center" class="head3"><input type="text" name="total" disabled readonly id="total" onBlur="calculo(this.form)" size="10" maxlength="10" class="text1" style="text-align:right"></td>
</tr>
</form>
<%
RS.MoveNext
Loop

RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
%>
como se fijan pueden muchos los registros ke muestro ,
tipo de moneda---stock---cantidad---precio---total
----euro---------1000------500-------700----35000
----dolar---------2000-----1000-------500----50000
....y asi segun la cantidad de tipos de moneda y stock ke hay ingresados en la tabla apertura, la cosa es ke me gustaria guardar toda esa lista en otra tabla y eso es lo ke no he podido hacer, en la siguiente pag. "proc_compras2.asp" hago un response.Write y ni sikiera vienen los valores, la verdad es ke nose si se podran guardar mas de un registro a la vez
Código:
'proc_compras2.asp
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "casa_cambios"
sSQL="SELECT * FROM movimientos where tipo_moneda = '" & tipo_moneda & "'"
set RS = Conn.Execute(sSQL)
do while not rs.eof 
sSQL1="Insert Into movimientos (tipo_moneda,stock,cantidad,precio,total) values ('" & tipo_moneda & "'," & stock & "," & cantidad & "," & precio & "," & total & ")"
rs.movenext
set rs = Conn.Execute(sSQL1)

loop
rs.close
la idea es poder procesar la compra y venta de dolares,euros,etc. y lo primero ke me imagine fue listar todas la monedas con sus respectivos stock e ingresarles cantidad,precio y total, bueno si es ke no se puede de esta forma estaria muy agadecido ke me dieran alguna sugerencia, saludos y gracias
  #2 (permalink)  
Antiguo 29/03/2007, 04:55
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Re: añadir una lista de registros

En proc_compras.asp, la consulta

Código:
sSQL="Select tipo_moneda,stock From apertura Order By tipo_moneda"
has de cambiarla por

Código:
sSQL="Select * From apertura Order By tipo_moneda"
' con lo que selecionas todos los campos de la tabla

o por

Código:
sSQL="Select tipo_moneda,stock,cantidad,precio,total From apertura Order By tipo_moneda"
Por otro lado el form proc_compras, ¿cómo lo estás sumitando?

En proc_compras2.asp

¿De donde sacas la variable, tipo_moneda?

Una vez que tengas solucionado todo eso hechale un vistazo a este post

http://www.forosdelweb.com/f15/update-30-registros-475398/

Suerte
  #3 (permalink)  
Antiguo 29/03/2007, 09:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: añadir una lista de registros

voy a probar gracias
  #4 (permalink)  
Antiguo 29/03/2007, 14:58
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo Re: añadir una lista de registros

Son varias cosas las que veo.
primero: no te recomiendo usar el select *
dos motivos, primero hace mas lento tu programa, segundo lo que veo en tu còdigo es que unicamente utilizas las dos columnas que incluyes en el select por lo tanto no necesitas recuperar todas las columnas, sin embargo puede asumirse.

segundo: (en tu còdigo pones)
Do While Not RS.Eof
%>

<form method="POST" action="proc_compras2.asp" name="proc_compras">
<tr>
<td class="head4"><%=UCASE(TRIM(rs("tipo_moneda")))%></td>
<td align="center" class="head3"><input type="text" name="stock" disabled readonly id="stock" size="10" maxlength="10" class="text1" value="<%=RS("stock")%>" style="text-align:right"></td>
<td align="center" class="head3"><input type="text" name="cantidad" onBlur="calculo(this.form)" size="10" maxlength="10" class="text1" style="text-align:right"></td>
<td align="center" class="head3"><input type="text" name="precio" onBlur="calculo(this.form)" size="10" maxlength="10" class="text1" style="text-align:right"></td>
<td align="center" class="head3"><input type="text" name="total" disabled readonly id="total" onBlur="calculo(this.form)" size="10" maxlength="10" class="text1" style="text-align:right"></td>
</tr>
</form>
<%
RS.MoveNext
Loop
---*
eso significa que estas creando un FORM por cada registro de tu tabla y todos los FORM con el mismo nombre, es decir, si tienes mil registros tendras 1000 FORM en tu pagina todas llamadas igua; yo te recomendarìa hacer uno solo fuera del while.
---*

Tercero:
lo que muestras no tiene nada que ver con la inserciòn en tu tabla, ese es otro problema...
en tu codigo pones:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "casa_cambios"
sSQL="SELECT * FROM movimientos where tipo_moneda = '" & tipo_moneda & "'"
set RS = Conn.Execute(sSQL)
do while not rs.eof
sSQL1="Insert Into movimientos (tipo_moneda,stock,cantidad,precio,total) values ('" & tipo_moneda & "'," & stock & "," & cantidad & "," & precio & "," & total & ")"
rs.movenext
set rs = Conn.Execute(sSQL1)

loop
rs.close
----*
ahi veo algunas cosas. Primero haces un SELECT * (cosa que en todos los POST pongo que no recomiendo ) pero indistintamente de eso, haces el SELECT a la tabla movimientos y luego haces un recorrido al cursor que ese query te devuelve, dentro de el estas insertando nuevamente en la tabla movimientos, eso ya me parece extraño dado a que estarìas duplicando informaciòn, sacas data de una tabla para insertarla en la misma tabla.
Otra cosa que notè, ejecutas el INSERT con el mismo recordset con el que haces el bucle, para el insert no necesitas un recordset, solo la conexion
Conn.Execute("insert ...... ")

y para terminar este mensaje algo largo...
si hay forma de hacer una insersiòn masiva sin necesidad de hacer un recorrido.

sSql = "INSERT INTO TABLA_1 (COLUMNAS) SELECT COLUMNAS FROM TABLA_2 WHERE CONDICION "
Conn.Execute(sSql)

tomando en consideraciòn que la cantidad de columnas de tu insert tiene que ser la misma que en tu select y los tipos de datos de las columnas del insert deben ser las mismas que la del select y en el mismo orden.
  #5 (permalink)  
Antiguo 30/03/2007, 00:51
 
Fecha de Ingreso: febrero-2007
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: añadir una lista de registros

hola primero ke nada muchas gracias por el interes de ayudarme pero solucione parte del problema ingresando de a un registro y redireccionandolo a un listado donde lo puedo ir mostrandolos, ahora si es que se puede es posible colocar un identificador a la compra? por ejemplo un cliente compra euros y dolares y ke despues pueda acceder a esa venta especifica?. saludos
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




La zona horaria es GMT -6. Ahora son las 16:45.