Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 11:30 Der er 12 kommentarer og
1 løsning

problemermed LIKE

Jeg har et problem med følgende stored procedure.
Indholdet af parameteren jeg sender med er f.eks. \"microsoft\". Proceduren giver ikke noget resultat. Hvis jeg derimod \"hardcoder\" microsoft ind i proceduren så virker den fint nok.
Nogen bud på hvad jeg kan gøre???

print \'create searchByName procedure\'
drop procedure searchByName

go
create procedure searchByName (
  @name      Names ) as
   
begin
print \'Berkeley author\'
  SELECT id, ExtFirm.name, addressLine1, ExtFirm.zipCode, ZipCode.name, phone, homePage, remarks, fax
  FROM ExtFirm, ZipCode
  WHERE ExtFirm.name LIKE @name AND ExtFirm.zipCode=zipcode.zipcode
end

go
Avatar billede slash Nybegynder
23. marts 2001 - 11:33 #1
syntaxen for like er vist nok:
like \'%@name%\' - oxo i en sp!

Deslige vil jeg anbefale at du trimmer din søgestreng for whitespaces i for og bag - hvis du da ikke gør det i forvejen!
Avatar billede slash Nybegynder
23. marts 2001 - 11:35 #2
og hvis din sql-server har en sort order der siger case-sensitiv, så er du fucked :O)
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 11:41 #3
Det gjorde ikke nogen forskel med den syntax. Er det nødvendigt at trimme søgestrengen, hvis man ved den er \"microsoft\"

sort order case sensitiv??
Avatar billede slash Nybegynder
23. marts 2001 - 11:44 #4
når du indallerer din sql-server kan du vælge sort order. Hvis den er case-sensitiv, så betyder dette at hvis du i et felt har en streng: microSOFt og din indtastede søgestreng er microsoft, så returneres der intet til dig! microsoft er ikke lig med microSOFt - heller ikke med wildcards!

prøv engang at udskrive din variable @name i sp\'en
Avatar billede weje Nybegynder
23. marts 2001 - 11:49 #5
Hvordan ændrer man så denne \"Sort order\"??
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 11:50 #6
det gør med...
PRINT @name  ????

Hvor bliver den så skrevet ud?
Avatar billede slash Nybegynder
23. marts 2001 - 11:56 #7
den eneste måde du kan ændre sort-order på ved sql 7.0 er en reinstallation af serveren! Ved sql server 2000 kan du ændre sort-order uden at skulle reindallere :O)

print @name skulle helst skrive den ud... men hvor ved jeg ikke... i hvert fald ikke på din .asp side! Hvorfor ikke bare lige lægge din sp over i .asp koden? Få det til at virke dér først og så sp bagefter
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 12:03 #8
jamen så er jeg jo ovre i noget lignende

SELECT id, ExtFirm.name, addressLine1, ExtFirm.zipCode, ZipCode.name, phone, homePage, remarks, fax
  FROM ExtFirm, ZipCode
  WHERE ExtFirm.name LIKE \'microsoft\' AND ExtFirm.zipCode=zipcode.zipcode

Og det ved jeg godt at det virker.
PS: jeg bruger jsp, men der er jo heller ikke den helt store forskel
Avatar billede ams Nybegynder
23. marts 2001 - 12:03 #9
Den vil virke hvis du definere @name as varchar.
Avatar billede weje Nybegynder
23. marts 2001 - 12:06 #10
Okay, tak. Så er det jo heldigt jeg har SQL 2K :-)
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 12:12 #11
Det hjalp desværre heller ikke ams
Jeg har både prøvet
@name varchar  og
@name varchar(80)  som er størrelsen nede i tabellen.

Avatar billede ams Nybegynder
23. marts 2001 - 12:18 #12
create procedure searchByName(@name varchar(80))as
 
print \'Berkeley author\'

SELECT id, ExtFirm.name, addressLine1, ExtFirm.zipCode, ZipCode.name, phone, homePage, remarks, fax

FROM  ExtFirm, ZipCode
WHERE ExtFirm.name LIKE @name
AND  ExtFirm.zipCode=zipcode.zipcode

-------------------------------


searchByName \'microsoft\'

Den funger 100%. Jeg har lige testet og den funger.

Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 12:48 #13
Jeg kan også få den til at fungere inde i MS SQL, men jeg kan ikke når jeg kalder den fra min JavaBean så du får pointene eftersom det ikke var det jeg spurgte om.
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