elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [AYUDA]Aprovechar la POO en Bases de Datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA]Aprovechar la POO en Bases de Datos  (Leído 4,824 veces)
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
[AYUDA]Aprovechar la POO en Bases de Datos
« en: 14 Octubre 2009, 03:20 am »

Hola gente..
Resulta que por ahí en algun post del foro, me recomendaron utiliar la POO de vb.net para realziar las conexiones con la base de datos..

Yo pensaba recien, y hacer una clase que reciba por parametros unos valores, de nombre de tabla, columnas y datos y con eso ya puedo hacer sencillamente una clase que se OCUPE del INSERT.. otra (o tal vez en la misma) para le UPDATE y otra (o tal vez en la misma) para el DELETE...

Bien.. Me gustaria que me recomienden que hacer.. si hacer 1 clase para TODA la conexión con la database, o 1 por cada sentencie (INSERT, UPDATE.. etc) o 1 clase por tabla (ésto me recomendaron.. aunque no lo veo como codigo REUTILIZABLE)

Pero, tambien está la 2º pregunta:
El metodo SELECT.. no sería BASTANTE dificil de hacer??


En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [AYUDA]Aprovechar la POO en Bases de Datos
« Respuesta #1 en: 14 Octubre 2009, 03:36 am »

Hola, tenes que crear clases para cada entidad, por ejemplo, tenes la entidad llamada "cliente", haces una clase que gestione todo lo que sea cliente. que tenga un metodo para hacer el INSERT, otro para el UPDATE, otro para DELETE...etc...creas las propiedades de la clase...como nombre, calle, direccion, telefono..etc.si tenes que hacer algo referido al cliente lo creas tambien ahi en esa clase.

y 3 capas es eso...la primera capa se encarga de la conexion de la base de datos y de las ejecuciones de comandos, consultas, transacciones...la segunda es la que te dije arriba, que para ejeuctar algo llama a la primera.y la tercera que seria donde programas la interfaz, llamas ahi a la segunda capa, que seria las clases.

no entendi la segunda pregunta...si sabes SQL un poco no es dificil..aparte internet esta lleno de ejemplos.

saludos.


En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: [AYUDA]Aprovechar la POO en Bases de Datos
« Respuesta #2 en: 14 Octubre 2009, 04:06 am »

Claro, por ejemplo, mi "programa" trabaja con "Caja, Produccion, Compra y Ventas"

En Caja, trabajo con una tabla llamada: "Movimientos"
Cada "entrada" de la tabla, tiene algunos datos como por ejemplo: El dia que se hizo un retiro o deposito de dinero, la cantidad, el PORQUE, el tipo de Factura (factura A, B, C.. etc) el ID de la factura.. y QUIEN lo hizo..

Yo "juego" con esa tabla, desde los "usuarios" (empleados) que acda vez que sacan o depositan dinero, tienen que aclarar todos esos datos... (INSERTS) y tambien desde la sesion CAJA, que puedo ver todos esos datos para sacar el calculo de la cantidad de dinero total (SELECTS)

Cuanto te refieres a programacion en 3 capas, sería algo así:?
1º Capa: Todos los codigos de INSERT, UPDATE, BORRADO, y SELECT (1 clase llamada MOVIMIENTOS, donde tengo metodos que se encargan de esas 4 cosas)

2º Capa: Sería la capa "comun" donde se desarrolla todo el programa??.. o sea, la capa donde se Instanciaria la clase MOVIMIENTOS, se le pasaria los datos por parametros, y se "llevarian a cabo las transacciones de INSERT; Upda.. etc)

3º Capa: Sería la GUI.. la interface de USUARIO??? O sea.. ventanitas, botones y bla bla bla... o no??

Sabes porque te pregunto con "CAUTELA" ésto?, porque en mi facultad, hablan mucho de CAPAS cuando hablan de HERENCIA, y esas cosas.. la relacion entre clases..

En cuanto a la 2º pregunta, me referia a éste ejemplo:
Si yo quiero analizar los movimientos que hubieron desde X fecha, hasta X fecha, tendria que pasar por parametro esas 2 fechas, y el SELECT, me devolvería los datos.. pero esos datos son MUCHOS.. (viste que apra leer todos los datos que devuelve la base de datos, hay que hacer un WHILE).. bueno.. teniendo en cuenta que devolverá muchos datos, no podria tomar (facilmente) esos datos como un "RESULTADO DEL METODO".. sino que tendria que vincular (por ejemplo) al LISTVIEW con ese Objeto "MOVIMIENTOS" (donde realizo el SELECT), o sea, pasar los datos de X y X fecha y tambien una VINCULACION al LISTVIEW.. O me equivoco?? Sino como mostraria cada item que devuelve el SELECT en algun LISTVIEW??

Te aclaro nuevamente, SOY NOVATO en VB.Net... tenme un poco de paciencia..
A lo mejor eso de nviar por parametros un "LISTVIEW" te parecerá tonto, (talvez no), pero en JAVA (lo que mas he programado, por la facultad), si quiero que un Objeto (un HILO por ejemplo), escriba en un TEXTAREA, tengo que enviarle el textarea por parametro, para que pueda interactuar con ese "elemento de la gui"
En vb-net es necesario eso?
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [AYUDA]Aprovechar la POO en Bases de Datos
« Respuesta #3 en: 14 Octubre 2009, 04:26 am »


Cuanto te refieres a programacion en 3 capas, sería algo así:?
1º Capa: Todos los codigos de INSERT, UPDATE, BORRADO, y SELECT (1 clase llamada MOVIMIENTOS, donde tengo metodos que se encargan de esas 4 cosas)

2º Capa: Sería la capa "comun" donde se desarrolla todo el programa??.. o sea, la capa donde se Instanciaria la clase MOVIMIENTOS, se le pasaria los datos por parametros, y se "llevarian a cabo las transacciones de INSERT; Upda.. etc)

3º Capa: Sería la GUI.. la interface de USUARIO??? O sea.. ventanitas, botones y bla bla bla... o no??

en la primera capa(o capa de Datos) no van los select, en esa capa conectas a la base, te creas un metodo llamado conectar y ahi pones la conexion , creas otro que sea desconcetar..etc...y tambien los metodos para ejecutar comandos y consultas.para ejecutar comandos debes crearte un metodo que ejecute un comando(INSERT,UPDATE,DELETE) y te devuelva los que fueron afectados, este metodo obviamente recibe como parametro la "cadena" del comando (INSERT INTO...blabla).el metodo para la consulta lo mismo pero que te devuelva un datareader y que reciba como parametro tambien la consulta a ejecutar (SELECT * FROM Tabla...).

en la segunda capa(Negocio) va lo que te dije antes...supongamos que tenes la entidad "cliente" , entonces creas las propiedades de este cliente(que serian los campos) direccion, telefono..etc.aca creas los metodos para insertar, updatear, borrar, consultar, etc...

en la tercer capa o de interfaz llamas a los metodos de la segunda...supongmaos que queres cargar todos los clientes en un listview...en la segunda capa debes tener creado un metodo que te devuelva un datareader...y llamas algo asi desde un boton por ejemplo:

Código
  1. Dim drClientes As SQLDatareader = oCliente.DevolverClientes

donde "DevolverClientes" es un metodo que me devuelve un datareader que en la segunda capa hace un "SELECT * FROM CLIENTES" por ejemplo...y para cargarlo al listview recorres el drClientes como ya sabes...

otra cosa que hago es instanciar todas las clases desde el Main de un modulo, y asi cuando queiro usar una clase no necesitas declararla mas, usas el objeto que declaraste en el main como publico y lo usas donde quieras.

en cuanto a lo de Hilos aca te dice lo simple que es:

Threads en VB.NET

saludos.
« Última modificación: 14 Octubre 2009, 04:31 am por seba123neo » En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: [AYUDA]Aprovechar la POO en Bases de Datos
« Respuesta #4 en: 14 Octubre 2009, 05:52 am »

Y cual es el "porque" de complicar todo tanto, si ya tengo algo como ésto:
Código
  1.        Dim SQLconnect As New SQLite.SQLiteConnection()
  2.        Dim SQLcommand As SQLiteCommand
  3.        SQLconnect.ConnectionString = "Data Source=C:/asdasdasd/asdasdasd/asd.db3;"
  4.        SQLconnect.Open()
  5.        SQLcommand = SQLconnect.CreateCommand
  6.        'Insert Record into Foo
  7.        SQLcommand.CommandText = "INSERT INTO xxxxxx (title, description) VALUES ('This is a title', 'This is a Description')"
  8.        'Update Last Created Record in Foo
  9.        SQLcommand.CommandText = "UPDATE foo SET title = 'New Title', description = 'New Description' WHERE id = last_insert_rowid()"
  10.        'Delete Last Created Record from Foo
  11.        SQLcommand.CommandText = "DELETE FROM foo WHERE id = last_insert_rowid()"
  12.        SQLcommand.ExecuteNonQuery()
  13.        SQLcommand.Dispose()
  14.        SQLconnect.Close()
  15.    End If

(creí que lo habia mencionado)
Que me haría mas facil el temita...
No sería mejor manupular eso para dejarlo solo en 1 clase (con las 3 sentencias separadas) y utilizar objetos de esa clase???
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [AYUDA]Aprovechar la POO en Bases de Datos
« Respuesta #5 en: 14 Octubre 2009, 06:11 am »

Y cual es el "porque" de complicar todo tanto

preguntale a los que inventaron las 3 capas :P, se puede programar sin ella tranquilamente...pero si podes hacerlo (que seria lo maximo) hacelo...y despues no te vas a arrepentir.

si, lo podes dejar en una clase y hacer todo desde ahi, pero ya no seria 3 capas y seria como por decirte un ejemplo como hacerlo en visual basic 6...vas a tenr que estar abriendo comandos y cerrando a lo loco cada vez que queres hacer algo, mientras que en las 3 capas no lo tendrias que hacer, porque la priemra capa ya se encarga de eso...o sea quiero que entiendas que esto de las capas es para simplificar el codigo que va en cada lado y despues ayuda muchisimo a la hora de mantenerlo.

saludos.
« Última modificación: 14 Octubre 2009, 06:16 am por seba123neo » En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: [AYUDA]Aprovechar la POO en Bases de Datos
« Respuesta #6 en: 14 Octubre 2009, 06:24 am »

Claro.. Entiendo...
Capaz que para un programa sencillito como el que estoy haciendo, no sea tan necesario esas 3 capas.. hago los INSERT, y SELECT super sencillos..
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda php bases de datos
PHP
Senior++ 3 2,139 Último mensaje 21 Diciembre 2013, 18:39 pm
por Senior++
Conectarse a bases de datos externas AYUDA POR FAVOR
Desarrollo Web
pakareh 2 1,666 Último mensaje 25 Junio 2014, 09:57 am
por pakareh
[AYUDA] Sincronizar tablas de dos bases de datos
Bases de Datos
darg94 1 2,854 Último mensaje 17 Julio 2014, 18:21 pm
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines