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

Funcion para Tipicos Procesos de Tablas

Estas en el tema de Funcion para Tipicos Procesos de Tablas en el foro de ASP Clásico en Foros del Web. Aqui les presento una funcion que realice hoy, que nos ahorrara mucho tiempo de escritura repetitiva y de depuracion, a la vez que nos dara ...
  #1 (permalink)  
Antiguo 16/05/2002, 02:04
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
Funcion para Tipicos Procesos de Tablas

Aqui les presento una funcion que realice hoy, que nos ahorrara mucho tiempo de escritura repetitiva y de depuracion, a la vez que nos dara mayor seguridad para las tipicas operaciones de tablas :

Function OP(comando,tabla,where,order,campos,valores)
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
Conn.Open Session("strConn")
if where<>"" then where = " WHERE " & where
if order<>"" then order = " ORDER BY " & order

Select Case comando
Case "Agregar"
sql = "INSERT INTO " & tabla & " (" & campos & ") VALUES (" & valores & ") " & where & order

Case "Actualizar"
sql = "UPDATE " & tabla & " SET " & campos & where

Case "Agregar"
sql = "INSERT INTO " & tabla & " (" & campos & ") VALUES (" & valores & ") " & where & order

Case "Eliminar" ' No olvidarse el Where o borrara toda la tabla !
sql = "DELETE * FROM " & tabla & where

Case "Abrir","Obtener"
sql = "SELECT * FROM " & tabla & where & order
RS.CursorType = 3
RS.CursorLocation = 3
RS.Open sql, conn
if comando="Abrir" then
Set OP = RS
else
OP = Not RS.RecordCount
RS.Close
Conn.Close
end if

End Select

if comando<>"Abrir" And comando<>"Obtener" then
Conn.Execute sql,regs
OP = regs
end if

End Function
  #2 (permalink)  
Antiguo 16/05/2002, 02:08
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Funcion para Tipicos Procesos de Tablas

Notas :
1) Todas las operaciones devuelven los registros afectados, excepro "Abrir", devuelve un Recordset.
2) Cerrar SIEMPRE con RS.Close luego de una operacion "Abrir" ya que devuelve un objeto recordset y quedara ocioso si no se cierra.
3) Debe especificarse previamente la variable Session("strConn") la que contendra la cadena de conexion a la base.
4) Incluir TODOS los parametros aunque no se apliquen, completar con 2 comillas dobles.
5) Se podrian agregar otros comandos no tan comunes y control de errores.

Ej. de uso :
1) OP "Agregar" , "Clientes" , "" , "" , "Nombre,Direccion" , "'" & cli_nombre & "','" & cli_direccion &"'"

2) if OP("Obtener","Clientes"," Nombre='" & cli_nombre & "'","","","&quo t;) then ...

3) RSCli = OP("Abrir","Clientes","&q uot;,"","","") : Response.Write(RSCli("Nombre")) : RSCli.Close

4) regs = OP("Actualizar" , "Clientes","","",&qu ot;Fecha=" & Now(),"")

Que la disfruten ! :)
  #3 (permalink)  
Antiguo 16/05/2002, 04:56
moncherote
Invitado
 
Mensajes: n/a
Puntos:
Re: Funcion para Tipicos Procesos de Tablas

que buena, tio. gracias por compartirla!
;)
por cierto, el que haya dos case agregar es un error tipografico, no?



<pre><tt><font size="+1" color="#FF2F4E">Moncherote en assión![/CODE]</tt></pre>
  #4 (permalink)  
Antiguo 16/05/2002, 11:15
 
Fecha de Ingreso: octubre-2000
Ubicación: Juarez, Chih.
Mensajes: 161
Antigüedad: 23 años, 8 meses
Puntos: 0
Re: Funcion para Tipicos Procesos de Tablas

Saludos.

Muy bien Nochero!. Esta es una buena forma de optimizar nuestros códigos.

Te iba a comentar que sería mejor que eliminarás el parámetro 'order' en los case Agregar y Eliminar, pero lo resuelves con...

if order&lt;&gt;&quot;&quot; then order = &quot; ORDER BY &quot; &amp; order

Te invito a que continues aportando tips.
  #5 (permalink)  
Antiguo 16/05/2002, 13:32
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Funcion para Tipicos Procesos de Tablas

Hola, saludos y gracias por los comentarios.
Es cierto, sobra un Case &quot;Agregar&quot; y el &amp; order al agregar tambien esta de mas.
Voy a optimizar y completar mas la funcion para que incluya mas funciones y sea menos engorroso el pasaje de parametros.

Hasta pronto
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 22:38.