Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Tablodaki field sayısı ne kadar önemli
#21
Lbza3J.png
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#22
Bu SQL Formatter'ı hiç sevmedim. Bütün Tab tuşlarımı yok etti. Yada ben kullanmayı bilmiyorum.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#23
Tuğrul Hocam bir örnek vermek gerekirse
Update edeceğim dosyada 20 alan var ve ben kullanıcının hangi alanı değiştirdiyse o alanı güncellemek için sql tarafında nasıl bir SP yazmam lazım
Mesala
Create XSP
@p1 ..,
@p2 ..,
...
..
@p20 ..
begin
Update Xtable
set ????????
end
gibi bir şeymi yapacağım gerçekte bu olay nasıl yapılıyor
şimdiye kadar yaptıklarınızdan basit bir SP paylaşabilirmisiniz.

Hocam çok yaşayın ben yazarken paylaşmışşınız
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#24
(29-03-2018, Saat: 14:00)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlTuğrul Hocam bir örnek vermek gerekirse
Update edeceğim dosyada 20 alan var ve ben kullanıcının hangi alanı değiştirdiyse o alanı güncellemek için sql tarafında nasıl bir SP yazmam lazım
Mesala
Create XSP
@p1 ..,
@p2 ..,
...
..
@p20 ..
begin
 Update Xtable
     set ????????
end
gibi bir şeymi yapacağım gerçekte bu olay nasıl yapılıyor
şimdiye kadar yaptıklarınızdan basit bir SP paylaşabilirmisiniz.

Paylaştım üstadım :-) Siz yazar iken ben paylaşıyormuşum sanırım ;-)
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#25
Yukarıdaki örneğinizde 1 field değiştiğinde tüm fieldlar gitmesi gerekiyor doğrumu anlıyorum
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#26
(29-03-2018, Saat: 14:02)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlYukarıdaki örneğinizde 1 field değiştiğinde tüm fieldlar gitmesi gerekiyor doğrumu anlıyorum

Ben tüm field'ları gönderiyorum. Ama bu tarz SP'lerin gücünde sadece tek bir alanı da güncelleyebilirsiniz. Gördüğünüz gibi UPDATE cümleciğinde ISNULL kontrolü var ;-) Ayrıca ben memory dataset'in field'ları içinde döngüye giriyorum ve ilgili stored procedure (Örneğin TADOStoredProc)'un parameters'ında arama yapıyorum, bulursam değerini güncelliyorum.

Pseudo code olarak şöyle:

var
  AField : TField;
  AParam : TParameter;
begin
  for AField in ADataSet.Fields do
  begin
    AParam := AStoredProc.Parameters.FindParam('@' + AField.FieldName);

    if Assigned( AParam ) then
       AParam.Value := AField.Value;
  end;

  AStoredProc.ExecProc;
end;
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#27
Merhaba,
Memory dataset e aldığınızda veya datasetin cache update ozelligini kullandığınızda. Başka bir kullanıcı aynı veri üzerinde işlem yaparsa ortalık karışacaktır. Bununla ilgili nasıl bir tedbir alıyorsunuz?
Teşekkürler.
Cevapla
#28
(29-03-2018, Saat: 20:11)klavye Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Memory dataset e aldığınızda veya datasetin cache update ozelligini kullandığınızda. Başka bir kullanıcı aynı veri üzerinde işlem yaparsa ortalık karışacaktır. Bununla ilgili nasıl bir tedbir alıyorsunuz?
Teşekkürler.

Bununla ilgili efektif bir tedbir almak pek mümkün değil maalesef. Ne şiş yansın ne de kebap yansın çözümü yok bu işin. Kimi arkadaşlarımız, çektikleri verileri (select) row bazlı kilitleme yolunu tercih ediyorlar. Ancak o kayıtların ne kadar süre kilitli kalacağı kullanıcı inisiyatifinde olduğu için bu tarz bir çözüm uygun değil elbette. Ya da memory dataset'de bir kayıt değişir değişmez hemen bu değişikliği veritabanına yansıtabilirsiniz de. Tamamen tercih meselesi. Ancak yine de bahsettiğiniz sorunun oluşmasına engel olamayabilirsiniz.

 Aksi durumda ise; aynı kayıt için her zaman bir başka kullanıcı ile çakışma durumu söz konusu olabilir. Milisaniye fark ile birisi benim yazdığım kaydın üzerine yazabilir ya da tam tersi olabilir. Aslında tamamen çözümsüz değiliz. Elbette yapabileceklerimiz var. Örneğin serializable transaction isolation seviyesini kullanabiliriz. Ancak, nelerden feragat edeceğimiz ya da karşımıza çıkacak başka problemlerin neler olduğunu bilmemiz gerekir ki bir maliyet analizi yapabilelim. Bu tarz bir durumda; pek çok kilitlenme ve duraksama yaşanır.

 Esasen sorunuzun cevabı seçilecek olan transaction isolation seviyesi ile yakından ilgilidir. Varsayılan read committed izolasyon seviyesinde her zaman örneğini verdiğiniz senaryolar gerçekleşebilir.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#29
Bence işin o kadar derin detayına girmeyin, ben yıllardır kendi yazdığım programı kullanıyorum çalıştığım yerlerde, ayrıca sattığım da onlarca firma var, bunlar arasında yılda 50k fatura kesende var 1k kesende var, tek kullanıcıdan 10-12 kullanıcıya kadar kullananda var. Hiçbir zaman herkesin aynı kişiye fatura kesmeye çalıştığını veya sipariş girmeye çalışırken programın çaktığını görmedim duymadım. Cari hesapları tanıtan 1-2 kişi oluyor, stokları tanıtan 1-2 kişi oluyor ve bunlar şimdiye dek hiç aynı stoğu güncellemek yada biri silerken diğeri kaydetmek istemedi. Genelde işleyiş, kayıt ekleme (fatura-irsaliye-sipariş-ödeme-tahsilat vs.) üzerine olduğu için böyle bir çakışma yaşamanız çok çok düşük bir ihtimal. Cari hesap açılır, sürekli onun üzerine alt kayıtlar (işlem kayıtları) girilir, stok kartı açılır aynı şekilde hareketleri girilir. Hareketi olan bir cari yada stok kartı da silinemeyeceğine göre böyle bir ihtimali düşünmek bence mantıksız oluyor.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#30
(30-03-2018, Saat: 09:09)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBence işin o kadar derin detayına girmeyin, ben yıllardır kendi yazdığım programı kullanıyorum çalıştığım yerlerde, ayrıca sattığım da onlarca firma var, bunlar arasında yılda 50k fatura kesende var 1k kesende var, tek kullanıcıdan 10-12 kullanıcıya kadar kullananda var. Hiçbir zaman herkesin aynı kişiye fatura kesmeye çalıştığını veya sipariş girmeye çalışırken programın çaktığını görmedim duymadım. Cari hesapları tanıtan 1-2 kişi oluyor, stokları tanıtan 1-2 kişi oluyor ve bunlar şimdiye dek hiç aynı stoğu güncellemek yada biri silerken diğeri kaydetmek istemedi. Genelde işleyiş, kayıt ekleme (fatura-irsaliye-sipariş-ödeme-tahsilat vs.) üzerine olduğu için böyle bir çakışma yaşamanız çok çok düşük bir ihtimal. Cari hesap açılır, sürekli onun üzerine alt kayıtlar (işlem kayıtları) girilir, stok kartı açılır aynı şekilde hareketleri girilir. Hareketi olan bir cari yada stok kartı da silinemeyeceğine göre böyle bir ihtimali düşünmek bence mantıksız oluyor.

Hocam yanyana oturan iki kişinin aynı siparişte değişikliğe gitiğini çok gördüm henüz yapmadım ama benim önerim şu şekilde olurdu daha kolay daha etkin bir yöntem olabilir tabiki

örnek acik_islemler isimli bir tabloda kullanıcının değişiklik yapmak istediği anda o  tablo adı, record_id ve kullanıcı_id sini tutmak örnek
başka biri değişiklik yapmak istediğinde önce o tabloda sorgulatıp bu kaydı x kişisi şuanda düzenliyor şeklinde bilgi vermek daha mantıklı geliyor bana düzenleyen kişi işini bitirdiğinde o kayıt silinebilir.

“Do. Or do not. There is no try.”
Cevapla

Konuyu Paylaş : facebook gplus twitter





Konuyu Okuyanlar: 1 Ziyaretçi