✋✋Alto!!! 👉👉 ¿Te ayudó este video❓ 👈👈 👌 Ayudame también dando Like, compartiendo y suscribiéndote a mi canal y redes sociales!!! no les cuesta nada y me ayudan mucho❗❗❗ 👍📱👍📱👍 ✔ Descarga la APP: play.google.com/store/apps/details?id=co.chenao.stroopers ✔ SUSCRIBETE : goo.gl/IiPNSy ✔ Facebook: facebook.com/codejavu ✔ Blog: codejavu.blogspot.com/ ✔ Twitter: twitter.com/chenaooo ✔ Instagram: instagram.com/cristiandavidhenaoh ✔ Enlace GitHub: github.com/chenaoh/EjemploSQLite ✔ Udemy: www.udemy.com/fundamentos-de-programacion-algoritmos-en-java-y-javascript
@FernandoRodriguez-vx5nm4 жыл бұрын
hola Cristian muchas Gracias siempre me ayudan tus videos, tengo una duda, el problema es que tengo un Spinner filtrado con un EditText que filta bien la lista del Spinner pero cuando quiero seleccionar el elemnto filtrado para que se posicione en un textView me posiciona otro elemento, por favor si me puedes ayudar lo más rápido posible te estaría muy agradecido como siempre
@FernandoRodriguez-vx5nm4 жыл бұрын
se me olvidaba el Spinner contiene los datos de una tabla Sqlite en Android Studio
@carlomagnocondesaldana58606 жыл бұрын
Amigo estaba buscando resolver el error de renombrar las tablas en la misma db, sin embargo lo dices la solucion en el minuto 4:10 muchas gracias. Me suscribo y espero que con este comentario también resuelvan el mismo problema que el mío.
@Jonathan-mv7pb4 жыл бұрын
Gracias por los videos, me sivieron mucho, una pregunta ¿se podria reutilizar el metodo consultarListaPersonas () de la otra clase que usaste para llenar el spinner? Gracias
@CristianDavidHenao4 жыл бұрын
Hola, claro que si
@vigamo11044 жыл бұрын
hola, podrias ayudarme, cuando corro la aplicaciòn en registrar mascota, no me hace el registro, y cuando reviso el listview mascota no me agrega nada,
@lessingcardenas51584 жыл бұрын
Gracias por sus videos, han sido de gran ayuda.
@torresvp5 жыл бұрын
Sos un genio! me salvaste! eternamente agradecida!!!
@NekoManAICore3 жыл бұрын
Muchas gracias!!, resolví un problema que tenía!
@fersilent38844 жыл бұрын
Gracias excelente video
@CristianDavidHenao4 жыл бұрын
Gracias!
@ChikaPhantomLi5 жыл бұрын
la sentencia para usar llaves foraneas con una base de datos con mas tablas cambia mucho?
@cristiandelacruz1662 жыл бұрын
Amigo tengo una duda , en caso ya acabe la app von base de datos sql lite Y al querer sacar a produccion necesito otra cosa implenmentar o al sacarlo a produccion la base de datos funcionara en diferentes moviles . Espero me respondas buenos videos sigue asi ❤
@juanalbertorojascamacho77483 жыл бұрын
Gracias por los videos, muy claros. Tuvieras algun video donde se explica el uso de SQLite con imagenes?
@juanalbertorojascamacho77483 жыл бұрын
Y si fuera posible, extraer esos registros en PDF
@EdgarGarcia6435 жыл бұрын
Hola Christian no tienes una manera de consultar multiples tablas con SQLite pero a traves del comando SQL INNER JOIN ?
5 жыл бұрын
yo tengo esa misma duda
@sebasmf12675 жыл бұрын
x3
@paola48574 жыл бұрын
Gracias por los tutoriales
@CristianDavidHenao4 жыл бұрын
Con gusto
@MASKDANTE4 жыл бұрын
Amigo cristian, excelente videoy me ayudo aclarar cositas, se pueden guardar datos en una tabla sqlite desde una clase java como utilidad, intento usar alguna funciones pero me dice aque debo complementar un context, tienes algun video donde uses el conector de mysql jbdc driver, gracias por tu tiempo.
@CristianDavidHenao4 жыл бұрын
Hola, lo tengo con php y MySQL con Java tendrías que igual hacer el mismo proceso pero exponiendo un webservice que permita la comunicación, es el mismo concepto solo que con Java es un poquito más complejo
@CristianDavidHenao4 жыл бұрын
Lo que puedes hacer también es usar el ws con php solo para acceder a la BD desde la app
@ernestovilela2865 жыл бұрын
Me salvaste la vida gracias :)
@reybarber95094 жыл бұрын
Buenas. Una inquietud, veo que no declara la llave foránea y esa es la duda que tengo, si eso lo puedo hacer siempre, solo colocando los nombres de las variables iguales en ambas tablas?
@ros75066 жыл бұрын
Intereaante subd mas videos.. veo k es mas completo k app inventor like ssuscr
@qpedoputomamon6 жыл бұрын
muy buenos tus vídeos pero explicas todo en chinga, hay veces que no se te entiende nada, se un poco mas comprensivo con tu publico
@nandoperu1005 жыл бұрын
Hola gracias por tu ayuda con los videos sobre SQlite , podrias ayudarnos con un video explicando como exportar e import la base de datos en android .. Gracias
@sebasmf12675 жыл бұрын
Solo he logrado importar datos de una BD externa con servicios Rest (JSON), seria de gran ayuda, ya que un no logro la exportación de datos
@paola48574 жыл бұрын
Si gracias me servirade mucho,
@Anullos424 жыл бұрын
Buenas Cristian soy yo de nuevo en otro de tus videos, tengo un problema con mi aplicacion sobre todo en la parte de Utilidades (te sonará de la aplicacion Stroopers), te explico el funcionamiento de mi aplicacion: primero creo una base de datos llamada "clase" con campo id y nombre hago la consulta pertinente de esta base de datos en un recyclerview y lo que quiero es que en el momento que hago click en una de las clases que se me muestra me lleve a la pantalla de la clase donde hay un recyclerview de los alumnos que corresponden con esa clase. para ello mi lógica fue crear en Utilidades un "public static ClaseVo claseSeleccion=null;" para capturar el objeto de la ClaseVo y recuperar el nombre con "claseSeleccion.getNombre();" y asi llamarlo a la tabla de CREAR_TABLA_ALUMNOS, lo que hago es que en TABLA_ALUMNO = claseSeleccion.getNombre(); asi en el momento que entro en la pantalla con un nombre de TABLA_ALUMNO diferente me lo muestra por el consultarlistaAlumno con la clase correspondiente en teoria, el problema que tengo esque a la hora de cargar la aplicacion me devuelve un NullPointerExeption: en el que la clase ClaseVo.getNombre() on a null objetc referente. como puedo arreglar esto? por mucho que trasteo no consigo arreglarlo, o si para hacer lo que yo quiero hay que hacerlo de otra manera como seria?? dime algo por favor y gracias por tus videos me estan sirviendo mucho!!
@CristianDavidHenao4 жыл бұрын
Hola, verifica si al momento de asignar el objeto este lo estás instanciado? Porque puede que intentes usarlo y sigue siendo null, intenta no poniéndolo null en la clase utilidades sino dándole new al objeto ahí... Otra cosa que puedes revisar es cuando asignes los datos de la consulta, que efectivamente estés almacenando la información para garantizar que se está asociando a tu objeto.
@Anullos424 жыл бұрын
@@CristianDavidHenao gracias, al final lo hice de otra forma mucho mas sencilla, lo que hice fue crear un nuevo campo en la tabla alumnos que se llama "clase" y en la consulta de los alumnos filtro por el nombre de la clase que pertenece y me aparecen solo los alumnos que tienen ese nombre de clase. A parte de eso Cristian solo tengo una duda que me está quebrando la cabeza y no consigo resolver y es en la parte de los adaptadores cuando en el bind..noseque declaro un boton del cardview con el metodo Onclicklistener dentro de esa funcion solo me deja usar los métodos si les paso un context, aun asi tengo problemas porque termino creando mi codigo dentro del adaptador en lugar del activity. Como podria hacer para que desde el activity pudiera reconocerme el boton que tengo dentro del cardview que se está mostrando en el recyclerview???? ese detalle podria arreglarme muchos problemas de código, lo que quiero hacer esque desde el activity (supongo que dentro del metodo donde tengo miAdaptador) reconozca el onclick del boton que tengo dentro del cardview que se está mostrando en un recyclerview,
@ezionight-kt22596 жыл бұрын
Excelente tus videos ya me he suscribido a tu canal, quisiera hacer un carrito de compras con sqlite, en donde se puedan crear objetos para añadir al carrito de que forma podria hacerlo???
@ros75066 жыл бұрын
Muy buenos videos.. podrias generar aprtir del buscador total de maacotas.. es posible..??
@athena0134 жыл бұрын
al desistalar la aplicacion no me actualiza la base de datos, ni borrando cache ni data de la app funciona, sabes que podria suceder
@vigamo11044 жыл бұрын
ya intente revisar el codigo paso a paso del registro de mascota, pero no me genera nada, public class RegistroMascotaActivity extends AppCompatActivity { EditText razaMascota,nombreMascota; Spinner comboDuenio; ArrayList listaPersonas; ArrayList personasList; ConexionSQLiteHelper conn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_registro_mascota); razaMascota = (EditText) findViewById(R.id.campoRaza); nombreMascota = (EditText) findViewById(R.id.campoNombreMascota); comboDuenio = (Spinner) findViewById(R.id.comboDuenioMascota); conn = new ConexionSQLiteHelper(getApplicationContext(), "bd_usuarios", null, 1); consultarListaPersonas(); ArrayAdapter adaptador = new ArrayAdapter (this, android.R.layout.simple_spinner_item,listaPersonas); comboDuenio.setAdapter(adaptador); comboDuenio.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long idl) { } @Override public void onNothingSelected(AdapterView adapterView) { } }); } public void onClick(View view) { switch (view.getId()){ case R.id.btnRegistraMascota: registrarMascota(); } } private void registrarMascota() { SQLiteDatabase db=conn.getWritableDatabase(); ContentValues values=new ContentValues(); values.put(Utilidades.CAMPO_NOMBRE_MASCOTA,nombreMascota.getText().toString()); values.put(Utilidades.CAMPO_RAZA_MASCOTA,razaMascota.getText().toString()); int idCombo= (int) comboDuenio.getSelectedItemId(); /** * Valida la seleccion del combo de dueños, si el usuario elige "seleccione" entonces * se retorna el id 0 ya que la palabra "seleccione" se encuentra en la pos 0 del combo, * sinó entonces se retorna la posicion del combo para consultar el usuario almacenado en la lista */ if (idCombo!=0){ Log.i("TAMAÑO",personasList.size()+""); Log.i("id combo",idCombo+""); Log.i("id combo - 1",(idCombo-1)+"");//se resta 1 ya que se quiere obtener la posicion de la lista, no del combo int idDuenio=personasList.get(idCombo-1).getId(); Log.i("id DUEÑO",idDuenio+""); values.put(Utilidades.CAMPO_ID_DUENIO,idDuenio); Long idResultante=db.insert(Utilidades.TABLA_MASCOTA, Utilidades.CAMPO_ID_MASCOTA,values); Toast.makeText(getApplicationContext(),"Id Registro: "+idResultante,Toast.LENGTH_SHORT).show(); db.close(); }else{ Toast.makeText(getApplicationContext(),"Debe seleccionar un Dueño",Toast.LENGTH_LONG).show(); } } private void consultarListaPersonas() { SQLiteDatabase db=conn.getReadableDatabase(); Usuario persona=null; personasList =new ArrayList(); //select * from usuarios Cursor cursor=db.rawQuery("SELECT * FROM "+ Utilidades.TABLA_USUARIO,null); while (cursor.moveToNext()){ persona=new Usuario(); persona.setId(cursor.getInt(0)); persona.setNombre(cursor.getString(1)); persona.setTelefono(cursor.getString(2)); Log.i("id",persona.getId().toString()); Log.i("Nombre",persona.getNombre()); Log.i("Tel",persona.getTelefono()); personasList.add(persona); } obtenerLista(); } private void obtenerLista() { listaPersonas=new ArrayList(); listaPersonas.add("Seleccione"); for(int i=0;i
@leonardogomez40537 жыл бұрын
Una pregunta, ya hiciste algún vídeo para guardar datos en un archivo txt por ejemplo?
@CristianDavidHenao7 жыл бұрын
Leonardo Gómez hola, solo con sharedPreferences
@jordimorosbadenes29616 жыл бұрын
Había utilizado ficheros hasta ahora y me he pasado a base de datos. Todo mucho más práctico y sencillo :D
@edgarjulianhiguitaortega95437 жыл бұрын
hola se pueden hacer inner join en SQLite?
5 жыл бұрын
Sí quiero consultar la mascota con su dueño en ves de hacer las consultas separadas no puedo meter un INNER JOIN ??
@juanmorgana9236 жыл бұрын
oie bro me puedes ayudar por favor me aparce errror sql dice no such table cuando quiero crear otra tabla
@Zeroman14446 жыл бұрын
Hola, disculpa, pese a que me vi todos los videos hay una duda que no logro resolver. Que pasa si lo que necesito es crear una base de datos externa? Osea que yo la cree usando algun gestor desde la pc como SQLite administrator para despues insertarla en mi proyeto y hacer uso de ella una vez instalada. De antemano te agradezco
@CristianDavidHenao6 жыл бұрын
Zeroman1444 hola, no he tenido que hacer algo así, creo q seria revisar donde queda alojada la.bd y poner allí la que creas, no se si sea tan simple pero es una buena duda que espero.revisar
@Zeroman14446 жыл бұрын
Cristian Henao si, he visto que pocos abarcan el tema, ninguno hasta ahora en vidéo. Estaría genial si sacaras material respecto a eso, por que de todo lo demás esta perfectamente explicado, me quedó mucho más claro el manejo en Android de las bd :)
@fabianprieto76066 жыл бұрын
si por favor, seria buenisimo ese tema. Gracias
@renerubio71786 жыл бұрын
ES MUY SENCILLO SAMORAN SOLO CREA LA BASE DE DATOS CON BD BROWSER YA QUE LA TENGAS TE VAS A TU PROYECTO EN LA CARPETA PRINCIPALL DEL PROYECTO APP DAS CLICK DERECHO SELECCIONES NEW DESPUES FOLDER Y POR ULTIMO ASSETS FOLDER LO AGREGAS Y AHI EN ESA CARPETA SOLO PEGA EL ARCHIVO SQLITE DE TU BASE DE DATOS Y YA. INVESTIGA SOBRE LA CLASE SQLITEASSETHELPER ES MUY PARECIDA ALA SQLITEOPENHELPER PERO TE SIRVE MAS PARA BASE DE DATOS IMPORTADAS
@augustomendoza21683 жыл бұрын
y el foreign key?
@marco2carriloo4366 жыл бұрын
hola ,al intertar integrarlo tengo problemas con la lista me da error en la importación de R
@genesisbrito72095 жыл бұрын
¿Cómo podría crear datos directamente en sqlite y mostrarlos en un listview?
@CristianDavidHenao5 жыл бұрын
mira los videos anteriores
@dansb84327 жыл бұрын
No se puede crear foreign keys en las tablas SQLite? (o relaciones en otras palabras)
@CristianDavidHenao7 жыл бұрын
Dan SB si claro, solo que como se supone que es una bd pequeña el tema de relaciones no es tan trascendental
@noticiasnews91276 жыл бұрын
Como seria el codigo para activar las FOREIGN KEYS? hay muy poca informacion en la red
@marco2carriloo4366 жыл бұрын
@@noticiasnews9127 lo que pasa es que muchos no utilizan sqllite en android ,usan firebase o mongodb por las caracteristicas de ser big data , ademas de ser faciles para ser hibiridas
@emijad3 жыл бұрын
Alguien sabe como hacer esta consulta de tablas pero con ROOM? solo he podido hacer con una sola tabla, pero me gustaría aprender como hacerlo de manera multitabla, muchas gracias de antemano
@cbactefect45255 жыл бұрын
Okey pero con más de dos tablas, ahí cómo se le hace?
@sandrogirolamo5 жыл бұрын
Very good your video Cristian. Is is possible to you create one new video using one table en SQLite to generate one or more graphics (bar, line or pizza) to display some metrics? May be using your mascota exemple, displaying how many mascotas do you have? how many people do you have with telephone?
@mumoji4 жыл бұрын
Hey men: do has finised this video?
@mumoji4 жыл бұрын
to display any pictures in a layout, you only need add the pictures in the drawable folder... I hope helped you.
@diegosuarez83466 жыл бұрын
Cuando realizo el registro me devuelve un id -1 siempre, en cualquier registro que haga de mascota. Porque sera??
@manuelfernandoramirezvilla30376 жыл бұрын
Esta mal creada la tabla revisa con el SQlite administrator
@Nach9564 жыл бұрын
Me pasa lo mismo aunque yo no estoy haciendoeste tutorial. Estoy aquí para ver si este video me ayuda a resolver eso.
@kalhc984 жыл бұрын
@@Nach956 Lograste resolver el problema? :'c
@sebastiansilva14383 жыл бұрын
Tuve problemas en el agregado de mascotas , solo lanza el mensaje " id= -1" qué sería el problema?
@CristinaPerezKaren5 жыл бұрын
Dentro del if en esta linea, Long idResultante = helper.insert(ConnectionDB.TABLE_TAREAS, ConnectionDB.TABLE_ID_TAREA, values); El insert me sale en rojo, no puedo insertar clase ni se me ocurre porq puede pasar, he mirado en internet y no veo porq puede ser............ Alguien me ayuda.
@vigamo11044 жыл бұрын
hola, muchas gracias por tus videos me han servido de mucho para realizar base de datos en android, yo tengo un problema, cuando quiero hacer el registro de mascota, no funciona, y cuando quiero revisar el listview de mascotas, no me aparece nada agregado, no se cual sería el problema, si me podria ayudar
@vigamo11044 жыл бұрын
Es para un proyecto importante de la escuela
@DanielAlvarez-yh1yx4 жыл бұрын
muy buen video, pero me sale error en el AUTOINCREMENT, alguien me ayuda como funciona?
@fabianprieto76066 жыл бұрын
Buenas...si alguien me puede ayuda, el porque creo una tabla y cuando hago el registro sale error -1. Gracias
@outofcontrol13425 жыл бұрын
el registro de mascotas no hace nada y se detiene la app a cuántos les pasa lo mismo???
@novatophp12635 жыл бұрын
saludos broder mira todo lo del tutorial se realiza correctamenta, solo revisa por parte tu codigo. con el codigo que nos da en github.com/chenaoh/EjemploSQLite
@vigamo11044 жыл бұрын
yo tambien intente hacer el registro de mascotas, pero no hace nada, no hace los registros
@exerefrainolivaherrera98346 жыл бұрын
una facturacion podria hacer
@vigamo11044 жыл бұрын
Alguien puede ayudarme, cuando le doy registrar mascota, no me hace el registro y cuando voy a la lista de mascota, no me agrega nada
@vigamo11044 жыл бұрын
Alguien me podría ayudar,cuando le doy registrar en registro de mascotas, no me genera nada
@julioromero38407 жыл бұрын
Tienes algún tutorial de como sincronizar una base de datos remota con una local?. Necesito que los datos que se modifican en la base remota se reflejen en la local. La app solo muestra datos y la idea es que pueda trabajar sin conexión a internet. Saludos
@delmarnovelo74186 жыл бұрын
Julio Romero yo ando en busca de lo mismo, encontraste algun video que indique como hacerlo?
@AlvaroEscobarHdez6 жыл бұрын
Este Aparte es muy interesante para eso ...kzbin.info/www/bejne/l5bPh4KKiLeab5Y
@andrest.76257 жыл бұрын
hola me gustaria saber como hacer que el id del usuario no se repita osea que sea unico, yo le pongo lo siguiente "INTEGER UNIQUE NOT NULL, al campo id donde se crea la tabla pero no funciona. gracias de antemano
@brunoestrada68167 жыл бұрын
"INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL" creeria que poniendo eso tu id no se repetirá nunca y siempre irá incrementandose.
@MrDanistar22 жыл бұрын
Listo
@novatophp12635 жыл бұрын
Saludos cristian intente agregar los datos a las tabla utilizando la consulta sql pero se detiene la aplicacion talves me ayudas te muestro el codigo que utilize. practicamente como seria ingresar el spinner. private void RegistrarMascota() { ConexionSQLiteHelper conn=new ConexionSQLiteHelper(this,"bd_usuarios",null,1); SQLiteDatabase db= conn.getWritableDatabase(); String insert = "INSERT INTO "+Utilidades.TABLA_MASCOTA+ " (" +Utilidades.CAMPO_ID_DUENO+ " ," +Utilidades.CAMPO_NOMBRE_MASCOTA+ " ,"+Utilidades.CAMPO_RAZA_MASCOTA+ ") " + "VALUES (" +ComboIdDuenoMascota.toString()+ " ," +CampoNombreMascota.getText().toString()+ " ," +CampoRazaMascota.getText().toString()+ " )"; Log.i("resultado",insert); Log.i("CAMPO_ID_DUEÑO :",Utilidades.CAMPO_ID_DUENO); Log.i("ID_DUEÑO :",ComboIdDuenoMascota.toString()); db.execSQL(insert); db.close(); } Caused by: android.database.sqlite.SQLiteException: near ".": syntax error (code 1): , while compiling: INSERT INTO mascota (id_dueno ,nombre_mascota ,raza_mascota) VALUES (android.support.v7.widget.AppCompatSpinner{427a9bf0 VFED..CL ........ 0,458-720,506 #7f070007 app:id/ComboIdDuenoMascota} ,ggg ,bhh ) E/ViewRootImpl: sendUserActionEvent() mView == null I/resultado: INSERT INTO mascota (id_dueno ,nombre_mascota ,raza_mascota) VALUES (android.support.v7.widget.AppCompatSpinner{427a9bf0 VFED..CL ........ 0,458-720,506 #7f070007 app:id/ComboIdDuenoMascota} ,ggg ,bhh ) CAMPO_ID_DUEÑO :: id_dueno ID_DUEÑO :: android.support.v7.widget.AppCompatSpinner{427a9bf0 VFED..CL ........ 0,458-720,506 #7f070007 app:id/ComboIdDuenoMascota}
@novatophp12635 жыл бұрын
Realice un pequeño cambio en la consulta mejor dicho en el spiner le quite el toString y le agregue ComboIdDuenoMascota.getSelectedItem() tambien ice la prueba ComboIdDuenoMascota.getSelectedItem().toString pero ahora si me muestra la consulta completa pero me dice que que no sabe cual es esa columna o el contenido no such column: MIMASCOTA (code 1): , while compiling: INSERT INTO mascota (id_dueno ,nombre_mascota ,raza_mascota) VALUES (55 ,MIMASCOTA ,callegero);
@novatophp12635 жыл бұрын
Solucionado hacia falta las comillas simples para los campos de texto " ,'" +CampoNombreMascota.getText().toString()+ "' ,'" +CampoRazaMascota.getText().toString()+ "')";
@williamtrinidad36295 жыл бұрын
Me marco sl final un error en la parte de ConexionSQLiteOpenHelper En db.execsql("DROP TABLE IF EXISTS"+utililidades.tabla1); db.execsql("DROP TABLE IF EXISTS"+utililidades.tabla2); En la parte de "DROP TABLE IF EXITS" , alguien me podria ayudar con este error, por favor!!
@kevincorridoni5 жыл бұрын
"DROP TABLE IF EXISTS "+utilidades.tabla1 ----> Tenés que dejar un espacio antes de cerrar las comillas
@franciscogarciaverde2366 жыл бұрын
Fondo negro para tutoriales es lo peor para visualizzar. Aconsejo fondo blanco
@japsonmoreira33205 жыл бұрын
Hola, cuando le doy a guardar me sale el idResultante -1
@eduanmayorga28035 жыл бұрын
Hola Japson. Se te esta presentando un problema en la creacion de la tabla por ende no se esta referenciando para guardar informacion porque no la encuentra recuerda verificar espacios. Me sucedio y casi muero en el intento pero logre encontrar el problema que estaba asociado a un espacio en las definiciones del tipo de dato en la sentencia SQL. te envio la sentencia para q la revises. public static final String CREATE_TABLE_USUARIO ="CREATE TABLE "+TABLA_USUARIO+"("+CAMPO_ID+" INTEGER,"+CAMPO_NOMBRE+" TEXT,"+CAMPO_TELEFONO+" TEXT)"; Y sin mas Agradecerle al Instructor Cristian Por tan excelentes Videos.