MSSQL Stored Procedure ile ilgili, işin icinden cikamadim

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

MSSQL Stored Procedure ile ilgili, işin icinden cikamadim

Mesaj gönderen Glen »

Selam,

Arkadaşlar bir stok grup tablom var bir de gruplarin altinda detail stok kart tablolarim...Ve ben SELECT işlemini stored procedure ile yapiyorum.. yani direk delphiden SELECT * FROM ........... kullanmiyorum onun yerine stored procedure den cagiriyorum select işlemini (inşallah yanlış bir yol izlemiyorumdur? Sağolsun Kuri abi (adnan abiye selamlar:p) stored procedure'ü öğretti görmemişin stored procedure'ü olmuş tutmuş herşeyde onu kullanmış hesabı herşeyde kullanıyorum:)

Örnek bir Grup Kodu
01

Örnek bir Detail stok kart kodu
001

Ama tabi stok karti kaydederken, 01.001 şeklinde gözüküyor yani aslinda veritabanına 001 diye işliyor ama ben sadece 001 kismini kaydettiriyorum.. Her stok kaydında hangi gruba bağlı olduğu grubun primary key'inle belirleniyor ve de ben stored procedure ile select işlemlerini yaparken...

declare @gorunecekkod varchar(6)

diye bir değişken tanimlayip,

bu @gorunecekkod degişkenine, LEFT OUTER JOIN ile çektiğim GRUPKODUNU

SET @gorunecekkod = GRUPTABLE.GRUPKODU + '.' + STOKTABLE.STOKKODU

şeklinde yapip, select işleminde bu @gorunecek kodu da bir field mi$ gibi göstermek istiyorum...
Beceremedim bir türlü, yardimci olursaniz cok sevinirim..
Eğer sorumla ilgili herhangi bir anlaşılmayan nokta olursa tekrar açıklayabilirim.

Herkese kolay gelsin
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

Bu arada bir not düşmek istedim,

Detail tabloda, ana tablonun yani stok grubunun kodu tutulmuyor. Sadece kayit numarasi yani ID 'si tutuluyor... Yani oyle bir$ey olmasi gerek ki, ID den kodunu bulucak, ve Gorunen kod degi$kenine (bu arada degi$kene gerek olmayabilir ben sadece söyliyim dedim) ANAGRUPKODU + '.' + STOKKARTKODU $eklinde atayip, her kayit icin onu göstericek yani bildiigmiz select i$lemini yapip ekstradan bir alan olaraktan da o kodu ekliyecek..

Tekrar tekrar te$ekkür edeirm
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Tek bir select ile yapabileceğiniz bir işlemde neden stored procedure kullanma ihtiyacı hissettiğinizi anlayamadım. Sanırım şuna benzer bir kod işinizi görecektir:

Kod: Tümünü seç

SELECT MASTER.ANAGRUPKODU + '.' + DETAIL.STOKKARTKODU
FROM DETAIL LEFT JOIN MASTER ON DETAIL.MASTERID=MASTER.ID

Not: Delphi ile alakalı olmayan sql sorularınızı lütfen veritabanı forumuna sorunuz :!:
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

naile yazdı:Tek bir select ile yapabileceğiniz bir işlemde neden stored procedure kullanma ihtiyacı hissettiğinizi anlayamadım. Sanırım şuna benzer bir kod işinizi görecektir:

Kod: Tümünü seç

SELECT MASTER.ANAGRUPKODU + '.' + DETAIL.STOKKARTKODU
FROM DETAIL LEFT JOIN MASTER ON DETAIL.MASTERID=MASTER.ID

Not: Delphi ile alakalı olmayan sql sorularınızı lütfen veritabanı forumuna sorunuz :!:
Yani $öyle diyim tablolarin bazilari ayni ama yaklasik olarak 10 tane farkli field var tek bir tablodan bilgi okuyor her seferinde farkliymis gibi yapiyor vs. yani sadece islem bu kadar basit bir secme islemi degil..i$lemlerde ayrinti var bayagi.. yanlismi yapiyorum sizce yani stored procedure ile ne olursa olsun birakin detayli selectleri isterse en ufak bir select islemini yapmak bile zarar verirmi? Tesekkürler tekrardan.. bu arada ufak bir sorun olustu o sorunu halleder halletmez deniyecegim verdiginiz kodu.. tesekkürler tekrar tekrar..
kolay gelsin
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

naile hanim bu arada cok tesekkür ederim verdiginiz kod calisti.. kolay gelsin tekrardan
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Hayır zararı olacağından değil de çok gerekli olmayacağından öyle söyledim. Her select ifademiz için bir stored procedure yazmaya kalkarsak ortalık stored procedure den geçilmez olur. Eğer mesela birden fazla tablodan değişik alanlar almak ve bunu da çok yerde kullanmak istiyorsanız stored procedure yerine view daha sağlıklı olur. Her şeyi her yerde kullanmamız doğru olmaz, hepsinin kullanılacağı yerler var. Önemli olan ihtiyacınıza en uygun olanını kullanmanız.

Kolay gelsin.
Cevapla