Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   recuperar datos de una consulta MySql (https://www.clubdelphi.com/foros/showthread.php?t=53678)

jasrgeo 27-02-2008 01:15:25

recuperar datos de una consulta MySql
 
Hola amigos del foro antes que nada buen dia, soy nuevo en esto de programar en delphi, asi he recurrido a los expertos haber si me pueden orientar un poco.

ya he logrado insertar, borrar y actualizar un registro, pero me ha surgido un granduda en un programita que estoy realizando como practica. por cierto es un agenda.

Este es mi codigo de insersion de registros hasta aqui todo bien :)

procedure TForm3.btnguardarClick(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Add('INSERT INTO `agenda`.`contactos`(`id_contacto`,`nom_contacto`,`apellidopat_contacto`,`apellidomat_contacto`,`eda d_contacto`,`tel_contacto`,`email_contacto`)VALUES (NULL , '''+cnombre.text+''','''+capaterno.Text+''','''+camaterno.Text+''','''+cedad.Text+''','''+ctelefono. Text+''','''+cemail.Text+''')');
Query1.ExecSQL;
//Borrar las cajas de texto
cnombre.Clear;
capaterno.Clear;
camaterno.Clear;
cedad.Clear;
ctelefono.Clear;
cemail.Clear;
end;


El problema es que se me ocurrio hacer un modulillo de busqueda de contactos, tengo una idea de como hacer la consulta de busqueda que es esta:

procedure TForm3.btnbuscarClick(Sender: TObject);
begin

Query1.Close;
Query1.SQL.Add('SELECT * FROM contactos WHERE `nom_contacto` LIKE '''+cbuscar.Text+'''');
Query1.ExecSQL;

//Lo que no tengo ni idea es como recuperar el registro y mostrarlos en los campos.
los campos son:
cnombre.text
capaterno.text
camaterno.text
ctelefono.text
cemail.text

Query1.Open;
end;

Espero y me este dando a entender lo que quiero es recuperar los datos de la consulta y mostrarlos en los tedit.

egostar 27-02-2008 01:24:26

Hola bienvenido al Club,

Código Delphi [-]
procedure TForm3.btnbuscarClick(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Add('SELECT * FROM contactos WHERE nom_contacto LIKE '+QuotedStr(cbuscar.Text+'%'));
  Query1.Open;
  cnombre.text := Query1.Fields[0].AsString;
  capaterno.text := Query1.Fields[1].AsString;
  camaterno.text := Query1.Fields[2].AsString;
  ctelefono.text := Query1.Fields[3].AsString;
  cemail.text := Query1.Fields[4].AsString;
end;

Si los campos están en ese órden. Para un SELECT no necesitas ExecSQL, es Open.

Usa las etiquetas para el código, ves la diferencia?

Salud OS

Edito: Aunque no se si MySQL soporte el LIKE de esa forma, seguro alguien nos dará la respuesta correcta.

jasrgeo 27-02-2008 01:42:30

Mil gracias
 
Gracias por tu ayuda mi estimado egostar, funciono de maravilla el codigo
espero y muy pronto estar solucionando las dudas de los usuario al igual que tu.

Salu2.

egostar 27-02-2008 01:44:59

Cita:

Empezado por jasrgeo (Mensaje 268870)
Gracias por tu ayuda mi estimado egostar, funciono de maravilla el codigo
espero y muy pronto estar solucionando las dudas de los usuario al igual que tu.

Salu2.

Hola, pues que bien, solo que viendo de nuevo mi post hace falta que limpies el SQL del Query ya que si vuelves a ejecutar el proceso te dará un error.

Aquí el código completo

Código Delphi [-]
procedure TForm3.btnbuscarClick(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Clear; //Se limpia para una nueva consulta.
  Query1.SQL.Add('SELECT * FROM contactos WHERE nom_contacto LIKE '+QuotedStr(cbuscar.Text+'%'));
  Query1.Open;
  cnombre.text := Query1.Fields[0].AsString;
  capaterno.text := Query1.Fields[1].AsString;
  camaterno.text := Query1.Fields[2].AsString;
  ctelefono.text := Query1.Fields[3].AsString;
  cemail.text := Query1.Fields[4].AsString;
end;

Salud OS


La franja horaria es GMT +2. Ahora son las 21:02:56.

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