Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Funciòn para extraer un campo texto (https://www.clubdelphi.com/foros/showthread.php?t=51185)

zvf 07-12-2007 19:36:13

Funciòn para extraer un campo texto
 

Hola a todos!

De nuevo, pido su valiosìsima ayuda para resolver un problema que tengo.

Tengo un campo tipo cadena que guarda un valor como este:
916,4213

Lo que necesito hacer es un update, que me de como resultado cambiar la cantidad que està antes de la coma (,) y el resto dejarlo igual. Es decir, por ejemplo que me quedara: 515,4213

¿Saben como puedo hacerlo?:confused:

Gracias!


Caral 07-12-2007 19:54:46

Hola
No entiendo, el titulo pone cambiar campo texto y el dato es numérico float.?
Me explicas?
Saludos

zvf 07-12-2007 20:08:15

Explico
 
Es que el campo es de tipo string, y los nùmeros que guarda, aunque sean nùmeros, los guarda de tipo cadena; serìa lo mismo que hubiera puesto:
abc,werf

Lo que yo quiero es cambiar los datos que se encuentran antes de la coma, y dejar los otros como estàn en el campo, es decir, cambiarlo a : der,werf.

Pero no se como hacer el update.

Gracias.

Zaira

egostar 07-12-2007 20:33:59

Bueno, aún no entiendo si esto tiene que ver con SQL, pero eso que quieres se puede hacer de esta forma, por supuesto una de tantas que puede haber.....:rolleyes::rolleyes:

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Indice : Integer;
  Cadena: String;
begin
  Indice := Pos(',',Edit1.Text);
  Cadena := Edit1.Text;
  Delete(Cadena,1,Indice-1);
  Insert('9999',Cadena,1);
  Edit1.Text := Cadena;
end;

Salud OS

enecumene 07-12-2007 20:43:33

Hola, Tambien puedes utilizar la funcion REPLACE de Mysql:

Código SQL [-]
update [table_name] set [field_name] = replace([field_name],'[string_to_find]','[string_to_replace]');

Saludos.

zvf 07-12-2007 20:52:53

MUCHISIMAS MUCHISIMAS GRACIAS!!

Esa funciòn, replace, era la que necesitaba, funcionò de maravilla

egostar 07-12-2007 20:57:03

Cita:

Empezado por enecumene (Mensaje 251239)
Hola, Tambien puedes utilizar la funcion REPLACE de Mysql:

Código SQL [-]
update [table_name] set [field_name] = replace([field_name],'[string_to_find]','[string_to_replace]');


Saludos.

Hola amigo enecumene, :rolleyes: pero...., para hacer ese update primero requiere de obtener el registro deseado, no creo que sea una constante, por eso es que sugerí que eso se haga con delphi y despues se haga un update simple, porque además imagina esta caso

123,1234

Que pasaria si yo hago esto:

replace([field_name],'[123]','[456]')

Salud OS

enecumene 07-12-2007 21:00:25

Cita:

Empezado por zvf (Mensaje 251241)
MUCHISIMAS MUCHISIMAS GRACIAS!!

Esa funciòn, replace, era la que necesitaba, funcionò de maravilla

Bueno al parecer al amigo zvf le funcionó, aunque la tuya era mejor por las razones que comentas.

Saludos.

egostar 07-12-2007 21:06:23

Cita:

Empezado por enecumene (Mensaje 251245)
Bueno al parecer al amigo zvf le funcionó, aunque la tuya era mejor por las razones que comentas.

Saludos.

Código SQL [-]
 
Update tabla set campo = '456,1234'
where campo = '123,1234'

Bueno, es que a veces son paranóico al ver un problema de forma aislada, si eso fuera una constante, ni siquiera se necesitaria un replace, con esto funcionaría igual....

enecumene 07-12-2007 21:32:03

Cita:

Empezado por egostar (Mensaje 251250)
Código SQL [-]
Update tabla set campo = '456,1234' where campo = '123,1234'


Bueno, es que a veces son paranóico al ver un problema de forma aislada, si eso fuera una constante, ni siquiera se necesitaria un replace, con esto funcionaría igual....

jajaja Tienes Razon amigo egostar :D:D.


La franja horaria es GMT +2. Ahora son las 16:13:00.

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