/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Sammensatte felter i SQL
Fra : Allan Jensen


Dato : 27-05-01 21:43

Skulle jeg ikke kunne søge i et sammensat felt såsom her:

SELECT *, [Firstname] & ' ' & [Lastname] & ' ' & [Location] & ' ' &
[ICQ] & ' ' & [e-mail] AS AllFields FROM People WHERE ((AllFields LIKE
'%" & searchkeywordSQL & "%') OR (Lastname LIKE '%" & searchkeywordSQL
& "%')

Jeg kan godt skrive feltet AllFields til skærmen, men så snart jeg
sætter det ind i WHERE-clausen siger den: "Too few parameters.
Expected 1." Det synes jeg er underligt....


 
 
Jørn Andersen (27-05-2001)
Kommentar
Fra : Jørn Andersen


Dato : 27-05-01 22:46

On Sun, 27 May 2001 22:43:15 +0200, Allan Jensen <public@hverdag.dk>
wrote:

>Skulle jeg ikke kunne søge i et sammensat felt såsom her:
>
>SELECT *, [Firstname] & ' ' & [Lastname] & ' ' & [Location] & ' ' &
>[ICQ] & ' ' & [e-mail] AS AllFields FROM People WHERE ((AllFields LIKE
>'%" & searchkeywordSQL & "%') OR (Lastname LIKE '%" & searchkeywordSQL
>& "%')

>Jeg kan godt skrive feltet AllFields til skærmen, men så snart jeg
>sætter det ind i WHERE-clausen siger den: "Too few parameters.
>Expected 1." Det synes jeg er underligt....

Jeg prøvede at opbygge den i Access 97, men den insisterer på at
gentage hele strengen i stedet for AllFields i WHERE-clausen.

Men måske det kan lade sig gøre med andre programmer?

En anden ting: Der er vel ingen grund til at teste på Lastname, når
den allerede er inkluderet i første del af WHERE-clausen?

Good luck,
Jørn

--
Jørn Andersen
Brønshøj

Allan Jensen (28-05-2001)
Kommentar
Fra : Allan Jensen


Dato : 28-05-01 10:16

>>Skulle jeg ikke kunne søge i et sammensat felt såsom her:
>>
>>SELECT *, [Firstname] & ' ' & [Lastname] & ' ' & [Location] & ' ' &
>>[ICQ] & ' ' & [e-mail] AS AllFields FROM People WHERE ((AllFields LIKE
>>'%" & searchkeywordSQL & "%') OR (Lastname LIKE '%" & searchkeywordSQL
>>& "%')
>
>>Jeg kan godt skrive feltet AllFields til skærmen, men så snart jeg
>>sætter det ind i WHERE-clausen siger den: "Too few parameters.
>>Expected 1." Det synes jeg er underligt....
>
>Jeg prøvede at opbygge den i Access 97, men den insisterer på at
>gentage hele strengen i stedet for AllFields i WHERE-clausen.

Hallo - du er jo genial! Det virker når jeg skriver hele strengen i
WHERE. Det havde jeg ikke lige tænkt på...

>Men måske det kan lade sig gøre med andre programmer?

Det burde kunne lade sig gøre på den anden måde også, men det er nu
lige meget når bare det virker på denne.

>En anden ting: Der er vel ingen grund til at teste på Lastname, når
>den allerede er inkluderet i første del af WHERE-clausen?

Jo fordi..... nææhhh det har du egentlig ret i! Og jeg har endda
seperat søgning på flere felter, men det er der jo ingen grund til!

Cool tak!


Peter Lykkegaard (28-05-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 28-05-01 13:41


"Allan Jensen" <public@hverdag.dk> wrote in message
news:fc54ht83vdr3u1hht84g1h2ek78266imsn@4ax.com...
> >Men måske det kan lade sig gøre med andre programmer?
>
> Det burde kunne lade sig gøre på den anden måde også, men det er nu
> lige meget når bare det virker på denne.

Ikke i MSAccess
Det ville virke fint på MSSQL

Hvis du vil lave det i Access, så kunne du lave en forespørgsel/query først
og så bruge denne til din søgning
Syntaks mv er den samme mht din Select statement

ex SELECT * FROM qryPeople WHERE AllFields LIKE '%" & searchkeywordSQL &
"%')
Hvor qryPeople er en forespørgsel lavet/gemt i din MSAccess DB

Vær opmærksom på at der vil blive lavet tablescan ved søgninger af denne
konstruktion
Læs: Det er ikke den hurtigste søgning
Jeg har dog ikkke lige et bud på hvordan man kan lave det anderledes i
MSAccess

mvh/Peter Lykkegaard



Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste