Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.710
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si un contacto solamente va a tener un enlace con un cliente entonces puedes añadir únicamente un campo en el contacto donde almacenas el código del cliente al que está enlazado.
Ejemplo:
Código:
tbClientes
  id
  nombre
  telefono
  primary key (id)

tbContactos
  id
  idCliente    /* (id en tbClientes) */
  nombre
  telefono
  primary key (id,idCliente)
Aunque de esa forma, si alguna vez te dicen: "oye, que el contacto 111 es padre del cliente 33 y cónyuge del cliente 42, ¿ahora qué haces?

Mejor la primera forma, tabla intermedia.
Responder Con Cita
  #2  
Antiguo 16-11-2014
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 21
Delphitest Va por buen camino
Perfecto, ya me he puesto manos a la obra.

En mi caso un contacto nunca podrá ser de varios clientes asi que esto simplifica la tarea...

Ya hice la tabla de Contactos con el campo IdCliente

Lo que hago al añadir un Contacto desde la Ficha del Cliente es que automaticamente el IdCliente del contacto sea el valor de IdCliente de la tabla Cliente, lo hago incluyendo esta línea en el evento onclick del botón añadir:

Código Delphi [-]
  TContactos.FieldByName('IdCliente').Value := DMmain.TClientes.FieldByName('IdCliente').value;

La tabla contactos está en el Form actual pero la de clientes está en un Data Module.

Hasta ahí creo que lo hago bien porque he probado y todo es correcto.

En la finca de cliente he puesto un DBGrid donde pretendo que aparezcan todos los contactos relacionados con este cliente.

Lo hago a través de una Query pero no sé qué debo poner el la sentencia SQL, ando un poco perdido con estas cosas.

Si le pongo esto:

Código SQL [-]
Select * From Contactos

Vería todos los contacto, pero para ver únicamente los contactos cuyo IdCliente sea el mismo que el IdCLiente de la tabla Clientes no se que tengo que poner.

Se hace con un where creo que al tener dos tablas no se como indicar que un campo sea igual al de otra tabla

He probado con

Código SQL [-]
Select * From Contactos where IdCliente = DMMain.TClientes.IdCliente

Pero no funciona, debo de andar cerca....

También he visto una opción para poner un filtro en la query aunque no se si es ahí donde hay que ponerlo o en la SQL
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #3  
Antiguo 16-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Delphitest.

La consulta sería similar a esta:
Código SQL [-]
SELECT CO.NOMBRE,  CO.TELEFONO, ...
FROM CONTACTOS CO
INNER JOIN CLIENTES CL ON CO.ID_CLIENTE = CL.ID 
  AND CL.ID = :P_ID
ORDER BY CO.NOMBRE
Pero desconozco los campos que deseas obtener y los componentes que estas usando como para darte una respuesta mas concreta.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 16-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Otra forma mas simple, pero una pizca menos eficiente es:
Código SQL [-]
SELECT NOMBRE, TELEFONO, ...
FROM CONTACTOS
WHERE ID_CLIENTE = :P_ID
ORDER BY NOMBRE

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 16-11-2014
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 21
Delphitest Va por buen camino
En cuanto a los campos de la tabla contactos solo necesito Nombre, DNI y Telefono

El componente que uso es ADO

La duda que tengo es cómo indicar la tabla clientes en la SQL ya que no está en el Form donde tengo la consulta de Contactos, está en Data Module que llamo DMMain
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #6  
Antiguo 16-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Delphitest.

Código Delphi [-]
  with DMMain.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT CO.NOMBRE, CO.DNI, CO.TELEFONO');
    SQL.Add('FROM CONTACTOS CO INNER JOIN CLIENTES CL');
    SQL.Add('ON CO.ID_CLIENTE = CL.ID AND CL.ID = :P_ID');
    SQL.Add('ORDER BY CO.NOMBRE');
    Parameters.ParamByName('P_ID').Value:= tu_variable; //(*)
    Open;
  end;
(*) Donde "tu_variable" es cualquier variable (o constante) de tipo Integer que contenga el ID del cliente cuyos contactos se desea listar.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 18-11-2014
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 21
Delphitest Va por buen camino
Buenos días,

gracias por vuestra ayuda, siento no haber contestado pero no acabo de conseguir hacerlo funcionar.

Qué duro es esto de la programación por momentos... , me está dando la noche este problema

El caso es que no se donde meter ese código que me comenta ecfisa y estoy intentando hacer una sola línea de sql para ponerla en las propiedades de la query TContactos pero sigo fallando en la parte que indica el campo IDCliente de la tabla TClientes y que no está en el mismo form, no se si me falta algo por probar pero he hecho todo tipo de combinaciones.

Quizás la solución sea crear una variable en el Form que recoja el contenido de IDCLiente de la tabla TClientes y después hacer referencia a esa variable dentro de la sentencia SQL, pero mis pruebas tampoco han sido exitosas.

No pierdo la esperanza, sigo haciendo pruebas...
__________________
Mi proyecto paso a paso (Parte I)
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Compartir Contactos en Outlook ChristianS Windows 4 15-12-2011 00:57:18
Importar contactos Outlook Manuel1790 Windows 2 21-09-2007 17:15:08
actualizar aplicacion cliente en varios puesto VRO Providers 0 25-10-2005 18:00:49
Exportar Contactos. messenger y ot JXJ Varios 0 02-05-2005 02:25:11
Imprimir Contactos en Outlook ChristianS Windows 0 02-09-2003 22:00:48


La franja horaria es GMT +2. Ahora son las 17:02:39.


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