Avatar billede tballe Nybegynder
10. juli 2007 - 17:57 Der er 4 kommentarer og
1 løsning

Få returneret en returværdi fra en PROCEDURE

Hej

Er der nogen der kan hjælpe mig med at knække den her?
Jeg skal bruge en returværdi der returnerer en værdi fra
SELECT MAX(LEN(@a)) FROM @b via  en PROCEDURE

Jeg har prøvet følgende hvad går galt ?

IF EXISTS (SELECT name FROM sysobjects WHERE name = 'usp_MaxLenField' AND type = 'P')
DROP PROCEDURE usp_MaxLenField
go
CREATE PROCEDURE usp_MaxLenField
@a varchar(256),
@b varchar(256),
@c varchar(256)
--@d int
AS
DECLARE @sql varchar(256)
DECLARE @tableName varchar(256)
DECLARE @fieldName varchar(256)
DECLARE @returnField varchar(256)
DECLARE @returnValue int

Select @tableName = @a
Select @fieldName = @b
SELECT @returnField = @c
--SELECT @returnValue

SELECT @sql = SELECT @returnValue =
'(SELECT MAX (len(' + @fieldName + '))) FROM' + @tableName + ' ' +  @fieldName
RETURN @returnValue
go
EXEC usp_MaxLenField test3, b, test

Hilsen tballe
Avatar billede hrc Mester
10. juli 2007 - 18:57 #1
Du skal definere en output parameter .. @returnvalue int output som du tildeler værdien
Alternativt kan du vel lave en funktion?
Avatar billede hrc Mester
10. juli 2007 - 18:59 #2
Har ledt efter MS' egen referenceguide på MSDN, men den er gemt godt væk for Google.

Her er et andet eksempel: http://www.sqlxml.org/faqs.aspx?faq=54
Avatar billede tballe Nybegynder
11. juli 2007 - 09:06 #3
Hej hcr

Jeg tror ikke at det går med en funktion, fordi jeg skal parameteroverføre tabelnavn og feltnavn. Jeg har set på eksemplerne, men kan ikke gennemskue dem. Kunne du være lidt mere specifik med hensyn hvordan jeg skal sætte output på.

Hilsen tballe
Avatar billede tballe Nybegynder
11. juli 2007 - 12:30 #4
Jeg har selv fundet på en anden løsning og klare det ved noget programmering.
Så jeg lukker nu.

Hilsen tballe
Avatar billede hrc Mester
11. juli 2007 - 18:05 #5
Nu kunne det faktisk ikke være lettere. Hvis du ikke kan finde ud af at slå linket op, søge på "output" og forstå det aldeles simple eksempel, forstår jeg ikke at du overhovedet har kunne frembringe den procedure du har givet ovenfor.

En funktion ville også være en aldeles fornuftig løsning; det hele starter med at læse noget SQL-dokumentation.
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