Delphi - WHERE LENGTH

 
Vista:

WHERE LENGTH

Publicado por Jose Rios (2 intervenciones) el 03/06/2008 06:49:14
Necesito insertar espacios al inicio de un campo respetando el tamaño y sin reemplazar los valores que se tienen, por ejemplo:
El campox es de 7 caracteres y tiene un valor de "123456" y kiero insertar un espacio al inicio para que quede " 123456" pero que se cumpla solo para los que tengan 6 caracteres en el valor y completar 7.

Estoy probando con la sig instruccion pero no me respeta WHERE LENGTH, quizas la sintaxis este incorrecta.

Agradezco su apoyo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:WHERE LENGTH

Publicado por Jose Rios (2 intervenciones) el 03/06/2008 06:50:12
Utilizo el DATABASE DESKTOP 7.0 DE DELPHI
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE LENGTH

Publicado por pacopaz (104 intervenciones) el 03/06/2008 17:32:16
Y a que base de datos te conectas?

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE LENGTH

Publicado por Jose Rios (2 intervenciones) el 03/06/2008 19:01:11
La instruccion es la siguiente:

UPDATE CUEN01.dbf
SET NO_FACTURA = " " + NO_FACTURA
where length (NO_FACTURA) = 4

donde CUEN01.DBF es la tabla o base de datos

NO_FACTURA es el campo

al no poner la instruccion WHERE LENGTH (NO_FACTURA) = 4

ME EJECUTA SIN PROBLEMA LA INSTRUCCION, pero necesito que solo se cumpla cuando el campo tenga valores de 4 caracteres.

Gracias por la atencion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE LENGTH

Publicado por pacopaz (104 intervenciones) el 03/06/2008 20:33:29
Prueba en lugar de usar 'lenghth' con 'len' que es la función más estandar que conozco para sql, aunque no sé si lo reconozca de cualquier manera.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE LENGTH

Publicado por Jose Rios (2 intervenciones) el 03/06/2008 20:36:25
Ya lo intente con LEN y me manda en mensaje de error CAPABILITY NOT SUPPORTED

alguna sintaxis de la funcion WHERE? O si es posible esta conbinacion de 2 funciones WHERE y LENGTH
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE LENGTH

Publicado por pacopaz (104 intervenciones) el 03/06/2008 20:52:45
Length es una función de Delphi, y aunque no estoy seguro de que ningún manejador de base de datos la ocupe, es más probable que funcionara con la función Len.
Ahora, este es uno de los problemas de trabajar con tablas planas, que no todas las funciones que normalmente sirven para hacer comandos de sql funcionan.
Lo más rápido es hacer un procedimiento en delphi para hacer esta función. No es directamente sql, pero funcionaría:

procedure EspaciosIzquierda;
var
t: String;
begin
table1.Open;
table1.First;
while not table1.Eof do
begin
t := trim(table1.FieldByName('NO_FACTURA').AsString);
if length(t) = 4 then
t := ' ' + t;
table1.Edit;
table1.FieldValues['NO_FACTURA'] := t;
table1.Post;
table1.Next;
end;
table1.Close;
end;

donde
table1 es un TTable, de BDE.
Esto, obviamente, funcionaría si y sólo si el campo NO_FACTURA es de tipo char/varchar.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar