Esta es la librería que hará el trabajo de generar las clases (para VB o C#) a partir de una tabla de una base de datos de Access o SQL Server
Actualizado: 14/Jul/2004
Autor: Guillermo 'guille' Som
Volver al índice de Generar clases para acceder a una tabla
Todo el proceso de generación de las clases a partir de una tabla de una base de datos, lo realiza la librería elGuille.Data.CodeGenerator.dll (en la página de la utilidad para generar las clases tienes el link para poder bajártela).
Instalación y registro
Como todo (o casi) lo que se genera con .NET Framework, esta librería no necesita ningún tipo de instalación ni registro, simplemente la copias en el mismo directorio que el ejecutable que la vaya a usar (puedes usar la utilidad que yo he creado) y con eso será más que suficiente.
Aunque, si así lo deseas, puedes instalarla en la caché de ensamblados global (GAC), de esta forma estará siempre accesible a cualquier ejecutable que la vaya a utilizar.
Cómo usarla y que contiene
Esta librería tiene 4 clases cuyos miembros son todos estáticos (compartidos), por tanto no será necesario crear nuevos objetos para usarlas, lo único que habrá que hacer es usar el nombre de la clase y a continuación el método que quieras usar.
Las clases que contiene son:ConvLang
Esta clase la utilizo desde la que genera el código para crear las instrucciones adecuadas según el lenguaje (VB o C#). No es una clase de uso genérico, ya que prácticamente está pensada para la generación del código de esta utilidad, por tanto no servirá para cualquier tipo de programa, aunque es posible que en un futuro la amplíe...CrearClase
Esta es la que contiene todo el código que genera la clase a partir de una tabla de una base de datos. Aunque en realidad es la clase base de las otras dos que son las que se usarán para generar el código de SQL o de Access.CrearClaseOleDb
Esta clase contiene los métodos para conectar a una base de datos de Access y para obtener las tablas de la base de datos indicada en la cadena de conexión, por tanto se puede usar también para conectarse a una base de datos del tipo Access.CrearClaseSQL
Esta clase contiene los métodos para conectarse a una base de datos de SQL Server y para obtener las tablas de esa base de datos, como su compañera para OleDb, también se puede usar de forma genérica, pero en realidad está pensada para usar con la clase CrearClase y así poder generar el código necesario para crear las clases.
Los pasos a seguir para generar una clase a partir de una tabla es la siguiente:
Nota:
Dependiendo de que la base de datos sea de SQL Server o de Access, usaremos las clases CrearClaseSQL o CrearClaseOleDb respectivamente.Usaremos la clase adecuada y llamaremos al método GenerarClase el cual devolverá una cadena con el código generado, los parámetros que se pasarán al método serán:
Para SQL Server:
-El lenguaje a generar, un valor de la enumeración eLenguaje.
-Si se debe usar CommandBuilder o no, un valor de tipo Boolean.
-El nombre de la clase.
-El nombre de la tabla.
-El valor de Data Source (la conexión al servidor de SQL)
-La base de datos en la que está la tabla (Initial catalog)
-La cadena de selección (SELECT)
-El nombre del usuario (si se va a usar la seguridad de SQL)
-El password (si se va a usar la seguridad de SQL)
-Si se va a usar la seguridad de SQL o la predeterminada de Windows.Existen dos sobrecargas, dependiendo de si se van a indicar o no las tres últimas opciones, si no se indican, es que vamos a usar la seguridad de Windows.
Para Access (OleDb):
-El lenguaje a generar, un valor de la enumeración eLenguaje.
-Si se debe usar CommandBuilder o no, un valor de tipo Boolean.
-El nombre de la clase.
-El nombre de la tabla.
-El nombre de la base de datos
-La cadena de selección (SELECT)
-El password
-La cadena del proveedor de acceso a la base datos (provider)Existen tres sobrecargas de este método, en el que se pueden indicar todos los datos o podemos indicar hasta la cadena SELECT y otra en el que el último parámetro es el Provider.
Estos métodos llamarán a otros métodos de la clase "base" CrearClase, los cuales están declarados como Protected para que sólo se puedan acceder desde las clases derivadas.
Por tanto siempre habrá que usar la clase CrearClaseSQL o CrearClaseOleDb para generar el código.Además de los métodos mencionados, ambas clases (y también la clase base) tienen una propiedad Conectado (realmente es un campo público) que nos indicará si se ha podido conectar con la base de datos o no.
Te recuerdo que todos los métodos son estáticos (compartidos) por tanto no será necesario crear objetos (instancias) de estas clases para poder usarlos.
Limitaciones
Como es natural, esta librería no es perfecta, por tanto no podrás crear clases de cualquier tabla.
Al menos si la tabla contiene campos "especiales" como imágenes u otros tipos que yo no he contemplado.
Pero si la tabla contiene tipos de datos "normales", funcionará perfectamente.
Es que yo no suelo usar campos "raros" además de que tengo la sana costumbre de siempre crear un campo "clave" al que suelo llamar ID y que es autoincremental.
Pues esto es todo...
Recuerda que las librerías y los ejecutables están compilados con la versión 1.1 del .NET Framework (Visual Studio .NET 2003) y en el caso del código de Visual Basic se utilizan bucles que la versión 1.0 del punto NET no "entenderá".Para bajarte la aplicación y las librerías compiladas, puedes hacerlo desde la página de la utilidad.
Y como te digo en otras ocasiones, si encuentras algún "bug" o crees que puedes mejorar el código, me mandas un mensaje y tan contentos.
Nos vemos.
GuillermoNota del 07/Mar/08:
El código fuente de esta utilidad, (y la DLL que genera el código), con algunas modificaciones y adaptado a Visual Basic 2005, lo puedes bajar desde Codeplex, para más información, lee esto que publiqué el 4 de Mayo de 2007.