Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Vinculo DBChart y stored procedure SQLServer (https://www.clubdelphi.com/foros/showthread.php?t=35458)

TriLoCBA 11-09-2006 20:05:39

Vinculo DBChart y stored procedure SQLServer
 
Al pulsar el Button1 quiero graficar, en un DBChart de barras, la tabla de valores generados por un stored procedure del SQLServer (spTablaGrafico1).

En el eje X van las fechas (dias), campo "Fecha".
En el eje Y van las cantidades (enteros), campo "Cant".

Pude vincularlo, pero solamente me grafica una barra con el primer valor que entrega el SP. :confused:

No estoy seguro de estar usando bien el DBChart.

Desde ya agradezco como siempre toda vuestra ayuda.

Un abrazo.
TriloCba.


Este es el codigo que utilizo:
Código Delphi [-]
var
  Form1: TForm1;
  conSQL: TADOConnection;
  CadenaSQL: String;
  sp1:TADOStoredProc;
  ds1:TDataSource;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  //Conexion al SQLServer...
  CadenaSQL:='Provider=SQLOLEDB.1;Password=MiPass;Persist Security Info=True;'+
  'User ID=MiUsu;Initial Catalog=MiBase;Data Source=154.25.41.8;'+
  'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;'+
  'Use Encryption for Data=False;Tag with column collation when possible=False';

  conSQL:=TADOConnection.Create(self);
  conSQL.ConnectionString:= CadenaSQL;
  conSQL.LoginPrompt:=False;
  conSQL.Connected:= True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with sp1 do begin
    sp1:=TADOStoredProc.Create(self);
    Connection:= conSQL;
    ProcedureName:= 'spTablaGrafico1';
    Active:= true;
  end;
  ds1:=TDataSource.Create(self);
  ds1.DataSet:=sp1;
  with DBChart1.SeriesList.Series[0] do begin
    DataSource:= ds1;
    XLabelsSource:='Fecha';
    Xvalues.ValueSource:='Fecha';
    Yvalues.ValueSource:='Cant';
  end;
end;

TriLoCBA 14-09-2006 17:20:05

Encontre "una" solución...
 
Pongo la solución que encontre, aunque no entiendo completamente la teoria a la que responde:

En lugar del datasource "ds1", va directamente el stored procedure "sp1" :confused:


Código Delphi [-]procedure TForm1.Button1Click(Sender: TObject);
begin
with sp1 do begin
sp1:=TADOStoredProc.Create(self);
Connection:= conSQL;
ProcedureName:= 'spTablaGrafico1';
Active:= true;
end;
// ds1:=TDataSource.Create(self);
// ds1.DataSet:=sp1;
with DBChart1.SeriesList.Series[0] do begin
DataSource:= sp1;//ds1;
XLabelsSource:='Fecha';
Xvalues.ValueSource:='Fecha';
Yvalues.ValueSource:='Cant';
end;
end;




Un abrazo.

TriloCba


La franja horaria es GMT +2. Ahora son las 13:03:06.

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