Hola a todos, este post esta dedicado y creado despues de ver la necesidad de los usuarios, por saber temas de base de datos que por mi parte ya he solucionado en mis años de programador, para eso he creado este post para poder compartir esas soluciones.
Este post es un tipo de
"ToDo List" publico (para el que no sabe que es esto, quiere decir "cosas pendientes o cosas por hacer"), para hacerlo publico y no olvidarme al entrar al foro y recordarme cada ves que entro, que tengo que crear estos ejemplos para compartirlo con todos.
hace un tiempo en este
post habia "prometido" a Yvan y demas que iba a hacer un post sobre un ABM de ADO+SQL basico en VB6 y despues para .NET, y que al final no he podido realizar, no quiero crear una imagen de usuario que promete y despues no hace nada, para eso he creado este post para recordarme a mi mismo las cosas que tengo que compartir, de esta forma me veo obligado a hacerlo y no olvidarme.
una ves que estos ejemplos esten publicados puedo asegurar que practicamente estas dudas desapareceran para siempre, aparte estos ejemplos no serviran solamente para saber como conectarse debidamente a la base de datos, sino tambien como usar los recordset, los comandos, hacer insert a la base, consultar, cargar listas, etc.
Los proyectos seran realizados siempre en VB6 primero y en .NET despues, para descargar, con todo el codigo fuente incluido, y comentando cada linea del source.
Los Proyectos a realizar seran:VB6- ABM basico + SQL (sin clases): este es un ejemplo de ABM basico de algunas pantallas en VB6, nada de usar controles ADODC ni DATA, olvidarse de eso, y tambien olvidarse de usar los metodos de los recordset .AddNew, .Edit o .Delete de los recordset, se va a usar SQL puro (INSERT INTO, UPDATE, DELETE) y con un ejemplo de lanzar un reporte en datareport, sin el DataEnviroment que usando el metodo DAO, era de lo mas horrible que hubo. La base de datos usada sera Access 2003 y podra ser adaptado a cualquier motor de base de datos facilmente.
- ABM basico + SQL (con clases): este es un ejemplo de ABM basico de algunas pantallas en VB6, nada de usar controles ADODC ni DATA, olvidarse de eso, y tambien olvidarse de usar los metodos de los recordset .AddNew, .Edit o .Delete de los recordset, se va a usar SQL puro (INSERT INTO, UPDATE, DELETE) y con un ejemplo de lanzar un reporte en datareport, sin el DataEnviroment que usando el metodo DAO, era de lo mas horrible que hubo. La base de datos usada sera Access 2003 y podra ser adaptado a cualquier motor de base de datos facilmente.
Que significa "sin clases" ?: eso significa que en el proyecto no se usaran "modulos de clase" para cada entidad, por ejemplo, si tenemos un ABM de clientes, se pueden agrupar todos los metodos y propiedades del cliente en un modulo de clase, lo cual aprovecha un poco la POO de VB6 y aparte ordena considerablemnte el codigo del proyecto, ya que el codigo para agregar, modificar, eliminar y cargar un cliente, quedaria todo dentro de un modulo unico el cual hace que la cantidad de codigo fuente en los formularios se redusca considerablemente, normalmente se hace sin esto, poniendo todo el codigo el en formulario del ABM, esto esta bien, pero una ves que vean el metodo con clases, van a ver que realmente vale la pena trabajar con clases, por eso voy a hacer 2 proyectos, de las 2 maneras, asi los usuarios que no estan acostumbrados a las clases, podran ver como cambia de una forma a la otra.
- Guardar imagenes en base de datos: este sera un ABM de una sola pantalla, mostrando como seleccionar del disco una imagen y guardar su binario en la base de datos y de como mostrar la imagen ya guardada. Para eso se realizara con el metodo explicado en este post con el control ucImage de cobein.
.NET- ABM basico + SQL (.NET) (con clases) 3 capas: este es el mismo ejemplo que el de VB6 de ABM basico, aqui tambien se usara Access 2003 y podra ser migrado a cualquier motor de bases de datos y el ejemplo sera el mismo, solo que adaptado a la forma de .NET, en este ejemplo se usara SQL tambien y sera utilizado "con clases" ya que .NET por defecto deberia realizarse de esta forma, no habra un ejemplo de este proyecto "sin clases", y sera realizado en 3 capas.
Que son 3 capas ?. Para mas informacion ver este link:Programación por capasun explicación simple:
supongamos que voy a hacer un ABM de clientes y de articulos.
en el proyecto, te creas clases, esas clases las separas en carpetas distintas, una seria la capa de Datos, esta seria la capa mas "profunda" o tercera capa, si trabajas con bases de datos, esta capa se encarga de la conexion a la base de datos y de ejecutar las consultas y comandos que vienen de la segunda capa(la capa de Negocio).
la segunda capa (la de "Negocio") se encargaria de preparar los SELECT a la base de datos, y preparar los comandos a ejecutar, que seran enviados a la tercera capa que vimos arriba (la de "Datos").
Por ejemplo, quiero hacer un ABM de clientes, entonces me creo una clase llamada cCliente y ahi pongo todas las propiedades y metodos necesarios para manegar los clientes, insertar, actualizar,borrar..etc, lo mismo me creo una clase para la de articulos llamada cArticulos, para cada "Entidad" te creas una clase y ahi mismo pones sus metodos.
y la primer capa, la de "Presentación" (que seria la interfaz del programa), ahi haces todo llamando siempre a los metodos de la segunda capa (la capa de "Negocio"), supongamos que yo aprieto un boton y quiero borrar un cliente, entonces llamo al metodo de borrarCliente de la clase cCliente.- Guardar imagenes en base de datos: este sera un ABM de una sola pantalla, igual que en de VB6 mostrando como seleccionar del disco una imagen y guardar su binario en la base de datos y de como mostrar la imagen ya guardada.
ojala sean pacientes y esperen a que vaya subiendo estos proyectos.
saludos.