Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Select de un campo concreto y todos los demas (https://www.clubdelphi.com/foros/showthread.php?t=60439)

juanpe 02-10-2008 13:35:46

Select de un campo concreto y todos los demas
 
Hola buenas a todos. El titulo no es lo mas descriptivo pero a ver si me hago entender ;).

Estoy buscando la manera de hacer una sql anidada (Select (select)) en interbase, que me devuelva el resultado del primer campo de la tabla incrementado en un valor X y el resto de los campos tal cual están sin repetir el campo incrementado.

Lo necesito para actualizar el campo indice de la tabla, con un nuevo valor.
Un ejemplo, tabla libros, campo indice idlibro.

insert into libro
select (select idlibro+X from libro where idlibro like M) as idlibro,libro.* from libro where idlibro like M

El problema es que al poner libro.* estoy seleccionando de nuevo el campo idlibro y me peta al no coincidir el nº de campos que tiene la tabla donde inserto con el nº de campos que le paso de la select.

Entonces, pregunto si hay alguna forma de no pasar o saltar o eliminar un campo determinado en libro.*.

La opcion de escribir manualmente los campos, despues de la select anidada no me vale, ya que son muchisimos campos y me paso en la longitud maxima permitida para el metodo add de el componente TQuery.

Muchisimas gracias por leerme al menos y por vuestra ayuda.

Un saludo.

Caro 02-10-2008 14:39:24

Cita:

Empezado por juanpe (Mensaje 317689)
Entonces, pregunto si hay alguna forma de no pasar o saltar o eliminar un campo determinado en libro.*.

Que yo sepa no, o utilizass el * para todos o pones manualmente los campos que necesitas, para incrementar el valor no necesitas hacer otra subconsulta puedes hacerlo directo.

Código SQL [-]
Select idlibro+X as idlibro, campo1, campo2.....
From libro where idlibro like M

Saluditos

RolphyReyes 02-10-2008 15:08:17

Saludos.

Si sobrepasas el número de caracter soportado por el TQuery, te recomiendo hacer un Stored Procedure y luego ejecutarlo desde la aplicación.

juanpe 02-10-2008 16:49:39

Gracias por responder.:)

Cierto, que no necesito la 2ª select. un trabajo inutil por tanto.

El tema de los procedimientos almacenados me tengo que poner al dia con ellos.:cool:
Aun no los he utilizado nunca.:eek:


Un saludo


La franja horaria es GMT +2. Ahora son las 23:46:15.

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