Archive for June, 2006

Mi experiencia con procedimientos almacenados

Wednesday, June 14th, 2006

Despues de una semana trasteando con procedimientos almacenados puedo decir que la diferencia es impresionante, he mejorado la velocidad de los calculos en mas del 50%, mi codigo esta mucho mas estructurado y claro. Pero no todo son ventajas, a la hora de compilar, sql server no nos va a dar muchos datos de los errores de compilacion, asi que tendremos que buscarnos la vida para arreglarlo.

Los procedimientos almacenados es como todo…cuando has echo 20 el resto te salen como churros, es cuestion de practica, y notareis la diferencia de velocidad y eficiencia….

Acceso a store procedures de sql server desde access

Friday, June 9th, 2006

Hoy vamos a ver el codigo necesario para poder ejecutar un store procedure de sql server desde visual basic acces:
Dim cmd As New ADODB.Command
Dim params As ADODB.Parameters
Dim Param As ADODB.Parameter

‘ Iniciar las propiedades del procedimiento
With cmd
    Set .ActiveConnection = CurrentProject.Connection
    .CommandText = “CalPeces”                                       -nombre del procedimiento
    .CommandType = adCmdStoredProc
    .CommandTimeout = 0
    Set params = .Parameters
End With

‘ Definimos uno por uno los parametros de entrada del procedmiento.
params.Append cmd.CreateParameter(”@Donde”, adVarChar, adParamInput, 3)
params.Append cmd.CreateParameter(”@Norcod”, adVarChar, adParamInput, 15)
params.Append cmd.CreateParameter(”@fechaini”, adVarChar, adParamInput, 10)
params.Append cmd.CreateParameter(”@Fechafinal”, adVarChar, adParamInput, 10)
params.Append cmd.CreateParameter(”@TipoPeriodo”, adVarChar, adParamInput, 1)

‘ Especificamos los valores de estos parametros
params(”@Donde”) = capa.Value
params(”@Norcod”) = norma.Value
params(”@fechaini”) = fechaini
params(”@fechafinal”) = fechafinal
params(”@TipoPeriodo”) = “M”
‘ Execute the command
cmd.Execute , , adExecuteNoRecords                    -ejecutamos el procedimiento
‘Set sp_ICG_Recalcular_1 = cmd.Execute

manaña mas……

Migracion a ADPS con Store Procedures

Wednesday, June 7th, 2006

Ha llegado el momento de dar el siguiente paso: pasar mis aplicaciones vba con el codigo sql embebido a store procedures….Es un cambio logico y que hara que mis aplicaciones funcionen mas rapidas y esten mejor estructuradas.

Un Store procedure no es mas que codigo sql al que podemos pasar una serie de parametro y añadir programación, como pueden ser bucles o condiciones. Estos procedimientos se almacenan en la propia base de datos y no en el codigo de la aplicacion. En los store procedures declararemos las variables de entrada con un “@”. Y desde mi codigo VBA llamaremos a estos procedimientos pasandole los argumentos necesarios.

Con esta mejora reduciremos la carga de codigo en nuestros adps y se la pasaremos a sql server, experimentando una mejoria en velocidad, y ademas tendremos el codigo estructurado en pequeños modulos dentro de la base de datos

¿Macros de access o funciones y programacion “a pelo”?

Monday, June 5th, 2006

Sin duda la respuesta para mi es la programacion “a pelo”. Para cualquier programador, el utilizar macros puede llegar a ser engorro, ya que crea codigo “basura” innecesario (”complicado de entender a posteriori”).

Mi experiencia me dice que es mucho mas eficiente crear modulos y funciones de toda la vida con programación secuencial. Posteriormente generaremos un evento y accederemos a  las funciones de esos modulos directamente.

 Los macros de access pueden resultar tremendamente utilies para gente con pocos o nulos conocimientos de programacion, pero para programadores con algo de experiencia el trabajar con modulos resulta mucho mas eficiente y rapido.