Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-10-2020
Frami Frami is offline
Registrado
 
Registrado: oct 2020
Posts: 5
Poder: 0
Frami Va por buen camino
Insertar coma en una tabla paradox

Hola,

Tengo una tabla paradox donde aparecen varias columnas numéricas mal formateadas debido a que no se ha tenido en cuenta el separador decimal de la ','.
Ahora me gustaría poder insertar la coma en el campo para que el formato sea correcto.
Por ejemplo tengo la tabla esta:

PuBaseHt PuBaseTtc PuHt PuTtc TxRem MtHt MtTtc
1050000 1270500 1050000 1270500 0 8400 10164
340000 411400 340000 411400 0 306000 370260

y quiero insertar una coma en la posición 3 de cada columna para que quede algo así:
PuBaseHt PuBaseTtc PuHt PuTtc TxRem MtHt MtTtc
10,50000 12,70500 10,50000 12,70500 0 84,0 10,164
34,0000 41,1400 34,0000 41,1400 0 30,6000 37,0260

¿Alguien puede ayudarme?

GRACIAS
Responder Con Cita
  #2  
Antiguo 16-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, pero eso es texto, ¿en la tabla paradox también es texto?
Responder Con Cita
  #3  
Antiguo 16-10-2020
Frami Frami is offline
Registrado
 
Registrado: oct 2020
Posts: 5
Poder: 0
Frami Va por buen camino
No, el texto es el nombre del campo y yo lo que quiero es cambiar el contenido de los campos añadiendo la coma.

Es decir, PuBaseHt es el nombre de la columna y 1050000 es donde quiero añadir la coma para que quede 10,50000.

Pensaba con un INSERT INTO "Nombre tabla" y añadir nombre campo, pero no sé decirle que inserte la coma en la posición 3...
Responder Con Cita
  #4  
Antiguo 16-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Entonces en la tabla los valores son cadenas de texto y no son números?
Responder Con Cita
  #5  
Antiguo 16-10-2020
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 60
Poder: 10
marco3k Va por buen camino
-Lo que yo haría primero es hacer un backup de tus tablas.
-En visual foxpro se arregla ese problema con este comando vfp, asumiendo que te necesitas los 2 primeros caracteres, en la tercera columna la coma y agregando los demás caracteres (suponiendo que el campo es de 20 caracteres):
Código SQL [-]
REPLACE ALL MONTO WITH LEFT(MONTO,2) + "," + TRIM(SUBSTR(MONTO,3,20))

-Ahora en paradox que yo sepa no es compatible con comandos vfp pero puedes adecuar ese comando vfp en sentencias sql para paradox.

-Lo otro seria hacer un programa en delphi para conectarte a la tabla y hacer un bucle para recorrer todas la filas e implementar el comando vfp a cada fila.

Saludos.
Responder Con Cita
  #6  
Antiguo 19-10-2020
Frami Frami is offline
Registrado
 
Registrado: oct 2020
Posts: 5
Poder: 0
Frami Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Entonces en la tabla los valores son cadenas de texto y no son números?

Hola,

Los valores ahora son texto, pero realmente deben de ser numéricos.
Si consigo poner la coma, pasarán a ser números.
Responder Con Cita
  #7  
Antiguo 19-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Frami Ver Mensaje
Hola,
Los valores ahora son texto, pero realmente deben de ser numéricos.
Si consigo poner la coma, pasarán a ser números.
Si los campos son de tipo texto, al ponerle la coma seguirán siendo textos con una coma.
¿Por qué no cambias a campos numéricos?
Responder Con Cita
  #8  
Antiguo 19-10-2020
Frami Frami is offline
Registrado
 
Registrado: oct 2020
Posts: 5
Poder: 0
Frami Va por buen camino
Cita:
Empezado por marco3k Ver Mensaje
-Lo que yo haría primero es hacer un backup de tus tablas.
-En visual foxpro se arregla ese problema con este comando vfp, asumiendo que te necesitas los 2 primeros caracteres, en la tercera columna la coma y agregando los demás caracteres (suponiendo que el campo es de 20 caracteres):
Código SQL [-]
REPLACE ALL MONTO WITH LEFT(MONTO,2) + "," + TRIM(SUBSTR(MONTO,3,20))

-Ahora en paradox que yo sepa no es compatible con comandos vfp pero puedes adecuar ese comando vfp en sentencias sql para paradox.

-Lo otro seria hacer un programa en delphi para conectarte a la tabla y hacer un bucle para recorrer todas la filas e implementar el comando vfp a cada fila.

Saludos.

HOLA,

A partir de tu comando vfp he creado el mismo en paradox:

Update "DOCLI.DB" set PuBaseHt = (SUBSTRING(PuBaseHt FROM 1 FOR 2) + "," + SUBSTRING(PuBaseHt FROM 3 FOR 20))

Pero no me funciona y aparece un mensaje de error que dice: "Diferencia de Tipo en una expresión"

¿Alguna idea de porque no funciona?

Gracias
Responder Con Cita
  #9  
Antiguo 19-10-2020
Frami Frami is offline
Registrado
 
Registrado: oct 2020
Posts: 5
Poder: 0
Frami Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Si los campos son de tipo texto, al ponerle la coma seguirán siendo textos con una coma.
¿Por qué no cambias a campos numéricos?
¿Cómo puedo cambiarlos a numéricos?

Con el comando este
Update "DOCLI.DB" set PuBaseHt = (SUBSTRING(PuBaseHt FROM 1 FOR 2) + "," + SUBSTRING(PuBaseHt FROM 3 FOR 20))

Me aparece un mensaje de error que dice: "Diferencia de Tipo en una expresión"
¿Debe ser por que el tipo del campo no es numérico?
Responder Con Cita
  #10  
Antiguo 20-10-2020
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 60
Poder: 10
marco3k Va por buen camino
Cita:
Empezado por Frami Ver Mensaje
HOLA,

A partir de tu comando vfp he creado el mismo en paradox:

Update "DOCLI.DB" set PuBaseHt = (SUBSTRING(PuBaseHt FROM 1 FOR 2) + "," + SUBSTRING(PuBaseHt FROM 3 FOR 20))

Pero no me funciona y aparece un mensaje de error que dice: "Diferencia de Tipo en una expresión"

¿Alguna idea de porque no funciona?

Gracias
Me parece que la consulta sql sería asi :
Código SQL [-]
Update "DOCLI.DB" set PuBaseHt = SUBSTRING(PuBaseHt FROM 1 FOR 2)  || "," || TRIM(SUBSTRING(PuBaseHt FROM 3 FOR 20))

Mi editor database desktop para paradox no abre, pero debería funcionar esta sentencia sql.

Saludos.
Responder Con Cita
  #11  
Antiguo 21-10-2020
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 60
Poder: 10
marco3k Va por buen camino
Cita:
Empezado por Frami Ver Mensaje
¿Cómo puedo cambiarlos a numéricos?

Con el comando este
Update "DOCLI.DB" set PuBaseHt = (SUBSTRING(PuBaseHt FROM 1 FOR 2) + "," + SUBSTRING(PuBaseHt FROM 3 FOR 20))

Me aparece un mensaje de error que dice: "Diferencia de Tipo en una expresión"
¿Debe ser por que el tipo del campo no es numérico?
Ese comando que te indique y el que tu escribiste son para campos tipo texto. Ahora si deseas pasar a numérico primero debes indicar el punto decimal ya que si lo mandas así como esta por ejemplo el valor del campo "MtTtc" en la segunda fila que escribiste en tu 1er post dice "370260" que seria un número entero de 6 dígitos, al ponerle la coma decimal sería "37,0260" seria un número de 2 dígitos y 4 decimales. Una vez hecho estos cambios en el editor de base de datos de paradox puedes cambiar el campo a valor numérico.

Avisas como te fue.

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar dato en Tabla Paradox Abuelo7 Conexión con bases de datos 11 09-10-2008 23:09:12
Insertar numero en tabla paradox dayser C++ Builder 8 24-07-2006 20:23:47
Insertar un registro en una tabla Paradox maravert Tablas planas 1 14-10-2005 02:08:02
al insertar algo en una tabla paradox..... Rafe Conexión con bases de datos 4 02-08-2005 17:44:10
Insertar una imagen JPG en una tabla paradox David Tablas planas 2 24-11-2004 17:04:05


La franja horaria es GMT +2. Ahora son las 11:04:48.


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
Copyright 1996-2007 Club Delphi