Avatar billede paultodobom Nybegynder
11. juli 2003 - 19:08 Der er 9 kommentarer og
1 løsning

Kommasepareret streng af id'er konverteres til liste af id'er

Jeg sender en liste af id'er ind i SQL Svr. stored proc. via ADO.Command.Parameter. ID strengen kunne se sådan ud:
'25,26,86' hvor kommaet separerer hvert enkelt id og ADO kaldet ser sådan ud:
.Parameters.Append .CreateParameter("@BrugerprofilIDListe", adVarChar, adParamInput, Len(strIDListe), strIDListe)

Den stored proc. ser sådan ud:

CREATE PROCEDURE sp_xx
(
    @IDListe    AS NVARCHAR
)
AS

SELECT * from xx where id = @IDListe

Jeg skal have @IDListe lavet om til en liste som ikke er en streng. Hvordan gør man det?
Avatar billede erikjacobsen Ekspert
11. juli 2003 - 19:12 #1
Kunne du i stedet for:

SELECT * from xx where id in (@IDListe)

dvs uden at lave strenge om?
Avatar billede paultodobom Nybegynder
11. juli 2003 - 19:18 #2
skrivefejl! der står SELECT * from xx where id in (@IDListe)
Avatar billede paultodobom Nybegynder
11. juli 2003 - 19:20 #3
Findes der i T-SQL ikke en function a la Split() ligesom i VB?
Avatar billede erikjacobsen Ekspert
11. juli 2003 - 19:42 #4
ok :) Det var også det første jeg ville prøve. Men det skal jo nok være
en liste og ikke en streng. Hvorfor kalder du med en streng og ikke en
liste?
Avatar billede paultodobom Nybegynder
11. juli 2003 - 19:42 #5
en liste?
Avatar billede paultodobom Nybegynder
11. juli 2003 - 19:58 #6
Her http://p2p.wrox.com/archive/vbpro_databases/2002-09/21.asp har jeg fundet én som havde præcis den samme problemstilling som min, men løsningen er ikke beskrevet
Avatar billede paultodobom Nybegynder
11. juli 2003 - 20:09 #7
Avatar billede erikjacobsen Ekspert
11. juli 2003 - 20:13 #8
Hvilken bruger du så? Der er nok løsninger, men ingen af dem er vel sådan
supergode. Men hvorfor var det en streng i første omgang?
Avatar billede paultodobom Nybegynder
11. juli 2003 - 20:19 #9
Jeg har afprøvet det første eks. og er i gang med det næste. Hvis du har en bedre løsning er jeg villig til at sætte point på højkant.
Men hvad mener du med at bruge en liste; er det et array?
Avatar billede erikjacobsen Ekspert
11. juli 2003 - 20:43 #10
Jeg spørger sådan set bare (for 3. gang *g*) om hvor din streng kommer fra.
Er det fordi du laver en kommesepareret liste ud af en SELECT, så kunne
du sikkert kombinere det hele i ét og samme kald. Er det rent faktisk
en streng, er der nok ikke så meget andet at gøre end at prøve noget af det
fra dit link.
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