Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   select @variable from base (https://www.clubdelphi.com/foros/showthread.php?t=71305)

calco_hugo 12-12-2010 16:58:23

select @variable from base
 
ante todo buen dia, tengo una duda y la verdad no se si es posible hacerla,
es posible hacer un select con una variable con el nombre del campo ?
ej

select @marca from @BaseDatos

la consulta es por que tengo varias bases, ej marca, modelo, tipo, etc
y quisiera hacer una sola rutina para todas las bases de datos y manejarme con variables, utilizo mysql 5
desde ya gracias

Caral 12-12-2010 18:12:10

Hola
Se llama concatenar.
Código SQL [-]
select '+marca+' from BaseDatos
Saludos
PD: Las arrobas no se por que las pones.

calco_hugo 13-12-2010 01:04:08

gracias por contestar, por ahi me explique mal, lo que necesito es que el campo en el select sea una variable, igual que la base de datos

ej select campo_variable from base_variable

desde ya gracias

ElKurgan 13-12-2010 07:27:20

Depende de la base de datos que estés utilizando. Por ejemplo, en Oracle es perfectamente válido hacer esto:

Select :variable from &basededatos

Un saludo

Caral 13-12-2010 17:47:37

Hola
Da lo mismo, si no se puede con los dos puntos como variable entonces se concatena:
Código Delphi [-]
var
Variable1: String;
begin
Variable1:= 'TuCampo';
Query1.Sql.Text:= 'select '+Variable1+' from BaseDatos';
Query1.Open;
end;
Saludos

abelg 28-01-2011 14:42:06

Si es Sql Server la cosa creo sería asi

Declare @sql varchar(8000),
@tabla varchar(100),
@campos varchar(8000)
Set @tabla ='tabla_a'
Set @campos ='campo1, campo2, campo3, campo4'
set @sql ='Select '+ @campos +' From '+ @tabla
exec (@sql)

Casimiro Notevi 28-01-2011 14:57:01

Si te refieres "en la base de datos", pues entonces depende de la base de datos, en firebird tendría una estructura más o menos así:

Código SQL [-]
create procedure ejemplo( campo varchar(32), tabla varchar(32) )
as
declare variable sentecia varchar(256);
begin
  sentencia = 'select '||:campo||' from '||:tabla;
  execute statement sentecia;
end


La franja horaria es GMT +2. Ahora son las 23:50:32.

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