Curso PUDE. Desarrollo de Aplicaciones Móviles en Android
|
|
- Mario Castellanos Toledo
- hace 8 años
- Vistas:
Transcripción
1 Curso PUDE Ejercicio Avanzado A: Bases de Datos y conexión con un ListView utilizando vistas A. Descripción Con este ejercicio, veremos cómo funcionan las bases de datos SQLite en Android, crearemos una, y la conectaremos con una actividad en forma de ListView muy simple. A continuación, el alumno deberá mejorar la forma en que se visualizan de forma que sea elegante sin que la interfaz de usuario sufra ralentización alguna. Las ListViews son muy importantes en toda aplicación Android. Es más, hay aplicaciones cuyas interfaces se construyen alrededor de ListViews, como los clientes de Twitter o de Facebook. Para almacenar información en el dispositivo Android, podremos recurrir a una base de datos de tipo SQLite, que nos permitirá un acceso rápido a los datos en comparación con el sistema de archivos, pero tenemos que tener siempre en cuenta que los dispositivos Android están siendo distribuidos con poca memoria interna (o ROM), que es donde se almacena la base de datos, por lo que no conviene abusar de ella. B. Implementación B- 1. Construcción de la base de datos Para construir una base de datos, necesitaremos al menos dos clases. En la primera, representaremos lo que vamos a guardar en cada fila de la tabla como un objeto Java, siguiendo un poco los patrones JavaBean y DAO (o Data Access Object). En la segunda clase, tendremos los métodos encargados de construir la tabla, de actualizarla, de borrarla, y de insertar los valores iniciales. Cuál es el objetivo? Nosotros construiremos una capa encima de la base de datos, de forma que no veremos un SELECT * FROM en nuestro código a menos que sea en estas dos clases. En SQLite, disponemos de unos recursos limitados, ya que la idea de SQLite es de ocupar el menor espacio posible. Tanto es así, que no existen claves ajenas o foráneas, ni existen los tipos de fecha (Date), booleano (Boolean), ni tantos otros a los que estamos acostumbrados en SQL de sobremesa y servidores. Esto nos llevaría, en caso necesario, a forzar manualmente la comprobación de claves ajenas, y en el caso de querer guardar tipos Página 1 de 8
2 que no sean caracteres (TEXT) o números (INTEGER), tendremos que realizar conversiones, como hemos hecho con la clase DbCryptoAlgorithm. Para empezar, veamos sus datos: public enum TipoDeCifrado { Bloque, Flujo public enum TipoDeSimetria { Simetrico, Asimetrico private static final String LOG_TAG = "DbCryptoAlgorithm"; private long id = -1; private String nombre = ""; private TipoDeCifrado tipocifrado; private TipoDeSimetria tiposimetria; private boolean seguro = false; private int longitudminimaclave = -1; Primero nos creamos unos tipos enumerados, luego la etiqueta para el LOG de esta clase, y las variables que representarán las filas. El id, el nombre del algoritmo, tipo de cifrado, tipo de simetría, si es seguro y la longitud mínima de clave recomendada. Para poder acceder a las columnas de las filas, crearemos variables a las que llamaremos llaves para poder acceder a ellas más tarde. Esto nos permitirá no tener problemas para encontrar las columnas en el código. Ahora, necesitamos un método para poder guardar el contenido de estas variables en la base de datos, esto lo haremos en el siguiente método: public long save(sqlitedatabase db) { ContentValues cv = new ContentValues(); // para cada variable cv.put( LLAVE_VARIABLE, valorvariable); ContentValues es una clase compuesta por una serie de parejas (llave, valor). Lo que aquí hacemos es guardar todas las variables con su correspondiente llave (ver el método completo en el ejercicio Inicial). Por supuesto, también tenemos que controlar si la variable está representada o no en la base de datos, y eso lo hacemos mirando el id. Si es distinto de - 1 (valor por defecto al crear un objeto de la clase), sabemos que ya ha sido creado, y por tanto que debemos actualizarlo. Y si no, lo insertamos. Página 2 de 8
3 Debemos ver ahora la segunda clase, la DbCryptoAlgorithmSQLiteHelper. A través de esta clase podremos leer y escribir en la base de datos, pero eso se verá más tarde. Lo importante es ver que en esta clase definimos el nombre de la base de datos, el nombre de la tabla, y la versión actual del esquema en el constructor. Lo de las versiones es importante, ya que lo normal es que a medida que vayamos avanzando en el desarrollo de una aplicación ya puesta a disposición de nuestros usuarios, queramos incluir más funcionalidades, y por muy previsores que seamos, alguna columna se nos escapará. Lo recomendado en estos casos suele ser copiar los datos del usuario a una tabla auxiliar, borrar la tabla, crear la nueva, e inicializarla. El ALTER TABLE está soportado por el estándar SQLite, pero no se recomienda su uso para cambios en el esquema de tablas en Android. Suele ser preferible el método descrito anteriormente. En el constructor de nuestra clase, llamamos a un método de la clase padre donde especificamos el contexto que solicita crear una instancia de la base de datos, la tabla que se quiere, una factoría de cursores (pasamos null) y la versión del esquema (de la base de datos) actual. Veamos los métodos más importantes de la clase SQLiteOpenHelper: public void oncreate(sqlitedatabase db) { public void onupgrade(sqlitedatabase db, int versionantigua, int versionnueva) { public void onopen(sqlitedatabase db) { El primer método es el que se llama para crear la base de datos, es decir, donde está la sentencia SQL CREATE TABLE. Justo después tenemos una llamada a un método auxiliar, que es donde estamos introduciendo los datos nada más crear la tabla. Si lo vemos, nos daremos cuenta de que no hay llamadas a sentencias SQL de tipo INSERT, porque lo hacemos todo a través de DbCryptoAlgorithm. Solamente instanciamos un objeto, le damos sus valores, y utilizamos el método save() pasándole la instancia de la base de datos. Simple. El método onupgrade() es llamado cuando se detecta que la versión del esquema de la base de datos, es inferior a la que requiere nuestro programa (versionantigua < versionnueva), por lo que aquí debemos actualizar la base de datos. Generalmente, se copian los datos a una tabla auxiliar, se borra la tabla, se llama al oncreate() para que genere la nueva tabla, se copian los datos de la tabla auxiliar y luego se borra ésta. Es de suponer que cuantas menos versiones del esquema de base de datos tengamos que soportar en nuestra aplicación, mejor, luego cada vez que hagamos un cambio en la versión del esquema, que sea con vistas al futuro. Por último, el onopen() (que no está ni es necesario Página 3 de 8
4 en este ejercicio) se llama cada vez que solicitemos abrir la base de datos, ya sea para leer o escribir. Teniendo nuestra clase SQLiteOpenHelper completamente definida, nos falta terminar la clase DbCryptoAlgorithm. Qué nos falta? Un par de métodos. public static Cursor getall(sqlitedatabase db) { public static DbCryptoAlgorithm loadfrom(sqlitedatabase db, long id) { public DbCryptoAlgorithm loadfrom(cursor c) { Vayamos por partes. El último método se encarga de, dado un cursor apuntando a la fila que queremos, transferir los datos de las columnas a las variables del objeto. Esto se hace pidiéndole los datos al cursor con las llaves, y es muy sencillo. Segundo, en el loadfrom() estático, se nos da una instancia de la base de datos y un id, y lo que queremos es devolver un objeto de la clase DbCryptoAlgorithm que recupere la información de la fila con ese id, cosa que haremos utilizando el método anterior. Cómo? Pues necesitamos ejecutar una sentencia SQL buscando por el id; si vemos que en el cursor hay al menos una fila, devolvemos la primera (lo correcto es asegurarse de que sólo hay una fila, por supuesto). Por último, tenemos el método getall(), que es el que ya utilizamos en el ejercicio inicial; en este método, simplemente hacemos un SELECT * para recoger en el cursor todas las filas de la tabla. Ya está? Sí. Hasta aquí preparar la base de datos. Tened en cuenta que los métodos en sí no son complicados, sino que la complejidad se ve aumentada por el hecho de que SQLite no es tan versátil como las demás implementaciones de SQL a las que estamos acostumbrados, forzándonos a guardar objetos Date de Java como Strings (TEXT) y rescatarlos utilizando un parser, por ejemplo. B- 2. Conectando con la lista Para llegar hasta el ejercicio inicial, tenemos que hacer muy poco. Primero, definimos variables para la lista, la base de datos, y el cursor que contendrá las filas representadas en la lista. En nuestro método initconfig(), lo que hacemos es solicitar una base de datos a través de nuestro DbCryptoAlgorithmSQLiteHelper, inicializar nuestro cursor, crear un adaptador utilizando un esquema (list_item.xml) muy sencillo y asignarle a la lista este adaptador. Es importante tener en cuenta la línea startmanagingcursor(c), ya que gracias a ella no tenemos que preocuparnos de cerrar el cursor ni de hacer que la ListView pase por todas las filas del mismo. Por último, debemos implementar el método ondestroy(), y cerrar la base de datos aquí. Es importante saber que no se debe cerrar la Página 4 de 8
5 base de datos tras los cambios, sino cuando se cierre la actividad (ondestroy()) que realiza las llamadas, ya que si no se intentará leer/escribir en una base de datos cerrada y habrá excepciones. C. Pasos a seguir 1. Para este ejercicio, lo que haremos es mejorar la visualización de las filas de la base de datos. Lo primero que tenemos que hacer es realizar cambios en el list_item.xml, porque ahora tendremos un CheckBox y un par de TextViews. Lo que queremos mostrar es el título de los algoritmos criptográficos, la longitud de la clave, el tipo de cifrado y el tipo de simetría. Cómo quedan dispuestos se deja a la elección de los alumnos. Además, se pide que el CheckBox y el fondo de cada fila varíen según si el algoritmo es seguro o no; en el caso del CheckBox, que esté marcado si es seguro, y que el fondo sea distinto para los algoritmos seguros y para los no seguros. 2. Después de hacer cambios en el list_item.xml, necesitaremos crear dos clases privadas en DbListViewActivity: DbCryptoAlgorithmAdapter (que extiende CursorAdapter) y DbCryptoAlgorithmWrapper. Empezaremos por la segunda. En DbCryptoAlgorithmWrapper, tendremos un objeto privado por cada View en el list_item.xml, por ejemplo, el CheckBox y dos TextViews. Además, necesitaremos guardar la fila, y la guardaremos como un tipo View, aunque podemos cambiarlo a LinearLayout, TableLayout, RelativeLayout, etc. según sea el caso. A esta clase la conoceremos como clase envoltorio o Wrapper, porque se encarga de llevar los datos de la fila apuntada por el cursor a las vistas de cada fila de la ListView. El constructor será así: DbCryptoAlgorithmWrapper (View view) { this.row = view; 3. Ahora, necesitamos getters para cada vista de la fila (el CheckBox y los TextViews), que implementaremos todos de forma similar: Página 5 de 8
6 public CheckBox getseguro() { if (seguro == null) seguro = (CheckBox) row.findviewbyid(r.id.rowcheckbox); return seguro; 4. El por qué implementaremos todos los getters de esta forma debe estar claro para el alumno. El último método de esta clase es public void populatefrom(cursor c) { En este método es donde realizaremos los cambios según cómo sea el algoritmo apuntado por el cursor. Su contenido se deja completamente como ejercicio. Lo que debemos hacer es inicializar las vistas de nuestro Wrapper en función de la fila apuntada por el cursor, y luego, en función de qué tipo de algoritmo se trate, modificar el fondo de la fila y marcar el CheckBox. 5. Ya hemos terminado la clase Wrapper, ahora tenemos que hacer nuestro adaptador. La idea de éste es que utilizaremos las llamadas que nos provee la API de Android para re- utilizar las Views, es decir, en vez de crear una nueva vista cada vez que Android debe mostrar una fila (éste es el comportamiento por defecto haciendo scrolling), re- utilizaremos las vistas que ya se han creado, actualizando su contenido. Android nos lo pone muy fácil, y en realidad la mayor parte del trabajo ya lo hemos hecho en la clase Wrapper. Para que esto funcione, para cada vista que representa una fila debemos asociarle una clase Wrapper, y el hecho de re- utilizar las vistas nos pondría las cosas muy difíciles si tuviéramos que llevar a cabo la organización nosotros (los getters dentro de la clase Wrapper requerirían siempre buscar la vista de la fila si no lo hiciéramos, lo cual sería muy malo), pero Android nos lo pone muy fácil, porque nos deja asociar un objeto a las vistas (métodos settag() y gettag()), los cuales usaremos. Empecemos. Necesitamos declarar el constructor, que haremos así: public DbCryptoAlgorithmAdapter(Context context, Cursor c) { super(context, c); Página 6 de 8
7 6. Ahora, necesitamos implementar el método bindview. Este método se llama cuando Android nos entrega una vista ya inicializada (o inflada con su Wrapper) y nos pide que le asociemos los datos correspondientes a la fila del cursor. Es también muy public void bindview(view view, Context context, Cursor cursor) { DbCryptoAlgorithmWrapper wrapper = (DbCryptoAlgorithmWrapper) view.gettag(); wrapper.populatefrom(c); 7. Como se puede observar, el método es muy sencillo, ya que todo el trabajo lo hace la clase Wrapper. Lo último del adaptador es el método newview, que se llama cuando hay que crear una vista que represente la fila apuntada por el cursor. Lo que tenemos que hacer es inflar una vista siguiendo el esquema list_item.xml, crear una clase wrapper alrededor de esta vista, asignársela con settag(), y dejar que el wrapper realice el resto del public View newview(context context, Cursor cursor, ViewGroup parent) { LayoutInflater inflater = getlayoutinflater(); View row = inflater.inflate(r.layout.list_item, parent, false); // creación del wrapper // asignación del wrapper a la vist // cargar contenido del cursor en la vista a través del wrapper alumnos. Las líneas comentadas representan líneas de código a completar por los La clase LayoutInflater nos permite transformar un esquema XML en una vista, y el último parámetro del método inflate() es importante porque une asigna la View a la View que hace de padre (en este caso, la ListView), y si lo dejamos en true, provocará una excepción. Página 7 de 8
8 Se valorará: El correcto entendimiento del funcionamiento de las bases de datos en Android. La inclusión o no inclusión de logs a lo largo del código (recordar que no debemos saturar el LogCat). Limpieza del código. Entendimiento de la clase Wrapper, de su importancia y de su potencial. Página 8 de 8
Curso PUDE. Desarrollo de Aplicaciones Móviles en Android
Curso PUDE Ejercicio Avanzado A: Bases de Datos y conexión con un ListView utilizando vistas A. Descripción Con este ejercicio, veremos cómo funcionan las bases de datos SQLite en Android, crearemos una,
Más detallesPersistencia Android. Índice
Índice 1 Introducción...2 2 Ejercicios... 2 2.1 Crear el adaptador de la base de datos...2 2.2 Inserción...3 2.3 Método deleteall... 3 2.4 Probando la inserción...3 2.5 Consultas...4 2.6 Adaptador de ListActivity
Más detallesUnidad IV. Aplicaciones sobre Base de Datos
Clase:013 1 Unidad IV Aplicaciones sobre Base de Datos 2 Agenda PROGRAMA DE MANIPULACION DE BASE ANDROID SQLITE SQLITE OpenHelper SQLITE Database Cursor Ejemplos Agregar controles según campo Usar query
Más detallesPersistencia. Sesión 1: Ficheros y SQLite en Android. Experto en Desarrollo de Aplicaciones para Dispositivos Móviles
Persistencia Sesión 1: Ficheros y SQLite en Android 2012-2013 Depto. Ciencia de la Computación e IA Puntos a tratar Ficheros tradicionales en Android Apertura de ficheros Ficheros como recursos Operar
Más detallesUTIM Universidad Tecnológica de Izúcar de Matamoros
UTIM Universidad Tecnológica de Izúcar de Matamoros El gestor de DB por defecto en Android es Lite. SQLite es una base de datos transaccional ligera que ocupa una cantidad muy pequeña de espacio en disco
Más detallesCurso 12/13. Desarrollo de Aplicaciones Android. Persistencia
Curso 12/13 Desarrollo de Aplicaciones Persistencia Mecanismos de persistencia Preferencias Sistema de ficheros (privado) Bases de datos SQLite Almacenamiento externo (público) Conexiones de red 2 Preferencias
Más detalles1.- CREACIÓN DE CONSULTAS.
1.- CREACIÓN DE CONSULTAS. Una consulta permite efectuar preguntas acerca de la información almacenada en las tablas. En una consulta se pueden obtener datos de una tabla e incluso de varias tablas, por
Más detallesCreando CRUD en PHP: operaciones básicas para la gestión de bases de datos
Creando CRUD en PHP: operaciones básicas para la gestión de bases de datos Cualquier portal web utiliza algún sistema de base de datos para almacenar la información que luego mostrará en sus páginas. Para
Más detallesPersistencia. Mecanismos de persistencia. Preferencias. Curso 12/13
Curso 12/13 Aplicaciones Persistencia Mecanismos de persistencia Sistema de ficheros (privado) Bases de datos SQLite Almacenamiento externo (público) Conexiones de red 2 Las preferencias son una forma
Más detallesCrear listas personalizadas en Android
Crear listas personalizadas en Android Introducción Bienvenidos a la sección de programación Android, hoy voy a explicar cómo crear listas personalizadas en Android. Las listas en Android son elementos
Más detallesManual de OpenOffice Impress
Manual de OpenOffice Impress. Capítulo 4. Trabajando con diagramas, esquemas y plantillas 1 Manual de OpenOffice Impress Capítulo 4: Trabajando con diagramas, esquemas y plantillas Este material es una
Más detallesTP Nº4 Android - SQLite Fecha Miércoles 2013/08/14 Profesor: Pablo Ulman (Polshu).
BASES DE DATOS EN ANDROID Bases de datos SQLite SQLite es una base de datos Open Source que se encuentra embebida en Android Las Bases de datos que se crean son accesibles por nombre desde cualquier clase
Más detallesFicheros y acceso a datos - Ejercicios
Ficheros y acceso a datos - Ejercicios Índice 1 Escribir en un archivo de texto...2 2 Crear y utilizar un DataHelper para SQLite...2 3 Proveedor de contenidos propio... 3 4 Por qué conviene crear proveedores
Más detallesLA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C)
APRENDERAPROGRAMAR.COM LA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesImplementación de diccionarios sobre Trie en C++
Implementación de diccionarios sobre Trie en C++ Algoritmos y Estructuras de Datos II 2. do cuatrimestre de 2016 Introducción Vamos a implementar una interfaz de diccionario en C++ La representación interna
Más detallesPROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Más detallesSistema de Gestión y almacenamiento de archivos en el Campus Virtual
Sistema de Gestión y almacenamiento de archivos en el Campus Virtual Página 1 de 15 GESTIÓN DE ARCHIVOS Dentro del Campus Virtual vamos a tener distintas formas de seleccionar y gestionar los archivos.
Más detallesMÁS CONTENIDO WEB 2.0
MÁS CONTENIDO WEB 2.0 CURSO PLATAFORMA EDUCATIVA JCYL PODCAST Son archivos de audio con las grabaciones en diferido de distintos programas de la radio, o de blogs, etc. se pueden encontrar en sus páginas
Más detallesUNIDAD 4. MODIFICAR TABLAS DE DATOS
UNIDAD 4. MODIFICAR TABLAS DE DATOS Aquí veremos las técnicas de edición de registros para modificar tanto la definición de una tabla como los datos introducidos en ella. Esta unidad está dedicada, principalmente,
Más detallesProgramación II Objetos en Java
Programación II Objetos en Java Definición Objeto: Conjunto de datos y métodos relacionados. Los objetos se alojan en una parte de la RAM reservada al proceso denominada memoria dinámica, y son referenciados
Más detallesINSTITUCIÓN MANUEL MARÍA SÁNCHEZ Tecnología e Informática Word
Combinación de Correspondencia Con la combinación de correspondencia, podemos combinar una lista de datos, tales como nombres y direcciones, con un formulario o plantilla genéricos para crear documentos
Más detallesGestión de bases de datos de mysql desde Dreamweaver
Gestión de bases de datos de mysql desde Dreamweaver Para realizar este tutorial debes tener instalado Adobe Dreamweaver CS6 y Wampserver 2.2. Contenido. Instalar el servidor de prueba Crear la base de
Más detallesUnidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Más detalles1.- Creamos un proyecto al que llamaremos MusicaMovil.
Base de datos en Android. (Modelo de la BD) Este ejercicio probablemente parecerá absurdo, pero no pretendo hacer un reproductor de música, sino más bien es un previo para un diccionario de español a maya
Más detalles3.- Seleccionamos la tabla CLIENTES y pulsamos el botón Agregar. Una vez hecho esto cerramos el cuadro Mostrar tabla con el botón Cerrar.
Consultas de Selección Una vez completado los ejercicios anteriores, nos disponemos a visualizar los datos en forma de consulta, es decir, a partir de unos criterios de selección podremos mostrar los datos
Más detallesManual de Excel Avanzado
Manual de Excel Avanzado MS EXCEL 2007 GVA CONSULTORIA Y CAPACITACION, S.C. AV. JUAREZ N 100 PRIMER PISO COL. CENTRO DEL. CUAUHTEMOC, MEX. D.F. C.P. 06010 TEL. 41956332/33 www.gvamundial.com.mx 1-36 CONTENIDO
Más detallesBases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información.
Bases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información. 1 Introducción Como ya sabes las bases de datos (BD) son la mejor forma de almacenar y trabajar con
Más detallesLaboratorio de Programación III
Laboratorio de Programación III Profesor René Sandoval Ingeniero (E) Informática rene2160@gmail.com Qué es JDBC? JDBC es el acrónimo de Java DataBase Conectivity Es una especificación de un conjunto de
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz
Más detallesREPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)
APRENDERAPROGRAMAR.COM REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I Fecha revisión: 2039 Resumen:
Más detallesTEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Más detallesINTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)
APRENDERAPROGRAMAR.COM INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) Sección: Cursos Categoría: Lenguaje de programación Java
Más detallesJava y Access. 4. En nuestra pantalla aparecerá ahora la pestaña DSN usuario seleccionada. Para crear un nuevo perfil haremos click en Agregar...
Java y Access La capacidad para acceder a bases de datos desde Java la ofrece la API JDBC (Java DataBase Conectivity). JDBC es un estándar para manejar bases de datos en Java. ODBC es un estándar de Windows
Más detallesData Bases 2. La sintaxis precisa de esta función es: mysql_pconnect (nombre del servidor, el usuario de la base de datos, password ) ;
Data Bases 2 Este capítulo aprenderemos como crear ya una página de internet en la cual tendrá interacción con el usuario, como llenaremos un formulario HTML y que directamente se registre en la Base de
Más detallesContenido. Página 2 de 10
RÚBRICA Contenido INTRODUCCIÓN... 3 CONFIGURACIÓN Y GESTIÓN DE UNA RÚBRICA... 3 Definir un nuevo formulario de calificación desde cero, para crear un nuevo formulario desde cero... 4 Crear un nuevo formulario
Más detallesApunte JAVA + SVN. Emi Höss
Apunte JAVA + SVN Emi Höss Instalando Eclipse y Java VM Eclipse es la IDE que utilizaremos para programar los TP s de la materia. Puede descargarse de la siguiente página: https://www.eclipse.org/downloads/index.php
Más detallesManejo de Bases de Datos Mysql en Lenguaje C
http://undersecurity.net Servidor irc : irc.ircnode.com Canal irc : #undersec Manejo de Bases de Datos Mysql en Lenguaje C By: S[e]C Entendiendo el tratamiento de una base de datos MySQL. Antes de ir al
Más detallesAndroid TAG y el principio DRY
Android es una plataforma de desarrollo que empieza a tener el sobrenombre de INFINITA en cuanto a las cosas que se pueden hacer, conjunto de APIs soportadas etc. Sin embargo al ser tan grande muchas veces
Más detallesINTERFACES MAP Y SORTEDMAP DEL API JAVA. CLASES HASHMAP Y TREEMAP. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00922C)
APRENDERAPROGRAMAR.COM INTERFACES MAP Y SORTEDMAP DEL API JAVA. CLASES HASHMAP Y TREEMAP. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00922C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesPerfiles. Pág. 2 de 42
ÍNDICE Índice... 1 Perfiles... 2 1. PERFIL DEL COMERCIAL... 3 1.1. GESTIÓN DE CLIENTES... 3 1.2. PETICIONES DE OFERTA... 5 1.3. GESTIÓN DE PRESUPUESTOS... 9 1.4. GESTIÓN DE OFERTAS...12 2. PERFIL DE OFICINA
Más detallesSesión 2. TEMA 4. OBJETOS Y CLASES
Sesión 2. TEMA 4. OBJETOS Y CLASES Fundamentos de Informática José Jaime Noguera Noguera 8 de marzo de 2018 Contenidos 1 Ejecución de un programa con y sin BlueJ 2 Objetos y clases 3 Cuestiones 4 Tareas
Más detallesAPÉNDICE A: ACCESO A UNA BASE DE DATOS CON JDBC
APÉNDICE A: ACCESO A UNA BASE DE DATOS CON JDBC Lo primero que hay que saber es que la manera más conveniente de acceder a una base de datos utilizando el lenguaje de programación JAVA, es a través del
Más detallesIncluir imágenes en el blog
Incluir imágenes en el blog 1. DÓNDE ENCONTRAR IMÁGENES GRATUITAS L as imágenes son un elemento fundamental en un blog, tanto para personalizarlo (por ejemplo, poniendo una imagen en la cabecera del blog)
Más detallesEjercicio paso a paso. Crear, abrir y cerrar una base de datos
Ejercicio paso a paso. Crear, abrir y cerrar una base de datos Objetivo. Practicar las operaciones de Crear, abrir y cerrar una base de datos con Access2000. 1 Si no tienes abierto Access2000, ábrelo para
Más detallesProcesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Más detallesEn la parte inferior de la pantalla se podrá ver el estado de la última copia y la fecha y hora actual.
Guía de Usuario Esta Guía de Usuario del programa de Copias de Seguridad le ayudará a conocer el funcionamiento del programa para que pueda personalizar el salvado de sus documentos con gran facilidad.
Más detallesClases para trabajar con SQLite en Android
SQLITE SQLite SQLite (http://www.sqlite.org/) es : Una librería de software que implementa un gestor de bases de datos relacionales. Adaptado para dispositivos de bajo consumo o móviles Está escrito en
Más detalles1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres.
CREACION DE BASE DE DATOS EN POSTGRESQL 1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres. Pasos: inicio Todos los programas PostgreSQL 8.2 o la versión 9 (o
Más detallesPara el siguiente trabajo utilizamos IBM Data Studio Version Un ABM completo de una tabla. 1.a) Alta de una sucursal.
Indice 1. Un ABM completo de una tabla.... 3 1.a) Alta de una sucursal.... 3 1.b) Baja de una sucursal.... 6 1.c) Modificar una sucursal.... 10 Editor de Mandatos para ejecutar los Store Procedure antes
Más detallesAlgoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
Más detallesLuego una vez creado el proyecto pondremos un boton, el que queramos a elegir entre muchos.
TUTORIAL ATUTOPLAY MEDIA STUDIO 7 TEMA: Manejo de archivos Autor: Jdyb Lo primero que debemos de hacer es crear un nuevo proyecto con el Autoplay Media Studio. Haremos click en File y luego en new y nos
Más detalles!"# $! "# % &'& $()! ( *
OBJETIVOS!"# $! "# % &'& $()! ( * REQUERIMIENTOS DESCRIPCIÓN SOFTWARE Microsoft Visual Studio 2005.NET FrameWork 2.0 En este tutorial se va a revisar la forma de trabajar con los conceptos de OO en Visual
Más detallesInterBase / Firebird: el uso de eventos
InterBase / Firebird: el uso de eventos Este artículo pretende dar una breve introducción acerca del uso de los eventos de Firebird e InterBase y como usarlos desde Delphi. Los eventos permiten a las aplicaciones
Más detallesCombinar correspondencia
ESTÁNDAR DESEMPEÑO ESTÁNDAR DESEMPEÑO BÁSICO Interpreta la tecnología y sus manifestaciones (artefactos, procesos, productos, servicios y sistemas) como elaboración cultural, que ha evolucionado a través
Más detallesGestión de datos maestros
Gestión de datos maestros Con el administrador de datos maestros le será posible administrar y realizar tareas de mantenimiento en datos maestros comunes de la base de datos actual como un proceso. Esto
Más detallesAplicaciones de Bases de Datos con Delphi - II
Guías técnicas Grupo Danysoft: Aplicaciones de Bases de Datos con Delphi - II Equipo Grupo Danysoft junio de 2003 - (902) 123146 www.danysoft.com Guías Técnicas Grupo Danysoft: Aplicaciones de Bases de
Más detallesMemoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++
Qué es una variable? Variables Memoria Matemática: una etiqueta que representa a un valor en una expresión: f (y) = y 2 + 2y Programación: Nombre simbólico dado a un valor residente en la memoria. Propiedades
Más detallesTipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Más detallesGrado en Ingeniería Informática. Estructura de Datos y Algoritmos, Grupo 84M, 2014/ de Marzo de
Grado en Ingeniería Informática Estructura de Datos y Algoritmos, Grupo 84M, 2014/2015 12 de Marzo de 2015 Nombre y Apellidos:... PROBLEMA 1 (1 punto) Programación Orientada a Objetos. Una empresa de alquiler
Más detallesCarlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Más detallesClase 3: Repaso POO. DSIW1:Ing. Tomás Eduardo Urbina 1
DSIW1:Ing. Tomás Eduardo Urbina 1 Declaración de una clase y creación de un objeto. La programación orientada a objetos se basa en la programación de clases; a diferencia de la programación estructurada,
Más detallesProgramación en Visual Basic Ricardo Rodríguez García
Manual Básico de Programación en Visual Basic 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único paquete que denominaremos proyecto.
Más detallesAndroid y Java para Dispositivos Móviles
Android y Java para Dispositivos Móviles Sesión 7: Almacenamiento con RMS Android y Java para Dispositivos Móviles 2010 Depto. Ciencia de la Computación e IA Almacenamiento con RMS-1 Puntos a tratar Almacenes
Más detallesTP Nº4 Android - SQLite Fecha Miércoles 2014/08/29 Profesor: Pablo Ulman (Polshu)
BASES DE DATOS EN ANDROID Soluciones de Almacenamiento de Datos: Shared Preferences: o Datos primitivos privados almacenados con clave/valor Internal Storage: o Almacenamiento interno en la memoria del
Más detallesLA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesGENERACIÓN DE ÍNDICES ANALÍTICOS DE DOCUMENTOS
: 1 sesión (del 23 al 27 de mayo de 2005) GENERACIÓN DE ÍNDICES ANALÍTICOS DE DOCUMENTOS Vamos a realizar un programa que genere automáticamente el índice analítico de un documento electrónico dado. Una
Más detallesSistema Cuántico Avanzado SQX. Manual de instalación y Configuración
Sistema Cuántico Avanzado SQX Manual de instalación y Configuración Índice Índice 2 1. Instalación y Conexión. 3 1. Preparación y Conexión... 3 2. Instalación... 3 2. Configuración de parámetros. 5 3.
Más detallesCOBHTTPD-CGILIB. Librería para creación de Paginas web Dinámicas con COBOL. Manual de Templates. COBHTTPD Manual de Templates
COBHTTPD-CGILIB Librería para creación de Paginas web Dinámicas con COBOL. Manual de Templates www.cobtools.com Page - 1 - I N D I C E Descripción...3 Descripcion de Variables y Parrafos...4 TPL-OPEN-FILE...4
Más detallesEstructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
Más detallesContenido. Página 2 de 8
RÚBRICA Contenido INTRODUCCIÓN... 3 CONFIGURACIÓN Y GESTIÓN DE UNA RÚBRICA... 3 Definir un nuevo formulario de calificación desde cero, para crear un nuevo formulario desde cero... 4 Crear un nuevo formulario
Más detallesCómo crear una tabla editable con PHP, MySQL y jquery
Cómo crear una tabla editable con, MySQL y jquery Teléfono: 900 103 253 www.hostalia.com WHITEPAPERS: Cómo crear una tabla editable con, MySQL y jquery El uso de tablas en las páginas es un recurso muy
Más detallesCREACIÓN DE SOBRES, ETIQUETAS Y CARTAS PERSONALES
CREACIÓN DE SOBRES, ETIQUETAS Y CARTAS PERSONALES CREACIÓN DE SOBRES Y CARTAS SIN COMBINAR CON DATOS Antes de comenzar a hablar de la combinación de correspondencia, vamos a ver cómo crear sobres o etiquetas
Más detallesCOMBINAR CORRESPONDENCIA
COMBINAR CORRESPONDENCIA Microsoft Office Word nos provee una herramienta muy útil que nos permite incluir en un documento, datos que se encuentran almacenados en otro lugar. De esta forma logramos obtener
Más detallesUbuntu Server 12.10 HOW TO : UBUNTU SERVER EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar un servidor de ubuntu.
Ubuntu Server 12.10 HOW TO : UBUNTU SERVER EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar un servidor de ubuntu. Instalación De Ubuntu 10.04 LTS Server Este manual se
Más detallesMODIFICAR TABLA DE DATOS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE
MODIFICAR TABLA DE DATOS ACCESS 2010 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE MODIFICAR TABLA DE DATOS Aquí veremos las técnicas de edición de registros para modificar tanto la
Más detallesMODIFICAR TABLA DE DATOS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE
MODIFICAR TABLA DE DATOS ACCESS 2007 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE MODIFICAR TABLA DE DATOS Aquí veremos las técnicas de edición de registros para modificar tanto la
Más detallesSesión 6. TEMA 8 COMPORTAMIENTO AVANZADO CON OBJETOS
Sesión 6. TEMA 8 COMPORTAMIENTO AVANZADO CON OBJETOS Fundamentos de Informática José Jaime Noguera Noguera 18 de marzo de 2018 Contenidos 1 Introducción 2 Conceptos 3 Cuestiones 4 Tareas Temario Recordar
Más detallesProgramación multimedia y dispositivos móviles. Objetos Parcelables
Programación multimedia y dispositivos móviles Objetos Parcelables Recordando Para enviar un ArrayList por medio de un Intent Para enviar un ArrayList por medio de un Intent tenemos dos opciones; o Método
Más detallesTrabajando con bases de datos. ClaseOracleBD
Trabajando con bases de datos. ClaseOracleBD Índice de contenido Archivo de configuración...1 Agregar una cadena de conexión a Web.config con un control de origen de datos...1 Utlizando un Control SQLDataSource...1
Más detallesSoluciones del Examen de Fundamentos de Computadores y Lenguajes
Soluciones del Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Final. Junio 2003 1) Escribir un fragmento de programa que haga lo siguiente Declara
Más detallesIntroducción a Python Qué es Python?
Introducción a Python Qué es Python? Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación
Más detallesPedidos Tienda - Almacén
Pedidos Tienda - Almacén 1.- Operatoria desde la tienda: El programa permite realizar pedidos desde las tiendas, utilizando el listado RE-PON, un terminal de captura o introduciendo manualmente los artículos
Más detallesPráctica 2. Búsqueda I
Práctica 2 Búsqueda I En esta práctica vamos a ver algunos algoritmos de búsqueda en grafos. Para ello vamos a utilizar una aplicación que nos permite programar diferentes problemas que pueden solucionarse
Más detallesModelamiento y Diseño de Base de Datos
Modelamiento y Diseño de Base de Datos Sub consultas y vistas Objetivos: Elaborar sub consultas, a partir de una consulta. Generar diferentes vistas a partir de las tablas de una base de datos. Introducción
Más detallesChecks, Triggers y Excepciones en InterBase: validando desde la base de datos
Checks, Triggers y Excepciones en InterBase: validando desde la base de datos Por Alfonso Ricaño Bringas InterBase nos permite validar los valores que ingresan a los campos, mediante las restricciones
Más detallesMyOpenLab. Versión Manejo de datos en Matrices y Tablas.
MyOpenLab Versión 3.015 Manejo de datos en Matrices y Tablas http://myopenlab.de http://es.myopenlab.de Prof. José Manuel Ruiz Gutiérrez jruiz1@platea.pntic.mec.es 1 Índice 1. Tratamiento de Matrices y
Más detallesEjercicios - Persistencia en Android: ficheros y SQLite
Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base
Más detallesEntiendo los métodos de Java equals y hashcode
Todos los días cuando programamos usamos objetos y en muchas ocasiones necesitamos comparar unos con otros. Para ello en muchas ocasiones usamos los métodos de de Java equals y hashcode. Estos métodos
Más detallesMICROSOFT ACCESS 2007 (COMPLETO)
MICROSOFT ACCESS 2007 (COMPLETO) Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access 2007, estudiando los conceptos fundamentales de las bases de datos y explicando
Más detallesManual del programa LIS
FACTURAS Y ALBARANES Este manual, se va a centrar en estos dos elementos: ALBARANES Actualización Listado FACTURAS Actualización Listado En ambos casos o elementos, se pueden automatizar sus respectivas
Más detallesINSERCIÓN DE UN REGISTRO CON PHP Y MYSQL
INSERCIÓN DE UN REGISTRO CON PHP Y MYSQL Para poder realizar este ejercicio necesitamos la base de datos, para esto abriremos el gestor de bases de datos Mysql Empezaremos con crear la base de datos con
Más detallesACTIVIDADES BASE DE DATOS ACCESS 2007
ACTIVIDADES BASE DE DATOS ACCESS 2007 En un primer momento vamos a practicar las opciones de Crear, abrir y cerrar una base de datos de Access 2007. Abrimos Access 2007 y haz clic sobre la opción Base
Más detallesServicios Web Android
Índice 1 Introducción...2 2 Ejercicios... 2 2.1 Listado de libros a partir de servicios web (0,5 puntos)... 2 2.2 Obteniendo las portadas de los libros (0,5 puntos)...3 2.3 Añadir un libro (0,5 puntos)...5
Más detallesFunciones Básicas de la Hoja de Cálculo
1 Funciones Básicas de la Hoja de Cálculo Objetivos del capítulo Conocer el concepto y características de una hoja de cálculo. Conocer los elementos más importantes de una hoja de cálculo. Explicar la
Más detallesProgramación de Videojuegos Tema 15 Tipos de Dato I. 15. Tipos de Dato I
15. Por ahora ya sabemos lo suficiente sobre el muestreo de textos por pantalla, aunque por supuesto a falta de practicar un poco. Vamos a cambiar un poco de temática y vamos a ver otros aspectos avanzados
Más detallesCÓMO UTILIZAR EL NUEVO SITIO WEB DE LA XARXA
CÓMO UTILIZAR EL NUEVO SITIO WEB DE LA XARXA 1. Utilización de la interfaz... 3 1.1 El buscador... 3 1.2 Menú Asociación... 4 1.3 Menú Actividades... 5 1.4 Menú Eventos... 5 1.5 Menú Blog... 6 1.6 Menú
Más detallesGestor documental Alfresco
Gestor documental Alfresco Entrar en la aplicación con vuestro usuario y contraseña, en la dirección: https://alfresco.hezkuntza.net/alfresco id.: adm-centro pass: Kt67Rst Lo primero que se nos muestra
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión III La Sintaxis de Java II... 6 Estructuras de Control... 7 Estructuras de Selección... 8 Sentencia
Más detalles