PDA

Ver la Versión Completa : como concatenar y desconcatenar


UREÑA
19-04-2007, 21:10:20
hola amigos

:(
lo que quiero hacer es lo siguiente:
en mi base de datos tengo un campo que se llama nombre que esta compuesto por nombre o nombres, apellidop y apellidom como le puedo hacer para que al momento de consultar se me desconcatene en tres edits y que al momento de insertar se concatene para agregar a la base de datos

garcias!!!
un saludo muy grande a todos!!:cool:

ContraVeneno
19-04-2007, 21:25:51
la función copy te puede servir para lo primero.
la función formatstr con parámetros %s te puede servir para lo segundo.

Pero, creo que lo mejor sería que consultaras sobre las reglas de normalización de las bases de datos, donde se recomienda que los datos sean atómicos, es decir, que no sean compuesto.

Es mucho mejor tener los campos separados, de esta manera te evitarías tener que andar con estos menesteres.

Lepe
19-04-2007, 21:29:51
El problema lo vas a tener con apellidos compuestos y nombres, por ejemplo:
"Maria Antonia del águila molina" es el más complejo que puedes encontrar.

- ¿Cómo puedes separar eso? El ordenador no puede diferenciar entre un nombre compuesto y "Manuel González Romero"
- ¿Y los apellidos? ¿cómo los troceas? Los espacios no te sirven de separador.

Lo que te han dicho, crear 3 campos, es la única solución, otros inventos te fallarán.

Saludos

Rockin
19-04-2007, 21:32:06
Para insertar es tan facil como:


NombreEntero.Text:= Nombre.text + ' ' + Apellido1.text + ' ' + Apellido2.text;

Inserta un espacio entre nombre y apellidos para que no lo ponga junto.

Para la consulta ya es mas complicado, deberias de poner un campo nombre y otro apellido en la BD, seria mejor com dicen los compañeros.

Saludos.

maeyanes
19-04-2007, 21:52:41
Dependiendo del tipo de base de datos...

Puedes tener un campo calculado que uses para las consultas:


create table Personas(
Nombre varchar(50) not null,
ApellidoP varchar(50) not null,
ApellidoM varchar(50) not null,
Nombre_Completo computed by Nombre || ' ' || ApellidoP || ' ' || ApellidoM
);


De esta forma para editar usas los campos normales y para consultas usas el campo calculado Nombre_Completo...



Saludos...

UREÑA
19-04-2007, 22:28:30
hola amigos gracias por sus respuestas

creo que me voy por lo que ustedes me dicen
pero me surgio otra duda...
ya puedo insertar nombre en un registro, apellidop en otro, apellidom....
pero si quisiera mostrarlo en dbgrid en un solo campo que se llame nombre como le puedo hacer

:o

Lepe
19-04-2007, 23:38:13
creo que maeyanes y tú habéis posteado casi al mismo tiempo, ¿has leído su mensaje?

Esa forma sería la ideal, aunque hay otras opciones, por ejemplo en la consulta del grid, puedes hacer:

select Nombre || Apellidop || apellidoM as NombreCompleto, domicilio, calle
from tabla

ContraVeneno
19-04-2007, 23:40:43
para SQL Server sería:

Select Nombre+' '+ApellidoP as NombreCompleto
From TuTabla