Teoría BD

viernes, octubre 07, 2005

Final Feliz

Este es el último post de este blog, con eso queda concluido el proyecto de Teoria de Bases de Datos I.

En general, me gustó mucho la asignatura, ya que fue bien práctica y aplicada, además el proyecto nos sirvió para comprender mejor los temas de la asignatura.

Espero que nuestras experiencias hayan sido de ayuda para nuestros compañeros, y pueda ser de utilidad para los futuros alumnos de la clase.


Saludos

sábado, septiembre 17, 2005

Mas vale tarde que nunca...

El día de hoy nos hemos dado cuenta de ciertas diferencias en la información sobre las excepciones en Visual Studio.NET dependiendo de la manera como se ejecute un programa:

He modificado un código a propósito:
command.CommandText = "SELdECT nombre_division FROM Division WHERE " +
" codigo_division = " + codigo_division;
AsaDataReader reader = command.ExecuteReader();

El error es el "SELdECT" conste.

Si corremos la aplicación con la opción Debug (F5) de VS obtenemos:



Podemos ver que nos marca la línea del ExecuteReader(), por lo que se deduce que el problema está en el SQL...

Ahora bien, si se ejecuta con Start Without Debugging (Ctrl F5) y se le dá click en details:


No solo nos dice que el error está en la linea del ExecuteReader(), también nos brinda el error de la base de datos que nos dice que hay un error de sintaxis cerca de 'nombre_division'.

En mi opinión esto es más claro de entender que el mensaje anterior.

Antes de condenar por completo a VS.NET debo mencionar que en la opción Debug también se puede ver el error de la base de datos, pero el mensaje está un poco escondido entre las variables local del Debugger.

Además, es un poco más rápido ejecutar un programa con la opción Start Without Debugging y dejar únicamente el Debug para cuando sea necesario.

Claro, siempre es mas recomendable separar los errores de SQL de los de programación, realizando las consultas en el interactive sql primero y luego ingresarlas al programa, pero aún así siempre pueden haber detalles que se escapen.

Tal vez sea de ayuda a las futuras generaciones :-)

Saludos

miércoles, septiembre 14, 2005

Inicio Fase Final

Comenzamos la ultima etapa del proyecto, el ultimo esfuerzo para alcanzar el final del trimestre :-)

Ya creamos las pantallas de las consultas y dividimos el trabajo restante de programacion.

Esperamos desarrollar el resto del proyecto sin mayores complicaciones.

Saludos

martes, agosto 30, 2005

Proyecto Beta 1

Ya comienza la etapa de pruebas y verificación de esta fase del proyecto. Ha sido bastante trabajo y esperamos estar a la altura de lo esperado.

Para empezar a buscar bugs hemos hecho una prueba de generación del kardex con los datos de la especificación, aqui está el resultado:




Solo tenemos una duda/consideración: En la especificación la última devolución tiene como número de documento 001, que no corresponde a ninguna factura, es decir nosotros hemos asumido que el número de devolución será el mismo número de factura al que corresponde, sino, no hay forma de saber a que factura pertenece una devolución al ver el kardex.

A decir verdad, observamos esto hasta el día de hoy al hacer esta prueba, queda pendiente hacer esa consulta.


En general, pienso que ha sido una buena experiencia el manejo de la base de datos con Anywhere, además, me ha gustado C#.NET, el aprendizaje es bastante rápido viniendo de Java/C++, creo que es una propuesta interesante de parte de Microsoft para el desarrollo de aplicaciones.


Saludos

sábado, agosto 27, 2005

El Inicio del Fin...

Bueno, eso espero, el reloj sigue marchando sin parar...

Ya estamos finalizando la parte de compras y agregado al kardex de las mismas, ha sido una labor grande por la cantidad de validaciones; la creación de controles de usuario han facilitado algunas cosas pero complicado otras. Como consuelo, ya conocemos mejor el manejo de eventos en C#

Al final hemos utilizado más los dataReaders que los dataSets, para que de paso el proyecto sirva de estudio para el examen, ya que al utilizar las sentencias SQL se cometen errores bastante sutiles, difíciles de encontrar.

Como reflexión muy personal, no estoy de acuerdo que en las clases de sistemas los proyectos se entreguen en la semana de examenes, la tensión se duplica y el tiempo se reduce considerablemente, esto ha sido casi constante en todas las clases que he cursado.

Y para corregir la hora al final del post, son las 2:23 AM hora de Honduras

lunes, agosto 22, 2005

Como vamos...

Ya está listo la parte del login y el filtrado de opciones de acuerdo a los permisos de cada empleado, hemos utilizado 2 maneras de accesar a la data: 1) Con un DataReader y 2) Con un DataSet Tipeado.

Para el DataReader tuve la dificultad para utilizar consultas con parámetros (o sea, mezclar un SELECT con variables del programa, un TextBox.Text por ejemplo) pero mas que todo creo que es por usar el Data Provider del Anywhere y no OleDB (algunas cosas no son estándar)

Para el DataSet tipeado hay que dar unos pasos extra, pero se recompensa con la facilidad de acceso y casteo automático de los datos.

Creo que utilizaremos una combinación de ambos, creo que nos servirá de aprendizaje, claro, tomando en cuenta que el tiempo es bastante corto y que lo primero es darle funcionalidad al proyecto, luego vendrán las pintas...

Ya me estoy dando cuenta que el proyecto es grande y hay que aprovechar el tiempo de la mejor manera posible.


Saludos

jueves, agosto 18, 2005

Inicio de la Aplicación

Ya estamos finalizando el script para crear la base de datos, y hemos comenzado a trabajar en el script de llenado con las sentencias INSERT. Aida ha llevado "el mando" en esta parte del proyecto.

Ademas, hemos comenzado la aplicacion en C# haciendo la forma del login del sistema, conectandose a la base de datos y verificando el id y password ingresado, hemos utilizado el data provider del Anywhere y sus clases correspondientes, como unico reclamo seria que al utilizar la autocompletacion de .net, no se muestran los comentarios de las clases ni los metodos que provee el Anywhere (o sea, al parecer no utilizaron los comentarios XML con los tags ) que aparentemente se habilitan automaticamente al utilizar una clase en .NET. Por lo tanto hemos tenido que revisar la documentacion del anywhere para conocer las especificaciones de las clases para accesar a la base de datos.

Los proximos pasos seran hacer una revision detallada de los scripts y comenzar a implementar las opciones de programa.

Como unica duda me queda consultar si tiene que ser permitido o no borrar productos, unidades de venta, empleados, divisiones etc.

Saludos