TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: IIIC en 30 de Mayo de 2010, 19:34:09

Título: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: IIIC en 30 de Mayo de 2010, 19:34:09
Que tal a todos.

He dicidido iniciar un nuevo tema en el cual describire la manera de realizar aplicaciones usando una base de datos como la de SQLite, con ayuda de cualquiera de los lenguajes de programacion que son compatibles con la plataforma .NET (VB, c#, c++, Delphi, etc).

Este curso intenta dejar que ustedes se preocupen mas por la electronica y no por aprender como se negocia con una base de datos.

En el curso haremos uso de herramientas  gratuitas para el desarrollo de software, pero la parte central de todo este curso sera sobre un ensamblado DLL que realiza todas las negociaciones con la base de datos de manera transparente, cabe señalar que esta libreria es desarrollada por mi y no tiene costo alguno.

Este ensamblado genera de manera automatica cualquier sentencia SQL necesaria, realiza el control de flujo y realiza las negociaciones con la base de datos de manera automatica.

En otras palabras solo sera nacesario ingresar los datos del registro en una estructura y dar la instruccion de la accion que queramos hacer para que el componente realice su trabajo, tan sencillo como:

registro.Insertar();      ! y listo ¡   el registro se guardo en la bd.


A QUIEN ESTA DIRIGIDO EL CURSO.


 - A los estudiantes, que necesitan realizar aplicaciones usando una base de datos y no saben nada sobre el tema.

 - Auqellos que sepan mucho de electronica pero necesiten desarrollar una aplicacion con soporte de una BD.
 
 - Cualquiera que este interesado.


A QUIEN NO ESTA DIRIGIDO.

 - A todos aquellos que realmente se interesen por las bases de datos, ya que aqui no aprenderan a realizar consultas SQL, ni a gestionar el enlace con la BD, ni verificar que las acciones se lleven acabo correctamente, ya que el mismo componente se encarga de todo eso.

 - A personas que desean realizar una aplicacion comercial.

Aunque el componente se genero originalmente para facilitar el acceso a bases de datos Oracle 10g y fue desarrollado siguiendo la tecnica de TDD, ademas de que cumple con estandares de calidad, esta version no permite la creacion de grandes bases de datos, pues el limite lo establece el propio SQLite.


No esta por demas decirles que con este componente se puede crear una aplicacion pequeña en menos de 10 minutos realizando altas, bajas, busquedas, modificaciones sobre cualquier tabla (de hecho uno se tarda mas creando el entorno visual).


En la proxima entrega veremos:


 - Que es SQLite, Cualidades y limites.
 - Creacion de una base de datos en SQLite usando SQLite Database Browser.
 - Que lenguaje puedo usar para crear mi proyecto?
 - Creacion de nuestro primer proyecto usando SharpDevelop 3.1

Nos vemos en la siguiente entrega.

IIIC.     8)







Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: migsantiago en 30 de Mayo de 2010, 22:47:54
Hola, IIIC. Este tema será genial.

Ya que has iniciado el tema talvez te interese abrir un nuevo tema para "comentarios" sobre éste. Así, las preguntas se harían en otro tema sin ensuciar el orden de éste. En caso de que estés de acuerdo este mensaje mío se autodestruirá  ;-)
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: Nocturno en 31 de Mayo de 2010, 02:21:57
Un tema muy interesante. Me apunto.
Gracias IIIC
Título: Preparativos
Publicado por: IIIC en 31 de Mayo de 2010, 18:39:44
Antes que nada gracias por el apoyo, espero no defraudar su confianza.


Al iniciar el tema no tenia previsto de que menera abordaria el curso. Me doy cuenta que a ustedes les convendria mas realizar una aplicacion donde se tomaran muestras cada cierto tiempo y estos datos sean almacenados en la BD.

Se me ocurrio entonces basar el aprendizaje de la herramienta en un ejemplo que a continuacion describo.


Requerimientos de la aplicaciòn.

Se desea tener una aplicacion que se comunique con un sistema microcontrolado el cual se usa de interfaz de comunicacion con un sensor de temperatura, el microcontrolador se encargara de realizar la conversion Analogica - Digital y de enviar los datos a la computadora a peticion de la aplicacion.

Estos registros de temperatura se almacenaran en una Base de Datos, con campos que representen un identificador de la muestra, la fecha , la hora, y magnitud de la lectura. La temperatura sera almacenada en Grados Centigrados con precision de un grado.

Las muestras se realizaran cada cierto lapso de tiempo el cual sera configurable y tendra que ser parte del registro de datos.

Los datos seran presentados en una grafica Tiempo vs Temperatura, que se desplace de derecha a izquierda mostrando la variacion de temperatura al pasar el tiempo.

Adicionalmente la aplicacion tendra la opcion de exportar los datos en formato de valores separados por coma (cvs), para su analisis con otras herramientas.

_____________________________________________________________________________

Bueno hasta aqui la descripciòn de la aplicacion que nos ayudara a explotar las capacidades del componente, espero que este a la medida del curso.

Hay que aclarar el hecho de que no cuento con un sistema electronico montado para tal proposito, por lo cual los datos seran provistos por una funcion que generara valores aleatorios dentro de un rango.

Para los que tengan un sistema acorde a este proyecto hagan uso de èl y nos cuentan sus experiencias.

El graficador lo desarrollare como un ensamblado para que se pueda reusar, lo cual me tomara un par de dias.

Por lo mientras les dejo un poco de tarea.


 * Conseguir he instalar  la ultima version de SQlite.  

 * Leer el articulo que encontre en :Sqlite una Gestor Agil (http://www.aplicacionesempresariales.com/sqlite-el-motor-de-base-de-datos-agil-y-robusto.html) para que conozcan un poco de las capacidades de SQLite.

 * Tener Instalado SharpDevelop 3.2 o en su defecto Visual studio edicion express. (El proyecto sera desarrollado en c# y Visual Basic .net al mismo tiempo).

 * .net framework  3.5    (el componente realiza consultas mediante LINQ por eso es importante esta version).


Por el dia de hoy es todo, para la proxima pondre cada herramienta en un link de descarga permanente, y traere los componentes necesarios desarrollados y listos.

Hasta pronto.

IIIC  8)
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: migsantiago en 31 de Mayo de 2010, 18:43:45
IIIC, una pregunta. Siempre que escucho sobre bases de datos me viene a la mente mySQL. ¿Qué es mejor, mySQL o SQLite? ¿Ambas son lo mismo? ¿Son freeware?
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: IIIC en 31 de Mayo de 2010, 18:54:27
IIIC, una pregunta. Siempre que escucho sobre bases de datos me viene a la mente mySQL. ¿Qué es mejor, mySQL o SQLite? ¿Ambas son lo mismo? ¿Son freeware?


Cada una tiene sus diferencias, en el caso de SQLite es agil, pequeña y no necesita configuracion extra, genera un unico archivo y puedes realizar un respaldo muy facil.

MySQL es un poco mas grande y completo, soporta opciones avanzadas y por supuesto es mas dificil de configurar (a diferencia de SQLite).

Este componente es capaz de manejar con las mismas instrucciones diferentes bases de datos, es decir podrias usar SQLite, Access 2003 - 2007, MySQL, Oracle 10g y 11g, PostgreSQL, DB2, SQL server, SQl Server CE, Firebird, Oracle 10g XE etc. cambiando solo una linea de tu codigo.

Y si ambas son freeware, asi como Oracle 10gXE, PostgreSQL, Firebird etc.

IIIC  8)
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: migsantiago en 31 de Mayo de 2010, 22:04:16
Pues suena prometedor. Gracias.
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: RedPic en 01 de Junio de 2010, 08:09:22
Yo trabajo un 90% en MySQL y un 10% en MS SQL Server pero he realizado un par de "cosillas" con SQLite y me ha encantado (sobre todo por no tener que configurar nada, tiras tu dll y ya tienes todo andando) así que voy a seguir tus enseñanzas con interés y aprovechamiento.  :mrgreen:

Nota: Para administrar bases de datos MySQL hay que utilizar programas "cliente" del estilo del Heidi ó SQLYog. Para hacer lo mismo con SQLite hay un complemento para Firefox que me sorprendió (por aquello de ser un complemento para Firefox) y que es una maravilla: El SQLite Manager (https://addons.mozilla.org/es-ES/firefox/addon/5817/)
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: Miquel_S en 01 de Junio de 2010, 16:12:12
Me apunto, lo seguire con interes, aunque seguro abra un monton de cosas que no entendere.
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: IIIC en 04 de Junio de 2010, 22:04:04
Que tal, saludos a todos los que siguen el post, de antemano pido disculpas por los tiempos en que organizo y genero los materiales necesarios.

El dia de hoy no hablare acerca del tema de base de datos. Si no unicamente expondre a ustedes un componente que nos ayudara a darle sustento al curso, pretendo ademas, que aprendan sobre el uso de Ensamblados o archivos dll en proyectos .Net

Lo que a continuaciòn les presento es solo un simple graficador, que tiene algunas caracteristicas que lo hacen configurable, ya que se pueden ajustar los siguientes parametros:

 - Cantidad de muestras visualizadas.
 - Valor maximo (para ajustar los rangos).
 - Posicion de las divisiones para ajustar la vista de los datos.


Lo que mas interesa en este momento son los pasos que deben de seguir para agregar este componente a un nuevo proyecto.
Y aunque esta vez sera expuesto de manera textual, tambien estoy preparando un documento pdf para dar una mejor explicacion de su uso.

(http://paginasprodigy.com.mx/ivnsc/graficador.jpg)

Imagen del graficador.

Los pasos son los siguientes:


0.- Bajar los archivos Proyecto completo Graficador (http://paginasprodigy.com.mx/ivnsc/Graficador.rar) y Ensamblado que crea la grafica (http://paginasprodigy.com.mx/ivnsc/Graficas_dll.rar)

1.- Crear un proyecto en visual Studio o SharpDevelop en cualquier lenguaje que sea comodo para ustedes.

2.- Dentro del formulario principal se arrastra un Panel y se coloca en el sitio donde estara la grafica, denle un buen tamaño para visualizar de manera adecuada los datos, no importa que nos sea tan grande pues el mismo componente se adapta.

3.- Dentro del Archivo que descargaron Graficas_dll.rar se encuentra el ensamblado Graficas.dll, el cual copian a la carpeta DEBUG del proyecto.


4.- El la pestaña de "Proyecto" se añade una referencia apuntando al ensamblado Graficas.dll.

5.- Una vez que hemos hecho los anterior, dentro de la cabecera del MainForm se usa la clausula using y añadimos el namespace Graficas.

       using Graficas;

6.- Instanciamos dentro de la clase una variable del tipo Grafica, de la siguiente manera.

     Private Grafica graficaTemp;    // o el nombre que nos guste.

7.- En el constructor de la clase inicializamos el objeto de la siguiente manera:


     graficaTemp = new Grafica( panel1, 50, 60);

    donde panel1, es el nombre del panel que añadimos al principio

     50 son la cantidad de muestras que se visualizan, y el 60 indica que la grafica considerara marcas hasta ese valor.


8.- Se crea una rutina que proporcione los datos y mediante la instruccion

     graficaTemp.AgregarMuestra(valor);

     se agrega un nuevo elemento a la grafica, el cual se dibuja inmediatamente.


En el archivo Graficador.rar  se encuentra un proyecto de ejemplo que indica como hacer uso de las funciones que modifican la grafica, por favor descargen y examinen con detenimiento el proyecto para que puedan darse cuenta de como se usa.

Por el dia de hoy es todo, no se desesperen por favor, veran que en pocas sesiones terminamos el curso.

Practiquen como hacer uso de archivos dll ya que usaremos el mismo proceso para dar de alta el componente que realiza las negociaciones con la base de datos.

Por cierto para los que usan Visual Basic solo sustituyan las sentencias por las propias del lenguaje, por ejemplo:


  using Graficas;                            ==    Imports Graficas;

  Private Grafica graficaTemp;         ==   Dim graficaTemp As Grafica

  lo demas es identico, pero si existen dudas subire la version en VB del Proyecto.
 

En la proxima entrega -----> Creacion de bases de datos con SQlite.

Saludos

IIIC  8)
    
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: IIIC en 06 de Junio de 2010, 20:41:35
Para continuar con el curso de Aplicaciones con Base de datos SQLite para .Net sin saber SQL.

He puesto el SQLite Database Browser (http://www.paginasprodigy.com.mx/ivnsc/sqlite_database_browser.rar) listo para descargar, esta utileria gratuita permite la creacion y edicion de bases de datos SQLite version 3 y anteriores.

Esta será la utileria que usaremos. Pueden usar (si asi lo desean) otra herramienta como el SQLite Manager que menciono RedPic o cualquier otra que sea accesible para ustedes.

Antes de iniciar... una pequeña introduccion (sin entrar en detalles):

Una base de datos es una coleccion de datos organizados de manera sistematica , esta provee una manera eficaz de almacenamiento y consulta de la información, sus componentes principales son las tablas, los campos y los registros.

Cada base de datos esta compuesta por un conjunto de Tablas, y cada Tabla contiene un conjunto de campos (columnas), que describen las propiedades de alguna entidad.

Mientras que los registros (renglones), son el conjunto de datos que se depositan dentro de los campos.

Por ejemplo si queremos almacenar los datos de autentificación de los usuarios de un sistema entonces el conjunto de campos minimos necesarios serian:

     id_usuario       -----> Identificador unico.
     nombre        --------> nombre del usuario.
     clave_acceso  ---> clave para autentificarse con el sistema.
  
El nombre de la tabla podria ser "Usuarios" y sera almacenada dentro de alguna base de datos de cualquier nombre.


Les invito a que hagamos la base de datos que materializa el ejemplo anterior.

La Base de Datos que crearemos  se llamara  "demo.db3".

La extencion db3 obedece al hecho de que se trata de una base de datos de SQLite version 3, sin embargo esto no es una regla, pueden optar por cualquier extencion con la unica condicion de que sean constantes.

Para crear la base de datos procedemos de la siguiente forma:

(http://www.paginasprodigy.com.mx/ivnsc/guia_sql_database_b.jpg)


1.- En la opcion "File" del menu principal existe la opcion "Create New Database", la seleccionamos he inmediatamente nos aparecera un cuadro de dialogo el cual nos pide especificar el nombre del archivo y la ubicacion que tendrá.

Les recomiendo que lo realicen en la misma carpeta donde se encuentra el programa SQlite Database Browser. Cuando estemos realizando el proyecto, sera adecuado crear la base de datos dentro de la carpeta DEBUG.

2.- Una vez establecido el nombre y la ubicacion del archivo,  el programa nos desplegara una serie de pantallas en las cuales  agregaremos los datos de la primera tabla de nuestra base de datos, le indicamos que el nombre sera "Usuarios".

3.- Posteriormente presionamos el botón "Add" para añadir un nuevo campo, daremos de alta los campos que acontinuacion se listan:

         id_usuario     -------> INTEGER PRIMARY KEY   -----> Campo que representa un identificador unico para el registro.
         nombre         -------> TEXT
         clave_acceso -------> TEXT

4.- Finalmente se presiona el botón "Create" y la estructura de la BD será creada.

5.- Seleccionamos "Save Database" y nuestra BD sera guardada.

Listo tenemos nuestra base de datos creada...

Para ingresar datos a nuestra BD seleccionamos la pestaña "Browse Data"  y ahí pulsamos el botón  "New Record" e ingresamos los datos de cada campo.

Si saben un poco de SQL en la pestaña "Execute SQL" ingresamos el comando

       INSERT INTO Usuarios(id_usuario, nombre, clave_acceso) VALUES(100, 'todopic', '123qwe');

y pulsamos "Execute Query".

Miramos dentro de la tabla (con la pestaña "Browse Data") y el registro estara dado de alta.

!Listo¡ ya estamos ingresando datos...

Se dieron cuenta que no tuvimos que instalar absolutamente nada!, ni configurar usuarios o arrancar algun servicio, solo tuvimos que especificar un nombre de archivo y la estructura de nuestra tabla. Asi de sencillo.

Dejenme decirles que no todo es color de rosa, aunque saber crear las sentencias SQL no es tan dificil, se vuelve una tortura cuando se implementa en el codigo sobre todo si se trabaja con tablas muy grandes.

En cuanto a las instrucciones SQL elegrense, pues esta es la unica vez que veremos una, como le dije podremos realizar las negociaciones con la BD sin usarlas.

Por hoy es todo espero que todo haya quedado bien explicado, por favor generen su archivo demo.db3 ya que lo usaremos la siguiente ocasión.

En la siguiente entrega crearemos una pequeña aplicacion que realice la autentificacion de usuarios como ejercicio.

Usaremos:
                   - Creacion de referencias a ensamblados (archivos dll) visto en el Post anterior.
                   - Uso de SQLite Database Browser para agregar usuarios  al archivo generado el día de hoy.
                   - Uso del ensamblado abdsqlite.dll.


Hasta la proxima.

IIIC  8)

Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: scientist en 13 de Junio de 2010, 00:28:46
gracias por tomarte el tiempo de preparar todo este material puramente didactico, es impresionantes la manera facil de hacer las cosas con las dll que nos otorgas, saludos
Título: Re: Aplicaciones con Base de datos SQLite para .Net sin saber SQL
Publicado por: IIIC en 14 de Junio de 2010, 20:09:43
Antes que nada, te agradezco scientist por tus comentarios y sobre todo por el interes que pones en el material que les dejo, por lo menos se que alguien si ha probado los componentes.

el dia de hoy dejare para ustedes un nuevo componente llamado abdsqlite.dll que no es mas que el resumen de --Acceso a bases de datos SQLite -- que ya lo pueden ir descargando del siguiente enlace Ensamblado abdsqlite.dll (http://www.paginasprodigy.com/a53410500/compartidos/abdsqlite.zip).

Iniciare exponiendo la forma que esta constituido este componente y la manera en que trabaja.

El ensamblado abdsqlite.dll es un conjunto de clases que nos ayudan a gestionar, organizar y obtener informacion desde una base de datos de manera ordenada. El conjunto de clases que lo componen son:

1.- Campo - esta clase almacena los datos, verifica que sean del tipo declarado y es identificado por un nombre.

2.- GeneradorSql - es una clase estatica que permite la creacion de sentencias sql mediante el uso de los datos albergados dentro del registro.

3.- Registro - Conjunto de campos organizados mediante una lista enlazada, gestiona operaciones como insertar, borrar, actualizar, consultar, etc.

4.- Tabla - maneja un conjunto de registros y realiza operaciones como consultas, e inserciones en la BD, en memoria gestiona los registros antes de ser guardados

5.- AccesoBD gestiona el enlace directo con la BD.

Cada una de estas clase cuenta con funciones y procedimientos que interactuan con los datos en memoria o directamente con la BD, estas retornan un valor booleano que indica si su accion o proceso ha sido ejecutado correctamente.


Con la practica veran que es muy facil manejar el componente.

Pues bien manos a la obra... ahora realizaremos un ejercicio con la base de datos "demo.db3" creada en el post anterior, con una pequeña aplicacion para autentificar usuarios.


PASO 1.

Creamos un nuevo proyecto, lo guardamos y lo compilamos por primera ocasion. Esto nos generara el conjunto de directorios que componen el proyecto, en la carpeta Debug copiamos, el contenido del archivo zip y el archivo de la base de datos demo.db3

(http://www.paginasprodigy.com.mx/ivnsc/f1.jpg)

El ensamblado adbsqlite hace uso del System.Data.SQlite.dll, si ustedes desean pueden usarlo de manera directa.

PASO 2.

Agregamos una referencia al abdsqlite.dll como se muestra a continuacion:

(http://www.paginasprodigy.com.mx/ivnsc/f2.jpg)

Este procedimiento lo hicimos en el ejercicio anterior.

PASO 3.

Creamos un pequeño formulario como el que a continuacion se muestra, recuerden que estamos haciendo un ejemplo para la autentificacion de usuarios de manera muy simple.

(http://www.paginasprodigy.com.mx/ivnsc/f3.png)

PASO 4.

Se añaden las variables AccesoBD el cual se inicializa en el constructor con el parametro que indica la localidad y nombre de la base de datos.

Se añade una variable de tipo Registro que se inicializa con el nombre de la tabla que vamos a acceder y el medio de enlace.

(http://www.paginasprodigy.com.mx/ivnsc/f4.jpg)


los parametros de inicalizacion del campo sirven para:

a) nombreDelCampo  - es evidente.

b) esCampoPersistente - indica si el campo declarado existe en la bd y sera almacenado, de otra forma solo se usa para mantener el dato en memoria.
 
c) esCampoVisible  - util si necesitamos visualizar los datos en pantalla, datagrid, lista etc.

d) tipoDeDato - indica que tipo de dato se almacena en el campo

e) esClavePrincipal  - indica que el campo representa el valor unico principal de la tabla.

f) esAutonumerico - indica si la gestion de las claves se hace de manera automatica o la hacemos nosotros, esto depende de como contruimos la base de datos. por cualquier duda pongan false y ustedes gestionen las claves, mas adelante veremos como.

PASO 5.

damos dos clicks sobre el boton creado y añadimos el codigo que a continuacion se ilustra.


(http://www.paginasprodigy.com/a53410500/compartidos/demostrar.jpg)


Bueno pues el codigo lo unico que hace es usar el registro usuario y realizar una consulta tomando como referencia el nombre del campo y el valor que vamos a buscar.

En la instruccion                       if(usuario.Consultar("nombre", tUsuario.text)             estamos haciendo lo siguiente

Con el registro usuario realizamos una consulta y como todas las funciones retornan un booleano verificamos que la consulta arroje resultados si no mandamos en mensaje de "El usuario no existe", si el usuario existe, se lee el valor que ha sido almacenado en al campo clave_acceso y lo comparamos con la cadena que nos dieron, verificando su validez.

El codigo es sencillo y si lo quieren examinar les dejo el PROYECTO COMPLETO (http://www.paginasprodigy.com/a53410500/compartidos/Demo.zip) en VB y C#, solo agregen el contenido del abdsqlite.zip a Debug.

Si tienen dudas por favor expongalas.


Para aquellos que siguen el curso uno breves anuncios.

- Eliminare las imagenes y las sustituire con un documento pdf.
- Iniciaremos el proyecto descrito en el segundo post, pero necesito saber si aun estan interesados.




por cierto pongo a continuacion la version equivalente sin usar el componente.
-----------------------------------------------------------------------------------------------
String cadena;
                
                OleDbConnection Medio;
                OleDbDataAdapter Comando;
                DataSet ds = new DataSet();

                Medio = new OleDbConnection(cadenadeconexion);

                cadena = "select * from Usuarios where nombre=" + "\"" + tUsuario.Text + "\"";
                
                Comando = new OleDbDataAdapter(cadena, Medio);                
                
                Comando.Fill(ds, "Usuarios");            
                
                DataTable dt = ds.Tables["Usuarios"];                
                
                try
                {
                
                   DataRow datos = dt.Rows[0];                              
                   
                   if(tPass.Text == datos[2].ToString())
                   {
                      aceptado =true;
                      Close();
                   }
                   else
                   {
                      MessageBox.Show("La contraseña es incorrecta");
                                   
                  }
                }
                catch(Exception)
                {
                   MessageBox.Show("El  Usuario no existe");
                }

no hay mucha diferencia, verdad?, sus ventajas se ven cuando se trabajan con tablas numerosas.


hasta la proxima.

IIIC  8)


Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: IIIC en 21 de Julio de 2010, 04:22:52
Ante todo una disculpa a todos los que se han tomado la molestia de leer este tema.
 
Me encontraba en examenes finales y entregando proyectos, lo cual me resto tiempo para seguir con el pequeño curso.

Finalmente tengo tiempo y les prometo terminarlo.

Antes de continuar dejenme hacer un pequeño parentesis y evaluar de cierta forma el interes sobre el tema. Quisiera saber si alguno de ustedes ha tenido algun problema para implementar lo que he expuesto.

Como no veo ningun comentario, ni duda planteada, espero que se este entendiendo todo

Cualquiera que sea la razón por la cual no preguntan les aseguro que el tema sera expuesto en su totalidad.

Agradezco a scientist los comentarios, ademas le debo un video para el proyecto del tutorial interactivo.


En par de dias continuare con la exposicion del curso y espero que realicen comentarios para saber si son claras mis explicaciones o necesitan material adicional.

Hasta pronto.

IIIC  8)


Por cierto, como incentivo adicional publicare la version para MySQL.

 
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: scientist en 31 de Julio de 2011, 00:25:25
He realizado el ejemplo que comentas, y todo ha salida bien, mi pregunta es si con este puedo crear una base de datos desde cero, no se como explicarme, la situacion es que requiero guardar datos de un inventario, es sencillo, solo requiero la fecha, el monto, y el lugar, lo que no entiendo muy bien, es cuando haga el ejecutable de mi aplicacion, se guarda esa base de datos?? y bueno, espero haberme explicado , excelente material de nuevo y una gran disculpa
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: IIIC en 06 de Agosto de 2011, 00:11:19
Bueno, hace mucho que nadie se interesa en el tema, pero agradesco tus comentarios.

En primera l abase de datos se almacena en un unico archivo y es el que generas al  momento de que usas el Mysql browser, el archivo con extension sql3  <--- ese archivo es la base de datos imposible de creer pero, asi es.

Ademas todo el motor del gestor esta en el System.Data.SQlite.dl, ahora el punto importante.

despuesn de que compilas tu programa solo necesitas tener 3 cosas en tu directorio  el ejecutable, el dll y el archivo *.sql3 y todos tus datos s e almacenan en ese archivo, puedes crear la base de datos igual que en el ejemplo solo define los nombres de campo, tipo de dato y el nombre de la bd.

espero haber aclarado tus dudas, saludos.
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: scientist en 08 de Agosto de 2011, 09:41:08
muchas gracias IIIC, con esto me has aclarado mi duda, aqui va otra pregunta, puedo crear una base de datos dentro de mi mismo programa?? sin necesidad de tener que hacerlo previamente con el Mysql Browser??? es que veo que en las funciones que estan en la dll no hay ninguna para crear desde cero la base de datos, saludos y solo para apuntar, yo creo que el hecho que no haya muchas preguntas, es por que el material que has puesto es muy claro y bien explicado
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: IIIC en 08 de Agosto de 2011, 21:22:41
la abdsql.dll en si no soporta la creacion de la base de datos, pero al importarla a tu proyecto tienes acceso a las demas funciones, pero en este caso si es necesario que sepas sql, por ejemplo si desde tu programa necesitas crear un archivo donde almacenaras toda tu base de datos tienes que  ingresar la linea:

SQLiteConnection.CreateFile("mi_base_de_datos.sql3"); // la extension puede ser la que tu decidas no necesariamente sql3

y posteriormente  se crea la tabla y los campos, un ejemplo seria:


private SQLiteConnection sql_con;
private SQLiteCommand sql_cmd;
private String sql_query = "";


sql_con = new SQLiteConnection
   ("Data Source=mi_base_de_datos.sql3;Version=3;New=False;Compress=True;");
 

sql_query ="create table registros(id_registro INTEGER PRIMARY KEY , total INTEGER, monto double,fecha DATE)";

sql_con.Open();
sql_cmd = sql_con.CreateCommand();
sql_cmd.CommandText=sql_query;
sql_cmd.ExecuteNonQuery();
sql_con.Close();

pero todo esto te puede causar dolores de cabeza. Es la forma comun de hacerlo, deja ver si me doy tiempo e implemento la parte que necesitas, es una buena sugerencia  pero no prometo nada he... saludos.
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: scientist en 08 de Agosto de 2011, 23:07:29
Gracias IIIC, se que el tiempo es el mayor recurso del cual tenemos, y hay que invertirlo bien, me recomiendas algun libro o pagina donde pueda aprender todo esto con sql??
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: IIIC en 10 de Agosto de 2011, 01:07:39
pues para sql puedes encontrar muchos ejemplos en la red, sobre sqlite en su sitio oficial hay mucha info http://www.sqlite.org/

sin embargo, para todo los lenguajes y gestores de bases de datos la forma de negociar esta estandarizada y el proceso es mas o menos igual en todos.

por ejemplo

Si deseas ejecutar un comando que no regresa resultados como en el caso de insertar, actualizar o borrar el proceso es el siguente:

- Creas una variable para conectarte a la base de datos (variable tipo Connection)
- Creas una variable que se encargara de ejecutar el comando necesario (variable tipo Command)
- Declaras  una variable de tipo cadena donde almacenaras la sentencia SQL (insert, update, delete, etc) con todos los parametros necesarios.
- Inicializas la variable de conexión con el nombre de usuario, contraseña, direccion del servidor (opcional), nombre de la base de dato.
- inicializas la variable command

- Abres la conexion
- Ejecutas el comando usando la sentencia SQL anteriormente declarada
-  Y Cierras la conexion

Si la consulta arroja resultados entonces solo se añade los siguiente

- Declaras una variable de tipo DataAdapter
- Declaras una variable de tipo Dataset

- Creas una variable para conectarte a la base de datos (variable tipo Connection)
- Creas una variable que se encargara de ejecutar el comando necesario (variable tipo Command)
- Declaras  una variable de tipo cadena donde almacenaras la sentencia SQL (select,  etc) con todos los parametros necesarios.
- Inicializas la variable de conexión con el nombre de usuario, contraseña, direccion del servidor (opcional), nombre de la base de dato.
- inicializas la variable command
- inicializas el dataadapter
- Abres la conexion
- Ejecutas el comando usando la sentencia SQL anteriormente declarada
- llenas el dataSet (conjunto de datos) mediante el dataadapter
- haces el tratamiento de los registros (los muestras, los evaluas, etc)
- Cierras la conexion
- liberas el dataset.


y ese es todo el show, por lo regular los errores aparecen cuando se crea la sentencia SQL por eso cuando detectes un error has que tu programa imprima la cadena que generas, precisamente por estas razones desarrolle el dll que se encarga de todo esto, no te desanimes y si tienes algun problema no dudes en preguntar... saludos desde el Defectuoso.
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: reiniertl en 15 de Agosto de 2011, 09:28:21
Excelente este curso. Lo he "pegado" para que no se pierda en la mar de hilos.

Saludos
Reinier
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: nacker2002 en 18 de Abril de 2012, 07:23:19
Hola IIIC

Estoy en mi proyecto de fin de carrera, se trata de un control de accesos por identificación de tarjetas de radiofrecuencia, recibo los datos por puerto serie en mi PIC 18F1320, los comparo con una base de datos ( aqui es donde acudo a tu tema) y si se encuentra la identificacion en mi base de datos, continuo con el procedimiento. Mi problema ahora es, la creacion de una base de datos y de un parte de eventos que me diga quién entró y quién salió ( sin decir cuando, debido a las limitaciones tecnologicas de las que cuento) y que pudea ser exportado al PC en algún formato.

Me he estado informando en todas la entradas realizadas por su parte (muy buenas), pero toda la información es poca sino consigo resolver una duda que tengo, y es que, en dicha base de datos se almacenaran los identificadores de las tarjetas, el PIC una vez reciba la identificación por RS232, llamará a las BD y comprobará si dicho identificador recibido se encuentra en esa BD y en tal caso, seguirá con el procedimiento oportuno, pues bien, la BD debe ser modificable, (insertar y borrar identificadores) y se tiene que modificar por ordenador, es decir, se deberá manipular por PC y posteriormente volcarla de nuevo a la memoria de datos de mi PIC (Supuestamente por RS232), pero claro, ¿Cómo hago yo estas modificaciones el la memoria de PIC con un simple ordenador (que es lo pretendido, para que cualquier persona lo pudiera hacer facilmente) si el trabajador de mantenimiento no dispondrá de un programador?

Resumiento, mi duda es: ¿Se puede acceder de un PIC a una base de datos en un PC por puerto RS232? y cómo? Gracias.
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: MerLiNz en 18 de Abril de 2012, 11:49:57
Poder se puede, debes hacer un software que interprete los datos del pic desde el rs232 y a su vez conecte con la base de datos, cuando el pic le pida determinada informacion, el software la busca en la base de datos y se la envia al pic.
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: IIIC en 17 de Marzo de 2013, 15:25:32
Hola nuevamente me encuentro por aqui, se que me he desaparecido por un buen tiempo, sin embargo ahora que busco algunas distracciones al trabajo diario quisiera usar parte de mi tiempo libre para apoyarlos en el tema de Bases de datos, si bien muchos ya tienen idea de como integrar estas bases de datos a sus proyectos me he dado cuenta que algunos aun no dominan el tema, dare seguimiento a mi post mejorando algunas caracteristicas y ofreciendoles apoyo a los que lo requieran, esto en agradecimeinto al vasto conocimiento que alguna vez este foro me ofrecio, buen dia y a seguir aprendiendo...

Saludos a todos.
Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: IIIC en 17 de Marzo de 2013, 23:31:01
Ok, iniciamos de nueva cuenta.

Primero una pequeña introduccion:

Existen varios metodos para accesar a una base de datos mas no los voy a mencionar ya que es irrelevante, lo que quiero ofrecerles es una manera facil, estandarizada y sencilla de manejar la base de datos, tambien voy a dejar a un lado las cuestiones de seguridad y no profundizare en el tema de las relaciones o dependencias, simplemente vamos a aprender a crear bases de datos, insertar datos, modificarlos, realizar consultas y borrar registros.

Nuevamente por cuestiones preacticas usare SQLite, porque? pues simplemente porque no requiere instalacion, genera un solo archivo y es adaptable a sistemas embebidos.

Otra cosa importante que tengo que mencionar es que ahora si aprenderemos SQL.  El componente  de las sesiones anteriores aunque facilita las operaciones con la base de datos, no se adaptaba completamente a las exigencias de los usuarios o por lo menos no sabian como explotarlas capacidades, por esa razon aprenderemos SQL para poder realizar las mismas operaciones no solo en una base de datos como SQLite sino en cualquier otra.

Como siempre el material es:

* SQLite  Browser que lo pueden descargar desde aca: Pagina Oficial (http://sqlitebrowser.sourceforge.net/)
* SharpDevelop 3.2 (o el entorno que mas les agrade): Pagina Oficial (http://www.icsharpcode.net/opensource/sd/)

* Muchas ganas por aprender
* Un proyecto para aplicar lo aprendido (Opcional)

Por supuesto todo lo aqui expuesto se aplicara a cualquier gestor de Base de Datos y si algunos desean trabajar con otro lenguaje de la plataforma .net solo requeriran de la transformacion del codigo.

Eso es todo por hoy, en el siguiente post iniciare con la explicacion de conceptos basicos y con la creacion de la primera clase para el acceso a la base de datos.

Gracias

Título: Re: Aplicaciones con Base de datos SQLite y MySQL sin saber SQL
Publicado por: IIIC en 22 de Marzo de 2013, 23:00:56
Que tal en esta ocasion iniciare  hablando acerca de los elementos que usare:

El acceso a la base de datos se hara usando librerias (dll) que implementan los ActiveX data Object   o ADO.net, que son un conjunto de funciones que proveen del codigo necesario para acceder a datos y a servicios de datos. Con estas DLL (tambien conocidas como Data Providers) se estandariza el proceso de negociacion entre el cliente y el servidor de datos, es posible a traves de las mismas acceder de manera local o remota, existen librerias para todas las bases de datos disponibles compatibles con entornos .NET por lo cual el metodo aqui presentado servira para cualquiera de ellas.

Yo voy a usar la libreria para System.Data.SQLite que la pueden encontrar dentro del archivo comprimido abdsqlite.rar (http://www.paginasprodigy.com/a53410500/compartidos/abdsqlite.zip), por supuesto tambien se requerira de una base de datos que puede ser generada con el programa SQlite Browser, si tienen dudas acerca de su funcionamiento pueden navegar a la pagina anterior y consultar el proceso de creacion.

Para comenzar el desarrollo, es necesario crear un nuevo proyecto, si usan el Sharpdevelop es lo mismo a crear una "Solucion"  esta debera de ser una "Aplicacion de windows".

Tomense un poco de tiempo conociendo la interfaz Dentro del proyecto creamos una nueva "clase".

Dentro de esta clase (que se puede llamar como ustedes deseen yo la llamare BD) encapsularemos y gestionaremos las acciones de conexion, desconexion, consulta,  insercion, etc.

Pero una pequeña pausa, lo que realmante vamos a hacer es a programar usando el paradigma Orientada a Objetos, no es necesario saber mucho, realmente se daran cuenta que es mas sencillo pensar de esa forma.

Les doy y me doy un tiempo para que averiguen un poco acerca de esto y que se sientan mas comodos con el entorno de desarrollo.

Saludos.