Ver la Versión Completa : Update a un campo varchar con el contenido de otros tres separados con espaco
fidel
04-06-2008, 20:22:08
Hola:
FireBird conectado con IBX
Quiero actualizar un campo varchar con el contenido de otros tres separados con un espacio
Sería algo como esto pero escrito correctamente
'update ALUMNOS set TOTGRUPO = NIVEL + espacio + GRUPO + espacio + ETAPA';
TOTGRUPO el campo a actualizar
NIVEL, GRUPO , ETAPA los otros campos de la misma tabla
¿Se puede hacer? ¿Cómo?
Un saludo.
hecospina
04-06-2008, 21:05:23
update ALUMNOS set TOTGRUPO=NIVEL||' '||GRUPO||' '||ETAPA
:)
fidel
04-06-2008, 23:30:51
Gracias hecospina.
//Me funciona bien así, sin dejar espacios
'update ALUMNOS set TOTGRUPO=NIVEL||GRUPO||ETAPA'
//Pero necesito un espacio y si pongo esto Delphi me da error: Missing operator or semicolon
'update ALUMNOS set TOTGRUPO=NIVEL||' '||GRUPO||' '||ETAPA'
He probado de varias formas más y no va, me suele dar SQL error ... Token Unknown ...
¿Cómo puedo solucionarlo?
Al González
05-06-2008, 01:52:49
¿Podrías mostrarnos cómo lo intentas desde Delphi?
(considera que también en Delphi las comillas sencillas se toman como delimitadores de cadenas, y por ello a veces es conveniente utilizar la función QuotedStr o bien comillas duplicadas para los valores String que contienen comillas).
Saludos.
Al.
hecospina
05-06-2008, 14:30:12
Muy extraño que no te funcione, yo hice las pruebas y me funciona, revisa lo que te dice Al sobre utilizar la comilla doble
otra opcion es crear en la tabla un campo nuevo con el caracter espacio y concatenarlo de este forma
update ALUMNOS set TOTGRUPO=NIVEL||nuevocampo||GRUPO||nuevocampo||ETAPA
Si es un cambio que vas a hacer solo una vez te funcionara
Si va a ser constante te recomiendo crear un campo "computed by" en la tabla
TOTGRUPO COMPUTED BY NIVEL||' '||GRUPO||' '||ETAPA
y dejar que la base de datos haga el trabajo
:)
fidel
05-06-2008, 20:30:13
Muchas gracias a los dos.
Me he dado cuenta que podía pasar el espacio por parámetro así (funciona bien)
DM.IBDSAlumBus.SelectSQL.Text := 'update ALUMNOS set TOTGRUPO=NIVEL||:ESPACIO||GRUPO||:ESPACIO||ETAPA';
DM.IBDSAlumBus.ParamByName('ESPACIO').AsString := ' ';
Un saludo.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.