Avatar billede johnson Nybegynder
03. februar 2001 - 00:31 Der er 11 kommentarer og
1 løsning

Hjælp til streng

Jeg får en mærkelig fejl med IS-server til Windows 2000. Jeg har en funktion som returnerer et søgeresultat i en database. Jeg bruger følgende streng. Strengen virker i IS-serveren til Windows NT4.0. Hvad kan jeg gøre, for at få det til at virke.

/Johnson

-------------------------------------------
<%
set conntemp=server.createobject(\"adodb.connection\")

Conntemp.Open \"MINdatabase\"

nyhed = Trim(Request(\"nyhed\"))

WhereClause = \"WHERE \"

If nyhed <> \"\" Then
WhereClause = WhereClause & \"InStr(nyhed,\'\" & nyhed & \"\') AND \"
End If


If Right(WhereClause,4) = \"AND \" Then
WhereClause = Left(WhereClause, Len(WhereClause) -4)

Query = \"SELECT * FROM NYHEDER \" & WhereClause

Set Class = Conntemp.Execute(Query)
%>
Avatar billede brain Nybegynder
03. februar 2001 - 00:34 #1
Problemet er at du bruger DSN som dataenabler. Du skal sætte DSN (ODBC link) op på serveren. Koden er sat til at bruge et ODBC link der hedder MINdatabase til at åbne med, dette skal oprettes (ControlPanel|ODBC) og peger på den database du vil bruge...
Avatar billede johnson Nybegynder
03. februar 2001 - 00:52 #2
Hej Brain

Jeg har prøvet den returnerer følgende

/nyhedresultat.asp, line 20, column 4
Set Class = Conn.Execute(query)
---^

Jeg har oprettet en System DSN på serveren til pågældende database, er det ikke det du mener eller misforstår jeg dig?.

/Johnson
Avatar billede brain Nybegynder
03. februar 2001 - 00:56 #3
Set Class = Conn.Execute(query)  ? Mener du ikke...

Set Class = Conntemp.Execute(query) ?

Avatar billede brain Nybegynder
03. februar 2001 - 00:57 #4
Der mangler også en end if her...

WhereClause = Left(WhereClause, Len(WhereClause) -4)

<lige her>

Query = \"SELECT * FROM NYHEDER \" & WhereClause



Avatar billede johnson Nybegynder
03. februar 2001 - 01:10 #5
Jeg har sat END IF ind, den giver fortsat følgende
/Johnson
--------------------------------------------------
Technical Information (for support personnel)

Error Type:
Microsoft VBScript compilation (0x800A03EA)
Syntax error
/nyhedresultat.asp, line 20, column 4
Set Class = Conntemp.Execute(Query)
---^
Avatar billede strax Nybegynder
03. februar 2001 - 01:18 #6
Class er et reservert ord, bare brug et andet f.eks klasse eller lignende
Avatar billede brain Nybegynder
03. februar 2001 - 01:21 #7
Ahh. Det er fordi der er en fejl længere oppe ved Instr...jeg tror linjen skal være :

WhereClause = WhereClause & \"nyhed like \'\" & nyhed & \"\' AND \"

og ikke...

WhereClause = WhereClause & \"InStr(nyhed,\'\" & nyhed & \"\') AND \"

InStr er ikke en Access funktion...
Avatar billede johnson Nybegynder
03. februar 2001 - 01:22 #8
Tak Strax
Du løber med æren, og jeg blev en glad gut som kan gå roligt til ro.

/Johnson
Avatar billede strax Nybegynder
03. februar 2001 - 01:29 #9
Forstår ikke helt den streng. Lad os sige nyhed er vejret får man jo en

select * for nyheder where vejret ??? den går vel ikke? Eller er jeg bare for træt?

Hvad med en:

If nyhed <> \"\" Then
WhereClause = WhereClause & \" nyhed like \'%\" & nyhed & \"%\' AND \"
End If


Avatar billede brain Nybegynder
03. februar 2001 - 01:41 #10
strax >> Jeg er helt enig....som også kommenteret tidligere...:)
Avatar billede strax Nybegynder
03. februar 2001 - 01:44 #11
brain: ååh, ja sorry, ikke min mening at kopiere din linie, læste den omvendt og så det nederste som dit forslag :-) ... men vi ved jo ikke hvad der står i nyhed, lyder ihvertfald som om han fik det til at virke.
Avatar billede brain Nybegynder
03. februar 2001 - 01:49 #12
strax: Jeg havde også glemt % tegn anyway, men ja, det kom til at virke. Det er jo det vigtigste :)
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