Czym zajmuje się KAMIENIARSTWO ?
Temat: i COMMIT
...o Clipperze polecano GOTO RECNO() po odblokowaniu rekordu, co wymusza zapis na dysk i ponowny odczyt. Jak na razie nie narzekam. Zastanów się. Najpierw odblokowujesz rekord a potem aktualizujesz dane na dysku. Jesteś pewien, że kolejność jest poprawna. Ja najpierw wykonuje commit a dopiero potem zwalniam rekord. Ale może masz racje. Może jeszcze ktoś się wypowie na ten temat. Po co sie klocic - wystarczy poczytac ;o) Network environment: DBCOMMIT() makes database updates visible to other processes. To insure data integrity, issue
Źródło: topranking.pl/1252/i,commit.php
Temat: Clipper - problem z zapisen na nowelu ...
... cmxSys(nRequest [, xParms]) -xValue Arguments nRequest is the number of the system request to perform. It can be any of the following numeric values: 1001: Turn strict read of records through RDD hierarchy on or off (by default it is off for greater efficiency) 1002: Turn force hard commit for COMMIT, dbCommit() or dbCommitAll() on or off (by default it is off for substantially improved performance) Prosze o jakiekolwiek sugestie co moze byc przyczyna wystepowania tego typu problemu. A moze wine ponosi nowel ? Ps. Na koncowkach sieci nowelowej zawsze za windowsy (najczesciej 98 i Me) Ps. Z gory dzieki za wszelkie sugestie
Źródło: topranking.pl/1256/clipper,problem,z,zapisen,na,nowelu.php
Temat: Clipper i fakturowanie
...zwiśksza numer o jeden dla wywoĂĹźywanej nazwy Local numer := 0, b := Alias() If Use_Dbf( 'NUMERY') If BPT( nazwa) Field-nazwa := nazwa End If wartosc == Nil numer := ++Field-numer ElseIf ValType( wartosc) == 'C' numer := Field-Numer ElseIf ValType( wartosc) == 'N' numer := Field-Numer := wartosc End /* DBCommit() ; */ dbUnLock() Select( b) End Return numer ********************* Pojawia sie tu funkcja BPT, ktora mozna w skrocie tak okreslic : Function Bpt( parametr) If !dbSeek( parametr) dbAppend() Return .t. Else Rlock() End Return .f. ale w rzeczywistosci jest to o wiele bardziej skomplikowany element duzo wiekszego mechanizmu. Zwroci ona zawsze prawde dla pierwszego wywolania...
Źródło: topranking.pl/1252/40,clipper,i,fakturowanie.php
Temat: Clipper oraz Win95
...że końcówki sieci opartej o Win'95 nie uaktualniają indeksów (i DBF-ów) od razu, tylko po jakimś czasie. Zostało to sprawdzone na bazie programu fakturującego, który pobiera sobie przed zapisem ostatni nr faktury i zdarza mu się, że pobierze ten sam numer. Było takie uaktualnienie vredir'a, ale problem nie ustąpił. Czy ktoś ma jakieś sugestie?? Gościnnie u Grzegorza Mirek B. PO kazdej wyminia danych w rekordzie zastosuj COMMIT lub area-( dbCommit()) Pozdrawiam, Marek Powichrowski
Źródło: topranking.pl/1257/clipper,oraz,win95.php
Temat: [CLIPPER]
...grupowiczów: kto poda krótki przyklad programu, który rozwali pliki indeksowe ? Warunek oczywiscie, ze sa one otwarte podczas aktualizacji bazy danych. 1. Porzadny serwer - zadne Windows - Novell albo Samba 2. Porzadnie polozone okablowanie - zadnych kabli na podlodze, zadnych hubow za 100,- pln, zadnych wtyczek bez zachowanej sekwencji, zadnych gniazdek telefonicznych 3. Porzadnie skonfigurowana siec - tylko TCP/IP 4. W programie zawsze po zmianach dbUnlock i dbCommit (w tej kolejnosci) 5. Na zakonczenie aplikacji kasujesz flage Archive (jak sie uda) 6. Na rozpoczecie aplikacji sprawdzasz flage Archive dla DBF, memo i indeksow - jak jest ustawiona to kasujesz indeksy i indeksujesz na nowo 7. Uzywasz DBFCDX, nie uzywasz pack, reindex Dla sieci do 10 klientow wystarczy - mam kientow (piekarnie, stacje benzynowe, duze sklepy), w ktorych w niektorych tabelach jest ponad 1 mln.rekordow (razem baza - ok 1 GB), serwer chodzi...
Źródło: topranking.pl/1252/80,clipper.php
Temat: Clipper dla większych baz
Podsumowujac, nasuwaja mi sie 3 rozwiazania 1. Siec Novell (szybki serwer + pamiec +dyski + wszystko to co wplywa na stabilnosc sieci ) i masz rozwiazanie tanie i szybkie. Minusem sa rozwalajce sie indeksy szczegolnie jezeli uzywasz w kluczach wlasnych funkcji, brak transakcji i wszystkie te rzeczy, ktorych nie maja DBF-y. Koncowek moze byc do 100, jezeli aplikacja bedzie napisana poprawnie ( DbCommit() po zapisach do bazy) powinno to chodzic w miare dobrze. Czasami oczywiscie moga pojawic w bazach znane krzaczki. 2.Wersja terminalowa z firmy OTC. Serwer NT, ktory obsluguje n-aplikacji (koncowki dzialaja jako terminale). Tutaj masz zapewnione bezpieczensto danych (bo nie kraza one po sieci) i transakcje na serwerze. Potrzebna jest jednak maszyna dwuprocesorwa i duzo pamieci w zaleznosci od ilosci koncowek. Aplikacje trzeba oczywiscie troche...
Źródło: topranking.pl/1252/clipper,dla,wiekszych,baz.php
Temat: przenoszenie danych z dbf-a do dbf-a
No i dzięki :) O to tylko chodziło. Dałem sobie radę i wszystko jest już OK :) Nie mniej dziękuję również Andrzejowi P. Woźniakowi. za wytrwałość w tłumaczeniu zawiłości :)) Co do krzaków w rekordach. Kiedyś miałem podobne problemy. Głównie uszkadzały się ostatnie rekordy, a miało to miejsce przy zaniku napięcia na stacji roboczej na której został uruchomiony program. Przyczyną krzaków był brak DBCommit() (DBCommitAll()) po zapisie do zbioru, Warto przed
Źródło: topranking.pl/1252/przenoszenie,danych,z,dbf,a,do,dbf,a.php
Temat: zle indeksowanie dbf'ow
...W trybie SHARED (aby zmniejszyć ilość zapisów i rozwiązać problem wyścigu) z długości pliku. Nagłowek DBF jest aktualizowany w obu trybach przy zamykaniu zbioru i/lub jawnym wywołaniu COMMIT o ile były jakieś modyfikacje w zbiorze DBF. Rozwiązanie istniejącego problemu: USE baza SHARED IF flock() dbgoto(1) fieldput(1,fieldget(1)) dbcommit() ENDIF CLOSE A na przyszłość po wykonaniu aktualizacji w bazach danych sugeruję używać COMMIT. Minimalizauje to możliwość uszkodzenia jakie opisałeś, gdy użytkownik wyłączy komputer. pozdrawiam, Przemek
Źródło: topranking.pl/1252/zle,indeksowanie,dbf,39,ow.php
Temat: i COMMIT
...ze starenkim programem napisanym w Clipperze [...] Generalnie jest to funkcja potrzebna. Stosowanie jej w znaczniej mierze uodpornia aplikacje na utrate danych w wyniku restartow, zanikow napiecia, itp... W srodowisku sieciowym funkcja ta jest wrecz niezbedna. Uzycie commit'a po edycji / aktualizacji, itp. sprawia, ze zmienione / dopisane informacje natychmiast widoczne sa na pozostalych terminalach w sieci. E, widoczne sa zaraz po odblokowaniu. U mnie " dbCommit()" jest opcjonalnie wlaczany przez administratora danych, tzn. w praktyce stale wylaczony. Swiadomy wybor uzytkownika. Marek Horodyski
Źródło: topranking.pl/1252/i,commit.php
Temat: Clipper kontra WIN 95/98
Dzięki za dobre rady, ale nie pomogło. Ale pomogło co innego : trywialne ale dziwne. Otóż po wstawieniu DBCOMMIT () w odpowiednim miejscu, po zakonczeniu petli aktualizującej sporą ilość rekordów bazy, objawy ustąpiły. Wygląda na to, że wymuszenie "solid disk write" pomaga Windozie w utrzymaniu się na nogach podczas wykonywania mojej plikacji "dosowej". No cóż. Witek Zabdyr
Źródło: topranking.pl/1257/clipper,kontra,win,95,98.php
Temat: Uszkodzenie pliku indeksowego.
kris wrote: | Sieć jest na Novellu. | W jaki sposób może to zależeć od rodzaju sieci? nie od rodzaju sieci, tylko od rodzaju serwera plikow. Zgadza się - od serwera (i od klienta tego serwera) zależy jak zarządza buforami, oraz co zrobi w przypadku uzyskania polecenia flush. W Clipperku jest takie polecenie - nazywa się dbCommit - wywołuje odpowiednią funkcję OS, która w komputerach BEZ cache'a dyskowego powodowała tzw.: hard disk copy, w przypadku cache'a powodowała opróżnienie buforów aplikacji, ale niekoniecznie zrzut na dysk - to już zależało od programu cache'ującego, a w przypadku środowiska sieciowego każdy serwer plików ma własną politykę zarządzanai cache'm (i jest to jedno z jego najważniejszych zadań). novell to akurat dobry serwer. A...
Źródło: topranking.pl/1252/uszkodzenie,pliku,indeksowego.php
Temat: i COMMIT
...dane sa PRZEWAZNIE widoczne dla pozostalych procesow, ale zalezy to od systemu 3. Jedynie uzycie pary UNLOCK i COMMIT daje maksimum gwarancji, ze dane zostana zapisane na dysk i beda natychmiast widoczne dla pozostalych procesow. Prawda jest taka, ze sekwencja CommitUnlock jest zalecana przez autorow jezyka. Dlatego jej nie lekcewaze, ale wiele lat doswiadczen z pracy z novelem spowodowalo ze uzywam takiej skladni : Field-jakis := costam If TruCommit() dbCommit() // dbCommitAll() End dbrUnLock( currecno) zawsze przed zwolnieniem jest sprawdzana chec wykonania commita. W configu aplikacji mozna jednym wpisem zmienic sposob zwracania wartosci przez truCommit(), ale od lat siedzi tam truCommit( .f.). Moje doswiadczenia dotycza Novella (rozne wersje), i wczesniej (duzo wczesniej) LanSmarta. Mysle ze warto dac uzytkownikowi mozliwosc decydowania o tym, gdyz commit potrafi powaznie spowolnic prace...
Źródło: topranking.pl/1252/i,commit.php
Temat: Clipper + Samba
Uzywam oprogramowanie bazodanowego (clipper) na komputerach Windows 95, 98, DOS. Serwer linux red-hat 7.2 SAMBA Wszystko dziala swietnie jednak czasami zdarza sie, ze powieli mi sie numer dokumentu i nie mam pojecia z czym to moze byc zwiazane. Liczniki przechowywane sa w jednym pliku .dbf i przy kazdym wystawieniu dokumentu powinny sie zwiekszac, jednak raz na jakis czas tak sie nie dzieje... prosze o pomoc Poczytaj o: dbCommit() dbUnlock() Poczytaj dokumentacje do Samby - znajdziesz tam coś takiego jak Win9X-CacheHandling.reg A pozatym jak pisał kolega Marek - możesz mieć buraka w programie.
Źródło: topranking.pl/1255/clipper,samba.php
Temat: Help - blad DBFNTX nr 1210
...na ktorym pracuja dwie stacie, od jakiegos czasu [...] Aktualnie uzywam compilatora clipper 5.2 beta, konsolidator rmake. Hmm, jakaś dziwna wersja, może to 5.2b? Rmake to program make - automatyzujący czynności kompilacji i konsolidacji. W przypadku Clippera 5.2b prawie na pewno jako konsolidator (linker) został użyty RTLink. Skrocony wydruk log'a **************************** Opis: Corruption detected zastapienie: .F. likwidacja:.T. [...] DBCOMMIT:0 (funkcja powodujaca blad) Ciekawe - ktoś skupił się na przetłumaczeniu komunikatów obsługi błędów zamiast na ich nierobieniu. Zgodnie z opisem podanym przez kolegów przyczyną może być dokonywanie zmian w bazie bez zatroszczenie się o jej integralność, czyli np. edycja pola bazy otwartej bez indeksu - zatem byłby to elementarny błąd programisty. Równie dobrze jednak błąd może być tylko skutkiem używania...
Źródło: topranking.pl/1256/help,blad,dbfntx,nr,1210.php
Temat: Clipper - problem z zapisen na nowelu ...
cmxsys ( 1002, .t. ) dbcommitall () cmxsys ( 1002, .f. ) W dokumentacji CLIPPER'a spotkalem sie z ostrzezeniem przed wykorzystywaniem funkcji dbcommit??? ze wzgledu na korzystanie z tych samych przerwan co serwer na NOVELL'u. Podobno moze to powodowac konflikty podczas zapisu. Pozdrawiam
Źródło: topranking.pl/1256/clipper,problem,z,zapisen,na,nowelu.php
Temat: - NTX->CDX
...in message | | while !numery-(rlock()) // semafor | enddo | A nie powinno być FLock() ? Inaczej istnieje prawdopodobieństwo, że oba | programy blokują inne rekordy... Nie, każdy rekord jest dla określonej bazy danych. Pozdrawiam - Janek P.S. Niestety nadal nie wiem, czemu program nie działa dla CDXów :-( A ja nie wiem dlaczego dziala dla NTXow. Przed zrobieniem dbUnLock() nikt nie powinien zobaczyc zmian. dbCommit() nie ma tu nic do rzeczy. Po zrobieniu dbUnLock() zmiany sa widoczne dla innych uzytkownikow w sieci, nie wczesniej. Tak stoi w dokumentacji, i byc moze CDXy sa tu "pierwsze prawidlowe". Marek Horodyski
Źródło: topranking.pl/1253/ntx,cdx.php
Temat: Help - blad DBFNTX nr 1210
...z podsystemem indeksowania, ale co on dokladnie oznacza i jak go wyeliminowac. Aktualnie uzywam compilatora clipper 5.2 beta, konsolidator rmake. Skrocony wydruk log'a **************************** Opis: Corruption detected zastapienie: .F. likwidacja:.T. Argument funkcji fatal: NIL Blad clippera: 32 opis: status: 2 Podsystem: DBFNTX nr 1210 Blad DOS-u: 0 Ponowienie: .F. prĂÂb: 1 Plik stowarzyszony: obszar roboczy: KO2 DBCOMMIT:0 (funkcja powodujaca blad) --- pzdr
Źródło: topranking.pl/1256/help,blad,dbfntx,nr,1210.php
Temat: 3.12 dlaczego dzialanie programu zalezy od dysku?
1. Programista musi uzyc polecenia commit lub dbcommit (dbcommitall) po aktualizacji danych. Te polecenia wymuszaja zapis fizycznie na dysk. 2. Jesli niewidoczne pliki to bazy danych, prawdopodobnie nie sa otwierane wtrybie exclusive, moze tez byc za male files w configu lub set clipper=fxx w autoexecu. Albo programista nie zamyka plikow po zakonczeniu procedury (close all) Problem 1. Server 3.12 posiada 2 dyski . Jeden z programów, napisany w clipperze, działa niepoprawnie (jedna funkcja nie...
Źródło: topranking.pl/1443/3,12,dlaczego,dzialanie,programu,zalezy,od.php
Temat: NTX -> CDX
... // semafor enddo f_s-(dbappend()) WHILE neterr() f_s-(dbappend()) ENDDO Tu jest na 99% blad, ten w/wfragment kodu nic nie robi. To n/w jest u Pana najwazniejsze. f_s-(dbgobottom()) vsym2 := f_s-fs_sym2+1 I teraz dopiero Pan daje appe blank i zapisuje numer. f_s-(dbappend()) WHILE neterr() f_s-(dbappend()) ENDDO f_s-fs_sym2 := vsym2 f_s-( dbcommit()) numery-(dbunlock()) W skrocie u Pana to ma byc tak: go bottom nowy_nr=numer+1 add_rec() replace numer with nowy_nr unlock IMHO Pan musi zmienic sposob numerowania dokumentow, niezaleznie od zastosowanych indeksow. serdecznie pozdrawiam Adams PS 1. Tak przy okazji czasem warto ulatwic sobie zycie piszac wlasne/korzystajac z funkcji rec_lock(), add_rec().
Źródło: topranking.pl/1254/ntx,cdx.php
Temat: NTX -> CDX
Moja druga próba przejścia z indeksów NTX na CDX zakończyła się fiaskiem :-( Wygląda na to, że po dbcommit() inni użytkownicy nie widzą zmian w bazie danych. Załaczam fragment programu, który od lat działał z NTXami. a po przejściu na CDX (przy prawie równoczesnym akceptowaniu przez 2 użytkowników faktur) nadaje ten sam numer 2 fakturom. Co robię źle? Clipper 5.3, Exospace, Novell. Używam DBFNTX do części baz i DBFCDX do niektórych - może tak nie można? while !numery-(rlock()) // semafor enddo f_s-(dbappend()) WHILE...
Źródło: topranking.pl/1254/ntx,cdx.php
Temat: Uszkodzenie DBF (VFP, Clipper)
...napisał(a) w wiadomości: <8kmdan$6n@news.onet.pl... Czesc Moze ma to zwiazek z buforowanem zapisu przez VFP? Sprobuj dac w miejscach, w ktorych masz komendy zapisujace do tabeli FLUSH (wymusza aktualizacje pliku na dysku), pod Fox-em oczywiscie. -- Tomek Wisniewski vspol@polbox.com ============================== VISUAL SOFT POLSKA ============================== A pod clipperem w tych samych miejscach dbcommit() =------------------------= | rry@jsw.pl | =------------------------=
Źródło: topranking.pl/1253/uszkodzenie,dbf,vfp,clipper.php