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

Insertar u actualizar un registro segun sea el caso

Estas en el tema de Insertar u actualizar un registro segun sea el caso en el foro de ASP Clásico en Foros del Web. Hola Amigo del Foro el caso es el siguiente: Tengo una secuencia de eventos que se mueven del siguiente manera: Línea--Producto--Configuración---pedido Pues bien cuando estoy ...
  #1 (permalink)  
Antiguo 12/10/2005, 09:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Insertar u actualizar un registro segun sea el caso

Hola Amigo del Foro

el caso es el siguiente:

Tengo una secuencia de eventos que se mueven del siguiente manera:

Línea--Producto--Configuración---pedido

Pues bien cuando estoy en el pedido, este es en base a un producto que tiene una configuración especifica, por lo tanto la primera operación es hacer un insert para solicitar una cantidad de ese producto que tiene esa configuarción especifica, pues bien la idea es que tengo una pagina que lista las siguientes opciones:

pagina: detalle_producto.asp

Producto A
configuracion 1
configuración 2
configuración 3

href="detalle_pedido.asp?idpedido=<%=(pedido.Field s.Item("idpedido").Value)%>&idlinea=<%=(linea.Fiel ds.Item("idlinea").Value)%>&idproducto=<%=(product o.Fields.Item("idproducto").Value)%>&idproduct_con f=<%=(pconfiguracion.Fields.Item("idproduct_conf") .Value)%>"

para acceder a una configuración especifica utilizo el enlace que ven arriba en donde voy moviendo conmigo el idpedido, el idlinea y el idproducto

En detalle_pedido la rutina de insert funciona bien. Ahora viene la pregunta???

como hago para que cuando el registro al cual ya le alla agregado una cantidad y yo vuelva a hacer link sobre una configuración en vez de generar otro registro nuevo se vaya directamente al registro que existente.

Visto de otra manera yo tengo:

detalle_pedido.asp en donde inserto un registro y tengo
detalle_pedido1.asp en donde hago un update!

Como hago para que desde un mismo link manteniendo el numero del pedido y la configuración del producto este sepa cuando insertar en el caso de la primera vez y cuando actualizar cuando ya exista dicho registro.

Gracias.
  #2 (permalink)  
Antiguo 12/10/2005, 09:53
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
pues si pones un sql que cheque si ya existe el registro en la base de datos luego pones algo asi:

if rs.eof then
rs.addnew
end if
  #3 (permalink)  
Antiguo 12/10/2005, 10:31
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Ok entendi la logica! me parece practica pero me podrias ayudar con el codigo

estoy algo perdido

gracias
  #4 (permalink)  
Antiguo 12/10/2005, 10:46
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
a ver, pon el codigo que ya tienes para adaptarlo
  #5 (permalink)  
Antiguo 12/10/2005, 12:58
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
<table width="50%" border="0" align="center" cellpadding="4" cellspacing="2">
<tr>
<td width="101"><%=(producto.Fields.Item("codigo").Val ue)%></td>
<td width="118"><%=(producto.Fields.Item("producto").V alue)%></td>
<%
counter = 0
Do Until pconfiguracion.eof
%>
<td width="261"><div align="left"><strong><a href="detalle_pedido.asp?idpedido=<%=(pedido.Field s.Item("idpedido").Value)%>&idlinea=<%=(linea.Fiel ds.Item("idlinea").Value)%>&idproducto=<%=(product o.Fields.Item("idproducto").Value)%>&idproduct_con f=<%=(pconfiguracion.Fields.Item("idproduct_conf") .Value)%>"><%=(pconfiguracion.Fields.Item("present acion").Value)%></a></strong> </div></td>
<%
counter = counter + 1
If counter = 4 Then
Response.Write("</tr><tr>")
counter = 0
End If
pconfiguracion.MoveNext()
Loop
%>
</table>
  #6 (permalink)  
Antiguo 12/10/2005, 13:03
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Bien como puedes ver en el recordset pconfiguracion tengo todos las configuraciones de un producto. aqui simplemente lo que hago es que muestre todos los registros cuyo producto tenga una configuración seleccionada.

De igual manera tengo un link que va hacia detalle_pedido.asp en donde puedo insertar un nuevo registro en la tabla pedido_detalle.

lo queremos es que si ya existe un registro simplemente lo edite para cambiar la cantidad en vez de generar un nuevo registro por la misma presentación del producto.

Gracias
  #7 (permalink)  
Antiguo 12/10/2005, 13:21
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
pero esta parte es la de despliegue de la informacion, no de donde la agregas o modificas ¿no?
  #8 (permalink)  
Antiguo 12/10/2005, 13:35
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Cierto! el archivo que necesitas es detalle_pedido.asp ok!

<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<td align="right" valign="middle"> <input name="idpedido" type="text" id="idpedido" value="<%=(pedido.Fields.Item("idpedido").Value)%> ">
Presentaci&oacute;n</td>
<td width="23%" align="left" valign="middle"><%=(pconfiguracion.Fields.Item("pr esentacion").Value)%>:</td>
<td width="42%" rowspan="4"><input name="cantidad" type="text" id="cantidad" size="15" maxlength="3">
<input type="submit" name="Submit" value="Validar"> <br> <input name="button" type="button" onclick="Enter_code(1)" value=" 1 ">
<input name="button" type="button" onclick="Enter_code(2)" value=" 2 ">
<input name="button" type="button" onclick="Enter_code(3)" value=" 3 ">
<input name="button" type="button" onClick="Enter_code(4)" value=" 4 ">
<br> <input name="button" type="button" onclick="Enter_code(5)" value=" 5 ">
<input name="button" type="button" onclick="Enter_code(6)" value=" 6 ">
<input name="button" type="button" onClick="Enter_code(7)" value=" 7 ">
<input name="button" type="button" onClick="Enter_code(8)" value=" 8 " >
<br> <input name="button" type="button" onclick="Enter_code(9)" value=" 9 ">
<input name="button" type="button" onClick="Enter_code(0)" value=" 0 ">
<input type="reset" value="Limpiar" /> </td>
</tr>
<tr>
<td align="right" valign="middle"><input name="configuracion" type="text" id="configuracion" value="<%=(pconfiguracion.Fields.Item("idproduct_c onf").Value)%>">
Producto:</td>
<td align="left" valign="middle"><%=(producto.Fields.Item("producto ").Value)%></td>
</tr>
<tr>
<td align="right" valign="middle">L&iacute;nea:</td>
<td align="left" valign="middle"><%=(linea.Fields.Item("descripcion ").Value)%></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
</table>

Aqui es donde agrego un pedido nuevo

Como puedes observar utilizo un teclado virtual para agregar las cantidades

Gracias
  #9 (permalink)  
Antiguo 12/10/2005, 14:39
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
pues sigo sin ver en donde agregas o modificas algo
  #10 (permalink)  
Antiguo 12/10/2005, 15:02
Avatar de FiNo  
Fecha de Ingreso: octubre-2004
Ubicación: Costa Rica
Mensajes: 265
Antigüedad: 19 años, 8 meses
Puntos: 1
id = Request.QueryString("idpedido")

SQL = "SELECT id_pedido FROM tabla WHERE id_pedido = "&id&" "

Set RS = Conn.Execute(SQL)
'O puede redireccionar (Response.Redirect(detalle_pedido.asp?adjuntavalor es))

IF RS.EOF Then

SQL = "INSERT INTO tabla () VALUES () "

ELse

SQL = "UPDATE tabla SET Campos WHERE idpedido = "&id&""

'O puede redireccionar (Response.Redirect(detalle_pedido1.asp?adjuntavalo res))

End If
Conn.Execute(SQL)

No se sí eso es lo que querias.
  #11 (permalink)  
Antiguo 12/10/2005, 15:06
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "codepad") Then

MM_editConnection = MM_sensacolor_STRING
MM_editTable = "detalle_producto"
MM_editRedirectUrl = "detalle_producto.asp"
MM_fieldsStr = "idpedido|value|cantidad|value|configuracion|value "
MM_columnsStr = "idpedido|none,none,NULL|cantidad|none,none,NULL|i dproduc_conf|none,none,NULL"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>


esta es la rutina de inserción que me hace el dreamweaver
  #12 (permalink)  
Antiguo 12/10/2005, 15:22
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 7 meses
Puntos: 0
upsss, ya veo porque empiezan a odiar los codigos de Dreamweaver, super odiosos, para hacer algo mas bien simple...

te aconsejo que empiezes por buscar informacion de como hacer una edicion o un Insert, en alguna de las paginas de ayuda, sin utilizar dreaweaver, te aseguro que es mucho mas facil de lo que lo pinta dream...

www.asptutor.com
www.aspfacil.com
www.webexperto.com
www.faqsdelweb.com
www.google.com
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #13 (permalink)  
Antiguo 12/10/2005, 16:17
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Tienes razon!

pero el tiempo me apremia si me pueden ayudar con lo tengo, mil gracias!
  #14 (permalink)  
Antiguo 12/10/2005, 16:42
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 7 meses
Puntos: 0
IF Idpedido = "" THEN
LINK = <a href="detalle_pedido.asp?idpedido=<%=(pedido.Field s.Item("idpedido").Value)%>&idlinea=<%=(linea.Fiel ds.Item("idlinea").Value)%>&idproducto=<%=(product o.Fields.Item("idproducto").Value)%>&idproduct_con f=<%=(pconfiguracion.Fields.Item("idproduct_conf") .Value)%>"
ELSE
LINK = <a href="detalle_pedido1.asp?idpedido=<%=(pedido.Field s.Item("idpedido").Value)%>&idlinea=<%=(linea.Fiel ds.Item("idlinea").Value)%>&idproducto=<%=(product o.Fields.Item("idproducto").Value)%>&idproduct_con f=<%=(pconfiguracion.Fields.Item("idproduct_conf") .Value)%>"
END IF

donde quieras tu LINK...
response.write LINK


ESA ES LA IDEA, porque no me dí el tiempo de sacar los marcadores de ASP a tu codigo <%%>, y reemplazarlos por "& ....
no se si eso es lo que buscas...
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
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 13:59.