19-12-2018, Saat: 17:29
Konuyu Oyla:
|
UPDATE ile Ikı Tablo da alan guncellemek !!!
|
|
19-12-2018, Saat: 18:15
Güncellemek Mümkün değil diye bir durum yok orada
Benim sana yazdığım SQL cümlesinde zaten güncelleme yaptırdım ama oradaki yazdığımı tam anlamadın sanırım STHAR Tablosundaki Plasiyer Kodu kısmı zaten irsaliye Oluşurken dolduruluyor orayı update etmene gerek yok. FAUIRS tablosunu update etmen yeterli olacaktır Yazdığım cümleyi deneyerek bir raporlama yaparak bir test edebilirsin.
20-12-2018, Saat: 06:27
(Son Düzenleme: 20-12-2018, Saat: 07:44, Düzenleyen: Fesih ARSLAN.)
(19-12-2018, Saat: 18:15)FiRewaLL Adlı Kullanıcıdan Alıntı: Güncellemek Mümkün değil diye bir durum yok orada FiRewaLL Merhaba Cümlen tamam denedim ayrıca da teşekkür ederim. Ama demek istediğim şu evet giriş yapılıyor kaydediliyor sonra e-fatura olarak gönderiyor, bu durumdan sonra faturanın irsaliyenin de düzeltmek için üzerinden geçirtmiyor. Operatör bakıyor ki "DEPO KODU" ve "PLASIYER KODU" yanlış bu durumda herhangi bir alandan bilgi alıp update etmek şansı yok bu yüzden ben Delphi de edit alanları kullanarak update ettiriyorum. Aşağıdaki kod bloğunu tek UPDATE ye indirmek istiyorum.Bunda yardımcı olursan çok sevinirim. EFatKalem.SQL.Add('UPDATE TBLFATUIRS SET PLA_KODU='+QuotedStr(Edit6.text)+', ACIKLAMA='+QuotedStr(Edit7.text)+' WHERE GIB_FATIRS_NO='+QuotedStr(GibFaturaNo.text)+' AND FATIRS_NO='+QuotedStr(BelgeNo.text)+' AND CARI_KODU='+QuotedStr(CariKodu.text)+'');
EFatKalem.SQL.Add('UPDATE TBLSTHAR SET DEPO_KODU='+QuotedStr(Edit4.text)+', PLASIYER_KODU='+QuotedStr(Edit5.text)+' WHERE FISNO='+QuotedStr(BelgeNo.text)+' AND STHAR_CARIKOD='+QuotedStr(CariKodu.text)+'');
Öncelikle bu iki tabloyu JOIN ile birbirine eşlenik hale getirecek bir SELECT cümlesi yazarak başlayın.
Bunu başardıktan sonra UPDATE ve SET ile atamalı formata dönüştürün. SET ile verirken benzer alan isimlerine karşı mutlaka her alanın başına TABLE alias kullanın. JOIN yapılamayacağına kanaat getirirseniz bu isteğiniz de mümkün değildir. Biri hanya diğeri konya demektir .Ama hanya ile konyayı ortak bir paydada yan yana getirebilirseniz UPDATE imkanınız da var demektir .
Saygılarımla
Muharrem ARMAN ![]()
Konuyu iki defa okudum bir şey anlamadım ,
* Yazdığın sql kodlarında sql injection davetiye var, * Tablo adları neden büyük harf okurken gözlerim yoruldu hiç anlaşılır durmuyor rezerv kelimeler büyük olur sadece, * Aynı anda iki tablo update edeceksen Stored Procedure yaz en mantıklı yolu bu olur , * Eğer 2. tablodaki güncellenecek sahalar 1. tabloda var ise , 1. tabloya trigger da yazabilirsin.
20-12-2018, Saat: 22:13
(Son Düzenleme: 20-12-2018, Saat: 23:02, Düzenleyen: Fesih ARSLAN.)
(20-12-2018, Saat: 08:57)mrmarman Adlı Kullanıcıdan Alıntı: Öncelikle bu iki tabloyu JOIN ile birbirine eşlenik hale getirecek bir SELECT cümlesi yazarak başlayın.mrmarman dediğin gibi yaptım fakat bir yerde tıkandım düzeltmeni rica etsem kod şu ; UPDATE TBLFATUIRS SET TBLFATUIRS.PLA_KODU='03',TBLFATUIRS.ACIKLAMA='SONDENEME',SH.DEPO_KODU='02',SH.PLASIYER_KODU='03', TBLCAHAR.PLASIYER_KODU='03' FROM TBLFATUIRS FI INNER JOIN TBLSTHAR SH INNER JOIN TBLCAHAR ON TBLCAHAR.BELGE_NO=TBLFATUIRS.FATIRS_NO WHERE TBLFATUIRS.PLA_KODU='02' AND TBLFATUIRS.ACIKLAMA='DENEMEDUR' AND TBLFATUIRS.GIB_FATIRS_NO='OLG2018000001185' AND TBLFATUIRS.FATIRS_NO='OLG000000001185' AND TBLFATUIRS.CARI_KODU='000580' AND TBLSTHAR.FISNO='OLG000000001185' AND TBLSTHAR.STHAR_CARIKOD='000580' AND TBLCAHAR.BELGE_NO='OLG000000001185' AND TBLCAHAR.CARI_KOD='000580'Dediğiniz select cümlesi bu ve çalışıyor; SELECT FI.PLA_KODU,FI.ACIKLAMA,FI.GIB_FATIRS_NO,FI.FATIRS_NO,FI.CARI_KODU,SH.DEPO_KODU,SH.PLASIYER_KODU,SH.FISNO,SH.STHAR_CARIKOD,CH.PLASIYER_KODU FROM TBLFATUIRS FI,TBLSTHAR SH,TBLCAHAR CH WHERE FI.PLA_KODU='03' AND FI.ACIKLAMA='SONDENEME' AND FI.GIB_FATIRS_NO='OLG2018000001185' AND FI.FATIRS_NO='OLG000000001185' AND FI.CARI_KODU='000580' AND SH.DEPO_KODU='1' AND SH.PLASIYER_KODU='01' AND SH.FISNO='OLG000000001185' AND SH.STHAR_CARIKOD='000580' AND CH.BELGE_NO='OLG000000001185' AND CH.CARI_KOD='000580'
Yanlış anlamışsınız, join ile select'i kurmalısınız. Bağıntı oluşunca bunu UPDATE haline set edeceksiniz demek istedim.
Buradaki örneği inceleyin isterseniz.
Saygılarımla
Muharrem ARMAN ![]()
20-12-2018, Saat: 22:55
(Son Düzenleme: 20-12-2018, Saat: 23:10, Düzenleyen: Fesih ARSLAN.)
(20-12-2018, Saat: 22:27)mrmarman Adlı Kullanıcıdan Alıntı: Yanlış anlamışsınız, join ile select'i kurmalısınız. Bağıntı oluşunca bunu UPDATE haline set edeceksiniz demek istedim.Select ile inner joın cumlesını oluşturdum çalışıyor ; Update nasıl cevirecem? SELECT FI.PLA_KODU,FI.ACIKLAMA,FI.GIB_FATIRS_NO,FI.FATIRS_NO,FI.CARI_KODU,SH.DEPO_KODU,SH.PLASIYER_KODU,SH.FISNO,SH.STHAR_CARIKOD,CH.PLASIYER_KODU FROM TBLFATUIRS FI INNER JOIN TBLSTHAR SH ON SH.FISNO=FI.FATIRS_NO INNER JOIN TBLCAHAR CH ON CH.BELGE_NO=SH.FISNO WHERE FI.PLA_KODU='03' AND FI.ACIKLAMA='SONDENEME' AND FI.GIB_FATIRS_NO='OLG2018000001185' AND FI.FATIRS_NO='OLG000000001185' AND FI.CARI_KODU='000580' AND SH.DEPO_KODU='1' AND SH.PLASIYER_KODU='01' AND SH.FISNO='OLG000000001185' AND SH.STHAR_CARIKOD='000580' AND CH.BELGE_NO='OLG000000001185' AND CH.CARI_KOD='000580'
20-12-2018, Saat: 23:07
@OZCANK bey,
Form editörümüz üzerinde kod biçimlendirme amacı ile kullandığımız 2 adet buton bulunmaktadır. Delphi Logolu olan (Delphi Kod Ekle) buton ile Delphi kodu, Süslü Parantez simgeli buton (Kod Biçimlendirme) ile de diğer dillere ait (SQL'de dahil) kodlar eklenerek, kod biçimlendirme yapılmaktadır. Bu kapsamda; Daha önce kullanmış olduğunuz [code] taglarını kod biçimlendirme Tag'ları ile değiştirilmiştir. Sonraki kod kullanımlarında doğru kod tag'larını kullanarak bize yardımcı olursanız sevinirim. İlgi ve anlayışınız için şimdiden teşekkür eder iyi çalışmalar dilerim.
DelphiCan'dır!
20-12-2018, Saat: 23:07
UPDATE Table1 SET Col2 = t2.Col2, Col3 = t2.Col3 FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t1.Col1 IN (21, 31) örneğinde nasıl görüyorsunuz? Select yerine update yazacaksınız yanına tablo adınızı ve takip eden set dizisini, from ve where gerisi aynı kalacak işte nasıl tarif edebilirim başka bilemiyorum.
Saygılarımla
Muharrem ARMAN ![]() |
|
« Önceki Konu | Sonraki Konu »
|
| Konu ile Alakalı Benzer Konular | |||||
| Konular | Yazar | Yorumlar | Okunma | Son Yorum | |
|
|
Double Alan Karşılaştırma | masteryoda | 4 | 5.002 |
14-08-2017, Saat: 11:14 Son Yorum: masteryoda |
Konuyu Okuyanlar: 2 Ziyaretçi


