BDE - nie zapisuje zmian ;/

0

Witam,
Mam pewien problem z aplikacja pisana w Delphi z uzyciem BDE:

W datasetach mam ustawione cachedupdates na false co by miało znaczyć, że wszystkie zmiany dokonane na bazie są od razu przesyłane do bazy i zapisywane, a tymczasem gdy np dodaje lub edytuje record to zmiana jest widoczne tylko w tej aplikacji w ktorej zmiane zrobilem - w innych aplikacjach pojawia sie dopiero gdy wylacze je wszystkie i wlacze na nowo(i te inne aplikacje i ta ktora dokonala zmiany - jezeli nie wylacze tej ostatniej to inne moge wylaczac i wlaczac ale zmian nie widac)

Bardzo prosze o jakas pomoc szukalem juz w faq i w helpach ale bez skutku ..

0

A posta wykonujesz?

0

czy dokonam zmian editem i pozniej je postne
czy dodam record za pomoca Insertrecord albo appendrecord (gdzie post jest wykonywany automatycznie)

zmiany (w innych aplikacjach) dalej nie pojawiaja sie w bazie do czasu wylaczenia programu jak wylacze program i uruchomie ponownie inna aplikacje to wreszcie widzi dokonane zmiany.. ;/

nie wiem co z tym jest nie tak ;/
pomocy

0
bodzio123 napisał(a)

czy dokonam zmian editem i pozniej je postne
czy dodam record za pomoca Insertrecord albo appendrecord (gdzie post jest wykonywany automatycznie)

zmiany (w innych aplikacjach) dalej nie pojawiaja sie w bazie do czasu wylaczenia programu jak wylacze program i uruchomie ponownie inna aplikacje to wreszcie widzi dokonane zmiany.. ;/

nie wiem co z tym jest nie tak ;/
pomocy

Jaka to baza, jakimi komponentami się posługujesz i jak to robisz?

0

jest to kilka tabelek paradox 7 do kazdej mam jedna TTable z zakladki BDE w Delphi 6 - w kazdej ustawione to cachedupdate na false

Jest jedna kontrolka (wszystkie kontrolki z zakladki BDE) TDatabase z driverem STANDART z którą poprzez property DatabaseName sa połączone wszystkie tabele TTable

Jest też kontrolka TSession z Netfiledirem takim jak dir od wszystkich tabelek, privatedir ma ustawiony do katalogu aplikacji. Do sesji sa przylaczone tabelki i tdatabase...

Wszystkie tabelki otwieram na poczatku programu

Wszystko niby dziala dobrze na jednej aplikacji ale jak chce zeby na biezaco wszystkie zmiany w bazie byly widoczne tez w innych aplikacjach to wlasnie ten caly problem sie pojawia...

0

już niepamiętam dokładnie jak to było ale pokombinuj z Database.Commit po dodaniu|edycji|usunięciu

BTW. jeśli nie jesteś uwiązany do BDE i paradoxa to je zamień na coś normalnego, np. FireBird

0

Database.commit dziala jak właśnie cachedupdate jest wlaczony.. ale udało mi się dojść jak zapisać zmiany gdy cachedupdate jest wyłączony - należy po prostu dataset.close i dataset.open ... i wtedy wszystko co zmieniłem zaczyna być dostępne też dla innych aplikacji.. takie proste a tak ciężko było do tego dojść ;/

Wydaje mi się, że jest to jakiegoś rodzaju bug w BDE bo z dokumentacji jasno wynika, że gdy cachedupdate ustawimy na false to zmiany będą od razu zapisywane w bazie, a niestety tak nie jest ;/

Bardzo dziekuję za pomoc :) - super takie forum gdzie można zapytać nawet bez rejestracji i gdzie zawsze się znajdą pomocni ludzie :)

Dzieki :)

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