[ sivan347 @ 06.09.2006. 10:33 ] @
Prvo sam ulinkovao server pozivanjem sledecih procedura:

exec sp_addlinkedserver 'Server'
exec sp_addlinkedsrvlogin 'Server', False, NULL, 'sa', 'password'
i kad izvrsim sp_linkedservers dobijem prikaze mi da je Server ulinkovan ali kad odradim sledeci upit:

select * from Server.Baza.dbo.Naziv funkcije (parametar)

izbaci mi gresku: "Incorrect syntax near '('". Ako sklonim zagradu on Naziv funkcije vidi kao tabelu.
Kad funkciju pozovem na serveru na kom se nalazi ona mi vraca podatke.
Da li neko zna gde gresim ili kako se pozivaju distribuirane funkcije sa parametrom?
[ DarkMan @ 06.09.2006. 18:13 ] @
Jesi li ti pogresio u kucanju posta ili si stvarno napisao select * from <ime funkcije> ?
U select upitu funkcija ne moze doci na mesto tabele jer funkcija moze da vrati samo jednu vrednost (a ne tabelu).
Jedino sto mozes uraditi je select <ime funkcije>(<parametri>) [from <neka tabela>]
[ sivan347 @ 08.09.2006. 12:32 ] @
Batice,
pogledaj u sql helpu kako se poziva korisnicki definisana funkcija koja vraca tabelu pa me tek onda ispravljaj.
[ DarkMan @ 08.09.2006. 15:45 ] @
Izvinjavam se. Stvarno nisam znao da je to moguce a cak mislim da sam to negde i procitao.
Uglavnom, pogledao sam u cemu je problem. Problem je da SQL Server 2000 ne dozvoljava izvrsavanje korisnickih metoda preko linovanih servera.
Jedno od zaobilaznih resenja je:
Code:

select * from openquery(Server, 'select * from Baza.dbo.funkcija(parametar)')


Ako ces prosledjivati parametar preko promenljivih (a najverovatnije hoces) moras koristiti sledece:
Code:

exec Server.master.dbo.sp_executesql N'select * from Baza.dbo.funkcija(@parametar)', N'@parametar int', @parametar = 1


Ako ti se pojavi poruka da za linkovan server nije dozvoljeno izvrsavanje RPC-a, mozes ih ukljuciti koriscenjem enterprise manager-a ili na sledeci nacin:
Code:

exec sp_serveroption N'Server', N'rpc', N'true' 
exec sp_serveroption N'Server', N'rpc out', N'true' 


http://support.microsoft.com/default.aspx?scid=kb;en-us;Q319138

Jos jednom se izvinjavam. Ubuduce cu pazljivije odgovarati.
Pozdrav.