åsså ytterligare en riktig rookiefråga... Gör en procedur som genererar ett resultat. (SELECT) Hej Micke! Om alla kolumnerna är char, så skulle det vara en lite långsammare lösning. (Om kolumnerna var annat, skulle CAST/CONVERT göra att det blev mycket långsammare. Ursäkta att jag sätter igång en tråd, och se'n lämnar den. Gör som du gör nu. Nae, fattade aldrig hur jag skulle göra, men en sql-guru kom in och löste problemet,,, kallar härmed tråden olöst men avslutadMS SQL Stored procedures
Jag ska försöka skapa min första stored procedure.
Den ska
1. Köra en fråga som resulterar ett företags alla typer såsom producent, återförsäljare o.s.v.
Vi leker att frågan ser ut ung så här: SELECT ftgTyp FROM ftg WHERE ftgTyp<>""
2. Sedan vill jag ta resultatet (0-3 rader blir det) och lägga dem i en (komma+space)-separerad sträng
som returneras.
Hmm, hur ser sedan ett principiellt asp-anrop ut?
Tacksam för all hjälp/ FSv: MS SQL Stored procedures
Kör den med en SqlDataReader
Skapa din kommaseparerade sträng i .NET
/mickeSv:MS SQL Stored procedures
Fundering.
Om kolumnerna/fälten är char.
Skulle följande fråga vara en (mycket?) sämre (långsammare) lösning,
än att plocka isär och sätta ihop i .NET?
<b>SELECT A + ', ' + B + ', ' + C FROM tabell WHERE something...</b>
//HåkanSv: MS SQL Stored procedures
I varje fall får SQL Server mer att göra, och man får då se om det är SQL eller IIS som behhöver mest hjälp.
Flexibilitet!! Det är ytterst sällan man har nytta av en procedur som returnerar en kommaseparerad sträng. Ett "vanligt" resultatset kan man återanvända - men om det inte heller behövs, så spelar det (nästan) ingen roll vad man väljer.
/mickeSv: MS SQL Stored procedures
Problemet är att jag fått i uppdrag att skriva just en stored procedure som returnerar denna sträng,
och den ska anropas från en asp-sida (inte asp.net).
Diskussionen ovan är intressant, men på en för hög nivå;)
Min fråga är hur jag i min stored procedure kan bygga en sträng från de rader (varchar)
min sp ser ut så här för tillfället och returnerar ett recordset, som jag kan skriva ut från asp-sidan.
jag har börjat (och kommenterat bort) fixa med en sträng som ska returneras, men när jag letar efter exempel så hittar jag bara så'na där en returkod skickas.
****************
ALTER PROCEDURE dbo.sp_ftgTyp
(
@kunID int= NULL--,
--result varchar OUTPUT
)
AS
--DECLARE @typstrang varchar(200)
SELECT dbo.TypAvKund.typBolag
FROM dbo.TypAvKund INNER JOIN
dbo.Typ_Kund ON dbo.TypAvKund.typID = dbo.Typ_Kund.typID
WHERE (dbo.Typ_Kund.kunID = @kunID)
RETURN
******************
..och anropet från aspsidan ser ut så här:
*****************
ftgtyp="sp_ftgTyp @kunID=" & kunID & ""
set rs = Conn.Execute(ftgtyp)
******************
...men hur gör jag anropet då jag vill ha en sträng i retur?
/FredrikSv:MS SQL Stored procedures
Du plockar väl ut kolumnen med rs!typBolag bara - eller?
/mickeSv: MS SQL Stored procedures
/fredrik (lovar att dra mitt strå till stacken och bli medlem så snart jag ligger plus! Tack alla för all hjälp)