https://foro.gambas-es.org/viewtopic.php?f=3&t=5761&p=34260#p34260
-----------------------------------
shordi
Miercoles, 07 Septiembre 2016, 18:12

Re: Insertar Un Registro En Sqlite En Una Vista
-----------------------------------
[quote]¿Como puedo insertar registros en tracks y si por ejemplo no existe un álbum que sqlite cree ese álbum en la tabla albums y en la tabla tracks se ponga ese indice nuevo correspondiente?[/quote]
Con un proceso de gambas. SQLite no puede hacer eso por tí. La integridad referencial se ocupa de que todas las referencias que existan en la base de datos sean correctas. Es decir, que si tú pones que esto es de tal album, tal album exista. Pero no puede crear las referencias. Tú, en tu proceso de gambas, eres quien primero ha de comprobar si el álbum existe, crearlo si no es así y luego añadir las pistas.
Hay varias formas de hacerlo. 

Una es:

1.- Almacenar en un combobox todos los álbumes del artista (o todos a lo bestia, como desees)
2.- Si el album existe lo seleccionas y punto
3.- Si no existe lo tecleas y entonces, en el evento lostfocus, por ejemplo, del combobox  compruebas si lo tecleado está en la lista y si no, lo añades a la tabla
4.- Cuando llega el momento de grabar la pista ya tienes el álbum disponible.

Inconveniente: si tecleas el álbum pero no grabas la pista tienes un álbum vacío...(cosa que puede ser buena o mala, según depende)

Otra es dejar toda la tarea al proceso de grabar, que 

1.- Comprueba si la propiedad .text del combobox es un elemento de la lista y si no lo es 
2.- Crea el álbum y
3.- Graba la pista

Inconveniente... no se me ocurre ninguno importante salvo unos milisengundos usados en comprobaciones...

Saludos


