Tabledan nasıl yedekleme yapabilirim?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Tabledan nasıl yedekleme yapabilirim?
arkadaşlar öncelikle hepinize iyi çalışmalar.. benim sorunum şu: programda table kullanıyorum ve nasıl yedekleme yapacağımı bilmiyorum yardımcı olursanız çookk teşekkür ederim..
Lütfen forum kurallarını okuyun.
VT Dosyalarını kopyala bence.
Hiç Table'la filan uğraşma.
VT Dosyalarını kopyala bence.
Hiç Table'la filan uğraşma.
Kod: Tümünü seç
CopyFile(kaynak,hedef,True);
Bu sitede olduğu gibi delphide'de yeniyim daha.. VT dosyaları ne onu bilmiyorum, programımda table'lar kullandım onların yedeklerini programdan nasıl alırım ve alınmış yedeği nasıl açarım hiç bilmiyorum.. yedekleme konusundada hiç bir bilgim bana bu konuda yardımcı olursan şimdiden Allah razı olsun..
Başlığı düzelttim lütfen dikkat edelim, forum kurallarına uyduğunuz sürece forumdan faydalanabilirsiniz.
Ne tür bir table kullanıyorsunuz? Veritabanı olarak ne kullanıyorsunuz? Bunları cevaplarsanız daha net yanıtlar verilebilir.
Ayrıca forumda yedek veya yedekleme diye aratırsanız pek çok yanıt bulabilirsiniz.
Kolay gelsin.
Ne tür bir table kullanıyorsunuz? Veritabanı olarak ne kullanıyorsunuz? Bunları cevaplarsanız daha net yanıtlar verilebilir.
Ayrıca forumda yedek veya yedekleme diye aratırsanız pek çok yanıt bulabilirsiniz.
Kolay gelsin.
sitede yeni olduğum için başlık konusunda kusuruma bakma.. table derken paradoxda yaptım veritabanını, bilgileri dbgridde listeledim ama bu bilgilerin yedeğini nasıl alırım veya yedek tarihine göre nasıl geri bilgileri alabilirim hiç bilmiyorum, bu konudada hiç bilgim yok yardımlarınız için Allah sizden razı olsun. yardımlarınızı merakla bekliyorum..
Büyük ihtimalle Database Desktop kullanarak Tablo oluşturdun.
Tabloyu kaydederken bir alias belirtilir.
Bu alias bir klasörü gösterir. C:\Proje1\VeriTabani gibi...
Oluşturduğun tablo bu klasör içine verdiğin isimle kaydedilir. VT(VeriTabanı) dosyasından kastettiğim bu dosyalardı.
Bir buton oluşturup, bu butona bastığında, adı o günün tarihi olan klasör oluşturup içine VT dosyalarını kopyalaman için bir kod örneği;
Yedeklediğin dosyaları göstermek için, tablolarının DatabaseName'ini değiştirmen yeterli olacaktır. Formuna DateTimePicker yerleştirerek şu örneği uygulayabilirsin.
NOT: Bu kodları denemedim hata verebilir.
Tabloyu kaydederken bir alias belirtilir.
Bu alias bir klasörü gösterir. C:\Proje1\VeriTabani gibi...
Oluşturduğun tablo bu klasör içine verdiğin isimle kaydedilir. VT(VeriTabanı) dosyasından kastettiğim bu dosyalardı.
Bir buton oluşturup, bu butona bastığında, adı o günün tarihi olan klasör oluşturup içine VT dosyalarını kopyalaman için bir kod örneği;
Kod: Tümünü seç
var
yeni_klasor:String;
begin
yeni_klasor:='C:\Proje1\Yedekler\'+DateToStr(Date);
CreateDir(yeni_klasor);
CopyFile('C:\Proje1\VeriTabani\Bilgiler.db',yeni_klasor+'\Bilgiler.db',True);
end;
Kod: Tümünü seç
Table1.DataBaseName:='C:\Proje1\Yedekler\'+DateToStr(DateTimePicker1.Date);
ulu coder adlı arkadaşım yardımların için çok teşekkür ederim ama verdiğin kodlarda hata verdi nedenini sen benden daha iyi bilirsin.. bu arada ben alias hazırlamadan tablelarımı veritabanına yönlendirdim yani databasename kısmına kendim elle yolu yazarak yaptım verdiğin kodlar bu yüzden çalışmamış olabilirmi.. kusuruma bakmıyosundur inşallah çünkü yedekleme konusunda hiç bir bilgim yok.. cevabını merak ve heyecanla bekliyorum.. yardımcı olduğun için Allah razı olsun.
Table açıkken kopyalamıyor olabilir.
Kodların başına yazıp dene.
Kopyalama yaptıktan sonra da ile yeniden aç.
Bir de hatanın ne olduğunu da yazarsan daha kolay yardımcı oluruz.
Kodların başına
Kod: Tümünü seç
Table1.Close;
Kopyalama yaptıktan sonra da
Kod: Tümünü seç
Table1.Open;
Bir de hatanın ne olduğunu da yazarsan daha kolay yardımcı oluruz.
hatayı şu kısımına veriyo ve imleci true yazısının soluna konumlandırıyo..
CopyFile('C:\sürücükursu\kayit\bilgigirisi.db',yeni_klasor+'\bilgigirisi.db',true);
Error yazısı olarak:
Incompatible types: 'String' and 'PAnsichar' yazıyo.. dediğiniz gibi table1.close ve table1.open kodlarını yazdım yine aynı hatayı verdi.
CopyFile('C:\sürücükursu\kayit\bilgigirisi.db',yeni_klasor+'\bilgigirisi.db',true);
Error yazısı olarak:
Incompatible types: 'String' and 'PAnsichar' yazıyo.. dediğiniz gibi table1.close ve table1.open kodlarını yazdım yine aynı hatayı verdi.
Benim hatam
Özür diliyorum
Kod: Tümünü seç
CopyFile(PChar('C:\sürücükursu\kayit\bilgigirisi.db'),PChar(yeni_klasor+'\bilgigirisi.db'),true);
ulu coder ismini bilmediğim için ulu coder yazıyorum.. yedek alma çalışıyo Allah razı olsun çok teşekkür ederim.. bunda sonra programlarında senin verdiğin kodları kullancam.. ama yedek aldıktan sonra yedekteki tabloyu tekrardan açamıyorum yani 23.04.2006 diye kalsör yapıp içine bilgigirisi diye veritabanını atıyo oraya kadar sorun yok ama daha sonra programdan datetimepickerdan 23.04.2006 seçip yedek çıkar adlı butona basınca o bilgileri getirmiyo.. kod kısmına senin verdiğin kodu yazdım ben eksik yazmış olabilirmiyim:
Table1.DataBaseName:='C:\sürücükursu\yedekler\'+DateToStr(DateTimePicker2.Date);
yardımcı olduğun için Allah razı olsun.
Table1.DataBaseName:='C:\sürücükursu\yedekler\'+DateToStr(DateTimePicker2.Date);
yardımcı olduğun için Allah razı olsun.
1-Yazığın ve okuduğun klasörün aynı olduğuna emin misin?
2-DatabaseName'i değiştirdikten sonra Table1'i açıyor musun?
Kodlarını ve hatayı gönderirsen daha sağlıklı olur.
Ben 'C:\Proje1\Yedekler\'+DateToStr(Date);' adresine yedeklemişim, sen nereye kaydettin? Aynı yere kaydettiysen okduğun yer yanlış oluyor.
En iyisi kodları gönder.
Adım ulu coder olarak kalsın
2-DatabaseName'i değiştirdikten sonra Table1'i açıyor musun?
Kodlarını ve hatayı gönderirsen daha sağlıklı olur.
Ben 'C:\Proje1\Yedekler\'+DateToStr(Date);' adresine yedeklemişim, sen nereye kaydettin? Aynı yere kaydettiysen okduğun yer yanlış oluyor.
En iyisi kodları gönder.
Adım ulu coder olarak kalsın

ulu coder'e;
kodlarım şu şekil ve programın veritabanı c:\sürücükursu\kayıt klasörünün içinde ve ben c:\sürücükursu\yedekler adlı klasöre senin sayende 23.04.2006 klasör oluşturup içine yedek alıyorum yalnız sadece bilgigirisi.db alıyo diğer bilgigirisi.mdx gibi dosyaları almıyo..
procedure TForm2.Button5Click(Sender: TObject);
var
yeni_klasor:string;
begin
yeni_klasor:='C:\sürücükursu\yedekler\'+DateToStr(Date);
CreateDir(yeni_klasor);
CopyFile(PChar('C:\sürücükursu\kayıt\bilgigirisi.db'),PChar(yeni_klasor+'\bilgigirisi.db'),true);
end;
procedure TForm2.Button6Click(Sender: TObject);
begin
table1.Close;
Table1.DataBaseName:='C:\sürücükursu\yedekler\'+DateToStr(DateTimePicker2.Date);
table1.open;
end;
böyle yazdıktan sonra yedek çıkar butonuna basınca şöyle hata veriyo:
Index does not exist.
File: C:\sürücükursu\yedekler\23.04.2006\bilgigirisi.MDX.
kodlarım şu şekil ve programın veritabanı c:\sürücükursu\kayıt klasörünün içinde ve ben c:\sürücükursu\yedekler adlı klasöre senin sayende 23.04.2006 klasör oluşturup içine yedek alıyorum yalnız sadece bilgigirisi.db alıyo diğer bilgigirisi.mdx gibi dosyaları almıyo..
procedure TForm2.Button5Click(Sender: TObject);
var
yeni_klasor:string;
begin
yeni_klasor:='C:\sürücükursu\yedekler\'+DateToStr(Date);
CreateDir(yeni_klasor);
CopyFile(PChar('C:\sürücükursu\kayıt\bilgigirisi.db'),PChar(yeni_klasor+'\bilgigirisi.db'),true);
end;
procedure TForm2.Button6Click(Sender: TObject);
begin
table1.Close;
Table1.DataBaseName:='C:\sürücükursu\yedekler\'+DateToStr(DateTimePicker2.Date);
table1.open;
end;
böyle yazdıktan sonra yedek çıkar butonuna basınca şöyle hata veriyo:
Index does not exist.
File: C:\sürücükursu\yedekler\23.04.2006\bilgigirisi.MDX.
Cevabı vermişsin arkadaşım;
bu koda benzer şekilde diğer dosyaları da kopyala.
Bunları kopyalaman yeterli, DataBaseName'i değiştirdiğiniz gibi bi şeyi değiştirmenize gerek yok.
Kolay gelsin
Bu dosyanın da kopyalanması gerekiyormuş.sevturk yazdı:bilgigirisi.mdx gibi dosyaları almıyo..
böyle yazdıktan sonra yedek çıkar butonuna basınca şöyle hata veriyo:
Index does not exist.
File: C:\sürücükursu\yedekler\23.04.2006\bilgigirisi.MDX.
Kod: Tümünü seç
CopyFile(PChar('C:\sürücükursu\kayit\bilgigirisi.db'),PChar(yeni_klasor+'\bilgigirisi.db'),true);
Bunları kopyalaman yeterli, DataBaseName'i değiştirdiğiniz gibi bi şeyi değiştirmenize gerek yok.
Kolay gelsin
ulu coder'e:
ulu coder dediğin gibi kod kısmına ekleyerek diğer dosyalarıda kopyaladım ama bu seferde yedek çıkardıktan sonra sadece ilk kayıt görünüyo yani navigatörle önceki veya sonraki butonlarına basabilsemde dbeditlerde kayıt değişmiyo..
ben deneme amaçlı ali,veli,kemal adlı girişler yapıyorum.. yedek alıyorum daha sonra veli isimli kaydı siliyorum, yedek çıkar butonuna basınca bana sadece ali kaydını gösteriyo..
umarım sorunumla seni sıkmamışımdır ulu coder, istersen müsait zamanında da cevap yazabilirsin yardımların için çok teşekkür ederim Allah razı olsun.
ulu coder dediğin gibi kod kısmına ekleyerek diğer dosyalarıda kopyaladım ama bu seferde yedek çıkardıktan sonra sadece ilk kayıt görünüyo yani navigatörle önceki veya sonraki butonlarına basabilsemde dbeditlerde kayıt değişmiyo..
ben deneme amaçlı ali,veli,kemal adlı girişler yapıyorum.. yedek alıyorum daha sonra veli isimli kaydı siliyorum, yedek çıkar butonuna basınca bana sadece ali kaydını gösteriyo..
umarım sorunumla seni sıkmamışımdır ulu coder, istersen müsait zamanında da cevap yazabilirsin yardımların için çok teşekkür ederim Allah razı olsun.