Avatar billede websitenewbie Nybegynder
25. januar 2013 - 12:02 Der er 7 kommentarer og
1 løsning

Problem med script efter database skift

jeg har fornyligt skift fra access til mysql og har fået rettet det meste af min asp kode til at virker men jeg har en lille del der driller rigtig meget og som jeg gerne vil havde hjælp til

kode stykket gør det at den tjekker hvor længe bruger har været online og vis det er for længe beder den dem om at logge på igen koden her under virkede da jeg brugte access database men nu da jeg vil bruge mysql virker den ikke
efter else sættning køre den resten af koden som fungere

strSQL = "SELECT COUNT(*) FROM bestilt WHERE " & Session.SessionID & " = bestilt.sessionID"
Set database2 = Con.Execute(strSQL)

if (database2(0)) < 2 then
  ' Der er sket en timeout...
  Response.write "Du har været inaktiv for længe og systemet har derfor af sikkeheds mæssige grunde logget dig af hjemmesiden.
  else
Avatar billede moddi100 Seniormester
25. januar 2013 - 12:52 #1
Hvis vi tager udgangspunkt i den SQL-sætning er der som udgangspunkt ikke noget i vejen med den. Men såfremt Session.SessionID ikke blot er et tal, vil det give dig en fejl.

Prøv at smide et par gåseøjn omkring dem, således at sætningen bliver:
strSQL = "SELECT COUNT(*) FROM bestilt WHERE '" & Session.SessionID & "' = bestilt.sessionID"


Hvis det er en tekst opfattes det jo som en kolonne og ikke en værdi.
Avatar billede websitenewbie Nybegynder
25. januar 2013 - 13:19 #2
session.sessionID er bare et tal og jeg tro ikke det er der fejlen ligger men mere nede i if (database2(0)) < 2 then
fejlkoden ser sådan her ud
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens
og linjen den fejler i er den med if (database2(0)) < 2 then
Avatar billede moddi100 Seniormester
25. januar 2013 - 13:35 #3
Det er altid en god ide at skrive eventuelle fejlmeddelelser ind lige så snart du poster dit spørgsmål :)

Nu er ASP ikke lige min stærke side, men mon ikke det vil hjælpe
hvis du flytter slutparentesen:

if (database2(0) < 2) then


Hvis det er fejlen er det dog underligt at det nogensinde har virket, da du i så fald altid har haft en fejl. Ellers må jeg nok bakke ud herfra
Avatar billede websitenewbie Nybegynder
25. januar 2013 - 13:51 #4
jeg har hellere ikke lige lavet koden her så jeg ved ikke hvorfor den virkede før men jeg skal få den til at virke så jeg må bare prøve til den virker men tak for hjælpen og jeg prøver dit forslag inden jeg går helt i krig med den og laver det helt om
Avatar billede websitenewbie Nybegynder
06. februar 2013 - 12:28 #5
jeg har fundet en løsning på problemet der skulle bare " på begge sider af 2 men tak for hjælpen smid et svar så får du points
Avatar billede at_dk Nybegynder
15. februar 2013 - 18:59 #6
Jeg TROR det har noget at gøre med at ASP/VBS bruger "Loose Type Casting", dvs. man ofte slipper godt fra at sammenligne tal og strenge fordi ASP selv konverterer til noget, som kan sammenlignes.

Men prøv at google funktionerne CStr og CInt og så se om ikke det giver god mening at caste dine variabler, så du sammenligner to tal...

/A
Avatar billede moddi100 Seniormester
16. februar 2013 - 15:25 #7
Og et lidt forsinket svar...
Avatar billede at_dk Nybegynder
16. februar 2013 - 16:29 #8
ja da - men selvom jeg ikke selv stiller spørgsmål til "Eksperten", så har jeg mange gang lært noget ved at gå her ind og læse andres spørgsmål og svar. Også de gamle Q & A.
Og så tænkte jeg, at der måske var andre, som gør det samme - og da jeg har lært meget her, så vil jeg bare gerne give noget videre...
;-)
/A
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