1

Konu: file access is denied ( )

Visual Fox Pro
SET PATH TO d:\kart

 
Select 1
Use kart.DBF Exclusive
Index On kart_no To kartno_ndx
Select 2
Use kart1 Exclusive
Index On kart_no To kart1no_ndx
Select 3
Use kart2 Exclusive
Index On kart_no To kart2no_ndx
Select 4
Use kart3 Exclusive
Index On kart_no To kart3no_ndx
Select 5
Use kart4 Exclusive
Index On kart_no To kart4no_ndx
Select 6
Use ortakart Exclusive
 
Select 1 && bilgiler alýnýp data temizleniyor...
ZAP
Append From datakart
Select 2
ZAP
Select 3
ZAP
Select 4
ZAP
Select 5
zap
Select 6
ZAP

programım bu kodla başlıyor. command window'a "do kart.prg" yazarsam çalışıyor ama exe haline getirince bu uyarıyı veriyor.

file access is denied d:\kart\kart .dbf .

çaresiz kalmak insanı gerçekten mahfediyor. tabloyu bir yerde tanıtmam mı gerekiyor. ben bir türlü çözemedim.

Bir de program başlarken sürekli indexleri owerwrite edeyim mi diye soruyor. bunu ve zap edeyim mi diye sormasını istemiyorum. bir kod söyler misiniz?

2 Son düzenleyen, cetinbasoz (04.08.2008 22:34:34)

Re: file access is denied ( )

Dayini dinlemeyecektin:)

Nedeni degisik seyler olabilir:
-O anda dosya kullanimda (programi calisitirip dosyayi actin ve exclusive tutarken tekrar acmaya calisiyorsun).
-Projeyi derlerken dbf'leri exclude etmedin (projeye tablolar eklendiyse yanlarinda park yasaktir benzeri bir isaret olmasi lazim. sag klikle gorursun include/exclude diye). Include edildiginde tablolar salt okunabilir.

Select  1, select 2 ... kotu foxpro kodu yazabilmenin baslica sartlarindan. Indexler hemen hemen here zaman bir kere yapilan ve tekrar yaratilmasi gerekmeyen seyler. Ama sen sozlerimi hic dinlemiyorsun:) Surekli zap eden bir kod da hataya davetiyedir. Herseye ragmen sormasini engellemek isteseydin:

set safety off

ama dikkat et "safety" guvenlik demek. Kodun basit bir modifiye sekli:

Visual Fox Pro
SET exclusive off

SET PATH TO d:\kart
 
Select * FROM kart INTO CURSOR crsKart readwrite
Append From datakart
Index On kart_no Tag kartno
 
Select * FROM kart1 INTO CURSOR crsKart1 readwrite
Index On kart_no Tag kartno
 
Select * FROM kart2 INTO CURSOR crsKart2 readwrite
Index On kart_no Tag kartno
 
Select * FROM kart3 INTO CURSOR crsKart3 readwrite
Index On kart_no Tag kartno
 
Select * FROM kart4 INTO CURSOR crsKart4 readwrite
Index On kart_no Tag kartno
 
Select * FROM ortakart INTO CURSOR crsOrtaKart readwrite

kartX yerine crsKartX'leri kullan. Hic zap filan gerekmez. Sen tablolari array gibi kullaniyorsun galiba.

3

Re: file access is denied ( )

abi program şöyle işler datakart ta kartlar vardır. ilk önce kartlar kart.dbf ye geçer sonra buradan kart1,2,3,4 dağıtılır. ortakart ortadaki kartlardır. sonra oyun başlar. bu nedenle bütün tabloların boşalması lazım ama array olarak kullanmıyorum zannedersem çünkü kart atarken tabledan bir kart seçiyor. array den alırken sanırsam hepsini almak gerekiyor.

4

Re: file access is denied ( )

bir de şu (index on .. tag... ) tag ne işe yarar.

5

Re: file access is denied ( )

Aslinda tek bir dosya gerekiyor ve bosalmasi gereksiz. Dosya bile gereksiz ama VFP calismak acisindan ok. Arrayleri yanlis biliyorsun.
Index on ... tag ... structural index yaratir. Bu tip indexler compact index seklindedir ve dosyayla birlikte acilip kapanir. Bir kere yaratildiktan sonra dusunmen gerekmez.
Sen bir an once VFPnin basit temelini ogren.