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
Join'li sorgu ile dolan ADO DataSet'te Güncelleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 5
- Kayıt: 12 Mar 2008 10:16
- Konum: İstanbul
- İletişim:
Join'li sorgu ile dolan ADO DataSet'te Güncelleme
http://www.sentez.com
Mustafa PIRPANLAR
Mustafa PIRPANLAR
Re: Join'li sorgu ile dolan ADO DataSet'te Güncelleme
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.!
-
- Ü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
İ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
Mustafa PIRPANLAR
Re: Join'li sorgu ile dolan ADO DataSet'te Güncelleme
Silme işlemi için ayrı bir delete komutu yazıp o şekilde kullanmanız daha basit olur.