Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Problema con STringGrid

Holas de Nuevo compañeros del foro, como dice el titulo tengo un problema con stringgrid, pues es la primera vez que trabajo con ello, codigo:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
if Edit1.Text = '' then begin
     ShowMessage('Item no existe');
     end else begin
ZQuery1.Close;
ZQuery1.SQL.Add('Select item, codigo from items');
ZQuery1.SQL.Add(' where codigo = :cod');
ZQuery1.ParamByName('cod').Value:=Edit1.Text;
ZQuery1.Open;
 if not ZQuery1.IsEmpty then begin
  StringGrid1.Row := StringGrid1.Rowcount - 1;
  StringGrid1.Cells[0,StringGrid1.Row] := ZQuery1.Fields[0].Value;
  StringGrid1.Cells[1,StringGrid1.Row] := ZQuery1.Fields[1].Value;
  StringGrid1.RowCount := StringGrid1.RowCount + 1;
  Edit1.Clear;
  Edit1.SetFocus;
  end else
      ShowMessage('Item no existe');
    end;
  end;
 end;

cuando inserto datos al stringgrid lo hace bien y me crea una nueva linea, pero cuando trato de insertar otro datos mas me tira el siguiente error:

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project Prueba.exe raised exception class EZSQLException with message 'SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Select item, codigo from items where codigo = '2020'' at line 1'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
que estoy haciendo mal?

adjunto el codigo completo: prueba.zip
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 14-09-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Si observas, Mysql te está diciendo que el erro es por que en el where está entrando una comilla simple de más, revisa tu Edit.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 14-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Gracias poliburro por tu buen ojo me di cuenta que me faltaba un clear:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
if Edit1.Text = '' then begin
     ShowMessage('Item no existe');
     end else begin
ZQuery1.Close;
ZQuery1.SQL.Clear;<----AQUI
ZQuery1.SQL.Add('Select item, codigo from items');
ZQuery1.SQL.Add(' where codigo = :cod');
ZQuery1.ParamByName('cod').Value:=Edit1.Text;
ZQuery1.Open;
 if not ZQuery1.IsEmpty then begin
  StringGrid1.Row := StringGrid1.Rowcount - 1;
  StringGrid1.Cells[0,StringGrid1.Row] := ZQuery1.Fields[0].Value;
  StringGrid1.Cells[1,StringGrid1.Row] := ZQuery1.Fields[1].Value;
  StringGrid1.RowCount := StringGrid1.RowCount + 1;
  Edit1.Clear;
  Edit1.SetFocus;
  end else
      ShowMessage('Item no existe');
    end;
  end;
 end;

Muchas Gracias!!! . me funciona de pelos..

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 14-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
siguiendo con el mismo hilo, me ocurre otro problema y es al intentar eliminar una fila especifica, aqui tengo un codigo de propiedad de seoane y que lo adapte para mis fines:

Código Delphi [-]
procedure EliminarFila(Grid: TStringGrid; Fila: Integer);
var
  i: integer;
begin
  if (Fila >= 0) and (Fila < Grid.RowCount)  then
  begin
    for i:= Fila to Grid.RowCount - 2 do
      Grid.Rows[i].Assign(Grid.Rows[i+1]);
    Grid.RowCount:= Grid.RowCount - 1;
  end;
end;

el codigo funciona al eliminar pero no elimina la fila especifica la que selecciono sino el primero. Existe una mejor solucion?

Saludos..
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
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
problema stringgrid darkclow_juliga Varios 2 07-12-2006 11:16:30
Problema con StringGrid javicho_villa Varios 0 24-08-2006 23:35:24
StringGrid y el problema del Vacio... papulo Varios 7 09-09-2005 12:58:18
Problema con TQRCompositeReport y StringGrid BlueSteel Impresión 1 30-08-2005 19:09:30
Problema con StringGrid julian_ch Varios 11 12-06-2003 12:26:36


La franja horaria es GMT +2. Ahora son las 12:25:49.


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