13. marts 2008 - 11:32Der 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 + '%')
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.
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)?
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....
Jeg forventer ingenting lige nu. Men du har ret, har også reduceret det ned til 200. Så er jeg dækket fuldstændig ind :-)
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.