Tablo Yedekleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Tablo Yedekleme

Mesaj gönderen ozcank »

Merhaba , Ben işlem yaptığım TABLO yu yedeklemek istiyorum bana yardımcı olur musunuz ?

Bu şekilde yaptım ama TBLEMANETYDK hatası verdi.

Kod: Tümünü seç

procedure TEmanet_Giris.EmanetBilgileriniYedekleme1Click(Sender: TObject);
begin
EYedek.Close;
EYedek.SQL.Clear;
EYedek.SQL.Add('SELECT * INTO TBLEMANETYDK FROM TBLEMANET');
EYedek.SQL.Add('SELECT * INTO TBLEMANETPARAMYDK FROM TBLEMANETPARAM');
EYedek.Open;
EYedek.Active:=True;
end;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Tablo Yedekleme

Mesaj gönderen ertank »

Merhaba,

Tam hata mesajını paylaşabilir misiniz?
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Tablo Yedekleme

Mesaj gönderen ozcank »

Merhaba;
Hata görüntüleri,
Hata1.JPG
Hata1.JPG (10.66 KiB) 2581 kere görüntülendi
Hata.JPG
Hata.JPG (11.38 KiB) 2581 kere görüntülendi
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Tablo Yedekleme

Mesaj gönderen ertank »

Kusura bakmayın. Benim ekranımda okunamayacak derecede küçük görüküyor ekler. Yazı ile yazabilirsiniz belki.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Tablo Yedekleme

Mesaj gönderen sabanakman »

İp Ucu..:Hata ve mesaj pencerelerinde Ctrl+C yaparak pencerede gösterilen mesaj metin olarak hafızaya alınacaktır.

Tahminim, yedek olarak oluşan tablolar zaten mevcut olabilir. Eğer select .. into .. from ... yapısı ile tablo oluşturuluyorsa into ... ile oluşturulan tablonun veri tabanında olmaması gerekmektedir. Eğer böyle bir tablo varsa hata gelecektir.

Bir diğer hata sebebi ise kayıt üretmeyen sorguların Open ile çalıştırılmasıdır. select ... into .. from ... yapısındaki sorgular kayıt listesi döndürmez, bu yüzden .Open ile çalıştırılmaması lazım. Bunun yerine .ExecSQL kullanılmalı.
En son sabanakman tarafından 05 Eki 2016 02:26 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Tablo Yedekleme

Mesaj gönderen ozcank »

Debuger Exception Notification
Project EMNTMENU.EXE raised exception class EOleException with message 'There is already an object named 'TBLEMANETYDK' in the database. Process stopped. Use Step or Run to contiune.

'There is already an object named 'TBLEMANETYDK' in the database.

bu şekilde hata mesajı.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Tablo Yedekleme

Mesaj gönderen ozcank »

---------------------------
Debugger Exception Notification
---------------------------
Project EMNTMENU.exe raised exception class EOleException with message 'There is already an object named 'TBLEMANETYDK' in the database'. Process stopped. Use Step or Run to continue.
---------------------------
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Tablo Yedekleme

Mesaj gönderen sabanakman »

Her şey gayet açık değil mi :wink: .
sabanakman yazdı:...Eğer select .. into .. from ... yapısı ile tablo oluşturuluyorsa into ... ile oluşturulan tablonun veri tabanında olmaması gerekmektedir. Eğer böyle bir tablo varsa hata gelecektir....
Bunun önüne geçmek için öncelikle tabloyu drop table .... ile silmek işinize yarayabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Tablo Yedekleme

Mesaj gönderen ozcank »

Hayır böyle bir tablo yok TBLEMANETYDK diye bir tablo yok.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Tablo Yedekleme

Mesaj gönderen ozcank »

Kontrol ettim varmış:( sildim tekrar programı çalıştırdım oluşturuyor fakat aşağıdaki hatayı alıyorum. Birde ben buna bar ekleyebilir miyim ?

"Lütfen bekleyiniz !!! Yedekleme alınıyor" şeklinde
---------------------------
Debugger Exception Notification
---------------------------
Project EMNTMENU.exe raised exception class EDatabaseError with message 'EYedek: CommandText does not return a result set'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Selcuk
Üye
Mesajlar: 19
Kayıt: 28 Eyl 2016 02:01

Re: Tablo Yedekleme

Mesaj gönderen Selcuk »

function copydir(von,zieldir: string): boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(von+#0);
pTo := PChar(zieldir)
end;
Result:=(0=ShFileOperation(fos)); //
end;
//
copydir('C:\TABLO',c:\YEDEKLE);
Böyle bir fonsiyon yardımı ile neden yedek almıyorsunuz
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Tablo Yedekleme

Mesaj gönderen ozcank »

Merhaba;
SQL DATABASES altında şirketlerin altında TABLES altında bulunuyor.
Ayrıca yazmış olduğunuz Function dan bir şey anlamadım :(
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Tablo Yedekleme

Mesaj gönderen ozcank »

Merhaba;
Not buldum ama nasıl ve nerde kullanacağımı çözemedim.
Kod Bu;

Kod: Tümünü seç

var
 FmSplashForm: TSplashForm
begin
 FmSplashForm := TSplashForm.Create(nil)
 FmSplashForm.Show;
 FmSplashForm.Update;
 Application.Createform(TFmMain, FmMain)
 ...... <- Diger formlarin create edilmesi.
 ......
 FmSplashForm.Hide;
 FmSplashForm.Free;
 Application.Run;
end.


Bunu Projenin View source nde oluşturuyorsun Project menüsü altından ulaşabilirsin.

Kod: Tümünü seç

begin
    SplFrm := TSplFrm.Create(Application);

    try
        SplFrm.Show;
        SplFrm.Update;
            SplFrm.ProgressBar1.StepBy(10);
        Application.Initialize;
            SplFrm.ProgressBar1.StepBy(10);
        Application.CreateForm(TAnaProgFrm, AnaProgFrm);
  Application.CreateForm(TCariHesapAcilisIslemFrm, CariHesapAcilisIslemFrm);
  SplFrm.ProgressBar1.StepBy(10);
        Application.CreateForm(TCHTFrm, CHTFrm);
            SplFrm.ProgressBar1.StepBy(70);
        Finally
            SplFrm.Free;
        end;
        Application.Run;
end.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Tablo Yedekleme

Mesaj gönderen ozcank »

Merhaba; Birde bu şekilde Kod ile SQL de tabloyu buluyorum;

ama delphi de kullanamadım .

Kod: Tümünü seç

EYedek.SQL.Text:='IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE=BASE TABLE AND TABLE_NAME=TBLEMANETYDK)';
EYedek.SQL.Text:='SELECT BU TABLO VERITABANINDA KAYITLIDIR.';
EYedek.SQL.Text:='ELSE';
EYedek.SQL.Text:='SELECT BU TABLO VERITABANINDA KAYITLI DEGILDIR.';
toparlayacak olursak ,
ben TBLEMANET ve TBLEMANETPARAM Tablolarını TBLEMANETYDK ve TBLEMANETPARAMYDK olarak yedeklemek istiyorum.
ve sonrasında ,
eğer tekrar son yedek almak isterse üzerine veya DROP ile silerek yeniden yedek Tablolarını oluşturmak istiyorum.
aldığım hataları belirttim bir türlü başaramadım bana yardımcı olur musunuz?
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: Tablo Yedekleme

Mesaj gönderen tuna »

Kod: Tümünü seç

try
EYedek.Close;
EYedek.SQL.text:='drop table TBLEMANETYDK';
EYedek.execsql;
exception
end;

EYedek.Close;
EYedek.SQL.text:='SELECT * INTO TBLEMANETYDK FROM TBLEMANET';
EYedek.execsql;
Aynı işlemleri diğer tablon içinde yaparsın.
Kolay gelsin
Cevapla