16. januar 2010 - 22:26Der er
7 kommentarer og 1 løsning
User defined function og returnering af recordset
Hej,
Jeg har brug for at få returneret et recordset i en streng fra en user defined function.
Jeg bruger en 3. part application der kun kan returnere TOP 1 fra et recordset og har jeg brug for at returnere x antal records. Derfor prøver jeg at bruge en UDF der returnere en streng.
Er der nogen der kan hjælpe med en user definded funtion der returnerer recordsettet i en streng?
Det er feltet ErrorDescription jeg har brug for at få returneret og der kan være flere records i tabellen, der matcher kriteriet 'PENDING'
Jeg har prøvet nedenstående, men uden held.
SELECT @Records = @Records + ErrorDescription FROM Alarm WHERE CurrentStatus='PENDING'
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Jeg har stadig et lille problem, måske det kun er kosmetisk, men queryen returnere lige så mange records som der findes i tabellen..! I skrivende stund har jeg kun 2 records, der matcher kriteriet 'PENDING'
Den endelige er velsnildt stadig denne: SELECT @Records = isnull(@Records, '') + isnull(ErrorDescription, '') FROM Alarm WHERE CurrentStatus='PENDING'
select @Records
Det er forøvrigt en fin måde at gå fra et normaliseret design til en string, det hænder jo at man skal vise alle selectede værdier (som jo naturligvis er opbevaret korrekt 1:n), og så er det jo lækkert at kunne trække dem pænt kommasepareret med ud alá:
SELECT @Records = isnull(@Records, '') + ', ' + isnull(ErrorDescription, '') FROM Alarm WHERE CurrentStatus='PENDING'
Ja, men Business logic hører bare ikke til i databasen.
Men hvis man ikke kan komme uden om det ... så kan man jo blive nød til det.
// ouT
Synes godt om
Ny brugerNybegynder
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.