yetki kontrolü için bir sp yazdım oda şöyle
Kod: Tümünü seç
CREATE OR ALTER PROCEDURE YETKI_KONTROL (
userid integer,
yetkiid integer)
returns (
sonuc varchar(6))
as
declare variable sayi integer;
begin
/* Procedure Text */
select count(*) from yetki where user_id =:userid and yetki_id = :yetkiid
into :sayi;
if (sayi =1) then
begin
sonuc = 'evet';
end
if (sayi =0) then
begin
sonuc = 'Hayır';
end
suspend;
end
Kod: Tümünü seç
CREATE TABLE YETKI (
ID INTEGER NOT NULL,
USER_ID INTEGER NOT NULL,
YETKI_ID INTEGER,
ACIKLAMA VARCHAR(30)
);
tabloda da yetkiler var
id user_id yetki_id aciklama
1 1 10 prg_gir
2 1 11 sil
3 1 12 raporla...
şu kodu yazıyorum
Kod: Tümünü seç
SELECT user_id,yetki_id,(SELECT sonuc from yetki_kontrol(yetki.user_id,10)) as "procedure_dönen",aciklama from yetki
where user_id =1
Kod: Tümünü seç
user_id yetki_id procedure_dönen aciklama
1 10 evet prggir
1 11 evet sil
1 12 evet raporla
normalde sadece yetki_id si 10 olana evet diğerlerine hayır yazması gerekmiyormu. yanlışım nerede yoksa firebird çokmu zayıf
şimdiden ilgilen tüm arkadaşlara sonsuz teşekkür
NOT execute procedure yetki_kontrol (1,10) sonucu doğru veriyor ama iş select içinde verdiğim yetki id ye kimler sahip onu görmek istediğimde
hepsine evet yazıyor yukarıdaki gibi