Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Naziv kolone kao parametar u proceduri

[es] :: Firebird/Interbase :: Naziv kolone kao parametar u proceduri

[ Pregleda: 1928 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.dynamic.sbb.rs.

Sajt: dogriz.blogspot.com


+6 Profil

icon Naziv kolone kao parametar u proceduri20.05.2008. u 07:43 - pre 194 meseci
Treba da napišem proceduru sličnu ovoj:
Code:

SET TERM ^ ;

CREATE OR ALTER PROCEDURE RBR_IZMENE (
    NAZIV_POLJA VARCHAR(30),
    ID INTEGER)
RETURNS (
    IZMENA_BROJ INTEGER)
AS
begin
    SELECT COALESCE(MAX(IZMENA_BROJ)+1, 0)
    FROM NEKA_TABELA
    WHERE NEKO_POLJE = :ID
    INTO :IZMENA_BROJ;
  suspend;
end^

SET TERM ; ^

U principu jednostavno, zar ne? Ali... NEKO_POLJE treba da bude po potrebi NEKO_POLJE ili NEKO_DRUGO_POLJE ili KOLONA_1 ili ...
Da li postoji mogućnost da se to NEKO_POLJE prosledi kao promenljiva, recimo preko gore definisanog ulaznog parametra NAZIV_POLJA?

Jedno je sigurno - ovako ne može :
Code:

WHERE :NAZIV_POLJA = :ID
WHERE (:NAZIV_POLJA AS FIELD_NAME) = :ID
... ????


Moram da priznam da sam prilično komplikovano objasnio jednostavan problem... HELP
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Naziv kolone kao parametar u proceduri20.05.2008. u 13:43 - pre 194 meseci
Direktno ne možeš jer se procedura prilikom definisanja kompajlira u BLR, možeš koristiti EXECUTE STATEMENT izraz odnosno FOR EXECUTE STATEMENT ili EXECUTE BLOK (mislim da ovako ide ovaj poslednji). Samo vodi računa da se ti izrazi kompajliraju pri svakom izvršavanja tako da to neće biti previše brzo. Ako je to što procedura radi nešto jednostavno, možeš to raditi iz programa.
Pogledaj F1.5 release notes za više detalja oko EXECUTE STATEMENT sintakse i FB 2.0 oko EXECUTE BLOCK.
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.dynamic.sbb.rs.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: Naziv kolone kao parametar u proceduri21.05.2008. u 06:45 - pre 194 meseci
Rešio sam problem jednom malo većom procedurom, sa više IF-ova i jednim ulaznim parametrom kojim određujem koji upit se izvršava, mislim da je to još najbrže i najelegantnije rešenje.

Hvala na pomoći
 
Odgovor na temu

[es] :: Firebird/Interbase :: Naziv kolone kao parametar u proceduri

[ Pregleda: 1928 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.