Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-01-2005
URBANO URBANO is offline
Miembro
 
Registrado: jul 2003
Ubicación: Huelva
Posts: 126
Poder: 21
URBANO Va por buen camino
Question Al hacer tabla.edit se cambia de registro, porque?

Hola foro, la verdad es que estoy desconcertado. Os comento mi problema:

Al ejecutar la sentencia tabla.next, esta sentecia en vez de editarme el registro actual me edita el anterior, es decir, si yo estoy en el registro 4, al ejecutar la sentecia se coloca en el regitro 3 y lo edita (esto lo observo haciendo un seguimiento del programa linea por linea). ¿Por que me ocurre esto?

Existe dos caminos para llegar a ejecutarse esa sentencia, por uno de ellos esto que comento no pasa , pero por el otro si y el unico codigo que varia de un camino a otro es el siguiente (tabla = Tfichaventa):
Código SQL [-]
 query1.Close;
 sql:='select * from fichaventa'+#13+
      'where cliente = '+inttostr(datos.tticketcliente.value)+#13+
      'and saldo <> 0'+#13+
      'order by numero,fecha';
 query1bde(query1,datos.GestAtm.AliasName,sql);
 //si existe una ficha la modificamos
 if query1.RecordCount <> 0 then
 begin
    query1.First;
    datos.Tfichaventa.IndexName:='ficnum';
    with datos.Tfichaventa do
    begin
     setkey;
     datos.tfichaventanumero.AsInteger:= Query1numero.Value;
    end;
    detallesClick(Sender);
__________________
El saber no ocupa lugar.

Última edición por marcoszorrilla fecha: 24-01-2005 a las 14:23:58. Razón: Añadir etiquetas SQL
Responder Con Cita
  #2  
Antiguo 24-01-2005
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Hola,

Recomendación aparte: las etiquetas de código te hacen muy bonito y legible tus post, ánimos que sólo es agregarle unos simples tags.

En respuesta a tu post, el problema no parece ser del NEXT sino del ORDER BY que estás haciendo o mismo del Index que parece estar aplicando.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 25-01-2005
URBANO URBANO is offline
Miembro
 
Registrado: jul 2003
Ubicación: Huelva
Posts: 126
Poder: 21
URBANO Va por buen camino
Question No lo entiendo

Gydba, no lo entiendo. El order by lo aplico a un query que antes de editar la tabla lo cierro y no se que puede estar mal del indice (es simplemente un indice del campo principal, que es un entero).
Por que motivo crees que el problema viene de hay?

Gracias por tu respuesta.
__________________
El saber no ocupa lugar.
Responder Con Cita
  #4  
Antiguo 25-01-2005
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Hola,

En realidad en tu código sólo aparece un close, y es antes de abrir el query con el ORDER BY aplicado:
Código Delphi [-]
 query1.Close;
 sql:='select * from fichaventa'+#13+
      'where cliente = '+inttostr(datos.tticketcliente.value)+#13+
      'and saldo <> 0'+#13+
      'order by numero,fecha';
...
La respuesta que te di en realidad no sé si es la correcta o no, sólo sé que aplicando un INDEX o un ORDER BY tu dataset asociado cambia completamente su orden, por lo que al navegar con el NEXT no podrías obtener el resultado deseado.
Creo que lo más gráfico sería que pusieras un DBGrid enlazado a ese dataset para ver cómo realmente están ordenados los datos.

Pero como dije, no es la respuesta absoluta a tu problema, pero es lo que se me ocurre. Quizás no estás posteando el código exacto donde te da el problema...

Saludos!
__________________
Suerte
.: Gydba :.
Responder Con Cita
Respuesta



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 08:31:08.


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