Buenas tardes les quisiera hacer la siguiente consulta,quisiera borrar las filas que el usuario selecciona en un dbgrid; bien creo un objeto , entonces instancio el mismo tantas filas el usuario haya seleccionado, los atributos de dicho objeto son : CodigoM, DescripcionM,RevisionM; asi tambien se llamaran las cabeceras de las columnas de ese dbgrid.
bien ,para esto utilizo un TStringList,instancio los objetos los cargos en la lista,pero..cuando quiero hacer un delete en la base de datos (Access) me tira error.... les paso el codigo:
y muchas gracias!
Código Delphi
[-]
var
sSQL: string;
Manuales: TManuales;
i,j,w: integer;
FabManual: TManualFactory;
lista: TStringList;
Marca: TBookmarkStr;
MarcaLista: TBookmarkList;
begin
Marca:= self.DataSource1.DataSet.Bookmark;
MarcaLista:= self.DBGridMan.SelectedRows;
lista:= TStringList.Create;
try
for i:= 0 to MarcaLista.Count -1 do
begin
for j:= 0 to self.DBGridMan.Columns.Count-1 do
begin
lista.AddObject(self.DBGridMan.Fields[j].Text,FabManual.getInstance);
self.DataSource1.DataSet.Bookmark:= MarcaLista[i]
end;
end;
finally
self.DataSource1.DataSet.Bookmark:= Marca;
end;
for w:= 0 to lista.Count do
begin
self.ADODataSet1.Close;
self.ADODataSet1.Connection:= ADOConnection1;
ADOConnection1.Open;
sSQL:= 'delete from MANUALESPRODUCTO ' + ' where PLN_CODIGO = ' + QuotedStr((lista.Objects[w] as TManualFactory).CodigoM)+ 'and PLN_NRO_REV = ' +IntToStr((lista.Objects[w] as TManualFactory).RevisionM)
'and PLN_DESCRIPCION = ' + QuoTedStr((lista.Objects[w] as TManualFactory).DescripcionM);
ADOConnection1.Execute(sSQL);
ADOConnection1.CommitTrans;
end;
end;
les paso la unit donde creo los objetos...
Código Delphi
[-]
TManualFactory = class(TObject)
private
FCodigoM: string;
FDescripcionM: string;
FRevisionM: integer;
constructor Create;
public
class function getInstance: TManualFactory;
property CodigoM: string read FCodigoM write FCodigoM;
property DescripcionM: string read FDescripcionM write FDescripcionM;
property RevisionM: integer read FRevisionM write FRevisionM;
end;
implementation
var
ManualFactory: TManualFactory;
constructor TManualFactory.Create;
begin
self.FCodigoM:= '';
self.FRevisionM:= 0;
self.FDescripcionM:= '';
end;
class function TManualFactory.GetInstance: TManualFactory;
begin
Result:= ManualFactory;
end;
initialization
ManualFactory:= TManualFactory.Create;
finalization
ManualFactory.Free;
end.