Avatar billede martinlind Nybegynder
15. juli 2006 - 17:43 Der er 4 kommentarer og
1 løsning

Stored procedure

Hvad er der galt ??? jeg kan ikke lave en select * from get_userfields('mytable')



SET TERM ^ ;

CREATE PROCEDURE GET_USERFIELDS (
    TABLENAME VARCHAR(100))
RETURNS (
    USERFIELD_ID INTEGER,
    FIELD_NAME VARCHAR(255),
    FIELD_LABEL VARCHAR(255))
AS
begin
  select U.sys_userfield_id as USERFIELD_ID, U.userfield_name as FIELD_NAME, U.userfield_dspname as FIELD_LABEL
    from userfields_tables UT,  userfields U
    where upper(UT.table_name) = Upper(:tablename)
    and UT.sys_table_id = U.table_id
    into :userfield_id, :field_name, :field_label;
  suspend;
end^

SET TERM ; ^
Avatar billede tigertool Nybegynder
15. juli 2006 - 17:58 #1
Hvis der skal returneres flere rows skal du benytte en for, f.eks.:

for select ..
do
begin
...
end
Avatar billede martinlind Nybegynder
15. juli 2006 - 21:51 #2
ok, men hvordan skriver jeg min procedure om til at retunere flere rows, som hvis jeg lavede det som et alm. select :

select U.sys_userfield_id as USERFIELD_ID, U.userfield_name as FIELD_NAME, U.userfield_dspname as FIELD_LABEL
  from userfields_tables UT,  userfields U
  where upper(UT.table_name) = Upper(:tablename)
  and UT.sys_table_id = U.table_id
Avatar billede tigertool Nybegynder
15. juli 2006 - 22:04 #3
Det er ikke testet men det vil ligne dette:
SET TERM ^ ;

CREATE PROCEDURE GET_USERFIELDS (
    TABLENAME VARCHAR(100))
RETURNS (
    USERFIELD_ID INTEGER,
    FIELD_NAME VARCHAR(255),
    FIELD_LABEL VARCHAR(255))
AS
begin
  for select U.sys_userfield_id as USERFIELD_ID, U.userfield_name as FIELD_NAME, U.userfield_dspname as FIELD_LABEL
    from userfields_tables UT,  userfields U
    where upper(UT.table_name) = Upper(:tablename)
    and UT.sys_table_id = U.table_id
    into :userfield_id, :field_name, :field_label;
  do
  begin
    suspend;
  end
end^

SET TERM ; ^


Jeg er desuden ikke sikker på at du kan give et tabelnavn med som parameter også benytte det i din select. Har du evt. mulighed for at poste din fejlbesked?
Avatar billede martinlind Nybegynder
15. juli 2006 - 22:09 #4
det kunne jeg fandt selv lige den samme løsning :), smid et svar så får du dine point
Avatar billede tigertool Nybegynder
15. juli 2006 - 22:14 #5
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester