Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=38820)

wdlcs23 29-12-2006 22:56:33

DBGrid
 
hola a todos, tengo un problema con el DBGrid, soy nuevo en delphi asi q no se si estoy haciendo el uso correcto. Les pongo la clase (espero no abrumarlos pero es q no se cual es el problema). Me sale un error en la parte que indico mas abajo en el codigo, como si no estuviera referenciando a una porcion valida de la memoria cuando se utiliza el DBGrid.
Disculpen si no me explico muy bien.
Código Delphi [-]
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, DB, ADODB, unitConexion;
type
  TfrmBuscarClientes = class(TForm)
    DBGridClientes: TDBGrid;
    ADOQueryClientes: TADOQuery;
    procedure CargarDBGrid(tipo: string);
  end;
var
  frmBuscarClientes: TfrmBuscarClientes;
implementation
procedure TfrmBuscarClientes.CargarDBGrid(tipo: string);
var
  strSelect :string;
begin
      if (tipo='todos') then
        begin
          strSelect:='SELECT idCliente,ruc,nombre FROM cliente';         
          Conexion.CargaQuery(ADOQueryClientes,strSelect);          
          while (not ADOQueryClientes.Eof) do
            begin
{aqui se cae} self.DBGridClientes.Fields[0].Value:=ADOQueryClientes.fieldbyname('idCliente').Value;
              self.ADOQueryClientes.Next;
            end;
        end;
end;
end.
Saludos...agradezco por su ayuda...

marcoszorrilla 30-12-2006 00:36:14

Si lo que pretendes es mostrar los registros en un DbGrid, ese código que te da error te sobra, porque lo único que hace falta es una Consulta "AdoQuery", conectarla a un Dataset y luego conectas la rejilla a éste último y ya está, ya tienes los registros mostrándose en la Rejilla.

Haz la prueba y luego vas preguntando una a una las dudas que te vayan surgiendo.

Un Saludo.

wdlcs23 30-12-2006 05:45:54

casi casi
 
gracias por responder, he modificado mi codigo ...pero solo muestra un registro de la tabla cliente, habiendo mas de un registro.
Habra alguna propiedad en el DBGrid o en ADOQuery q debo de setear ??
Código Delphi [-]
 
procedure TfrmBuscarClientes.CargarDBGrid(tipo: string);
var
  strSelect :string;
begin
      if (tipo='todos') then
        begin
          strSelect:='SELECT idCliente,ruc,nombre FROM cliente';
          Conexion.CargaQuery(ADOQueryClientes,strSelect);
          DataSourceClientes.DataSet:=ADOQueryClientes;
          DBGridClientes.DataSource:=DataSourceClientes;
         end;
end;
Agradezco de antemano tu respuesta.
Saludos...

marcoszorrilla 30-12-2006 15:07:01

Si solo te muestra un cliente es porque la consulta solamente regresa un registro.

Prueba lo siguiente:
Haz un simple "Select * From MiTabla''

Y verás entonces que el problema está en el Selecte que estás ejecutando, por algún motivo la condición que pones solo regresa un registro.

Un Saludo.

wdlcs23 11-01-2007 07:20:50

done
 
problema solucionado....muchisimas gracias.....


La franja horaria es GMT +2. Ahora son las 14:59:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi