PDA

Ver la Versión Completa : TADOStoredProc & DBLookupComboBox


TriLoCBA
23-09-2005, 15:55:52
Estoy realizando un formulario de carga y modificación de datos, en el cual se encuentran 6 DBLookupCombobox.

Cada uno toma los datos de un Stored Procedure propio.

En un comienzo, creí que debía asignar un TADOStoredProc y un TDataSource distintos a cada combo. Pero probé creandolos sobre las mismas variables ("sp1" y "ds1"...), y parece funcionar.

:confused: Mi duda es:

Esto es "estructuralmente" correcto en cuanto a la programación y a la asignación de recursos ??? o puede generarme problemas a futuro con la ocupación de memoria.
No se tampoco, si corresponde liberar o destruir las instancias creadas antes de reutilizarlas. O si hay forma de minimizar aun mas, el codigo total...

Desde ya agradezco vuestros conocimientos y consejos...

Un abrazo...

PD: Pongo un ejemplo con dos combos...

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,Dialogs, DBCtrls, DB, ADODB;
type
TForm1 = class(TForm)
conSQL: TADOConnection;
DBcbo1: TDBLookupComboBox;
DBcbo2: TDBLookupComboBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
sp1:TADOStoredProc;
ds1:TDataSource;
begin
//Completa Combo1 con el Stored Procedure "SPcboNombres"
with sp1 do begin
sp1:=TADOStoredProc.Create(self);
Connection:= conSQL;
ProcedureName:= 'SPcboNombres';
Active:= true;
end;
ds1:=TDataSource.Create(self);
ds1.DataSet:= sp1;
with DBcbo1 do begin
ListSource:= ds1;
ListField:= 'Texto';
KeyField:= 'Valor';
end;
//Completa Combo2 con el Stored Procedure "SPcboOrigen"
with sp1 do begin
sp1:=TADOStoredProc.Create(self);
Connection:= conSQL;
ProcedureName:= 'SPcboOrigen';
Active:= true;
end;
ds1:=TDataSource.Create(self);
ds1.DataSet:= sp1;
with DBcbo2 do begin
ListSource:= ds1;
ListField:= 'Texto';
KeyField:= 'Valor';
end;
end;
end.