SQL server 2005 'de kayıtların kaybolması?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

SQL server 2005 'de kayıtların kaybolması?

Mesaj gönderen xcom »

Merhaba Arkadaşlar,

Sorunum 1 yıldır üzerinde çalışmama rağmen çözemediğim bir problem sorun şöyleki;

fatura icmal ve fatura detay ları olan 2 tablom var. ve tüm faturaları bu 2 tabloda tutuyorum.
1. tablo icmal tablosu bunda hiç problem yok faturalar birbirlerinden tipler ile ayrılıyor.
2. tablom fatura detay işte problemin kaynağı bu tablo. bu tablodada veriler tipler ile ve fatura no ile faturadaki stok bilgilerinin yazıldığı alanları tutuyorum. 3-4 ay sorunsuz kayıt ve çalışmasında hiç bir problem yok ama bukadar zaman sonra ilginç bir şekilde fatdetay tablosunda tipleri 2 olan (satış faturası) tüm kayıtlar siliniyor. bunu ne yaptı isem çözemedim. kullanıcılara sordum (2 kullanıcı var) fatura iptal ettinizmi hayır etmedik diyorlar olayı tetikliyen bir eylemde yok gibi duruyor. inanın kafayı yemek üzereyim. backuplardan bişekilde durumu kurtarmaya çalışıyoruz ama artık adam ile boğaz boğaza geldik. günde ortalama 20 fatura kesiliyor bu yerde ve program ağ ortamında çalışıyor. uygulama SQLserver 2005 kullanıyor. Lütfen tecrübeli arkadaşlar konu ile ilgili yardımınızı bekliyorum, sorun ne olabilir başınıza böyle bir problem gelmi?. durum çok ama çok kritik. herkezden allah razı olsun.

Not: program da ado kullanıyorum ve ado obj.properties indeki "cursorlocation=clUseServer" set ederek kullanıyorum. ağ ortamında çalıştığı için.
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
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: SQL server 2005 'de kayıtların kaybolması?

Mesaj gönderen sabanakman »

xcom yazdı:...bukadar zaman sonra ilginç bir şekilde fatdetay tablosunda tipleri 2 olan (satış faturası) tüm kayıtlar siliniyor....
Bu veritabanı değil, program tasarım ve yazılımı ile alakalı olduğuna %100 bahse girerim. Çünkü bir çok kayıt kaybetme olayı duydum ve genelde tüm kayıtlar tozuturdu ama bir alan değerine göre filtrelenip kaybolan aklıma ve mantığıma yatmadı. Tüm trigger, procedure ve program kodlarınızı ciddi bir şekilde incelemeniz gerekmektedir. Hatta tablonuzu başka tablo ile ilişkilendirdiyseniz bu durumda da benzeri bir durumu yaşayabilirsiniz. İlk iş tablo ilişkilendirmelerinizi gözden geçirmenizi öneririm.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

Mesaj gönderen xcom »

Ben tüm SQL komutları programın içinden gönderiyorum ODBC bağlantısını kullanarak. Ben ODBC den şüpelenmeye başladım son zamanlarda işin acıkcası çünkü kodlarda hata olsa 3 - 4 ay boyunca sorunsuz çalışmazdı diye düşünüyorum. ama ben kodların içinde transaction kullanmıyorum hiç bir insert, edit,post ve delete işlemlerinde.
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Kaydı kaybolan tabloyu başka bir tablo ile ilişkilendirmiş ve diğer tablodan kayıt silersen o zaman ilişkili alan ve ayarlarına bağlı olarak tüm detay kayıtlar da silinir. Bu yüzden tablo ilişkilendirmelerin varsa önce buna göz atmalısın demiştim yine uyarıyorum. İlk iş tablo ilişkilendirmelerine bak.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

Mesaj gönderen xcom »

ilişkilendirme SQL içerisinde yapmadım ben hepsini kod ile yapıyorum. silme procedure ü aşağıdaki gibi yapıyorum.

Kod: Tümünü seç


procedure Tfats.Button15Click(Sender: TObject);
var
delx:string;
begin
     delx:= dmf.fatsatictx.FieldByName('Faturano').AsString;
     dmf.fatsatictx.SQL.Clear;
     dmf.fatsatictx.SQL.Add('delete from fatsatic where (fattipall=''2'') and (Faturano='''+delx+''') ') ;
     if dmf.fatsatictx.IsEmpty=true then
     begin
     dmf.fatsatictx.ExecSQL;
     end;


            dmf.fatsatdttx.sql.Clear;
            dmf.fatsatdttx.SQL.Add('delete from fatsatdt where (fattipall=''2'') and (Faturano='''+delx+''') ') ;

            if dmf.fatsatdttx.IsEmpty=true then
            begin
            dmf.fatsatdttx.ExecSQL;
            end;

            dmf.fatsatictx.SQL.Clear;
            dmf.fatsatictx.SQL.Text:='select * from fatsatic';
            dmf.fatsatictx.Close;
            dmf.fatsatdttx.SQL.Clear;
            dmf.fatsatdttx.SQL.Text:='select * from fatsatdt';
            dmf.fatsatdttx.Close;

    
     panel5.Visible:=false;
     modex:=true;
     suiButton1.Enabled:=true;



end;


hepsi bu.

ayrıca işin ilginç yanı şilme işlemi yapmadan kullanım esnasında bu verilerin pat diye kaybolması. aklıma bi dünya şey geliyor. shrink yapıyor otomatik olarak ordamı sorun çıkıyor yada edit,post yapıyorum ordamı bir dengesizlik var veya nebileyim aklıma başka birşey gelmiyor şuan.

ayrıca ODBC yerine başka hangi bağlantıları kullanmam daha sağlıklı veri ortamını doğurur.
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

Mesaj gönderen xcom »

Arkadaşlar konu hakkında yardımlarınızı bekliyorum yerşey için allah razı olsun.
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
Cevapla