PDA

Ver la Versión Completa : dudas en una consulta con sql


rufo
05-01-2010, 22:50:35
Hola amigos primero que nada deseando feliz año,bueno les comento que estoy haciendo una consulta de unos productos pero estos tienen codigo que les asigno todo esta bien cuando almaceno un nuevo producto pero al momento de hacer una busqueda de productos por medio del codigo que tienen solo me muestra el primer producto y le capturo otro diferente y no me muestra nada, les dejo el codigo que estoy empleando.


procedure TModificacion.PngSpeedButton2Click(Sender: TObject);
begin
if edit1.Text<>'' then
begin
with dm1.Q_Cproductos do
begin
active:=false;
sql.Clear;
sql.add('select * from C_productos');
sql.add('where Productos.codigo');
active:=true;
if recordcount=0 then
messagedlg('No se encontro el producto a modificar, intente de nuevo',mtinformation,[mbok],0);
begin
edit2.Text:=fieldbyname('producto').asstring;
edit3.Text:=fieldbyname('codigo').asstring;
edit4.Text:=fieldbyname('cantidad_unidad').asstring;
edit5.text:=fieldbyname('precio_unidad').asstring;
edit6.Text:=fieldbyname('unidad_existencia').asstring;
dtp1.DateTime:=fieldbyname('fecha_alta').asdatetime;
combobox1.Text:=fieldbyname('Compañia').asstring;
combobox2.Text:=fieldbyname('categoria').asstring;
image2.Picture.LoadFromFile(fieldbyname('foto').asstring);
end;
end;
end;
end;


espero que me ayuden si estoy bien en hacer este tipo de consulta ya que quiero hacerlo casi similar al que usan en los minisuper buscando el producto al teclear solo el codigo, bueno gracias de antemano, uso delphi 5 y access 2003

ContraVeneno
06-01-2010, 01:01:26
procedure TModificacion.PngSpeedButton2Click(Sender: TObject);
begin
if trim(edit1.Text)<>'' then //<-- el trim es para quitar los espacios en blanco en caso de que eso hayan puesto, no es lo mismo '' que ' '
begin
with dm1.Q_Cproductos do
begin
active:=false;
sql.Clear;
sql.add('select P.Codigo, P.Producto, .... etc'); // No es recomendable utilizar "Select *"
SQL.Add('from C_productos P'); // la P es un alias para la tabla
sql.add('where P.codigo like :Codigo');
Parameters.ParamByName('Codigo').AsString := edit1.Text;
active:=true;
if recordcount=0 then
messagedlg('No se encontro el producto a modificar, intente de nuevo',mtinformation,[mbok],0);
begin
edit2.Text:=fieldbyname('producto').asstring;
edit3.Text:=fieldbyname('codigo').asstring;
edit4.Text:=fieldbyname('cantidad_unidad').asstring;
edit5.text:=fieldbyname('precio_unidad').asstring;
edit6.Text:=fieldbyname('unidad_existencia').asstring;
dtp1.DateTime:=fieldbyname('fecha_alta').asdatetime;
combobox1.Text:=fieldbyname('Compañia').asstring;
combobox2.Text:=fieldbyname('categoria').asstring;
image2.Picture.LoadFromFile(fieldbyname('foto').asstring);
end;
end;
end;
end;

rufo
06-01-2010, 18:05:09
Gracias amigo ContraVeneno quedo solucionado como me dijiste. Gracias de nuevo.