Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2012
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Truncar campo de Tabla con Datos cargados???

Hola a todos, ando necesitando ayuda en lo siguiente: Estoy trabajando en Delphi 7 con una base de datos en InterBase, mi problema es que tengo que truncar un campo de una tabla que es de 255 caracteres y pasar dicho campo a 64 pero no le encuentro la vuelta a como hacerlo porque ya probe con la siguiente sentencia y me tira error lo mismo. Cabe destacar que ya contiene registros cargados que sobrepasan los 64 caracteres.

Update Clientes

Set Email SUBSTR(Email,1,64)

Agradeceria muchisimo a quien pueda ayudarme.

Gracias
Responder Con Cita
  #2  
Antiguo 24-02-2012
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código SQL [-]
Update Clientes

Set Email = SUBSTR(Email,1,64)

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 24-02-2012
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 ungrande87 Ver Mensaje
Agradeceria muchisimo a quien pueda ayudarme.Gracias
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.
Responder Con Cita
  #4  
Antiguo 24-02-2012
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Cita:
Empezado por marcoszorrilla Ver Mensaje
Código SQL [-]Update Clientes

Set Email = SUBSTR(Email,1,64)




Un Saludo.
Amigo ya probe con esa funcion en realidad habia probado antes nada mas que en el tema me olvide del = pero exactamente como yo lo hacia incluso probe con el SUBSTRING pero me sigue diciendo que no reconoce la function. Espero que puedas ayudarme
Responder Con Cita
  #5  
Antiguo 24-02-2012
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código SQL [-]
Update Clientes  Set Email = SUBSTR(Email From 1 For 64)

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 24-02-2012
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Cita:
Empezado por marcoszorrilla Ver Mensaje
Código SQL [-]Update Clientes Set Email = SUBSTR(Email From 1 For 64)



Un Saludo.
sigue sin funcionarme .

Aclaro algo que me olvide y lo mejor es por eso que no me funciona lo que me dicen, el campo que quiero modificar tiene datos cargados y pertenece a un dominio xxxx de 255 caracteres, basicamente lo que quiero hacer es truncar los datos del campo Email a 64 caracteres para eso tengo un dominio tambien creado de 64 caracteres, lo que hacia antes era :

ALTER TABLE "CLIENTES" ALTER COLUMN "EMAIL" TYPE XXX;

pero lo mismo me tira este mensaje:

Unsuccessful metadata update
New size specified for column EMAIL must be at least 255 characters
Statement: ALTER TABLE "CLIENTES" ALTER COLUMN "EMAIL" TYPE XXX

despues de probar eso que escribi recien decidi acudir al foro, pero todavia no le puedo econtrar la vuelta.

Saludos y espero que puedan ayudarme si necesitan mas datos para poder darme una mano avisen.
Responder Con Cita
  #7  
Antiguo 24-02-2012
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
Creo que el sql que ha puesto marcoszorrilla no debe darte ningún error.
Responder Con Cita
  #8  
Antiguo 24-02-2012
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que el sql que ha puesto marcoszorrilla no debe darte ningún error.
Casimiro sigue sin funcionarme me dice que no existe la funcion SUBSTR probe con SUBSTRING y nada tampoco, buscando por otros medios me dijero que tenia que declarar dicha funcion entonces hize lo siguiente:

Código SQL [-]
DECLARE EXTERNAL FUNCTION substr
CSTRING(255), SMALLINT, SMALLINT
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'
pero sigue sin funcionarme .

Última edición por Casimiro Notevi fecha: 24-02-2012 a las 21:13:02.
Responder Con Cita
  #9  
Antiguo 24-02-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que el sql que ha puesto marcoszorrilla no debe darte ningún error.
El problema es que parece ser que usa Interbase y no Firebird (SUBSTRING es una función interna que se añadió en Firebird 1.5, pero no sé cual debe ser el equivalente en Interbase, si existe).
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #10  
Antiguo 24-02-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Cita:
Empezado por ungrande87 Ver Mensaje
Casimiro sigue sin funcionarme me dice que no existe la funcion SUBSTR probe con SUBSTRING y nada tampoco, buscando por otros medios me dijero que tenia que declarar dicha funcion entonces hize lo siguiente:

DECLARE EXTERNAL FUNCTION substr
CSTRING(255), SMALLINT, SMALLINT
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'

pero sigue sin funcionarme .
Esto es declarar una función existente en una DLL externa, para poder usarla dentro de Interbase.

Para poder usar esta declaración, antes tienes que copiar esa librería ib_udf.dll a la carpeta \udf de tu Servidor Interbase.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #11  
Antiguo 24-02-2012
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
Entonce es cuestión de mirar la documentación para ver cómo se llama esa función en interbase.
Responder Con Cita
  #12  
Antiguo 24-02-2012
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Entonce es cuestión de mirar la documentación para ver cómo se llama esa función en interbase.
Disculpa mi ignorancia pero hace menos de 3 dias que estoy usando Interbase, cuales podrian ser los posibles nombre de la funcion similar??
Y desde ya muchisimas gracias por todo el trabajo que brindas al Foro...
Responder Con Cita
  #13  
Antiguo 24-02-2012
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
No uso interbase desde 1999, cuando salió firebird.
Si estás obligado a usar interbase, no sé, busca por palabras parecidas, no creo que sea muy diferente.
Responder Con Cita
  #14  
Antiguo 24-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ungrande87 Ver Mensaje
cuales podrian ser los posibles nombre de la funcion similar??
Hola.

Revisá si en este [artículo] encontrás lo que estás buscando.

Un saludo.

Edito: Aunque al parecer, confirma que efectivamente, el nombre sería substr.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-02-2012 a las 22:44:07.
Responder Con Cita
  #15  
Antiguo 26-02-2012
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
tiene que tener en cuenta que SUBSTR viene en una UDF y está limitada por muy pocos caracteres (creo recordar que solo acepta 180), así pues cuando el varchar tiene más de ese número sale error, para solucionar eso en firebird se creo la función substring que es interna y no viene en UDF, y acepta strings muy largos (no se exactamente el valor pero he probado con caracteres superiores a 2000 caracteres)... según leo por ahí en Interbase no existe dicha función, solo se puede usar la de la Udf y esa era la que se usaba en firebird antes y creo que también tendrá el limite del tamaño de caracteres a 180 (180 es lo que se me vienen a la mente, puede ser un poco más, pero no mayor a 250 caracteres)
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #16  
Antiguo 26-02-2012
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
Pues nada, un programita en delphi que lea el campo, lo recorte y lo guarde. Eso son 5 minutos.
Responder Con Cita
  #17  
Antiguo 28-02-2012
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pues nada, un programita en delphi que lea el campo, lo recorte y lo guarde. Eso son 5 minutos.
Lo solucione de esa forma, muchas gracias!!!
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
Inserción de datos en tabla con campo auto_increment cmfab Varios 2 24-08-2011 17:38:45
Truncar contenido de un campo el-mono SQL 5 31-03-2009 23:23:18
Truncar campo datetime lgarcia SQL 4 13-10-2008 18:16:55
Actualizar un campo de una tabla con datos que se encuentran en otra tabla Morphine SQL 4 15-12-2006 22:47:42
Ingreso de datos en campo de tabla? marceloalegre SQL 1 30-07-2005 05:52:53


La franja horaria es GMT +2. Ahora son las 03:21:37.


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