Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Como Hago Para Relacionar Tablas Sqlite
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Hago Para Relacionar Tablas Sqlite 
 
Hola compañeros no entiendo muy bien el codigo de relacionar una tabla con la otra en sqlite veo que usa una sentencia llamada"TRIGGERS" y la verdad no he podido orientarme por favor les pido alguien quien lo ha podido hacer en gambas gracias.
 




===================
CONTROL SYSTEMS-((CELIS))
 
jousseph - Ver perfil del usuarioEnviar mensaje privadoVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hago Para Relacionar Tablas Sqlite 
 
Compañero:
Eso de Cómo hago esto y cómo hago lo otro está muy bien, pero no es serio.
Plantea cada pregunta diciendo algo así:
"Quiero hacer esto y lo otro y he buscado en este sitio y en este libro y he intentado esto y lo de más allá. Como no me funciona, me gustaría saber qué hago mal y aquí tenéis el código que he intentado para que lo reviséis".

Con una pregunta así encontrarás ayuda, seguro. Pero ya sabes que hay muchas formas de hacer una misma cosa y "Cómo hago para..." tiene tantas respuestas como programadores.

Además, preguntando así no aportas tú nada a los demás que, quien más y quien menos, tampoco tenemos tanto tiempo que perder.

Saludos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hago Para Relacionar Tablas Sqlite 
 
Bueno el hecho es que parece mas la soluciones que he dado que las que me han solucionado al preguntar aqui en este foro, voy a ser mas claro creo que en mi sistema he solucionado 51 formularios con sentencias observando por todo internet, pero bueno no vayamos a caer en polemicas esta es una de las paginas que encuentro con sentencias del tipo sqlite: pagina web http://www.elserver.com/wiki/SQLite...as_con_triggers


LegalesLegales
SQLite relacionar tablas con triggers

    * Artículo
    * Discusión
    * Editar
    * Historial


SQLITE NO IMPLEMENTA NATIVAMENTE INTEGRIDAD RELACIONAL PERO PUEDE LOGRARSE DEFINIENDO TRIGGERS, EN INSERCIÓN, ACTUALIZACIÓN Y BORRADO. VEAMOS UN EJEMPLO CON VARIAS TABLAS

=========================================================
La tabla PELICULAS tiene dependencia de otras dos:
GENERO y  SOPORTE.

Los triggers antes de insert y antes de update
on Peliculas tienen en cuenta estas dos dependencias.

Para antes de delete hacen falta dos triggers:
uno en Genero y otro en Soporte.
Estos triggers impiden que se pueda borrar un
genero o un soporte, si hay peliculas que lo están
usando.
El código deja claro lo que se haría si la
dependencia fuera de más tablas,sólo habría que
añadir más OR  y los triggers on delete.

Si la dependencia fuera solo de una tabla,se
quitaría un OR y el delete que sobre.

[editar] ==============================================

CREATE TABLE [genero] (
[id_gen] INTEGER  PRIMARY KEY NOT NULL,
[nombreGen] VARCHAR(40) UNIQUE NOT NULL
);

CREATE TABLE [soporte] (
[id_sop] INTEGER  NOT NULL PRIMARY KEY,
[nombreSop] VARCHAR(20)  UNIQUE NOT NULL
);

CREATE TABLE [peliculas] (
[id_pel] INTEGER  NOT NULL PRIMARY KEY,
[id_genero] INTEGER  NOT NULL,
[id_soporte] INTEGER  NOT NULL,
[nombrePel] VARCHAR(40)  NOT NULL
);



CREATE TRIGGER film_pel_in before insert on peliculas
for each row
begin
select case
when
(
(new.id_soporte is not null)
 and
 (new.id_genero is not null)
  and
 (
  ((select id_sop from soporte where
    id_sop =new.id_soporte) is null)
   or
   ((select id_gen from genero where
     id_gen = new.id_genero) is null)
                  )
)
then raise(abort,'violacion integridad')
end;
end;

CREATE TRIGGER film_pel_up before update on peliculas

for each row begin
select case
when
(
((select id_sop from soporte where
 id_sop = new.id_soporte) is null)
 or
((select id_gen from genero where
 id_gen = new.id_genero) is null)
)
then raise(abort,'violacion integridad')
end;
end;

CREATE TRIGGER film_sop_de before delete on soporte

for each row begin
select case
when
((select id_soporte from peliculas
 where id_soporte = old.id_sop) is not null)
 then raise(abort,'violacion integridad')
 end;
 end;

CREATE TRIGGER film_gen_de before delete on genero
for each row begin
select case
when
((select id_genero from peliculas
 where id_genero = old.id_gen) is not null)
then raise(abort,'violacion integridad')
end;
end;

Ojala en vez de criticar   aporten algo como los otros compañeros y no recibir tortazos sin diplomacia alguna, esto siempre me pasa cuando consigo algo lo coloco aqui al tiempo, cuando ya lo he solucionado para que otros al menos lo relacionen y les sirva de algo gracias
 




===================
CONTROL SYSTEMS-((CELIS))
 
jousseph - Ver perfil del usuarioEnviar mensaje privadoVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hago Para Relacionar Tablas Sqlite 
 
@jousseph

No creo que debas enfadarte porque alguien te indique el camino correcto para que tu petición de ayuda sea lo más correcta posible y recibas respuesta en el menor tiempo posible.

Aquí, como en cualquier otro foro hay unas normas que deberíamos de seguir, aunque reconozco que los administradores de este foro no somos demasiado estrictos en hacerlas cumplir. Si lo fuéramos, te aseguro que más de uno ya se habría marchado, sólo por decirle cómo debe de hacer las cosas dentro del foro, y no queremos que eso pase.

Lo que sí es verdad, es que tampoco queremos que sea la tónica general soltar preguntas al "tun-tun" sin apreciar un cierto trabajo previo por parte de la persona que realiza la consulta. Si llegáramos a ese punto, entonces sería necesario aplicar las normas mucho más taxativamente.

Te recomiendo la lectura del texto "Cómo hacer preguntas inteligentes", no tiene desperdicio y comprenderás muchas cosas de las que se han comentado por aquí.

Por otra parte, es de agradecer que al tiempo que encontraste la respuesta, tú mismo la hayas publicado. En eso consiste el espíritu de un programador o hacker (como se nos denomina en el escrito citado anteriormente).

Por ello te doy las gracias y espero que comprendas la postura de muchos de los integrantes de esta Comunidad.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - 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 Como Hago Para Relacionar Tablas De Sqlite jousseph General 2 Jueves, 15 Julio 2010, 17:31 Ver último mensaje
jousseph
No hay nuevos mensajes Como Hago Para Colocar A Una Persona En Un... jousseph General 2 Jueves, 22 Julio 2010, 06:36 Ver último mensaje
jousseph
No hay nuevos mensajes Como Hago Para Crear Un Archivo XML /tmp jcontasti General 1 Jueves, 28 Octobre 2010, 21:51 Ver último mensaje
david
No hay nuevos mensajes Como Puedo Relacionar Tablas En Mysql O Po... jousseph Bases de Datos 24 Sabado, 01 Diciembre 2012, 17:18 Ver último mensaje
mg_arep19
 

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