Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cada INNER debe ir junto a su ON; Prueba a ponerlo debajo:

Código SQL [-]

Select...
INNER....ON.....
INNER... ON...
WHERE ...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 14-12-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 22
Nbull Va por buen camino
Hola Neftalí, mira tengo la siguiente consulta SQL funcionando como tu me dijiste:
Código SQL [-]
size="1">SELECT Archivo.* ,Tema.*
 
FROM Archivo INNER JOIN Tema 
 
ON Archivo.REGISTRO2 = Tema.REGISTRO2;

Hasta aqui todo perfecto, ahora el problema es que quiero hacer lo mismo con una tabla formato y la misma tabla Archivo, y pongo la siguiente consulta

Código SQL [-]
size="1">SELECT Archivo.* ,Tema.*,FORMATO.*
 
FROM Archivo INNER JOIN Tema 
 
ON Archivo.REGISTRO2 = Tema.REGISTRO2size="1">,
 
size="1">INNER JOIN FORMATO 
 
ON Archivo.Id = Formato.Id;
 

Y esto que a mi parecer deberia funcionar me da un error de sintaxis en la clausula From.
Le he dado mil vueltas al código y no consigo nada.

Gracias.Un saludo.

Última edición por Nbull fecha: 14-12-2005 a las 13:40:21.
Responder Con Cita
  #3  
Antiguo 14-12-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Por lo pronto, sobra una coma (,) después de:

Código SQL [-]
...Tema.REGISTRO2


Por lo demás la veo bien; Asegurate de que los campos que usas para los INNER de unas tablas con otras sean los correctos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 14-12-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 22
Nbull Va por buen camino
He probado lo que me dices de la coma y llevas razón, pero no me deja unir las dos tablas me dice que falta operador en la consulta:

Código SQL [-]
Archivo.REGISTRO2 = Tema.REGISTRO2 INNER JOIN FORMATO 
 
ON Archivo.Id = Formato.Id;
No se que operador me puede faltar, a ver si alguien sabe lo que me puede estar pasando y me hecha una mano.

He probado hacer la unión por separado y si que me deja, osea que descarto que sea fallo de los campos.

Un Saludo Neftalí y gracias por todo.Eres una maquina.

Última edición por Nbull fecha: 14-12-2005 a las 16:55:01.
Responder Con Cita
  #5  
Antiguo 20-12-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 22
Nbull Va por buen camino
Perdonar que reabra el hilo, pero es que me ha surgido un problema. Tenia un boton que me borraba el registro seleccionado en mi dbgrid con el siguiente codigo:


Código Delphi [-]
procedure TFGestion.BborrarClick(Sender: TObject);
var
button : integer;
begin
button := application.messagebox ('¿Realmente desea borrar la cinta seleccionada?', 
'¿Seguro?', MB_yesno + mb_iconwarning); // Mostramos un mensaje de advertencia
if button = IDYes then begin // Si ha pulsado si...
//Borramos el registro seleccionado solamente de la tabla archivo
DBGrid2.DataSource.DataSet.Delete;
Showmessage('La cinta Nº '+DbNumCinta.Field.Text+' ha sido borrada con éxito');
//Refresco la tabla
AdoQuery2.Active:=false;
AdoQuery2.SQL.Text := 'SELECT Archivo.* , Tema.*,Formato.* FROM (Archivo '+
' LEFT OUTER JOIN Tema ON Archivo.Registro2=tema.Registro2) '+
' LEFT OUTER JOIN Formato ON Archivo.Id=Formato.Id';
AdoQuery2.Active:=True;
end;//sino no hacemos nada

Mi problema es que antes solo me borraba el registro seleccionado en la tabla archivo,pero, ahora me borra un registro en las tres tablas y solo quiero que me lo borre en la tabla archivo.

Como lo puedo solucionar.

Gracias Un saludo.
Responder Con Cita
  #6  
Antiguo 20-12-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Has añadido restricciones de borrados en cascada a tu Base de Datos?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 20-12-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 22
Nbull Va por buen camino
Neftalí, perdona mi ignorancia, pero, es que no tengo ni idea de como se hace eso en Access.

Si me puedes hechar un cable te estaria muy agradecido.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:44:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi