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 18-10-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 14
The Cid James Va por buen camino
De echo efectivamente esta directamente enlazado a la tabla qClientes pero no toma ningún otro valor que no sea el primero del DBGrid
Responder Con Cita
  #2  
Antiguo 18-10-2017
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.

Ahora creo entender... ¿ Estas usando un Query (qCliente) para alimentar el DBGrid y un DataSet (tCliente) para realizar los cambios no ?

Entonces el problema es el siguiente:
Código Delphi [-]
  fmodulo.tCliente.Active := true;
    if fmodulo.qCliente.Locate('id_cliente', fmodulo.qCliente['id_cliente'], []) = true // <== (1)
  then
    begin
      fmodulo.tCliente.Edit;
      tfcliente.Create(self).ShowModal;
    end;
        fmodulo.tCliente.Active := false;  // <=== ¡¡¡  (2) !!!
        fmodulo.qCliente.Refresh;
(1) ¿ El Locate no deberías aplicarlo al DataSet ?
(2) Esa línea elimina el posicionamiento anterior del Locate y el DataSet (tCliente), siempre queda apuntando al primer registro del DataSet.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 19-10-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 14
The Cid James Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Ahora creo entender... ¿ Estas usando un Query (qCliente) para alimentar el DBGrid y un DataSet (tCliente) para realizar los cambios no ?

Entonces el problema es el siguiente:
Código Delphi [-]
  fmodulo.tCliente.Active := true;
    if fmodulo.qCliente.Locate('id_cliente', fmodulo.qCliente['id_cliente'], []) = true // <== (1)
  then
    begin
      fmodulo.tCliente.Edit;
      tfcliente.Create(self).ShowModal;
    end;
        fmodulo.tCliente.Active := false;  // <=== ¡¡¡  (2) !!!
        fmodulo.qCliente.Refresh;
(1) ¿ El Locate no deberías aplicarlo al DataSet ?
(2) Esa línea elimina el posicionamiento anterior del Locate y el DataSet (tCliente), siempre queda apuntando al primer registro del DataSet.

Saludos
1-Como lo aplico al dataset?
2-entonces como cerraría la consulta para que no quede activa?

Gracias por la ayuda
Responder Con Cita
  #4  
Antiguo 19-10-2017
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.

No puedo saber con seguridad la lógica que has implementado, pero suponiendo que fListadoClientes es el form que tiene el DBGrid y el Button, fcliente el form donde se editan los datos y fmodulo el DataModule donde residen qCliente y tCliente, creo que podrías hacer:
Código Delphi [-]
procedure TfListadoCliente.bModificarClick(Sender: TObject);
begin
  fmodulo.tCliente.Active := true;
  if fmodulo.tCliente.Locate('id_cliente', fmodulo.qCliente['id_cliente'], []) then
  begin
    fmodulo.tCliente.Edit;
    fcliente := Tfcliente.Create(Self);
    try
      fcliente.ShowModal;
    finally
      fcliente.Free;
    end;
  end;
  fmodulo.tCliente.Active := false;
  fmodulo.qCliente.Refresh;
end;
Eso tratando de respetar lo mas posible el código original y suponiendo que esa es tu organización...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 19-10-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 14
The Cid James Va por buen camino
Muchas gracias por tu tiempo, hoy se me complico un poco el día mañana lo pruebo con tiempo y calma
Responder Con Cita
  #6  
Antiguo 20-10-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 14
The Cid James Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

No puedo saber con seguridad la lógica que has implementado, pero suponiendo que fListadoClientes es el form que tiene el DBGrid y el Button, fcliente el form donde se editan los datos y fmodulo el DataModule donde residen qCliente y tCliente, creo que podrías hacer:
Código Delphi [-]
procedure TfListadoCliente.bModificarClick(Sender: TObject);
begin
  fmodulo.tCliente.Active := true;
  if fmodulo.tCliente.Locate('id_cliente', fmodulo.qCliente['id_cliente'], []) then
  begin
    fmodulo.tCliente.Edit;
    fcliente := Tfcliente.Create(Self);
    try
      fcliente.ShowModal;
    finally
      fcliente.Free;
    end;
  end;
  fmodulo.tCliente.Active := false;
  fmodulo.qCliente.Refresh;
end;
Eso tratando de respetar lo mas posible el código original y suponiendo que esa es tu organización...

Saludos
Funciona de maravilla, ahora es muy distinto a que entienda lo que hace, por lo cual te voy a preguntar que quieren decir estas declaraciones, asi aprendo que hiciste xD y de paso aprendo

Código Delphi [-]
  try 
      fcliente.ShowModal; => esta si entiendo
    finally
      fcliente.Free;
    end;
Responder Con Cita
  #7  
Antiguo 20-10-2017
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.

Se utilizan para garantizar que cuando solicitamos un recurso este sea devuelto, evitando así perdidas de memoria.

Básicamente:
Código:
  pedir un recurso
  intentar usarlo (try)
     usarlo
  finalmente (finally)
     devolver el recurso
  fin
Algunos enlaces como para ampliar:También te recomiendo leer el capítulo 11 de la Cara oculta de Delphi 4 que trata muy bien el tema y que podes descargar desde el FTP de Club Delphi

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 20-10-2017 a las 21:22:34. Razón: Agregar enlace
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
Seleccionar registros que comiencen por un valor string Pedro-Juan SQL 4 29-06-2012 20:04:15
Seleccionar primer registro en la Clausula WHERE para Actualizar Valor. Adrian Murua MySQL 3 28-05-2012 22:52:14
Seleccionar valor en un rango de datos jourdan Firebird e Interbase 4 19-05-2010 07:59:54
Seleccionar un campo dependiendo de su valor Alexis De la Cr MySQL 2 13-11-2008 20:58:44
Metodo Ideal para Modificar un valor a todos los Registros mostrados en un DBGrid Alexis De la Cr MySQL 7 09-04-2008 14:00:00


La franja horaria es GMT +2. Ahora son las 07:55:47.


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