Paradox dosyamı ağ üzerinden güncelleyemiyorum ?

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Clipper
Üye
Mesajlar: 9
Kayıt: 18 Tem 2005 06:19

Paradox dosyamı ağ üzerinden güncelleyemiyorum ?

Mesaj gönderen Clipper »

Merhaba

Bir paradox dosyam var. Dosya açık ve grid ekranı üzerinde iken ilk 5 kayıtta ve son 5 kayıtta değişiklik yapıyorum. Sonra ağ üzerinden güncellemek için aşağıdaki kodu çalıştırıyorum.

Kod: Tümünü seç

procedure TForm1.Button5Click(Sender: TObject);
begin
  wwTable1.close;
  WinExec('c:\Stok Ara\kopyala.bat',SW_SHOWNORMAL);
  wwTable1.Open; wwTable1.refresh;
  wwTable1.First;
end;
data dosyamı kapatım kopyala.bat dosyasını çalıştırıyorum. Bat dosyasında aşağıdaki komut çalışıyor.

COPY \\BD\d7000\StokAra\STOKM.* *.*

Ama table da ilk 5 kayıtta yaptığım değişiklikler aynı kalıyor. Son kayıta gittiğimde son 5 kayıdın güncellenmiş olduğunu görüyorum. Tekrar ilk 5 kayıda dönüyorum. Gene aynı ilk 5 kayıt güncellenmiyor. Sonra programdan tamamen çıkıp yeniden girince bütün kayıtların güncellenmiş olduğunu görüyorum. Benim tahmin program table ı kapatmama ragmen yeniden table ı diskten okumuyor buffer dan okuyor. Programın Table ı yeniden açınca buffer dan değil de diskten okumasını nasıl sağlarım.
Yardımlarınızı bekliyorum. Forumda arama yaptım ama bulamadım.

Görüşmek dileğiyle
Clip.

Not : Delphi 5 kullanıyorum



@mrmarman yazdı:TAŞIMA BİLGİSİ : Programlama formundan DİĞER VERİTABANLARI formuna taşınmıştır
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Cache olabildiği gibi, ağ trafiğinin sağlığı ve/veya yoğunluğu nedeniyle dosyanın karşı tarafa kopyalanması işleminin tamamlanmasındaki gecikmeler de olur. Senin sorunun cache'den ziyade gecikme nedenlidir diye değerlendiriyorum.

- Şöyle bir çözüm önereyim, ağ üzerinde kopyalamak yerine (ağ üzerinde paylaşımda olan bir klasör olduğuna dayanarak yazıyorum) direkt oradaki veritabanına UPDATE etsen daha kolay olmaz mıydı ?
Resim
Resim ....Resim
Clipper
Üye
Mesajlar: 9
Kayıt: 18 Tem 2005 06:19

Mesaj gönderen Clipper »

Ağ üzerinden update yolu ile denedim zaten. Bir çok bilgisayarda sorunusuz çalıştı.Ama 1-2 bilgisayarda ise aşağıdaki hata mesajını verdi.

not initialized for accessing network files Table.\\BD\d7000\Stokara\STOKM.DB

Başka çözüm yolları olduğunu biliyorum ama bana böyle bir hata yapması ilginç geldi. Ben başka çözüm yolları ile değil de bu şekilde nasıl çözeriz bu konuda yardımcı olabilirmisiniz ? Yani dosyayı cache yada buffer ı temizleyip yeniden nasıl diskten okumasını sağlarım ?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Bu hata benimle şöyle konuşuyor.

"Network altında başka bir kullanıcı dosyayı o an açık tuttuğundan senin erişimin engellenmiş."

"TTable nesnesi kullanıyor olabilirsin, bu sürekli dosyayı açık ve meşgul tutar. Halbu ki TQuery ile SQL kullanıp işi biten tablonun her an kapalı ve kullanıma hazır olmasını sağlamalısın. Meşguliyetini ortadan kaldırmalısın."

"Hatta Network altında kopyalama yaparken de aynı meşguliyetten ötürü kopyalama işlemi başarısız sonuçlanıyordur. Neden hata vermiyor? Sebebinin Try Except bloğu içinde olduğunu değerlendiriyorum.

- Bu hata genellikle; veritabanı dosyasına erişmek istendiğinde, paradox kullanan bir başka ağ yazılımının (bu sizin ağda çalışan diğer yazılım oluyor) erişmi altında olduğunda meydana gelir.

1. Yazılımınızda her şubenin veritabanı erişimi için kullandığı yol inceleyin. Bunu -*geçici olarak- bir statusbar'da göstererek ağdaki herkesin görebilmesini sağlayın.

2. Ağdaki programınızın çalıştığı her istasyonda, C:\IDAPI dizinine giderek BDECFG.EXE dosyasını çalıştırın. Ekranın sol tarafında görülen
"Paradox" seçince, sağ tarafta "Net Dir" göreceksiniz.Buradaki C:\ (veya nereyi ifade ediyorsa) silin ve yerine NETWORK ALTINDAKİ ERİŞİM YOLUNU yazın. Yani burada yazacağınız şey ".\\BD\d7000\Stokara\" (hani status barlarda görünen path oluyor) yazın. Her ağ makinesi için aynı ayarı yapmanız lazım.

Önemli:
- Eğer bilgisayara yüklü başka üçüncü bir Paradox kullanan yazılım varsa, ağda çalışan diğer yazılımın aşağıdaki sayılan değişiklikleri yaptığınızda doğru çalışıp çalışmadığını mutlaka irdeleyin.

- Bu yapılacak değşiklik, Paradox vertabanı kullanan diğer üçüncü bir programın çalışmasına mani olabilir.

- Buradan da görülüyor ki, ağ altında Paradox kullanmaya son verin, en kısa zamanda Firebird gibi buna daha yatkın veritabanına geçin... Yukardaki yazım geri dönülmez bir yolda iseniz onun içindir. :idea:
Resim
Resim ....Resim
Clipper
Üye
Mesajlar: 9
Kayıt: 18 Tem 2005 06:19

Mesaj gönderen Clipper »

Firebird e ve/veya sql server a geçmeyi bende çok isterim ama açıkçası forumdaki mesajları okudukça biraz insanın gözü korkuyor. Özellikle trigger ve post_event konusunda. Ben bir ara firebird ile uğraşmıştım. Ama insert delete ve update yaptığım zaman diğer kullanıcıların otomatik olarak yapılan değişikliği görmesini sağlayamamıştım. Aslında sitenin dosyalar bölümüne firebird ile ilgili bu konuda source kodları ile birlikte basit bir örnek program kayabilen bir arkadaş olsa yeni başlayanlar için çok yardımı olurdu.
Blue`Lightning
Üye
Mesajlar: 4
Kayıt: 21 Eki 2005 09:28
Konum: Adana

Mesaj gönderen Blue`Lightning »

merhaba

yazdığın kodlara hiç gerek yok
anabilgisayarada dbnet isimli veya kendi vereceğin bir isim altında boş bi dosya aç
bde administrator den configuration + native + paradox işaretle netdir satırına örnek: (f:\\dbnet) yaz ve onayla sonra sistem satırında system+init localshare satırını true olarak değiştirip onayla bu sayede aynı anda birden fazla kullanıcı ağ içinde anında güncelleme yapar
kolay gelsin
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

firebird den korkmanıza gerek yok. siz başlangıç seviyesinden ziyade işin teferruatlarına dalmışsınız. önce mantık kısmını halledin. daha sonra bugün korktuğunuz kısımlar çorap söküğü gibi gelecektir..

post_event meselesi ve diğer meseleler fb yi kavradıkça öğrenilebilir.

Kolay Gelsin..
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Cevapla