Join'li sorgu ile dolan ADO DataSet'te Güncelleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mpirpanlar
Üye
Mesajlar: 5
Kayıt: 12 Mar 2008 10:16
Konum: İstanbul
İletişim:

Join'li sorgu ile dolan ADO DataSet'te Güncelleme

Mesaj gönderen mpirpanlar »

bool __fastcall TStokDurumForm::Get_Stokfd(int tip, int fisno)
{
try {
if(STOKFD->Active) STOKFD->Close();
STOKFD->CommandText = "select SK.ADI MALADI, SFISD.* from SFISD";
STOKFD->CommandText = STOKFD->CommandText+" left join SKART SK on SFISD.SIRKET=SK.SIRKET and SFISD.MKOD=SK.KOD";
STOKFD->CommandText = STOKFD->CommandText+" where SFISD.SIRKET="+QuotedStr(SIRKET_KODU)+" and SFISD.TIP="+String(tip)+" and SFISD.FISNO="+String(fisno)+" order by SFISD.SATIR";
STOKFD->Open();
}
catch (Exception &exception) {
Application->ShowException(&exception);
}
return !STOKFD->Eof;
}
//---------------------------------------------------------------------------


Selam,
Yukarıdaki SQL cümlesi belirli bir şirket, tip ve fiş numarasına ait fiş detaylarının bir DBGrid içerisine dolduruyor. Fiş satırlarında stok isimlerinin çıkması için join işlemi yapılıyor. kayıt eklemede veya güncellemede herhangi bir sorun olmuyor (Fiş miktarı ve fiyat veya KDV oranı değiştirilip satır kayıt edilebiliyor. Anca satırı silmek istediğim zaman (Güncelleştirme veya yenileme işlemi için anahtar bilgileri yetersiz) şeklinde uyarı mesajı geliyor ve işlem Abort oluyor.

Kullanılan veri tabanı MS-SQL bağlantı bileşeni ADO. kullanılan yani verilerin yüklendiği bileşen ADODataSet CursorType özelliğide ctStatic
http://www.sentez.com
Mustafa PIRPANLAR
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Join'li sorgu ile dolan ADO DataSet'te Güncelleme

Mesaj gönderen thelvaci »

Silme işlemini gridin Dataset üzerinden yapmasına müsaade etmeyin, silmeyi siz kontrol edin. Aksi durumda join'li bir sorgu olduğu için her iki tablodan da silmeye çalışacaktır.!
mpirpanlar
Üye
Mesajlar: 5
Kayıt: 12 Mar 2008 10:16
Konum: İstanbul
İletişim:

Re: Join'li sorgu ile dolan ADO DataSet'te Güncelleme

Mesaj gönderen mpirpanlar »

İlginiz için teşekkürler. Bu yöntemden vazgeçtim. Bu tarz bir yöntemi (Join'li sorguyu) deneme sebebim fiş detay tablosunun OnCalc olayından satırdaki stok kodunun isminin anlık olarak ekrana yansımasıydı. Bu olayı OnCalc olayından kaldırdım. DataSource'un OnDataChange olayına koydum hangi satırda ise sadece o satıra ait stok kodunun ismi fişin alt kısmında gösteriliyor. OnCalc olayında grid'in Buffer'ında ne kadar fiş satırı var ise her değişiklikte o kadar satır stok ismi çağrılmaya çalışılıyordu. Yavaş olmasının sebebi buydu. Bende bu yöntemi bıraktım.
http://www.sentez.com
Mustafa PIRPANLAR
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Join'li sorgu ile dolan ADO DataSet'te Güncelleme

Mesaj gönderen orhancc »

Silme işlemi için ayrı bir delete komutu yazıp o şekilde kullanmanız daha basit olur.
Cevapla