tek sqlde stok kodu varsa güncelle yoksa ekle

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

tek sqlde stok kodu varsa güncelle yoksa ekle

Mesaj gönderen ikutluay »

Merhaba

ürün kodu '6014-0BELEK-0093-302' fiyatı 40,50 ve fiyat tipide peşin yani 1 olsun varsayalım.

Insert into fiyatlar ile kayıdı ekliyorum. veya güncelleme update fiyatlar ile yapıyorum.

Ancak zamandan kazanmak için bu işi kombine etmem gerek. Yani tek sql ile stokkodu ve fiyat tipi 1 olan kayı aramalı varsa update yoksa insert etmeli.

Yol gösterici bir linkde yeterli olur. Modifiye edebilirim
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: tek sqlde stok kodu varsa güncelle yoksa ekle

Mesaj gönderen ikutluay »

TSQL ile yapılabiliyor ama bana sql 92 uyumlu olanı gerekiyor,

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
INSERT INTO Table1 VALUES (...)

buda diğer yolu ama arayış devam ediyor
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: tek sqlde stok kodu varsa güncelle yoksa ekle

Mesaj gönderen mkysoft »

veri tabanını yazmamışsınız. en kötü ihtimal, stored procedure yapılır.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: tek sqlde stok kodu varsa güncelle yoksa ekle

Mesaj gönderen orhancc »

Kod: Tümünü seç

begin tran
if exists (select * from table with (updlock,serializable) where key = @key)
begin
   update table set ...
   where key = @key
end
else
begin
   insert table (key, ...)
   values (@key, ...)
end
commit tran
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: tek sqlde stok kodu varsa güncelle yoksa ekle

Mesaj gönderen varyemez »

peki ben burda bir soru sorayım.
bu işi stored procedure ile yaptık diyelim. firebird de. stok kodunu giriş parametresi olarak stokodu kullandık. çıkış olarak da işlem update olmuşsa 1 , insert olmuşsa 2 , başarısızsa 0 dönüyor. (kodları yazmıyorum , çünkü yukardakilerin benzeri). sorum şu. transactionu burada nasıl kullanmalıyız. en sonda readcommitted kullanıyor bazıları , bunun commit den farkı ne?
bir de program kapanırken düşünüyor düşünüyor ve hata mesajı çıkıyor. IBSQL.open şeklinde..
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Re: tek sqlde stok kodu varsa güncelle yoksa ekle

Mesaj gönderen meron06 »

birde update or insertle oluyor bu tarz şeyler şöyle

update or insert stoklar(stok_kodu,stok_adi)
values(:stok_kodu,stok_adi)
matching(stok_kodu)

bu sorgu stok kodu varsa update eder yoksa insert eder.
Cevapla