cached updates w TADOTable

0

W bde jest coś takiego jak cached updates co powoduje ze zmiany w danych nie zapisuje się automatycznie, dopiero po posłaniu post.
Jak uzyskac coś takego w ADOTable, szukałem i nie widzę, help.
Przeszkadza mi to commitowanie przy zmianie kazdego wiersza.
Z góry dzięki za pomoc.
Pzdr.

0

Stwórz zbiór rekordów odlączonych. W przypadku DataSet robi sie to w następujący sposób

ADODataSet1.Connection:=nil;
ADOConnection1.Connected:=False;

i zastosuj tzw uaktualnianie wsadowe

//otworzenie połączenia z bazą
ADOConnection1.Connected:=True;
ADODataSet1.Connected:=ADOConnection1;
try
   //uaktualnienie rekordów
   ADODataSet1.UpdateBatch;
finally
   //ponowne odłączenie rekordów
   ADODataSet1.Connection:=nil;
   ADOConnection1.Connected:=False;
end;

Powinno też działać z ADOTable - więcej o rekordach odłączonych, aplikacjach modelu aktówki mozna przeczytać w książce "Oracle 10g i Delphi. programowanie baz danych" (w lutym będzie w sprzedaży), lub w gazecie SDJ (numer ukaże sie ok 18 lutego)

0
Artur napisał(a)

Stwórz zbiór rekordów odlączonych. W przypadku DataSet robi sie to w następujący sposób

ADODataSet1.Connection:=nil;
ADOConnection1.Connected:=False;

i zastosuj tzw uaktualnianie wsadowe

//otworzenie połączenia z bazą
ADOConnection1.Connected:=True;
ADODataSet1.Connected:=ADOConnection1;
try
   //uaktualnienie rekordów
   ADODataSet1.UpdateBatch;
finally
   //ponowne odłączenie rekordów
   ADODataSet1.Connection:=nil;
   ADOConnection1.Connected:=False;
end;

Powinno też działać z ADOTable - więcej o rekordach odłączonych, aplikacjach modelu aktówki mozna przeczytać w książce "Oracle 10g i Delphi. programowanie baz danych" (w lutym będzie w sprzedaży), lub w gazecie SDJ (numer ukaże sie ok 18 lutego)

Wielkie dzięki tylko pytanie, czy nie będzie się sypało jeśli nie rozłęczę się z bazą ?? Sprawa jest taka ze przy insercie do jednej tabeli na triggerze tworza sie rekordy w innej, podrzeędnej, generalnie chce przenieść tego triggera do aplikacji, a nie chce żeby mi sie od razu zapisały, tylko czy jesli zrobię

ADODataSet1.Connection:=nil;
to mi nie będzie krzyczec ze nie mozna wykonać operacji na zamknietym zestawie ??
Dzięki za info.

Nie da się "wyłączyć" zapisywania przy przechodzeniu do nowego rekordu, cos jakby:

//  przy zmianie rekordu
if ds_table_umowy.status in dsEdit, dsInsert  then nil;

Dzięki za info.

0

Można pracować na zbiorze rekordów odłączonych - bo są one przetrzymywane w pamięci - wiec mozesz do nich dodawać nowe wpisy, usuwać, modyfikować itp. a co potem z nimi siestanie zalezy od ciebie - czy zostana zapiane do bazy czy też nie - więc nie powinno sie sypać. Ten przyklad, który Ci podalem na pewno u mnie działa.

0

Dzięki :-), kiedy dokładnie ta Twoja książka wychodzi, dokładnie ??

0

Pewnie w następnym tygodniu:) Śledź witrynkę http://helion.pl/ksiazki/oradel.htm
A jeśli chodzi o czasopismo SDJ to pewnie ok 18 lutego

1 użytkowników online, w tym zalogowanych: 0, gości: 1