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

MS SQL Cursor insert u @tablica

[es] :: MS SQL :: MS SQL Cursor insert u @tablica

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igrgic13

Član broj: 141138
Poruke: 23



+1 Profil

icon MS SQL Cursor insert u @tablica17.03.2011. u 08:36 - pre 158 meseci
Dragi kolege trebam pomoć.
Naime imam potrebu koristi cursor za jedan problem koji prebrojava rekorde te koji bi to sve trebao zapisat u novu varijablu @tablica...ali nikako mi ne uspijeva.
kako izgleda code:

ALTER function [dbo].[test4]()
returns @TESTNA_TABLICA table
(
ime nvarchar(255),
prezime nvarchar(255),
ustrojId nvarchar(50)
)

as
begin
--INSERT INTO @TESTNA_TABLICA
declare osoblje_cursor cursor -- deklariram kursor
read_only
for SELECT
ime,
prezime,
ustrojId
FROM dbo.osoblje

declare --upisujem vrijednosti iz krusora
@ime nvarchar(255),
@prezime nvarchar(255),
@ustrojId nvarchar(50)

open osoblje_cursor

WHILE @@FETCH_STATUS = 0

BEGIN

fetch osoblje_cursor
insert into @TESTNA_TABLICA (ime, prezime, ustrojId)values (
@ime,
@prezime,
@ustrojid )
--PRINT @ime + ' ' + @prezime + ' ' + @ustrojid
return
END
close osoblje_cursor
DEALLOCATE osoblje_cursor
return
end

greska koju mi javlja:
Msg 444, Level 16, State 2, Procedure test4, Line 34
Select statements included within a function cannot return data to a client.

problem je u tome ako promijenim ovaj dio
fetch osoblje_cursor
insert into @TESTNA_TABLICA (ime, prezime, ustrojId)values (
@ime,
@prezime,
@ustrojid )
u fetch osoblje_cursor into
@ime,
@prezime,
@ustrojid
tada ne dobim gresku ali kad startam funkciju dobim praznu tablicu...HELP!!
 
Odgovor na temu

Dusan Kondic
Programer
ZR "Parametar" Ljubovija
Ljubovija

Član broj: 49961
Poruke: 225
178.222.71.*

Sajt: www.drinacoding.com


+14 Profil

icon Re: MS SQL Cursor insert u @tablica17.03.2011. u 09:18 - pre 158 meseci
Probaj prvo da upišeš podatke u promenljive
pa onda da uneseš te podatke u tabelu

fetch osoblje_cursor into
@ime,
@prezime,
@ustrojid

insert into @TESTNA_TABLICA (ime, prezime, ustrojId)values (
@ime,
@prezime,
@ustrojid )

Lično ne volim kursore jer su "skupi".
Ne razumem problem, ali verujem da može da se reši i bez kursora.
Pozdrav
 
Odgovor na temu

igrgic13

Član broj: 141138
Poruke: 23



+1 Profil

icon Re: MS SQL Cursor insert u @tablica17.03.2011. u 09:24 - pre 158 meseci
hvala puno...evo uspio sam dobit zeljeni rezultat

open osoblje_cursor
WHILE @@FETCH_STATUS = 0
BEGIN
insert into @TESTNA_TABLICA
SELECT
ime,
prezime,
ustrojId
FROM dbo.osoblje
fetch osoblje_cursor into
@ime,
@prezime,
@ustrojid
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
82.117.202.*

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: MS SQL Cursor insert u @tablica17.03.2011. u 09:34 - pre 158 meseci
A zasto ne moze:

INSERT INTO @TESTNA_TABLICA (ime, prezime, ustrojId) SELECT ime, prezime, ustrojId FROM dbo.osoblje

??

Ako treba da prebrojis zapise lakse ces uraditi sa SELECT @tablica = COUNT(nesto) FROM nestoDrugo...

Mislim da ti ne treba kursor za ovo, i ako ikako mozes da izbegnes upotrebu kursora (a mozes u 90% slucajeva) do it
Every hamster has his day.
 
Odgovor na temu

[es] :: MS SQL :: MS SQL Cursor insert u @tablica

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

Postavi temu Odgovori

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