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

problemas con un insert

Estas en el tema de problemas con un insert en el foro de ASP Clásico en Foros del Web. Saludos a toda la comunidad. Mi Duda es la siguiente: Como podria realizar un Insert a una base de datos, pero considerando que los datos ...
  #1 (permalink)  
Antiguo 26/05/2008, 13:47
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años, 11 meses
Puntos: 1
problemas con un insert

Saludos a toda la comunidad.

Mi Duda es la siguiente:

Como podria realizar un Insert a una base de datos, pero considerando que los datos a insertar son provenientes de una consulta y desplegado en la pagina. No se me ocurre como puedo hacer tal cosa.

Considerando que los valores del select pueden ser "N" Registros.


Cualquier ayuda es bienvenida
  #2 (permalink)  
Antiguo 26/05/2008, 14:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 38
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: problemas con un insert

No te sirve crear la conexion a la base de datos en la misma pagina que estas mostrando y hacer el query del insert tomando los datos de las variables que mostraste?
  #3 (permalink)  
Antiguo 26/05/2008, 15:25
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: problemas con un insert



los resultados de una consulta..... y los depliegas en un textbox? tiene nombre?? esta dentro del formulario de envio de los siguientes datos?

o los estas guardando en un input hidden??

un poco mas de datos, un poco mas de codigo y probablemente se puede orientar mas

una insercion en base de datos, seria en esta forma
directo y todos los campos
Cita:
SQL_ins="INSERT INTO table_nameVALUES (value1, value2,....)"
valores especificos para columnas especificas
Cita:
SQL_ins="INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....)"
[FONT=verdana,geneva,lucida,'lucida grande',arial,helvetica,sans-serif]
la ejecucion tomando en consideracion que ya tienes tu conexion

conexion.execute(SQL_ins)

pondra el codigo o seguiremos adivinando?? ustedes que piensan
[/FONT]
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #4 (permalink)  
Antiguo 26/05/2008, 15:27
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 21 años, 1 mes
Puntos: 7
Respuesta: problemas con un insert

Me Parece Que Tiene 2 Opciones

1 Es Ingresar Los Datos Pasando Los Datos De Query Al Insert

O Luego De Mostrar Tirar Los Valors A Textbox Y Con Ellos Rescartarlos Y Ingresarlos Por Un Insert =)
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #5 (permalink)  
Antiguo 26/05/2008, 15:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: problemas con un insert

miren el codigo es algo enredado por que se hacen varias cosas dentro de el.

esta es la parte que deseo insertar... Esta es la parte en donde despliego los datos del select.

Código PHP:

Sql
="SELECT ART_DB3.PROV,ART_DB3.NOMBRE, ART_DB3.CODIGO, ART_DB3.CODIGO3, ART_DB3.PRECVTA, ART_DB3.PULTCOM,STOCK_DB.STK_OPTIMO, STOCK_DB.STK_CRITIC, STOCK_DB.STK_FISICO FROM C:\INETPUB\WWWROOT\bod\TESTER\ART_DB3.DBF ART_DB3 LEFT JOIN C:\INETPUB\WWWROOT\bod\TESTER\STOCK_DB.DBF STOCK_DB ON ART_DB3.NREGUIST = STOCK_DB.NUMREGSTK WHERE "artFilter &" ORDER BY ART_DB3.CODIGO ASC"
    
    
Reg.Open SqlDBConn 
    swColor
=1
    Dim cont
    Dim intCantidadSugerida
    cont
=0
        
    
Do Until Reg.EOF 
    cont 
cont 1
        
    MyColor
="#FFFFFF"
    
    
if Reg.Fields("STK_CRITIC") >= Reg.Fields("STK_FISICO"then 
        MyColor
="#0099FF"
    
end if
%>
    <
tr bgcolor="<% response.Write(MyColor) %>">
      <
td><div align="center">
          <
input type="text" name="Proveedor" value="<% Response.Write(Reg.Fields("PROV"))%>">
      </
div></td>
      <
td><div align="center">
          <
input type="text" name="Producto" value="<% Response.Write(Reg.Fields("NOMBRE"))%>">
      </
div></td>
      <
td><div align="center">
          <
input name="CodProd" type="text" value="<% Response.Write(Reg.Fields("CODIGO3")) %>" size="20">
      </
div></td>
      <
td><div align="center">
          <
input name="textPventa_<% Response.Write(cont) %>" type="text" id="textPVenta_<% Response.Write(cont) %>" value="<% Response.Write(Reg.Fields("PRECVTA")) %>" size="15"  readonly="readonly"
      </
div></td>
      <
td><div align="center">
          <%     
Response.Write(Reg.Fields("STK_FISICO"))     %>
      </
div></td>
      <
td><div align="center">  
      <%
      if 
Reg.Fields("STK_OPTIMO") > Reg.Fields("STK_FISICO"THEN
          intCantidadSugerida 
Reg.Fields("STK_OPTIMO") - Reg.Fields("STK_FISICO")
      else
           
intCantidadSugerida 0
      End 
if
      
      %>
          <
input name="<% Response.Write(cont) %>" type="text" id="textCant_<% Response.Write(cont) %>" size="4" onBlur="MultiplicarRow(this);" value="<%Response.Write(intCantidadSugerida)%>">
</
div></td>
      <
td><div align="center">
          <% 
Response.Write(Reg.Fields("STK_OPTIMO"))%>
      </
div></td>
      <
td><input name="subtotal_<% Response.Write(cont) %>" type="text" id="subtotal_<% Response.Write(cont) %>" size="15" readonly="readonly"></td>
    </
tr>
    <%
 
Reg.MoveNext 
Loop
%>
         <
input type="hidden" name="hddTotalFilas" id="hddTotalFilas" value="<% Response.Write(cont) %>">
<%
DBConn.Close 
set DBConn 
nothing 
  #6 (permalink)  
Antiguo 26/05/2008, 16:24
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: problemas con un insert

bueno, en si que es lo que deseas insertar, por que ya mirando el codigo significa que traes todo tus resultados, deplegandolos en text box, pero como elijes que guardar

explica mas tu escenario?? todavia esta muy vaga la idea
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 26/05/2008, 20:31
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: problemas con un insert

Lo que deseo es insertar los datos que vengan en el select que se puede apreciar en el codigo.

Código PHP:
<input type="text" name="Proveedor" value="<% Response.Write(Reg.Fields("PROV"))%>"
      </
div></td
      <
td><div align="center"
          <
input type="text" name="Producto" value="<% Response.Write(Reg.Fields("NOMBRE"))%>"
      </
div></td
      <
td><div align="center"
          <
input name="CodProd" type="text" value="<% Response.Write(Reg.Fields("CODIGO3")) %>" size="20"
      </
div></td
      <
td><div align="center"
          <
input name="textPventa_<% Response.Write(cont) %>" type="text" id="textPVenta_<% Response.Write(cont) %>" value="<% Response.Write(Reg.Fields("PRECVTA")) %>" size="15"  readonly="readonly">  
      </
div></td
      <
td><div align="center"
          <%     
Response.Write(Reg.Fields("STK_FISICO"))     %> 

Esos son los campos que desearia que se insertaran!
considerando que los registros son "N"

Última edición por sikociado; 28/05/2008 a las 21:44
  #8 (permalink)  
Antiguo 28/05/2008, 21:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 44
Antigüedad: 16 años, 11 meses
Puntos: 1
De acuerdo Respuesta: problemas con un insert

Encontre la solución No es enredada. Pero sin la ayuda de un amigo me hubiese tardado en buscar la solución.

aca va el codigo.

Lo primero que debemos hacer en la pagina en que despliegan los datos, es un hidden que rescate el numero de filas (numeros de registros) de la consulta que se ha realizado.
Un hidden es facil de crear y su funcion es guardar un valor y que ese valor no sea mostrado al cliente.

Código PHP:
<input type="hidden" name="hddTotalFilas" id="hddTotalFilas" value="<% Response.Write(cont) %>"
Como pueden apreciar es un campo de texto tipo hidden y con un valor. Cuyo valor es contenido por la variable cont.

esta variable cont debe ser creada antes del bucle for , while o Do while y asignandole un valor = 0.

en mi caso la hice con un Do while y kedaria de esta manera.

Código PHP:
Dim cont
cont 
0

Do Until Reg.EOF
cont 
cont +
aca es donde se van contando las filas (cont = cont+1). cada vez que realice el bucle se le ira sumando 1 al contador para luego asi pasar a la fila 2, 3 hasta "N" Filas.

Acontinuación agregamos los valores que deseamos listar que son los de la bd.
en mi caso fue de esta manera
Código PHP:

 
<input type="text" name="Proveedor_<% Response.Write(cont) %>" value="<% Response.Write(Reg.Fields("PROV"))%>">

 <
input type="text" name="Producto_<% Response.Write(cont) %>" value="<% Response.Write(Reg.Fields("NOMBRE"))%>">
      </
div></td>
 
Reg.MoveNext 
Loop 
ya pueden probar imprimiendo la cantidad de filas que existen en la consulta realizada. De la siguiente manera
Código PHP:
<%Response.Write(cont)%> 
------------------------------------------------------------------------

aca esta la pagina en donde se recibe el post.
Es sencillo una vez manipulado el asunto de contar las filas.

Primero se crea la funcion para abrir la coneccion ala base de datos y cargar el driver.
Depende la bd cargas el driver correspondiente.
Código PHP:
<% 
Function 
OpenDBFConn(Path)
  
Dim ConnSet Conn CreateObject("ADODB.Connection")
  
Conn.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" Path ";"                       
  
Set OpenDBFConn Conn
End 
Function
%> 
Luego rescatamos los valores del formulario atraves del post de la siguiente manera.
Código PHP:
Nombre_Variable Request.Form("nombreCampoTexto"
El primer valor el que debemos rescatar es el del hidden (el contenedor del numero de filas de la consulta). De la siguiente manera. Basandome en las variables de mi formularios.
Código PHP:
TotalFilas Request.Form("hddTotalFilas"
Una vez capturado el valor del hidden debemos inicializar nuevamente la variable cont, la que sera que valla pasando de un registro a otro.
Código PHP:
Dim cont
cont
=
Luego debemos hacer el insert pero con un bucle for para poder insertar el numero de registros correspondiente Ocupando el hidden de referencia por que el hidden en este caso es aquel que nos contiene el numero de registro de la consulta realizada. Quedará de la siguiente manera.
Código PHP:
for Iciclo 1 To TotalFilas 
Luego comenzamos a rescatar los valores del formulario que son enviado atravez del post de la siguiente manera, para luego ser pasados a variables y poder ponerlos en el insert del sql.
Código PHP:
producto Request.Form("Producto_"cont)
CodigoProducto Request.Form("CodProd_"cont)
PrecioV Request.Form("textPventa_"cont
una vez realizado este paso accedemos a realizar nuestro insert en sql.
Código PHP:
sSQL="Insert Into tabla (CampoBD1, CampoBD2, CampoBD3) values ('" producto "','" CodigoProducto "','" PrecioV "')"
Set Reg DBConn.Execute(sSQL
ojo siempre tener cuidado con el nombre de las variables. Es un error común en este tipo de ejercicios.

Luego incrementamos a el valor de nuestra variable cont , para que pase al siguiente registro y se cumpla nuevamente el bucle For hasta que concluya el ciclo.
Código PHP:
cont cont 
y luego cerramos el bucle For con el next.
Código PHP:
next 
y finalmente cerramos la conexion a la base de datos.
Código PHP:
DBConn.Close 
set DBConn 
nothing 
y eso seria todo .

ahora le mando el codigo completo de la pagina que recibe el post.
Código PHP:

<HTml>
<
head>

</
head>
<
body>
<%
TotalFilas Request.Form("hddTotalFilas")
Dim cont
cont
=1
for Iciclo 1 To TotalFilas

producto 
Request.Form("Producto_"cont)
Response.Write(producto)
CodigoProducto Request.Form("CodProd_"cont)
Response.Write(CodigoProducto)
PrecioV Request.Form("textPventa_"cont)
Response.Write(PrecioV)
Response.write(" ****** ")

sSQL="Insert Into tabla (CampoBD1, CampoBD2, CampoBD3) values ('" producto "','" CodigoProducto "','" PrecioV "')"
Set Reg DBConn.Execute(sSQL)
cont cont 1
%>
<
br>
<%
next

DBConn
.Close 
set DBConn 
nothing

%>
</
body>
</
HTml
Espero que las personas que lean este post entiendan la logica del por que de cada cosa.
No nos sirve el copiar y pegar , es mejor tardar un poco más de tiempo en aprender y saber lo que realmente estamos haciendo.

Espero les sirva de ayuda.

Saludos :D

Última edición por sikociado; 28/05/2008 a las 21:49
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 15:15.