Ir al contenido


Foto

concatenar el contenido de un registro con el contenido de un edit


  • Por favor identifícate para responder
5 respuestas en este tema

#1 homero72

homero72

    Member

  • Miembros
  • PipPip
  • 14 mensajes

Escrito 23 febrero 2013 - 09:21

Muy buenos dias a todos los programadores y estudiantes.

Mi consulta es esta, tengo una base BD con varias tablas, tabla1, tabla2, tabla3.

Cada tabla con varios campos.

En mi form tenog dos edit,
edit1,text                para introducir numero
edit2.text                para ingresar nombre o palabras


Busco como poder concatenar, agregarle al contenido de un campo de una tabla lo que tengo en un edit. (edit1.text)

tabla1 tiene estos campos: T1campo1, T1campo2, T1campo3,  todos de tipo string.

Tengo el código que hace una búsqueda en tabla1, cuando encuentra se cumple la condición agrega el contenido del edit1.text al campo T1campo3.

La condición es que el contenido del campo T1campo2 debe ser igual al contenido del edit2.text, si es asi, entonces concatenar el contenido del campo T1campo3 con lo que hay en el edit1.text.



Pero si el T1campo3 ya tenia algo, mi codigo lo sobrescribe, y eso no es lo que busco, yo deseo que concatene, que le agregue al costado.
El campo T1campo3 solo almacenaría una lista de numeros.


[pascal]

query1.Close;
query1.SQL.Clear;
  query1.SQL.Add('Update tabla1');
query1.SQL.Add('set T1campo3= ' + Edit1.text );
query1.SQL.Add('where T1campo2= '  + quotedstr(Edit2.text) );
query1.ExecSQL;

[/pascal]


alguna idea de como hacerlo.....
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 23 febrero 2013 - 11:12

Saludos.

No indicas la BD que estas atacando, para algunas BD para concatenar usan el símbolo "+" otras "||" dependerá del motor de BD.

Pudiera ser algo como esto:

[pascal] query1.Close;
query1.SQL.Clear;
  query1.SQL.Add('Update tabla1');
query1.SQL.Add('set T1campo3 =  T1campo3 +  ' + Edit1.text ); <--- Si aplica
query1.SQL.Add('set T1campo3 =  T1campo3 ||  ' + Edit1.text ); <--- Si aplica
query1.SQL.Add('where T1campo2= '  + quotedstr(Edit2.text) );
query1.ExecSQL;[/pascal]

Prueba y nos avisas!
  • 0

#3 homero72

homero72

    Member

  • Miembros
  • PipPip
  • 14 mensajes

Escrito 23 febrero 2013 - 12:43

Gracias ...

bueno, la BD en acces 2000

probe el codigo, pero uno me sale este error,


delphi
  1. query1.SQL.Add('set T1campo3 =  T1campo3 ||  ' + Edit1.text ); <--- Si aplica



....gENERAL SQL ERROR.... uso de barras verticales no valido en la expresion de consulta



y probe con la otra linea...



delphi
  1. query1.Close;
  2. query1.SQL.Clear;
  3.   query1.SQL.Add('Update tabla1');
  4. query1.SQL.Add('set T1campo3 =  T1campo3 +  ' + Edit1.text ); <--- Si aplica
  5. query1.SQL.Add('where T1campo2= '  + quotedstr(Edit2.text) );
  6. query1.ExecSQL;



lo que me hace es SUMAR el valor que ya estaba en ese campo t1campo3  mas valor del edit1, y yo solo quiero agregarlo, tal ves separado por un espacio, o un punto y coma
para que quedara algo asi VALOR VIEJO, VALOR NUEVO, VALOR MAS NUEVO,..........    y asi sucesivamente, cada nuevo valor del edit1 ire agregando a este campo T1campo3.

otra cosa que me di cuenta que si el campo t1campo3 esta vacio no me graba el nuevo valor del edit1.




  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 23 febrero 2013 - 01:18

En Access se utiliza el símbolo "&" para concatenar strings:

Select campo1 & "-" & campo2 from tabla


Saludos.
  • 0

#5 homero72

homero72

    Member

  • Miembros
  • PipPip
  • 14 mensajes

Escrito 23 febrero 2013 - 07:22

ok... gracias, pero... como usaria esa linea aca dentro de este codigo que tengo



delphi
  1.  
  2.  
  3. query1.Close;
  4. query1.SQL.Clear;
  5.   query1.SQL.Add('Update tabla1');
  6. query1.SQL.Add('set T1campo3 =  T1campo3 +  ' + Edit1.text ); <--- Si aplica
  7. query1.SQL.Add('where T1campo2= '  + quotedstr(Edit2.text) );
  8. query1.ExecSQL;



o simplemente reemplazaria el simbolo + por el simbolo &....

ahora no estoy en mi computadora, si lo estuviera lo iba a probar, estoy en un ciber cafe, pero ahora cuando regrese a casa probare cambiando de simbolos...

En caso de que no sea asi, volvere mañana para ver si alguien me dice como seria...

gracias a todos..

saludos
  • 0

#6 homero72

homero72

    Member

  • Miembros
  • PipPip
  • 14 mensajes

Escrito 24 febrero 2013 - 09:30

bien... bien... perfecto, GRACIASSSSS......

me funciono, me concateno con el simbolo &, quedando el codigo asi:


query1.Close;
query1.SQL.Clear;
query1.SQL.Add('Update datopersona');
//query1.SQL.Add('set denuncia = ' + Edit1.text );
query1.SQL.Add('set denuncia =  denuncia & ' + '-' + Edit1.text );

query1.SQL.Add('where nombre = '  + quotedstr(Edit2.text) );
query1.ExecSQL;

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('Update tabla1');
query1.SQL.Add('set T1campo3 =  T1campo3 & ' + ' - ' + Edit1.text ); <--- Si aplica
query1.SQL.Add('where T1campo2= '  + quotedstr(Edit2.text) );
query1.ExecSQL;


En la BD, tabla1 campo T!campo3 va concatenando, un valor al lado del otro, y separado por un gion medio, algo asi 100 - 102 - 103 - 108
  • 0




IP.Board spam blocked by CleanTalk.