PDA

Ver la Versión Completa : Agregar Ceros a la Izquierda en Firebird 1.5.x


mantrax
06-10-2007, 17:33:40
Hola amigos saludos!

Quería saber si tienen por allí una función para agregar un número predeterminado de ceros a la izquierda? asi por ejemplo que tenga un campo varchar de longitud 3 me devuelva valores
1 ->001
10 ->010
100 ->100

Gracias de antemano.

pcicom
06-10-2007, 18:46:37
En este caso lo recomedable para ti es que si deseas que el valor a grabar en el campo de datos sea
llenado con zeros a la izq, y en su caso cuando recuperes esa informacion pues lo llenes con alguna
funcion escrita por ti..


ejemplo:


FUNCTiON STRZERO(nValor,nLong:INteger):String;
Var
cCadena:String;
nZeros:INteger;
begin
cCadena := TrimRight(InttoStr(nValor));
cCadena := StringOfChar('0',(nLong-length(cCadena))) + cCadena;
result := cCadena;
end;



: Insertando el Valor

cValor := strzero(500,10);

cSql := 'INSERT INTO mtabla (campo,campo....) VALUES ('+qUOTEDsTR(cValor)+','......);


: Obteniendo el Valor de un SELECT

SELECT campo.... FROM mtabla ...


cCampo := StrZero(qryTabla['campo'],10);



Y/O En su caso tendrias que crear un UDF con dicha funcion y asi la podrias integrar a tus consultas cuando
lo requieras de esa forma para cualquier valor numerico..


SELECT STRZERO(campo,10),campo2...... FROM mtabla ...




Saludos..

mantrax
06-10-2007, 19:24:35
Saludos!

La implementacion deseadea es en SQL de Firebird. Esto será beneficioso para muchas personas que implementen.

La interrogante sigue abierta