[ chips @ 09.10.2003. 08:26 ] @
Napisao sam program sa glavnom i detaljnim tablama u PARADOX bazi. U programu sam koristio MBTable umesto DBTable komponentu. Razlog je nasilno gasenje racunara (tetkica u office-u cesto zakaci napojni provodnik metlom).
DBTable "nepamti" trenutno promene vec ih drzi u memoriji.
Program dobro radi. Problem je nastao kada se ukazala poterba da program koristi drugi korisnik na lokalnoj mrezi. Sharing-ovao sam folder u kome je program.exe, a na drugom racunaru sam mapirao taj disk i izvukao ikonicu. Cesto se desava da se "zapuca" kluc glavne table pa moram da brisem tabla.px i da u database desktop-u tabli.db dodelim ponovo kljuc.Racunari rade na Windows 98SE OS.
Ako ima neko jednostavno resenje za ovaj problem molim Vas za odgovor.

Unapred hvala.

[ Nub.Saibot @ 09.10.2003. 09:02 ] @

Potrebno je da ti je na obe masine preko BDE administratora podesis NET DIR da pokazuje na isti direktorijum na jednom od racunara. Podesavanje za net dir se nalaze u
Configuration > Drivers > Native > PARADOX. Pored net dira podesi LOCAL SHARE na TRUE. Local share se nalazi u Configuration > System > Init.
Mozda ti ni ovo nece pomoci ako koristis AutoInc polja. Imao sam problema sa njima kada radim u mrezi jer je dolazilo do key violation, pa sam morao da pravim neka prirucna resenja.
Inace ima resenje za DBTable da se natera da se podaci iz kesa upisu i fizicki na disk. Imam to resenje zapisano kuci pa cu se potruditi da ga do sutra posaljem. Cini mi se da je u pitanju neka procedura kao npr. dbiSaveChanges ili nesto slicno koja se postavi u AfterPost dogadjaj.

Pozdrav
[ chips @ 09.10.2003. 12:01 ] @
Ivane hvala, pkusacu ovo da primenim.
[ morlic @ 09.10.2003. 16:29 ] @
Nije odgovor vec savet: predjite na neki SQL server (bar InterBase stize uz Delphi), isplatice se visestruko.
[ chips @ 10.10.2003. 11:33 ] @
Miki hvala Vam na savetu. Verovatno cu ga iskoristiti u nekoj drugoj aplikaciji. Problem je sto mi se neprepravlja "surs" programa o kome diskutujemo.

Uradio sam sve sto mi je Ivan napisao. Program kada se pokrene na jednom od racunara u radnom direktorijumu kreira privremene fajlove PARADOX.LCK i PDOXUSRS.LCK. Ako zelim tada pokrenuti program i na drugom racunaru tada na njemu nastaje izuzetak:

Exscception EDBEngine Error in module program.EXE of 005c4a4
Directory is controled by other .NET file
Directory F:\
File C:\"direktorijum"\PDOXUSRS.LCK

Pitanje za ivana.
Gde se uopste odredjuju AutiInc polja?
[ chips @ 10.10.2003. 11:43 ] @
greska! AutoInc polja.
[ Nub.Saibot @ 10.10.2003. 13:29 ] @

Pre startovanja BDE Administratora obavezno moraju biti ugasene tvoje aplikacije na oba racunara. Kada promenis NET DIR, zatvoris BDE administrator i pronadjes .lck fajlove (obicno su u istom folderu gde i exe tvojih aplikacija) a zatim ih obrises. Posle toga startujes aplikacije i trebalo bi da funkcionise ok.

Citat:

Exscception EDBEngine Error in module program.EXE of 005c4a4
Directory is controled by other .NET file
Directory F:\
File C:\"direktorijum"\PDOXUSRS.LCK


Ova poruka se javlja kada promenis NET DIR a ostanu ti stari lck fajlovi u kojima je upisan stari NET DIR. Znaci samo obrises stare lck fajlove

Pozdrav
[ chips @ 13.10.2003. 11:48 ] @
Ponavljam.

Nema *.LCK fajlova. Pojavljuju se tek kada pokrenem program.exe, a sa njegovim zatvaranjem nestaju.
Znaci nemam sta da obrisem???

Naravno nemoguce ih je obrisati dok je program aktivan.
[ Nub.Saibot @ 13.10.2003. 12:55 ] @

Ako nema lck fajlova obrisi PDOXUSRS.NET u direktorijumu koji si postavio za NET DIR. Ustvari, mozes dok su ti iskljucene sve aplikacije koje koriste BDE da izbrises sve PDOXUSRS.NET koje pronadjes jer ce se oni opet kreirati cim startujes aplikacije.

Pozdrav
[ chips @ 14.10.2003. 12:03 ] @
Obrisao sam sve *.net resetovao oba racunara.

I nema nikakvog rezultata.

Program je pisan u Delphiu 3.0 C/S, Table nemaju AutoRefresh opciju u Component pregledu. Da nema to kakve veze sa ovim.

Da ponovim: Na jednom racunaru NETdir je C:\<ime dir> , a na drugom je F:\, gde je F mapiran dir <ime dir> sa onog prvog koji je "server". Dali je to uredu? Lokal sharing je true na oba racunara.
[ pedja_vujic @ 14.10.2003. 13:21 ] @
sam si odgovorio na pitanje :)
NETDir mora biti isto slovo na svim racunarima
[ chips @ 14.10.2003. 20:43 ] @
Citat:
Nub.Saibot:

Potrebno je da ti je na obe masine preko BDE administratora podesis NET DIR da pokazuje na isti direktorijum na jednom od racunara


Ja mislim da je ipak Ivan u pravu. Ako na obe masine stoji C:\ tada dolazi do "pucanja" kljuca u tabelama.

Da pomnovim. Zelim da sa dva racunara sa pokrenutim istim EXE, sa jednog od njih gde je baza, u isto vreme oba korisnika mogu da pregledaju, dopunjuju bazu sa glavnom i detaljnim tabelama.
[ pedja_vujic @ 14.10.2003. 21:08 ] @
Kada sam rekao isto slovo mislio sam na network disk a ne C:\, dakle u tvom slucaju oba netdir-a moraju da pokazuju na F:\
[ chips @ 14.10.2003. 21:18 ] @
Dali to znaci da i na "serveru" treba da "mapiram" njegov sopstveni C:\ u F:\ pa da u DBAdministratoru kazem da mu je NET dir F:\ ???
[ pedja_vujic @ 14.10.2003. 21:30 ] @
Upravo tako ali zaboravi DBAdministrator, ovo mozes uraditi iz programa
Session.netfiledir:=ExtractFilePath(Application.ExeName);

tako da nemoras nista u na samim kompjuterima podesavati.
[ Nub.Saibot @ 15.10.2003. 10:44 ] @
Citat:
chips:
Dali to znaci da i na "serveru" treba da "mapiram" njegov sopstveni C:\ u F:\ pa da u DBAdministratoru kazem da mu je NET dir F:\ ???


Nisam siguran zasto je tako ali mora ista putanja da pise u oba net dira tako da kod mene iako su mi baze na serveru, u net diru i na klijentu i na serveru mi pise:
NET DIR: \\server\net

Znaci ne moze F:\ na jednom a na drugom C:\ iako pokazuju na isti folder.

Pozdrav
[ chips @ 15.10.2003. 21:50 ] @
Citat:
pedja_vujic:
Session.netfiledir:=ExtractFilePath(Application.ExeName);



Ako ovu liniju postavim u dogadjaj form.activate ili form.create desi se izuzetak sa porukom da je(su) table otvorene i da ne moze izvrsiti.

Ako moze malo opsirniji odgovor.
Unapred hvala
[ pedja_vujic @ 16.10.2003. 08:32 ] @
Stavi ovo u mainform u oncreate event ali pobrini se da prije kompijliranja su sve tabele ili kveris zatvorene (Active:=False)
[ chips @ 17.10.2003. 06:33 ] @
Zahvaljujem se Ivanu. Program za sada radi i nedesava se nista nezeljeno.

Sto se tice Pedjinog predloga, kako da kompajliram program sa zatvorenim bazama, tako program nece da radi. Ako sam dobro razumeo trebalo bi u objekt pregledu da
postavim za svaku tablu Activate na FALSE, a da negde u programu posle Mainform.Activate ili MainForm.Create otvorim table???

[ pedja_vujic @ 17.10.2003. 08:01 ] @
Pa normalno da trebas da otvoris tabele kada program starta i vrlo vazno da ih zatvoris pre nego sto se program zavrisi ince ces u buducnosti imati problema sa korumptiranim tabelama.

[ chips @ 20.10.2003. 18:12 ] @
Hvala Pedji na savetima i njegovo resenje je za sada uspesno.