ADO Database Delphi

// Bunları uygulamamda test yaparken gerektiği için yazmıştım
// ama sonra sağlam olduğunu düşünerek
// uygulamanın son halinde de kullandım...
// umarım bu prosedürler işinize yarar...
// Bir de tablo ismine gore yenileyen versionu var...
// M. Utku Altınkaya / utkualtinkaya@lycos.co.uk
procedure RefreshDatasets(Component: TComponent);
var
i: integer;
ABookmark: Pointer;
begin
for i:=0 to Component.ComponentCount - 1 do
begin
if Component.Components[i] is TCustomADODataSet then
with TCustomADODataSet(Component.Components[i]) do
begin
if Active and Not (State in [dsEdit, dsInsert])then
begin
DisableControls;
ABookmark := GetBookmark;
Requery;
GotoBookmark(ABookmark);
FreeBookmark(ABookMark);
EnableControls;
end;
end;
if Component.Components[i] is TComponent then
RefreshDatasets(Component.Components[i]);
end;
end;
RefreshDatasets(Form1);
RefreshDatasets(Application);
procedure RefreshTables(TableName: string; Component: TComponent);
var
i: integer;
begin
for i:=0 to Component.ComponentCount - 1 do
begin
if Component.Components[i] is TADOQuery then
with TADOQuery(Component.Components[i]) do
begin
if Active and (Pos(TableName, SQL.Text) > 0) then
Requery;
end;
if Component.Components[i] is TComponent then
RefreshTables(Tablename, Component.Components[i]);
end;
end;
RefreshTables('musteriler', Application);
// gibi...
// Ben bunları data modulume method olarak ekledim...
// Tercih meselesi...