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

Poziv user defined function na linkovnom serveru

[es] :: MS SQL :: Poziv user defined function na linkovnom serveru

[ Pregleda: 2028 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sivan347
.NET Programer
Beograd

Član broj: 84406
Poruke: 101
*.fiberop.matgnet.com.



Profil

icon Poziv user defined function na linkovnom serveru06.09.2006. u 10:33 - pre 214 meseci
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?
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
217.169.219.*

Jabber: DarkMan


Profil

icon Re: Poziv user defined function na linkovnom serveru06.09.2006. u 18:13 - pre 214 meseci
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>]
 
Odgovor na temu

sivan347
.NET Programer
Beograd

Član broj: 84406
Poruke: 101
*.fiberop.matgnet.com.



Profil

icon Re: Poziv user defined function na linkovnom serveru08.09.2006. u 12:32 - pre 214 meseci
Batice,
pogledaj u sql helpu kako se poziva korisnicki definisana funkcija koja vraca tabelu pa me tek onda ispravljaj.
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
217.169.219.*

Jabber: DarkMan


Profil

icon Re: Poziv user defined function na linkovnom serveru08.09.2006. u 15:45 - pre 214 meseci
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.
 
Odgovor na temu

[es] :: MS SQL :: Poziv user defined function na linkovnom serveru

[ Pregleda: 2028 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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