Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Sqlite Con Foreign Keys Fk
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Sqlite Con Foreign Keys Fk 
 
Hola.
¿Alguien tiene por allí una estructura de sqlite que use foreign keys con algunos datos de ejemplo?

Quiero hacer una pruebas para cargar comboxes siguiendo la referencia de una fk pero no logro hacer la base con sqliteman ni con sqlitebrowser

Gracias.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sqlite Con Foreign Keys Fk 
 
¿qué problemas encuentras? No tiene ninguna dificultad. Sube la base de datos y podemos comprobarlo.

Saludos
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sqlite Con Foreign Keys Fk 
 
shordi escribió: [Ver mensaje]
¿qué problemas encuentras? No tiene ninguna dificultad. Sube la base de datos y podemos comprobarlo.


Lo que estoy intentando es encontrar la forma de hacer que un combobox creado por codigo tome en cuenta que si el campo asignado esta restringido con una foreign key, entonces listar todos los valores de la tabla foránea y cargarlos al combobox para que pueda editar los datos de la tabla sin infringir la restricción.
Ademas si la relación es entre indices (generalmente de enteros) también me interesa ver y trabajar en el combobox con texto, que es mas fácil de manejar por un ser humano, y no con enteros que son demasiado abstractos de recordar cuando hay varios registros.
Aclaro que no uso datasources, ya que si bien me parecen bastante completos, no permiten demasiado tuneo. Lo que uso es la coneccion a base de datos que esta bastante establecida aca en este foro.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sqlite Con Foreign Keys Fk 
 
Si revisas el adjunto de Eśte Hilo verás en el código el control xComboBox. Hace eso exactamente.
Le pasas:
-Una conexión abierta en su propiedad "Conexion"
-Una consulta sql en la propiedad "Sqlstring"
-La lista de los campos que quieres ver en el desplegable en la propiedad "listfields"
-El nombre del campo que quieres que retorne como valor seleccionado en la propiedad "fieldkey"

El control te muestra lo que quieres (la relación con la otra tabla la debes resolver con la "Sqlstring") y te ofrece la propiedad "Chosen" que contiene el campo definido en "fieldkey" correspondiente al elemento sobre el que hayas hecho Click

Destacar que de todo ésto sólo tienes que hacer el primer paso con código (mixCombobox.Conexion=miconexion), el resto se lo pones en las propiedades del IDE.

Si no te vale, dime lo que necesitas... o al menos ahí tienes una forma de resolver ese problema que te puede servir de inspiración, espero.

Saludos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sqlite Con Foreign Keys Fk 
 
Shordi: acá subo un video en el que intento explicar lo que quiero hacer con los foreign key.

Link

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sqlite Con Foreign Keys Fk 
 
En el vídeo, minuto 3:31 haces un click y creas una serie de controles. Si en ese momento destripas (o ya tienes destripada) el campo "sql" de la tabla slqite_master correspondiente a la tabla (o el "show create table" de MySql), obtienes las referencias de clave foránea que necesitas.
A partir de esa línea -que debería ser, en sqlite, algo así como "FOREIGN KEY(campodelatablaA) REFERENCES tablaB(nombredecampoB)"- ya tienes la tabla y el campo que referencia esa tabla. Si entonces ofreces al usuario una lista de los campos que tiene la tabla nombredetablaB para que haga click sobre el que desea ver en el desplegable, pues ya lo tienes -Es decir almacenas en algún lado, junto con el nombre de la columna cambiado, el tamaño modificado, el nombre del campo referenciado, el nombre del/los campo/campos a visualizar, la sentencia sql que rellene el combobox resultante, etc. etc. y en futuras consultas reconstruyes el control deseado y se lo muestras al usuario-...

Viendo tu proyecto unos consejos te doy desde la experiencia de muchos años:

-Si lo que pretendes es aprender a manejar, controlar, construir y administrar bases de datos. Perfecto, sigue adelante. Tú eres el destinatario y todo el esfuerzo que pongas en el proyecto va en tu beneficio

-Si lo que pretendes hacer es facilitar la vida a quien no sabe de informática a base de un programa que presenta opciones y subopciones y opciones dentro de las subopciones, etc. etc. no se la estás facilitando en absoluto y no lo entenderá (le costará menos esfuerzo, por ejemplo, asumir los nombres raros y aprender a mirar los códigos en la tabla de al lado que aprender a configurar un entorno de visualización para cada tabla).

-Por otro lado, por mucho que te esfuerces en hacerlo sencillo, la casuística siempre te sobrepasará a la hora de abrir bases de datos hechas por otros, con cosas que no tenías previstas y tu programa quedará corto. Por ejemplo: ¿Y si la tabla B referenciada en la tabla A sólo contiene el código de A y el código de otra tabla C? todos numéricos, por supuesto. Es algo muy común en el diseño de bases de datos. Nada de todo el esfuerzo expresado arriba te sirve.

-Si lo que pretendes es ofrecer a otros una herramienta que compita con sqlitemaster y phpmyadmin juntas... pues te esperan tantos años de trabajo que no lo vas a terminar nunca. Estás peleando en solitario contra poderosas compañías de software.

Como ves, sólo te aplaudo si vas por la primera opción.

De todas y por si te sirve de ayuda te adjunto un pequeño proyecto que le hice a mi padawan para ilustrar no recuerdo qué punto de la estructura de las bases de datos de la empresa. Te muestra una lista de tablas, haciendo click sobre una de ella te muestra una lista de campos y haciendo click sobre un campo te dice si es clave foránea de alguna otra tabla.

Por desgracia sólo está codificado para mysql, pero no debería costarte mucho adaptarlo a sqlite (campo sql de la tabla sqlite_master)

constraints.tar.gz
Descripción:  
Descargar
Nombre del archivo: constraints.tar.gz
Tamaño: 12.05 KB
Descargado: 63 veces
constraints.tar.gz
Descripción:  
Descargar
Nombre del archivo: constraints.tar.gz
Tamaño: 12.05 KB
Descargado: 63 veces
constraints.tar.gz
Descripción:  
Descargar
Nombre del archivo: constraints.tar.gz
Tamaño: 12.05 KB
Descargado: 63 veces

 




===================
No podemos regresar
 
última edición por shordi el Martes, 07 Junio 2016, 18:12; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sqlite Con Foreign Keys Fk 
 
shordi escribió: [Ver mensaje]
...la tabla (o el "show create table" de MySql), obtienes las referencias de clave foránea que necesitas...sqlite (campo sql de la tabla sqlite_master)...
Viendo tu proyecto unos consejos te doy desde la experiencia de muchos años:
-Si lo que pretendes es aprender a manejar, controlar, construir y administrar bases de datos. Perfecto, sigue adelante. Tú eres el destinatario y todo el esfuerzo que pongas en el proyecto va en tu beneficio.

Si, creo que me encuentro en ese punto, el de aprender a manejar, construir, administrar...
Por el momento no me creo capaz de hacer herramientas potentes como sqliteman, sqlitebrowser o phpmyadmin y supongo que nunca me pondré a hacer ese tipo de aplicaciones, mi enfoque va mas por el lado de dominar la técnica para poder hacer programas utilitarios que me permitan hacer algunas cosas con bases de datos y entender que sucede dentro del "capo" de estos "motores".

Citar:

-Por otro lado, por mucho que te esfuerces en hacerlo sencillo, la casuística siempre te sobrepasará a la hora de abrir bases de datos hechas por otros, con cosas que no tenías previstas y tu programa quedará corto. Por ejemplo...

Es verdad. Estoy trabajando con un módulo que convierte .mdb en sqlite y funciona bastante bien, pero lo probé con una BBDD que no había hecho yo y no funciono porque la base tenia caracteres extraños en los nombres de los campos y también espacios etc. etc.

Gracias por el ejemplo y los consejos.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Consulta Sum En Sqlite Con Gambas pittusa Bases de Datos 2 Viernes, 29 Octobre 2010, 06:27 Ver último mensaje
pittusa
No hay nuevos mensajes Ayuda Con Foreign Key Gambas Y Sqlite aratar79 Bases de Datos 4 Sabado, 22 Febrero 2014, 17:54 Ver último mensaje
aratar79
No hay nuevos mensajes Sqlite Database Is Locked calcena Bases de Datos 10 Martes, 09 Agosto 2016, 16:53 Ver último mensaje
shordi
No hay nuevos mensajes Pasar De Xls A Sqlite [Solucionado] shordi General 3 Viernes, 12 Julio 2019, 18:37 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron