Avatar billede lklingenberg Nybegynder
01. november 2002 - 01:17 Der er 1 kommentar og
1 løsning

SQL streng med fejl (invalid column name)

Hi,

Nedenstående SQL streng generer fejlen 'Invalid column name 'fuldenavn''. Fejlen opstår i linjen '"OR fuldenavn LIKE <snip>'. Fjerner jeg linjen er der ingen fejl, men tilgengæld kan man ikke søge på fulde navn og man får ingen hits hvis man søger på strengen "John Doe" selvom han findes. Søger man på enten "John" eller "Doe" får man hits. Det er jo ikke smart at man ikke kan søge på fuldenavn. Nogle ideer til hvad der er galt med SQL strengen eller ideer til andre måde at gribe det an på...

/Lars

---

"SELECT vises, fornavn, efternavn, UI, (fornavn + ' ' + efternavn) AS fuldenavn " & _
"FROM censorkorps " & _
"WHERE (fornavn LIKE '%" & Replace(strSearch, "'", "''") & "%' " & _
"OR efternavn LIKE '%" & Replace(strSearch, "'", "''") & "%' " & _
"OR fuldenavn LIKE '%" & Replace(strSearch, "'", "''") & "%') " & _
"AND vises=1 " & _
"ORDER BY fuldenavn ;"
Avatar billede medions Nybegynder
01. november 2002 - 07:23 #1
Jeg vil ikke mene du kan sætte mellemrum direkte ind i din SQL statement!...

"SELECT vises, fornavn, efternavn " & _
"FROM censorkorps " & _
"WHERE (fornavn LIKE '%" & Replace(strSearch, "'", "''") & "%' " & _
"OR efternavn LIKE '%" & Replace(strSearch, "'", "''") & "%' " & _
"OR fuldenavn LIKE '%" & Replace(strSearch, "'", "''") & "%') " & _
"AND vises=1 " & _
"ORDER BY fuldenavn ;"
Set objRs = objConn.Execute(strSQL)

strFullName = objRs("fornavn") & " " & objRs("efternavn")

-så tag hellere at lav en variabel der gør det for dig...

//Rune
Avatar billede coltau Juniormester
01. november 2002 - 23:05 #2
Din DB understøtter ikke søgning i et alias (fuldenavn) når det er sammensat af to felter og en tekst i mellem (Space)

Det er jo ikke nemt at lade brugeren søge på det fulde navn (indtastet i et felt) når det fulde navn er delt i 2 felter i databasen.
Det ville være nemmere hvis brugeren skulle indtaste navn i et felt for sig selv og efternavn i et felt for sig selv når navn og efternavn er gemt i 2 felter i DB.

Du er nok nødt til at nedbryde strSearch i et eller flere ord og evt. søge med begge ord i hvert felt. (fornavn og efternavn) Det skulle ikke undre mig om nogle brugere kunne finde på at indtaste efternavnet først. :-)
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
Kurser inden for grundlæggende programmering

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