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)
-   -   Problema DBRGRid (https://www.clubdelphi.com/foros/showthread.php?t=77475)

jehemo 30-01-2012 21:21:27

Problema DBRGRid
 
Alguien podria ayudarme, tengo el siguiente problema, estoy realizando una aplicacion con una base de datos en MySQL a traves de ADO y trato de mostrar los datos en un DBGRid pero cuando lo ejecuto el DBGRid me aparece vacio a continuacion el codigo


procedure TPrincipal.Consultar1Click(Sender: TObject);
var
FCEmpresas: TFCEmpresas;
begin
Datamodule2.AQEmpresas.SQL.Clear;
datamodule2.AQEmpresas.Active:= false;
Datamodule2.AQEmpresas.SQL.Text:= ('select id_empresa, empresa from empresas order by id_empresa');
FCEmpresas:= TFCEMpresas.Create(Application);
with FCEmpresas do
begin
DBGCEmpresas.DataSource:= Datamodule2.DSEmpresas;
datamodule2.AQEmpresas.Active:= true;
DBGCEmpresas.columns.add.fieldName:='id_empresa';
DBGCEmpresas.columns.Add.FieldName:= 'empresa';
DBGCEmpresas.Columns[0].Title.Caption:= 'Id';
DBGCEmpresas.Columns[1].Title.Caption:= 'Empresa';
Show();
end;

Casimiro Notevi 30-01-2012 22:23:03

Recuerda poner etiquetas cuando muestres código, ejemplo:




Tu código quedaría así:
Código Delphi [-]
procedure TPrincipal.Consultar1Click(Sender: TObject);
var
    FCEmpresas: TFCEmpresas;
begin
    Datamodule2.AQEmpresas.SQL.Clear;
    datamodule2.AQEmpresas.Active:= false;
    Datamodule2.AQEmpresas.SQL.Text:= ('select id_empresa, empresa from empresas order by id_empresa');
    FCEmpresas:= TFCEMpresas.Create(Application);
    with FCEmpresas do
    begin
        DBGCEmpresas.DataSource:= Datamodule2.DSEmpresas;
        datamodule2.AQEmpresas.Active:= true;
        DBGCEmpresas.columns.add.fieldName:='id_empresa';
        DBGCEmpresas.columns.Add.FieldName:= 'empresa';
        DBGCEmpresas.Columns[0].Title.Caption:= 'Id';
        DBGCEmpresas.Columns[1].Title.Caption:= 'Empresa';
        Show();
    end;

Casimiro Notevi 30-01-2012 23:01:47

Y no olvides leer nuestra guía de estilo, gracias por tu colaboración.

ecfisa 31-01-2012 03:19:12

Hola.

Siempre trata de exponer con la mayor claridad lo que deseas realizar, aportando la mayor cantidad de detalles sobre la dificultad que tenes para conseguirlo.

Según entiendo, lo que deseas hacer es que, en el evento OnClick de un botón del form principal se abra otro form que contiene un TDBGrid que debe mostrar los campos id_empresa y empresa de la tabla empresas.

Como un ejemplo en el código:
Código Delphi [-]
var
    FCEmpresas: TFCEmpresas;
no estás indicando de que componente desciende TFCEmpresas...

Entonces, suponiendo que AQEmpresas sea de tipo TADOQuery, TFCEmpresas de tipo TForm y DBGCEmpresas de tipo TDBGrid, creo que deberías probar de este modo:
Código Delphi [-]
procedure TTPrincipal.Consultar1Click(Sender: TObject);
begin
  with Datamodule2.AQEmpresas do
  begin
    Close;
    SQL.Text := 'select id_empresa, empresa from empresas order by id_empresa';
    Open;
  end;
  FCEmpresas := TFCEmpresas.Create(Self);
  with FCEmpresas do
  begin
    with DBGCEmpresas do
    begin
      Columns.Add.FieldName := 'id_empresa';
      Columns.Add.FieldName := 'empresa';
      Columns[0].Title.Caption := 'Id';
      Columns[1].Title.Caption := 'Empresa';
      DataSource := Datamodule2.DSEmpresas;
    end;
    Visible := True; 
  end;
end;
Eso si mi conjetura anterior hubiera sido acertada... :)

Un saludo.

jehemo 03-02-2012 18:33:02

Gracias por la ayuda pero no he resuelto mi problema, el problema es que no me muestra la informacion de la base de datos en el dbgrid solo me aparece las columnas vacias supongo q me falta una instruccion para cargar los datos pero desconozco cual es

ecfisa 03-02-2012 20:35:57

Hola jehemo.

El código que te puse anteriormente estaba previamente probado y muestra los campos correctamente en el DBGrid. Lo que me hace pensar que tabla 'empresas' pueda no tener datos...

Saludos.

jehemo 03-02-2012 21:02:57

si tengo datos en la tabla, de hecho ejecuto el query tal cual en mysql y si me regresa informacion ya copie tu codigo tal cual y no me muestra datos

ecfisa 03-02-2012 22:22:29

Cita:

Empezado por jehemo (Mensaje 424250)
si tengo datos en la tabla, de hecho ejecuto el query tal cual en mysql y si me regresa informacion ya copie tu codigo tal cual y no me muestra datos

Hola jehemo.

Creo entonces que el problema no está en el planteo que has echo, tal vez se esté produciendo en otro lado.

Te adjunto una prueba muy simple con ADO y dbdemos.mbd que viene con Delphi por no tener acceso a tu bd obviamente. Pero funcionará sin problemas camiando los nombres de tabla y campos. La compilación del ejemplo se realizo en : C:\TEMP\jehemo\ (donde también está dbdemos.mbd)

Revisalo con tranquilidad y quizá te sirva para localizar el fallo.

Saludos.

jehemo 03-02-2012 23:41:13

muchas gracias ya logre resolver el problema, este se encontraba en el datasource


La franja horaria es GMT +2. Ahora son las 04:55:25.

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