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 08-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por jachguate
Tal como lo veo, no será posible... ¿no es esto acaso un fallo?.
Pienso* que si debe ser.
Cita:
Empezado por jachguate
Firebird debiera procesar primero el subquery, almacenar el resultado en algún lugar (tabla temporal, memoria, etc) y luego hacer el borrado de las líneas coincidentes?
Eso pense*.
Cita:
Empezado por jachguate
Desconocía como trabaja el motor en este caso particular, y confieso que he quedado sorprendido..
Hice la prueba y me he quedado como tú

Quien tenga Oracle, MSSQL y MYSQL, que prueben a ver. Me gustaria saber el resultado (con una base de datos de prueba, claro está).

*Mucho pensamientos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #2  
Antiguo 08-11-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por vtdeleon
Quien tenga Oracle, MSSQL y MYSQL, que prueben a ver.
Pues en MySql 4.x no se puede pues el equivalente a first (limit) no puede usarse un subconsultas. Sin embargo, en este caso, es inecesaria la subconsulta ya que basta hacer:

Código SQL [-]
delete from tabla limit 10

// Saludos
Responder Con Cita
  #3  
Antiguo 08-11-2005
Abel Garcia Abel Garcia is offline
Miembro
 
Registrado: nov 2004
Posts: 45
Poder: 0
Abel Garcia Va por buen camino
Bueno pensandolo muy bien si es que existe una soluccion aun cuando sea con un procedimiento almacenado en la base de datos alguien tiene una idea, supongo que se tendria que Usar una Tabla temporal o algo asi alguien sabe como ?
Responder Con Cita
  #4  
Antiguo 08-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Cita:
Empezado por Abel Garcia
Bueno pensandolo muy bien si es que existe una soluccion aun cuando sea con un procedimiento almacenado en la base de datos alguien tiene una idea
esto podría servirte

Debes hacer algo así.

Código SQL [-]
 For select firts 10 from tabla into :variable
 begin
  ....instrucciones sql
   delete from tabla where campo = variable;
 end;

En el enlace que te deje sale más explicativo el uso de procedimientos almacenados y la instrucción For..Do.

Hasta Luego -
__________________
No todo es como parece ser...
Responder Con Cita
  #5  
Antiguo 08-11-2005
Abel Garcia Abel Garcia is offline
Miembro
 
Registrado: nov 2004
Posts: 45
Poder: 0
Abel Garcia Va por buen camino
Me temo que no podria ser por este metodo, lo que pasa que este metodo requiere que
por lo menos uno de los campos en la tabla sea del tipo unico algo asi como un consecutivo unico para cada registro por que si esto no fuera asi, entonces cuando se ejecute la sentencia delete borraria campos de mas. Ademas no se que pasa si parseas una tabla de los primeros 10 en donde ademas estas borrando registros de esta tabla Me parese raro . Habria que probar No Cren....?
Responder Con Cita
  #6  
Antiguo 08-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Tienes razón, debe haber un modo....
__________________
No todo es como parece ser...
Responder Con Cita
  #7  
Antiguo 08-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Cita:
Empezado por vtdeleon
Quien tenga Oracle, MSSQL y MYSQL, que prueben a ver. Me gustaria saber el resultado (con una base de datos de prueba, claro está).
En SQL Server funciona perfecto

Código SQL [-]
 
 delete from cliente 
 where nombre in (select TOP 2 nombre from cliente)

Hasta Luego -
__________________
No todo es como parece ser...
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:53:40.


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