Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-03-2004
Jvilomar Jvilomar is offline
Miembro
 
Registrado: mar 2004
Ubicación: Republica Dominicana
Posts: 97
Poder: 23
Jvilomar Va por buen camino
Hola Marc.... Esto va casi marchando... estoy muy agradecido de tu ayuda al igual que la de juan... me siento muy conforme con todo lo que ustedes han hecho.... pero tengo una ultima pregunta....

Inicializando la Variable Grupo a -1 y luego haciendo la comparacion a la hora de borrar el registro no estoy viendo ningun tipo de control que detenga la eliminacion cuando solo quede un registro del primer grupo ( 1 1) y salte al siguiente grupo para comenzar a eliminar los registros hasta que solo quede uno de ese grupo (2 3) y asi sucevimante.... creo que esa es la unica parte que faltaria por definir ya que gracias a ti tengo la idea clara....

Por otra parte pareceria que es facil para mi buscar una respuesta pero es que ya llevo 10 horas seguidas aqui sentado y mi cerebro esta completamente atontado.... de todos modos muchas gracias por todo...

Amigo.......

PD: yo utilizo Interbase WorkBench para administrar Interbase y ya descargue el IB-Xpress para probarlo..gracias otra vez..por todo....
__________________
El conocimiento es un Patrimonio Universal....
Responder Con Cita
  #2  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
No se si esto funcionará en ib/fb, pero en oracle si que lo haria...

Código:
Delete [from] tabla t1
 where exists (select 1
                      from tabla t2
                     where t2.campo1 = t1.campo1
                         and t2.campo2 != (select min(campo2)
                                                     from tabla t3
                                                    where t3.campo1 = t1.campo1));
claro... no des commit hasta que estes seguro que ha trabajado bien.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 16-03-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola.

Seguro que mañana lo verás muchísimo más claro. Nos pasa a todos que cuando pasamos demasiado tiempo delante de un problema, ya solo vemos la pantalla pero el cerebro ya está totalmente fuera de servicio

El código, en efecto no lleva ningún tipo de control para saber si estamos en el último registro de un grupo, para no borrarlo. Puesto que el registro que no borramos, en ese código, es el primero del grupo y no el ultimo.

Fíjate, si el código actual es distinto del código de grupo que tratamos, simplemente inicializamos el código de grupo que se está tratando (pero no se borra ningún registro), posteriormente, cualquier registro que se encuentre de ese grupo, será borrado.

Por cierto, en el código que te pasé no nos aseguramos de que todos los registros de un grupo, vayan a uno a continuación del otro. Para asegurarlo, tenemos que ordenar el for select

Código:
for select CAMPO1, CAMPO2 
     from TABLA 
     order by CAMPO1, CAMPO2 
     into :CAMPO1, :CAMPO2 do begin
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 16-03-2004
Jvilomar Jvilomar is offline
Miembro
 
Registrado: mar 2004
Ubicación: Republica Dominicana
Posts: 97
Poder: 23
Jvilomar Va por buen camino
yehaaaaaaaaaaaaaaaaaaaaaaa

eso estuvo cooooooooool Juan de verdad.... me funciono a las mil maravillas e hizo lo que yo exactamente estaba buscando..... solo tuve que cambiar la Expresion de != por <> y todo funciono perfecto...

Gracias a ti Marc por darme la idea..... creo que voy a tener que estar mas a menudo por aqui.....

Marc e instalado el IBXpress pero no he tenido tiempo de probarlo aun..aunque chequeando algo me parecio ver cuando registre una base de datos y edite una tabla que me decia 242 modifications left o algo asi..de todos modos ya verificare eso con mas calma... ahora a terminar mi aplicacion que mucha guata que me ha dado....

Gracias otra vez.....

PD: Podrian decirme donde me consigo los Componentes IBX para Delphi 5?
__________________
El conocimiento es un Patrimonio Universal....
Responder Con Cita
  #5  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino


very

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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 15:46: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