şişmiş access dosyaları

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

şişmiş access dosyaları

Mesaj gönderen zaxacm »

visual basicde şişmiş access dosyalarını onarıp boyutunu düşüren kodlar vardı kullandığımız.Delhide böyle bir kod var mı acaba nasıl yaparız böyle bir örnek elinde olan var mı acaba. garibinteki@hotmail.com
Kullanıcı avatarı
Merchant
Üye
Mesajlar: 102
Kayıt: 17 Eki 2006 01:51

Mesaj gönderen Merchant »

Bence accessi bırakıp firebirde geçmelisin. Gerçekten rahat edersin.
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

Basit bir çalışma o yüzden access kullandım.Bir de firebirdde exe nin içine firebird programını gömmeyi bilmiyorum kullanıcıya da ayrıca firebirdü kurdurmak sorun oluyo bi de artık çok geç program bitmek üzre herşeyi accesse göre ayarladım.İlginize teşekkürler
Kullanıcı avatarı
Merchant
Üye
Mesajlar: 102
Kayıt: 17 Eki 2006 01:51

Mesaj gönderen Merchant »

Neyse artık bir dahaki sefere kullanırsınız :)

Firebirdü Programımızla BeraberOtomatik kurdurmak(innosetup)
viewtopic.php?t=12392


Kolay gelsin.
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

çok teşekkürler
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Öncelikle ImportTypeLibrary den

Kod: Tümünü seç

Microsoft Jet and Replication Objects 2.6 Library, Version 2.6, 
kütüphanesini projenize dahil etmeniz yada install yaparak component palete yerleştirmeniz gerekir.Varsayılan ayarlarla kurulursa ActiveX sekmesine gelir.


Sonra Aşağıdaki kodları kendi databasine göre uyarlayabilirisn.

Kod: Tümünü seç

procedure Tfrmana.Button1Click(Sender: TObject);
var
  dbSrc: WideString; //kaynak  yolu
  dbDest: WideString; //hedef yolu
  dbyol: WideString; //exe yolu
  Je: TJetEngine;
const
  //bu da dizi cümlesi
  SProvider =
    'Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=Passwordunuzuyazin;Data Source=';
begin
 datmodul.connection1.Connected := False;
  dbyol := extractfilepath(application.ExeName); //exe yolu
  dbSrc := SProvider + dbyol + 'Data.mdb'; //sıkışacak dosya
  dbDest := SProvider + dbyol + 'compData.mdb';
  //sıkıştırılmış dosyanın alacağı ad ve yer
  if FileExists(dbyol + 'compData.mdb') then //eğer aynısı varsa
  begin
    DeleteFile(dbyol + 'compData.mdb'); //önce sil
  end;
  Je := TJetEngine.Create(Self);
  try
    JE.CompactDatabase(dbSrc, dbDest); //sonrada sıkıştır
//önce eski şişmiş dosyaları sil
    DeleteFile(dbyol + 'Data.mdb'); //önce sil
//şimdide adlarını değiştir.
    RenameFile(dbyol + 'compData.mdb', dbyol + 'Data.mdb');
    datmodul.connection1.Connected := true;
  finally
    JE.Free;
  end;
end
Kolay Gelsin.
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

Microsoft Jet and Replication Objects 2.6 Library, Version 2.6 kütüphanesini projeye dahil ettim ama bu hatayı verdi: [Fatal Error] bsReg.pas(24): File not found: 'DesignEditors.dcu' daha sonra ImportTypeLibrary den yanlışlıkla remove yaptım şimdi listede Microsoft Jet and Replication Objects 2.6 Library seçeneği de gözükmüyor ne yapacağım acaba
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Bu kütüphane C:\Program Files\Common Files\System\ado\msjro.dll dosyasındadır.Listeden silinmiş olması önemli değil.Tekrar aşağıdaki adımları tekrar ederek ekleyebilirsiniz.

---Project-Import Type Lİbrary
---Add Butonuna Tıklayıp açılan pencereden yukarıda yolunu yazdığım msjro.dll dosyasını ekleyiniz.Listeye eklenecektir.
---Sonra bu kütüphane seçili iken Install butonunu tıklayınız.
---Açılan pencerede IntoNewPackage sekmesini tıklayın.
---Sonra Browse düğmesini tıklayarak oluşacak componentin dpk dosyasınıda bir isim vererek kaydedelim.Bir daha kurmak istediğimizde direk bu package dosyasından kurabiliriz.
---Description kısmı opsiyoneldir.İsterseniz paketinizle ilgili bir açıklama yazabilirsiniz.
---Sonra açılan Confirm başlıklı pencerede BPL dosyasının oluşturularak komponentin install edilip edilmeyeceği sorusuna Yes dedikten sonra gidip ActiveX sekmesinde ilgili komponentlerin geldiğini görebilirsiniz.

Kolay Gelsin.
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

procedure Tfana.suiButton4Click(Sender: TObject);

var
dbSrc: WideString; //kaynak yolu
dbDest: WideString; //hedef yolu
dbyol: WideString; //exe yolu
Je: TJetEngine;
const
//bu da dizi cümlesi
SProvider =
'Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=';
begin
adoquery1.connection.Connected := False;
dbyol := extractfilepath(application.ExeName); //exe yolu
dbSrc := SProvider + dbyol + 'data.mdb'; //sıkışacak dosya
dbDest := SProvider + dbyol + 'compData.mdb';
//sıkıştırılmış dosyanın alacağı ad ve yer
if FileExists(dbyol + 'compData.mdb') then //eğer aynısı varsa
begin
DeleteFile(dbyol + 'compData.mdb'); //önce sil
end;
Je := TJetEngine.Create(Self);
try
JE.CompactDatabase(dbSrc, dbDest); //sonrada sıkıştır
//önce eski şişmiş dosyaları sil
DeleteFile(dbyol + 'Data.mdb'); //önce sil
//şimdide adlarını değiştir.
RenameFile(dbyol + 'compData.mdb', dbyol + 'Data.mdb');
adoquery1.connection.Connected := true;
finally
JE.Free;
end;

end;



Kodları yukarıdaki gibi düzenledim ama aşağıdaki hatayı aldım

http://img14.imagevenue.com/img.php?ima ... _379lo.JPG
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Delphi şu an senin database dosyanı kullanıyor o yüzden sıkıştırma yapamam diyor.Delphiyi kapat sonra exeden çalıştır.Sorunsuz çalışacaktır.
Cevapla