Avatar billede simsen Mester
13. marts 2008 - 11:32 Der er 6 kommentarer og
1 løsning

Caste virker ikke

Hej, jeg har nedenviste sql sætning, som jeg ikke kan få til at virke. Jeg VED der findes en fCompanyPId = 2, og den forsøger jeg at selecte ud ved at skrive 2 i min SearchString. Den fejler ikke, men viser så heller ikke den række.

Nogen der kan se, hvor jeg gør fejl?

SELECT    fCompanyPId, fCompanyName
FROM      tCompany
WHERE    (CAST(fCompanyPId AS VARCHAR(200)) LIKE ' %' + @SearchString + '%') OR
                      (fCompanyName LIKE '%' + @SearchString + '%')

mvh
simsen :-)
Avatar billede the_party_dog Nybegynder
13. marts 2008 - 11:37 #1
Hvad er din @SearchString? VARCHAR? Husker du at angive størrelse på den, så den kan indholde det du søger efter?
Avatar billede simsen Mester
13. marts 2008 - 11:41 #2
the party dog

Min @SearchString er et tekstfelt - hvor jeg kan skrive alt ind - f.eks. 2 eller Hans
Hvis det er 2, skal den jo søge i fCompanyPId (som er et int felt) efter de der indeholder 2 og er det Hans, skal den søge i fCompanyName efter alle navne der indeholder hans.

Og hvad mener du med at angive størrelsen?
Avatar billede the_party_dog Nybegynder
13. marts 2008 - 11:47 #3
Når du opretter en variabel skal du angive størrelse på den.

Declare @SearchString VARCHAR(10), så kan den indeholde 10 tegn, ellers kan den ikke indeholde noget af betydning....

Er det her en blandning imellem noget .NET kode og din select statement du laver imod din database?
Avatar billede simsen Mester
13. marts 2008 - 11:50 #4
the party dog

Den variabel @SearchString er en der kommer fra .NET ind i en Stored Procedure jeg vil lave, så jeg vil aldrig ane om den er 20 tegn eller om den er 200 tegn - kan jeg sætte den stor nok (f.eks. 1000 tegn)?
Avatar billede simsen Mester
13. marts 2008 - 11:59 #5
the party dog

Det fungerede ved at erklære med størrelse......

Kan du fortælle mig, om den  kan sættes til f.eks. 1000 tegn og hvad det gør ved performance?

Smid et svar og tak for hjælpen :-)
Avatar billede the_party_dog Nybegynder
13. marts 2008 - 12:26 #6
Forventer du at folk søger efter 1000 tegn?! :o) Prøv at skrive det længeste du kan komme på i en word fil og se hvor mange tegn 1000 er.

Hold dig til 50-100 stykker, kan ikke for stille mig noget skulle overstige dette. Det er jo et søgefelt, hvor du arbejder med like, så det er jo kun få bogstaver der skal til for at de får et hit.

VARCHAR i 2000/2005 kan være op til 2000/4000 tegn, har ikke lige slået det op....
Avatar billede simsen Mester
13. marts 2008 - 13:03 #7
Jeg forventer ingenting lige nu. Men du har ret, har også reduceret det ned til 200. Så er jeg dækket fuldstændig ind :-)
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