1

Konu: fpt 2GBYTE AŞMIŞ acil yardım gerek

Merhaba arkadaşlar ,
bir müşterimini fpt dosyası 2gbyte limitini aşmış.. ve programa giremiyor. fpt dosyasındakibilgiler önemli değil. Feda edilebilir.  Bunu tamir edecek bir kodunuz veya yönteminiz var mı?

Şimdiden teşekkürler..

2

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

Eğer fpt dosyasındaki veriler bir önem taşımıyorsa ve feda edilebilirse şunu yapabilirsiniz. Önce  2GB lık .Ftp dodyasını silin, içinde memo tipi alan barındıran boş bir tablo yaratın, bu dosyayla birlikte oluşan .ftp uzantılı dosyanın adını açamadığınız dosyanın adıyla değiştirin açılmayan .dbf açılacaktır.

Tabi yedekli çalışmayı unutmayın.  smile

3

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

evet o bi çözüm..denerim.. Ama memo larıda kurtarsak iyi olur diyelim:) varmı bir yöntem ?

4

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

selamlar;
1. aşağıdakileri bi incele.
2. e-mail gönderecektim bence cmrepair var. ama üyelik bilgilerinde e-mail adresin yok. e-mail ini gönderirisen dosya gönderebilirim sana.

http://fox.wikis.com/wc.dll?Wiki~CMRepair~VFP
http://www.cmstory.com/_cm/CMrepair.zip

Bilmediğin Neyse Yanıldığındır.

5

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

Foxpronun tablo boyutlarını 2 gb ile sınırlamasının bir sebebi varmı yoksa,daha büyük database ler için sql server gibi sistemler kullansınlar diyemi bunu yapıyor?

En büyük sermaye nakit,nakit sermaye vakittir...

6

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

Diger bir yontem, lowlevel acip boyunu kisaltmak ve son blok pointeri duzeltmek.

VFP'nin sucu pek yok sayilir. Eskiden gelen adresleme nedniyle maximum dosya boyu 2Gb idi onu degistirmediler.

7

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

cetin biraz ip ucu verirmisin.. lowlevel açtık diyelim boyutunu nasıl kısaltacağız ? kodda olur ..
lafla da bir iki cümle bilgi versende olur..

şimdiden teşekkürler

8

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

mrduyar yazdı:

selamlar;
1. aşağıdakileri bi incele.
2. e-mail gönderecektim bence cmrepair var. ama üyelik bilgilerinde e-mail adresin yok. e-mail ini gönderirisen dosya gönderebilirim sana.

http://fox.wikis.com/wc.dll?Wiki~CMRepair~VFP
http://www.cmstory.com/_cm/CMrepair.zip


bunlar çözüm değil. çetin'in yöntemi dışında sıfır kayıp yaşayacağın bir yöntem var. parserat programını kullan. ancak ücretli bir program bu. kesin çözüm...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

9

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

cetinbasoz yazdı:

Diger bir yontem, lowlevel acip boyunu kisaltmak ve son blok pointeri duzeltmek.

VFP'nin sucu pek yok sayilir. Eskiden gelen adresleme nedniyle maximum dosya boyu 2Gb idi onu degistirmediler.


yalnız lowlevel açma işini de vfp içinden yapamıyorsun. başka bir dille yapman lazım. çünkü malesef vfp lowlevel olarak bile 2 gb den büyük dosyaları açamıyor. denemiştim... sad

(yalnız açıp ta 2 gb mi görüyor, yoksa hiç mi açmıyor onu hatırlamıyorum)

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

10

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

ben aşağıdaki çözümü bulmuştum:

Visual Fox Pro
*IF DAY(DATE())%5=0 && 5 günde bir yapsın 

*veya aşağıdaki gibi dosya büyüklüğüne göre
Xftp=SYS(5)+SYS(2003)+'\irsdata\irsdata1\işlemler.fpt'
=ADIR(geçici,Xftp)
IF geçici[1,2]>5000000  && 5 MB büyükse yapsın
  Xdbf=SYS(5)+SYS(2003)+'\irsdata\irsdata1\işlemler.dbf'
  hFile = FOPEN(Xftp, 12)
  IF (hFile > 0) && Not used
    FCLOSE(hFile)
    USE (Xdbf) EXCL
    PACK
    USE
  ENDI
ENDI
QUIT
VFP9 SP2

11

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

aydın yazdı:

cetin biraz ip ucu verirmisin.. lowlevel açtık diyelim boyutunu nasıl kısaltacağız ? kodda olur ..
lafla da bir iki cümle bilgi versende olur..

şimdiden teşekkürler


VFP acabilseydi, fchsize() ile kisaltabilirdin. O acamadigina gore 'feda' katsayisina gore degisir. Hic fedaya tahammulu olmayan yerde, C++,C# ile yapmak benim isime gelen ama hazir kodum yok:

-DBF'i ac.
-FPT'yi ac
-Yeni DBF(ler) ve FPT(ler) yarat (DBF sadece memolar icin-cok sayida yaratman faydali parcali saklanir)
-Memo pointerlari al (integer olarak saklaniyor)
-Pointer basina memoda yerini bul:
Eger degistirilmemisse blok boyutu 64 bytes. Pointer * 64 ile yerini bul. Soldan saga yontemle 4 byte tipini sakliyor (pas gec onemsiz), ikinci 4 byte ise memo iceriginin uzunlugunu.
-Icerigini al, yeni DBFlerden birine normal memo olarak yaz.
(Ya da daha iyisi yeni DBF/FPTler yerine SQL servr filan kullan, sonra oradan alirsin)

12

Re: fpt 2GBYTE AŞMIŞ acil yardım gerek

dediğim gibi parserat'ı tavsiye ederim. boyu ne olursa olsun .dbf dosyalarını açıyor ve istediğin gibi parçalıyor. eğer veriler değerliyse ona vereceğin üç-beş kuruşa fazlasıyla değer. müşterine fatura edersin... wink

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com