ďťż
 
ADO i transakcje ďťż
 
ADO i transakcje
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

ADO i transakcje



pol - 30-01-2006 10:32
ADO i transakcje
  Witam wszystkich. Czy może ktoś mi z grubsza wyjaśnić kiedy i jak stosować
transakcje w ADO??
Dzięki & pozdrawiam





pol - 30-01-2006 10:32

  czy ma sens cos takiego??
DM1->ADOConnection1->BeginTrans();//uruchom mechanizm transakcji

try

{//przekazanie daty rozpoczęcia,zakończenia i nazwy do do komponentu
ADOcommand dodającego nowy projekt do bazy

DM1->adocDodajProjekt->Parameters->ParamByName("DATA_ROZPOCZECIA")->Value=data1;

DM1->adocDodajProjekt->Parameters->ParamByName("DATA_ZAKONCZENIA")->Value=data2;

DM1->adocDodajProjekt->Parameters->ParamByName("NAZWA")->Value=nazwa;

DM1->adocDodajProjekt->Execute(); //wykonanie polecenia SQL

DM1->ADOConnection1->CommitTrans();//zatwierdzenie wszystkich czynności

DM1->ADSetbpr->Close(); // odswieżenie ekranu

DM1->ADSetbpr->Open(); //

Form8->Close(); //zamknięcie formularza

ShowMessage("Projekt zostal dodany");//wyświetlenie inf. o dodaniu proj

}

catch(Exception &E)//jeśli nie wszystko przebiegło właściwie

{

DM1->ADOConnection1->RollbackTrans(); //odwołanie wszystkich czynności

}

}

}

Jest tutaj wykonywane tylko jedno polecenie SQL(insert) wiec czy ma sens
stosowanie mechanizmu transakcji??

Pozdrawiam




Artur Muszynski - 30-01-2006 10:32

  > Jest tutaj wykonywane tylko jedno polecenie SQL(insert) wiec czy ma sens
> stosowanie mechanizmu transakcji??

Nie ma. Pojedyncze polecenia SQL są niepodzielne.

artur




szaman - 03-02-2006 09:53

 
>Jest tutaj wykonywane tylko jedno polecenie SQL(insert) wiec czy ma sens
>stosowanie mechanizmu transakcji??

Ma (mimo, że jest niepodzielne) ponieważ jak nie zakończysz tranzakcji
to znaczy, że kiedy ją zakończysz na koniec działania programu ?!
Ponadto zamykanie tranzakcji powinno spowodować, że zmaiana zostanie w
sposób trwały zapisana (na dysku) i jeżeli właśnie na tym Ci zależy to
zamykaj. Poza tym jest jeszcze wiele wariantów i możliwości związanych
z tranzkcjami o czym powinieneś poczytać, a napewno o poziomach
izolacji - np. co się z nimi wiąże jeżeli właśnie nie zamkniesz
tranzakcji.

To o czym piszę jest niezależne od tego czy to ADO czy inne
komponenty.
--
{67B14976-ABB4-4A3B-869B-84B5CCA1F569}
http://www.usenet.pl/opisy/pl.comp.bazy-danych





Grzesiek G. - 03-02-2006 09:53

  szaman napisał(a):
>>Jest tutaj wykonywane tylko jedno polecenie SQL(insert) wiec czy ma sens
>>stosowanie mechanizmu transakcji??
>
>
> Ma (mimo, że jest niepodzielne) ponieważ jak nie zakończysz tranzakcji
> to znaczy, że kiedy ją zakończysz na koniec działania programu ?!
> Ponadto zamykanie tranzakcji powinno spowodować, że zmaiana zostanie w
> sposób trwały zapisana (na dysku) i jeżeli właśnie na tym Ci zależy to
> zamykaj. Poza tym jest jeszcze wiele wariantów i możliwości związanych
> z tranzkcjami o czym powinieneś poczytać, a napewno o poziomach
> izolacji - np. co się z nimi wiąże jeżeli właśnie nie zamkniesz
> tranzakcji.

Dwie odpowiedzi - dwie opinie. Przychylam się do pierwszej - stosowanie
tranzakcji tu nie ma tu sensu. Myślę, że problemem pytającego nie jest
sens zamykania tranzakcji, ale czy ją wogóle otwierać.

Pozdrawiam

--
Grzegorz Gruza
Odpowiadając usuń "spamerom_nie." z adresu!!!




szaman - 03-02-2006 09:54

  >Dwie odpowiedzi - dwie opinie. Przychylam się do pierwszej - stosowanie
>tranzakcji tu nie ma tu sensu. Myślę, że problemem pytającego nie jest
>sens zamykania tranzakcji, ale czy ją wogóle otwierać.

Zrobisz jak zechcesz - myślę jednak, że przez pewien czas to same
gnioty będziesz produkował.

--
{67B14976-ABB4-4A3B-869B-84B5CCA1F569}
http://www.usenet.pl/opisy/pl.comp.bazy-danych




Grzesiek G. - 03-02-2006 09:54

  szaman napisał(a):
>>Dwie odpowiedzi - dwie opinie. Przychylam się do pierwszej - stosowanie
>>tranzakcji tu nie ma tu sensu. Myślę, że problemem pytającego nie jest
>>sens zamykania tranzakcji, ale czy ją wogóle otwierać.
>
>
> Zrobisz jak zechcesz - myślę jednak, że przez pewien czas to same
> gnioty będziesz produkował.

Czy zechcesz mi wyjaśnić dlaczego tak myślisz?

--
Grzegorz Gruza
Odpowiadając usuń "spamerom_nie." z adresu!!!




szaman - 03-02-2006 09:54

  >Czy zechcesz mi wyjaśnić dlaczego tak myślisz?

O jaki serwer chodzi i czy wogóle o serwer?
Bo jeżeli o serwer to chyba nie musze TŁOMACZYĆ
a jeżeli nie o serwer to nie chce mi sie przeglądać jak w innych ale
dla MSAccess będzie to również gniot. Chyba, że zastosujesz autocomit
przy rzeczywiście bardzo prostych instrukcjach SQL - no ale przecież
to już jest używaniem transakcji co sugerujesz nie robić.

Uważam, że to co napisałeś jest bardzo szkodliwe - przecież czytają tą
grupę naprawdę początkujący, a Ty na domiar złego napisałeś to jako
odpowiedź na pytanie.

--
{67B14976-ABB4-4A3B-869B-84B5CCA1F569}
http://www.usenet.pl/opisy/pl.comp.bazy-danych




Grzesiek G. - 03-02-2006 09:54

  szaman napisał(a):
>>Czy zechcesz mi wyjaśnić dlaczego tak myślisz?
>
>
> O jaki serwer chodzi i czy wogóle o serwer?
> Bo jeżeli o serwer to chyba nie musze TŁOMACZYĆ
> a jeżeli nie o serwer to nie chce mi sie przeglądać jak w innych ale
> dla MSAccess będzie to również gniot. Chyba, że zastosujesz autocomit
> przy rzeczywiście bardzo prostych instrukcjach SQL - no ale przecież
> to już jest używaniem transakcji co sugerujesz nie robić.

Sugerowałem brak zaczynania jawnego tranzakcji w przypadku, gdy jest to
pojedynczy insert. Aczkolwiek przejrzałem jeszcze raz pytanie, i nie
widzę tam pojedynczego INSERTa, którego podejrzewałem po odpowiedzi
Artura (wogóle nie widzę SQLa). Zatem poprawiam się - kod C++ wygląda
dobrze.

A brak jawnego rozpoczynania tranzakcji nie musi świadczyć o ich braku -
mogą być np. obsługiwane przez DTC. Ale to już nie temat dla początkujących.

Pozdrawiam i proponuję OT, bo pytający wycofał się z dyskusji.

--
Grzegorz Gruza
Odpowiadając usuń "spamerom_nie." z adresu!!!
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    =?iso-8859-2?q?=5BD=B3ugie=5D?= javax.transaction.SystemException z hibernate. PL/pgSQL jak =?ISO-8859-2?Q?u=BFy=E6_transakcji=2E?= [msssql, transact-sql] prosze o zapytanie ktore odzwierciedlistrukturę bazy [MS SQL 2000] Jak przeniesc Transaction Log na inny server. [MS SQL] System transakcyjny wybieranie kolejnych rekordow [MS SQL]Log transakcji+restore+info (MYSQL) INSERT INTO (table) SELECT * i transakcje Mssql 2000 - replikacja transakcyjna + merge MS SQL 2005 Logi transakcji. [MSSQL2000] Wyłączenie transaction log
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nawschodzie.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com