Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2005, 09:30
Avatar de El_Metallick
El_Metallick
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 meses
Puntos: 16
Borrar registros y restarle 1 al campo de otra tabla sin multiples consultas a la BD

Hola amigos... basandome en el sistema de borrar a lo hotmail de urjose he hecho esto:
Código:
<% @Language="VBscript" %>
<html>
<head>
<title>Borrar registros de la base de datos</title>
<script>
window.opener.location.reload();
window.close();
</script>
</head>
<body>
<%
'Declaración de variables
Dim conn
Dim rs
Dim producto_sql
Dim categoria_sql
Dim categoria
Dim total_productos
Dim id
'Rescate de variables pasadas por formulario
id = Request.Form("id")

'Establecemos la conección a la base de datos
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../catalogo.mdb"))

'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
producto_sql="Select categoria From productos Where id_producto = " & id & ""

'Ejecución de la orden
Set rs = Conn.Execute(producto_sql)

'Fijaci{on del valor de la variable categoria
categoria = rs("categoria")

'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
categoria_sql="Select * From categorias Where id_categoria = " & categoria & ""

'Ejecución de la orden
Set rs = Conn.Execute(categoria_sql)

'Se resta 1 al numero de productos de la categoría
total_productos = rs("total_productos")
total_productos = total_productos - 1

'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
categoria_sql="Update categorias Set total_productos = " & total_productos & " Where id_categoria = " & categoria & ""

'Ejecución de la orden
Set rs = Conn.Execute(categoria_sql)

'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
producto_sql="Delete * From productos Where id_producto In(" & id & ")"

'Ejecución de la orden
Set rs = Conn.Execute(producto_sql)
%>
</body>
</html>
Mi idea es que cada bes que se borre un registro de la tabla productos se le quite 1 al campo total_productos de otra tabla (categorias).... bueno la cosa es que este script lo logra.... pero se que no hay nada peor para un server que eso de muchas consultas a la vez... por eso quiero saber si se puede hacer esto de otra forma.... bueno eso saludos y gracias
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!