Avatar billede sk-man Nybegynder
17. februar 2010 - 16:03 Der er 2 kommentarer

Type mismatch ved string formatering?

Hej

Efter Surftown har opdateret deres server omkring januar har jeg haft en række type mismatch fejl i min ASP kode. Det er kode som virkede fint før opdateringen, og Surftown mener at det er for teknisk til at de vil hjælpe, så jeg håber at der er nogen af jer der kan hjælpe mig.

Jeg får følgende fejl:

Microsoft VBScript runtime  error '800a000d'
Type mismatch
/includes/password_functions.asp, line 31

Her er koden, som tager et brugernavn eller email og sender passwordet i en mail:

Sub sendPassword(strSearch)

    Dim strSQL
    Dim rs
    Dim body

    strSQL = "SELECT name, AES_DECRYPT(password,'"&cAesKey&"') as password , email FROM members WHERE lower(name)='"&strSearch&"' OR lower(email)='"&strSearch&"'"
    set rs = Conn.execute(strSQL)   

    if rs.eof or not len(strSearch) > 0 then
        Session("errorMessage") = "Der blev ikke fundet nogen profil"
    else
        body = "Du har anmodet om at få tilsendt dit login. " & vbCrLf & vbCrLf &_
              "Brugernavn: " & rs("name") & vbCrLf &_
              "Password: " & rs("password") & vbCrLf & vbCrLf &_
              "mvh" & vbCrLf & "Admin" & vbCrLf
   
        call sendMail(rs("email"), cGeneralFromMail, "Login til Website", body)
   
        Session("errorMessage") = "Email er blevet sendt."
    end if

    rs.close
    set rs=nothing

End Sub



Linie 31 er "body = ......", og jeg har lokaliseret problemet til at være "& rs("password") &"

MySQL datatypen for password er en varchar(25)
Avatar billede sk-man Nybegynder
17. februar 2010 - 16:09 #1
Bonus info

Laver jeg en len(rs("password")) giver det 5, så den er altså ikke NULL.

Laver jeg en CStr(rs("password")) giver det "?????" men det er altså ikke den værdi der står i databasen.

Der er sltså et eller andet i vejen med konverteringen af rs objektet til en string, men jeg kan ikke gennemskue hvad.
Avatar billede sk-man Nybegynder
17. februar 2010 - 16:19 #2
Jeg har vist fundet ud af hvad der skulle til.

SQLen er opdateret så den indeholder et cast:

strSQL = "SELECT name, CAST(AES_DECRYPT(password,'"&cAesKey&"') AS CHAR) as password , email FROM members WHERE lower(name)='"&strSearch&"' OR lower(email)='"&strSearch&"'"
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