Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
Insertar Datos De Un Dbgrid A Una Tabla

HOLA QUE TAL , BUENO SOY NUEVO EN DELPHI , TENGO UN PROBLEMA , TENGO UN DBGRID DONDE MUESTRO LA INFORMACION DE UNA TABLA, Y DESPUES DE REALIZAR UNA BUSQUEDA ME GUSTARIA QUE LA FILA QUE FUE SELECCIONADA COMO RECULTADO DE LA BUSQUEDA `PODER INSERTARLA EN UNA TABLA EN MYSQL, EL PROBLEMA QUE TENGO , ES QUE NO SE COMO RECUPERAR LA INFORMACION DE LA FILA SELECCIONADA DESPUES DE MI BUSQUEDA PARA PODER INSERTARLA EN UNA TABLA , HE DADO UN VISTAZO POR LA INTERNET, Y NO HE PODIDO ENCONTRAR ALGO AL RESPECTO, ESPERO ALGUIEN ME PUEDA AYUDAR .. MUCHISIMAS GRACIAS, MUESTRO MI CODIGO PARA LA BUSQUEDA,

Código Delphi [-]

procedure TFMain.Edit1Change(Sender: TObject);
var i:integer;
palabras: TStringList;
consulta: String;

begin if Edit1.Text = '' then begin consulta:='Select * from productos';
ZQuery.close;
ZQuery.sql.clear;
ZQuery.sql.add(consulta);
ZQuery.open;
end else begin
palabras := TStringList.Create;
palabras.CommaText := Edit1.Text;
ZQuery.close; ZQuery.sql.clear;
for i:=0 to palabras.Count-1 do
begin consulta:=consulta+'and Producto like "%'+palabras.Strings[i]+'%"';
end;
Delete(consulta,1,3);
consulta:='Select * from productos where'+consulta;
ZQuery.SQL.Add(consulta);
ZQuery.Open;
end;//else
end;
Responder Con Cita
  #2  
Antiguo 23-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola schaka,
No te enojes, pero te voy a pedir que respetes la guia de estilo:
1. No escribas en mayusculas, pareciera que estás gritando.
2. Usa las etiquetas delphi: [ DELPHI ] [ /DELPHI ] (sin los espacios entre los corchetes) para que el código se vea bien.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 23-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
hola que tal , bueno soy nuevo en delphi , tengo un problema , tengo un DBgrid donde muestro la informacion de una tabla y despues de realizar una busqueda me gustaria que la fila que fue seleccionada como resultado de la busqueda poder insertarla en una tabla en mysql,pero no se como recuperar la informacion de la fila seleccionada para poder insertarla en una nueva tabla, he dado un vistazo por la internet y no he encontrado nada aun, espero me puedas ayudar gracias, a continuacion muestro mi codigo de busqueda

Código Delphi [-]
procedure TFMain.Edit1Change(Sender: TObject);
var i:integer;
    palabras: TStringList;
    consulta: String;

begin
  if Edit1.Text = '' then
  begin
    consulta:='Select * from productos';
    ZQuery.close;
    ZQuery.sql.clear;
    ZQuery.sql.add(consulta);
    ZQuery.open;
  end
  else begin
    palabras := TStringList.Create;
    palabras.CommaText := Edit1.Text;
    ZQuery.close;
    ZQuery.sql.clear;
      for i:=0 to palabras.Count-1 do
      begin
      consulta:=consulta+'and Producto like "%'+palabras.Strings[i]+'%"';
      end;
    Delete(consulta,1,3);
    consulta:='Select * from productos where'+consulta;
    ZQuery.SQL.Add(consulta);
    ZQuery.Open;
  end;//else
end;
Responder Con Cita
  #4  
Antiguo 23-02-2008
reina reina is offline
Miembro
 
Registrado: ago 2005
Ubicación: Capital Federal-La Plata (Bs As)
Posts: 147
Poder: 19
reina Va por buen camino
Hola, no se bien que es lo que queres hacer pero el codigo podrias mejorarlo un poco el stringlist trata de liberarlo despues que no lo uses, podrias poner su creacion entre un try..except para salvar cualquier inconveniente.
Despues si queres insertar datos de un dbgrid en un tabla X, deberias poder recuperar los valores de la filas o columnas de grilla si te fijas cuando refencias a la grilla en el codigo y poniendo punto te aparecen todas sus propiedades y metodos disponibles. Si no tambien lo podiras buscar en la ayuda de delphi que por cierto es muy buena.
Otra recomendacion es que te bajes el libro "La Cara Oculta de Delphi 4" que es un documento bueno para aprender delphi, creo que se encuentra disponible en este foro para bajarlo.
Saludos y espero te sirvan mis opiniones!

LA PATRIA SERA LIBRE!
Responder Con Cita
  #5  
Antiguo 23-02-2008
schaka schaka is offline
Miembro
 
Registrado: feb 2008
Posts: 30
Poder: 0
schaka Va por buen camino
Bueno mostrare ahora un metodo que he creado para recuperar los datos de un dbgrid llamado DProductos para despues insertarlos en una tabla, pero no me inserta valores nulos y me manda este mensaje "can not open a resultset" , pongo a continuacion mi metodo,
Código Delphi [-]
procedure TFMain.BAgregarClick(Sender: TObject);
var consulta,clave,producto,preciou,preciov:String;
begin
  clave:=DProductos.Fields[0].AsString;
  producto:=DProductos.Fields[1].AsString;
  preciou:=DProductos.Fields[4].AsString;
  preciov:=DProductos.Fields[3].AsString;

   Remision.close;
   Remision.sql.clear;
   consulta:='INSERT INTO remision VALUES(clave,producto,preciov,preciou)';
    Remision.SQL.Add(consulta);
    Remision.Open;

end;
Responder Con Cita
  #6  
Antiguo 24-02-2008
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
Hola, yo pondría algo así:

Código:
 
var Consulta : String;
begin
  Consulta:'INSERT INTO remision (clave, producto, preciov, preciou) VALUES (:clave, :producto, :preciov, :preciou)';
  Remision.SQL.Clear;
  Remision.SQL.Add(Consulta);
  Remision.Parameters.Parambyname('Clave').Value := DProductos.Fields[0].AsString;
  Remision.Parameters.Parambyname('Producto').Value := DProductos.Fields[1].AsString;
  Remision.Parameters.Parambyname('PrecioV').Value := DProductos.Fields[4].AsString;
  Remision.Parameters.Parambyname('PrecioU').Value := DProductos.Fields[5].AsString;

  Remision.ExecSql; // Remision.Open; es para hacer una consulta, tienes que poner EXECSQL para hacer un Insert/update/delete
end;
Ahora mismo no recuerdo la sintaxis correcta para pasar los parámetros, creo que con ADO es como te lo he puesto Remision.Parameters.ParamByName, pero con BDE es Remision.Params.... De todas formas la ayuda de Delphi te lo va dando.

Y otra cosa, suponiendo que DProductos sea una query, yo me referiría a los datos de esta forma:
Código:
  Remision.Parameters.Parambyname('PrecioU').Value := DProductos.FieldByName('PrecioU').AsString;
De esta forma no dependes del orden de los campos en la consulta, sino del nombre del campo, que normalmente será el mismo en la consulta que en la tabla.

Espero haberte ayudado algo,
un saludo
__________________
Rafita.
Responder Con Cita
  #7  
Antiguo 24-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Hilo repetido con este otro

Revisa la guía de estilo.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 datos en una tabla Alkazar C++ Builder 3 13-11-2007 14:12:00
Como insertar datos a una tabla con un SP Tauro78 Firebird e Interbase 1 31-01-2007 22:46:13
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla taru MySQL 1 27-07-2006 15:36:12
insertar en tabla las lineas que seleccione el usuario desde un dbgrid arpegius25 Conexión con bases de datos 3 09-05-2006 10:08:59
Como insertar datos de una tabla en otra tabla? Salomon Firebird e Interbase 1 28-08-2003 11:29:40


La franja horaria es GMT +2. Ahora son las 23:29:24.


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