Avatar billede muggen Nybegynder
01. oktober 2003 - 23:49 Der er 8 kommentarer og
1 løsning

Komma vs. punktum i søgning

Jeg har et søgefelt på en side hvor man skal søge efter et tal. Man skal kunne søge med kommatal (f.eks 7,1). Problemet er bare at jeg får fejl når jeg bruger komma, men det virker fint når jeg bruger punktum (f.eks. 7.1).
Jeg får følgende fejlmeddelelse når jeg bruger komma:

Fejltype:
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl, fordi der mangler et komma. i forespørgselsudtrykket "netweight =0,9".

Hvordan får jeg lavet det om så jeg kan bruge komma i stedet for punktum når jeg søger??
Avatar billede medions Nybegynder
01. oktober 2003 - 23:51 #1
Så prøv at stil din SQL sætning op sådan her:

SELECT * FROM tblTabelnavn WHERE netweight = INT(" & Request.Form("search") & ")

//>Rune
Avatar billede muggen Nybegynder
02. oktober 2003 - 00:02 #2
medions> Det giver bare følgende fejl:

Fejltype:
Microsoft JET Database Engine (0x80040E14)
Antallet af argumenter til funktionen er forkert i forespørgselsudtrykket "netweight =INT(0,9)".
Avatar billede medions Nybegynder
02. oktober 2003 - 00:13 #3
så prøv med CINT istedet for INT

//>Rune
Avatar billede medions Nybegynder
02. oktober 2003 - 07:47 #4
Ellers prøv at læs denne debat engang:

http://www.eksperten.dk/spm/304788

Der er en der har haft samme problem som dig...

//>Rune
Avatar billede soes Nybegynder
02. oktober 2003 - 08:53 #5
Det er vist ikke specielt smart at bruge funktionen int da det vil lave dit tal om til et heltal, dvs. uden decimaler og det lyder ikke lige til at det er det du er ude efter.

Jeg har ikke prøvet det som du er på jagt efter, men hvis du vil ændre din datatype så burde du nok bruge CDbl istedet. Det vil lave tallet om til en double hvilket kan holde et kommatal.
Avatar billede hiks Nybegynder
02. oktober 2003 - 09:10 #6
hej

høkermetoden ville nok være at lave en replace på dit komma, du skal jo alligevel have tjekket din søgestreng for alle mulige tegn inden SQL'en ryger i databasen:

netweight = (" & Replace(Request.Form("search"),"","",""."") & ")

evt. kan man vel som soes også skriver bruge CDbl istedet og lave dit "landesetting" om til:

Session.LCID = 1030

:Hiks
Avatar billede soes Nybegynder
02. oktober 2003 - 12:24 #7
dette er lige en tanke der kom, ved ikke om det kan lade sig gøre rent praktisk.

dblSearch = Request.Form("search")
SELECT * FROM tblTabelnavn WHERE (CDbl(netweight) - "& CDbl(dblSearch) &") = 0"
Avatar billede muggen Nybegynder
04. oktober 2003 - 21:14 #8
hiks > Jeg har prøvet at bruge din "høkermetode" men får følgende fejl:

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F2)
Id var ventet
/bac/seek1.asp, line 11, column 50
fro = Replace(Request.querystring("fro"),"","",""."")

Jeg tror at id referer til punktomet, men ved ikke hvad det er for et id den spørger efter. Kan du hjælpe? På forhånd tak for hjælpen.
Avatar billede hiks Nybegynder
05. oktober 2003 - 12:47 #9
jow jow...

det er fordi at jeg troede du satte den ind direkte i din SQL-streng derfor er der alt for mange "'er... :o)

Prøv denne istedet:
fro = Replace(Request.querystring("fro"),",",".")


så burde den være der...

/hiks
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

IT-JOB

Capgemini Danmark A/S

Java Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef for Facility Management til Forsvarets nye Digital Backbone

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Kryptokustode til opbygning af Forsvarets nye IT-platform